-
Notifications
You must be signed in to change notification settings - Fork 3
/
NaryTreeDef.h
94 lines (85 loc) · 1.41 KB
/
NaryTreeDef.h
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
91
92
93
94
/*
Group:33
2016A7PS0036P Megh Thakkar
2016A7PS0103P Sahil Singla
2016A7PS0110P Sankalp Sangle
2016A7PS0150P Patel Parth
*/
#ifndef NARYTREEDEF
#define NARYTREEDEF
#include "lexerDef.h"
#include "parserDef.h"
#include "hashTableDef.h"
#include "astDef.h"
typedef enum{
primitiveDatatype,
relationalOp,
assignmentStmt,
fieldDefinitions,
declaration,
moreFields,
singleOrRecId,
elsePart,
output_par,
arithmeticExpression,
mainFunction,
remaining_list,
more_ids,
returnStmt,
idList,
ioStmt,
global_or_not,
conditionalStmt,
stmts,
input_par,
allVar,
program,
booleanExpression,
highPrecedenceOperators,
inputParameters,
fieldDefinition,
iterativeStmt,
function,
all,
factor,
logicalOp,
dataType,
outputParameters,
typeDefinition,
stmt,
otherStmts,
var,
constructedDatatype,
optionalReturn,
termPrime,
term,
lowPrecedenceOperators,
temp,
parameter_list,
new_24,
declarations,
funCallStmt,
typeDefinitions,
otherFunctions,
expPrime,
var_mid
} NonTerminal;
typedef union {
Tokentype terminalType;
NonTerminal nonTerminalType;
} symbolType;
struct parseTreeNode{
int isTerminal;
symbolType symType;
struct parseTreeNode* nextSibling;
Token* token;
struct parseTreeNode* parent;
int no_children;
struct parseTreeNode* first_kid;
int rule_no;
// astNode* addr;
// astNode* inh_addr;
};
typedef struct parseTreeNode parseTreeNode;
extern int PARSER_SIZE;
#endif