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