File: Node.hh

package info (click to toggle)
eclipse-titan 7.2.0-1.1
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 103,144 kB
  • sloc: cpp: 264,784; ansic: 33,124; yacc: 23,073; makefile: 14,730; lex: 9,190; java: 4,849; perl: 3,783; sh: 2,298; xml: 1,378; javascript: 85; awk: 48; php: 32; python: 13
file content (45 lines) | stat: -rw-r--r-- 1,305 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/******************************************************************************
 * Copyright (c) 2000-2020 Ericsson Telecom AB
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
 *
 * Contributors:
 *   Balasko, Jeno
 *   Forstner, Matyas
 *
 ******************************************************************************/
#ifndef _langviz_Node_HH
#define _langviz_Node_HH

/**
 * Base class for AST-classes.
 */
class Node {
private:
  /** To detect missing/duplicated invoking of destructor. */
  static int counter;
#ifdef MEMORY_DEBUG
  /** Linked list for tracking undeleted nodes. */
  Node *prev_node, *next_node;
#endif
protected:
  /** Default constructor. */
  Node();
  /** The copy constructor. */
  Node(const Node& p);
public:
  /**
   * "Virtual constructor".
   */
  virtual Node* clone() const =0;
  /** The destructor. */
  virtual ~Node();
  /** Gives an error message if counter is not zero. It can be
   * invoked before the program exits (like check_mem_leak()) to
   * verify that all Nodes are destructed. */
  static void chk_counter();
};

#endif // _langviz_Node_HH