index
 1  /************************************************************
 2  * file: SyntaxTreeNode.h
 3  * date: 2006-04-12
 4  * author: ideawu
 5  * describe: none; SyntaxTreeNode
 6  *************************************************************/
 7
 8  #include <stdio.h>
 9  #include "common.h"
10
11  class SyntaxTreeNode{
12  private:
13      TokenType type;
14      int value;  // identifiers will be given distinguish values.
15      SyntaxTreeNode *left, *right, *child3;
16
17  public:
18      SyntaxTreeNode();
19      SyntaxTreeNode(TokenType t, int val);
20      ~SyntaxTreeNode();
21
22      void setType(TokenType t);
23      void setValue(int val);
24
25      TokenType getType();
26      int getValue();
27
28      void addLeft(TokenType t, int val);
29      // add the subtree n to this tree's left
30      void addLeft(SyntaxTreeNode *n);
31
32      void addRight(TokenType t, int val);
33      // add the subtree n to this tree's right
34      void addRight(SyntaxTreeNode *n);
35
36      void addChild3(TokenType t, int val);
37      // add the subtree n to this tree's child3
38      void addChild3(SyntaxTreeNode *n);
39
40      SyntaxTreeNode* getRootNode();
41
42      SyntaxTreeNode* getLeft();
43      SyntaxTreeNode* getRight();
44      SyntaxTreeNode* getChild3();
45
46      friend class SyntaxTree;
47  };
48
49
50