aboutsummaryrefslogtreecommitdiff
path: root/proj2.h
blob: 2b0e1419545f10eced31c82b3a214776e91bcf36 (plain)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* proj2.h */
typedef struct treenode
        {       /* syntax tree node struct */
                int NodeKind, NodeOpType, IntVal;
                struct treenode *LeftC, *RightC;
        } ILTree, *tree;

tree Root;

typedef union
{
  int intg;
  tree tptr;
} YYSTYPE;


#define ProgramOp       100
#define BodyOp          101
#define DeclOp          102
#define CommaOp         103
#define ArrayTypeOp     104
#define TypeIdOp        105
#define BoundOp         106
#define RecompOp        107
#define ToOp            108
#define DownToOp        109
#define ConstantIdOp    110
#define ProceOp         111
#define FuncOp          112
#define HeadOp          113
#define RArgTypeOp      114
#define VArgTypeOp      115
#define StmtOp          116
#define IfElseOp        117
#define LoopOp          118
#define SpecOp          119
#define RoutineCallOp   120
#define AssignOp        121
#define ReturnOp        122
#define AddOp           123
#define SubOp           124
#define MultOp          125
#define DivOp           126
#define LTOp            127
#define GTOp            128
#define EQOp            129
#define NEOp            130
#define LEOp            131
#define GEOp            132
#define AndOp           133
#define OrOp            134
#define UnaryNegOp      135
#define NotOp           136
#define VarOp           137
#define SelectOp        138
#define IndexOp         139
#define FieldOp         140
#define SubrangeOp      141
#define ExitOp          142
#define ClassOp         143
#define MethodOp        144
#define ClassDefOp      145

#define IDNode          200 
#define NUMNode         201
#define CHARNode        202
#define STRINGNode      203
#define DUMMYNode       204
#define EXPRNode        205
#define INTEGERTNode	206
#define CHARTNode	207
#define BOOLEANTNode	208
#define STNode		209

tree NullExp();
tree MakeLeaf(int, int);
tree MakeTree(int, tree, tree);
/*tree LeftChild(tree);
tree RightChild(tree); */
tree MkLeftC(tree, tree);
tree MkRightC(tree, tree);
/*
void SetNode(tree, tree);
void SetNodeOp(tree, int);
void SetLeftTreeOp(tree, int);
void SetRightTreeOp(tree, int);
void SetLeftChild(tree, tree);
void SetRightChild(tree, tree); */