-
Notifications
You must be signed in to change notification settings - Fork 0
/
IntegratedParserDef.h
82 lines (70 loc) · 1.46 KB
/
IntegratedParserDef.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
/*
GROUP NUMBER: 5
MEMBERS:
1. HRISHIKESH HARSH (2020A7PS0313P)
2. HARSH PRIYADARSHI (2020A7PS0110P)
3. ANTRIKSH SHARMA (2020A7PS1691P)
4. KAUSTAB CHOUDHURY (2020A7PS0013P)
5. SHASHANK SHREEDHAR BHATT (2020A7PS0078P)
*/
#include "lexer.c"
struct parseTreeNodeData
{
char *lexeme;
int lineNo;
char *tokenName;
float valueIfNumber;
char *currentNodeSymbol;
char *parentNodeSymbol;
int isLeafNode;
};
struct alpha_and_token
{
alpha_node alpha;
token_info token;
};
typedef struct alpha_and_token *alpha_and_token;
struct treeNode
{
alpha_and_token data;
struct parseTreeNodeData *dataForPrint;
int numOfChildren;
struct treeNode *leftmostChild;
struct treeNode *secondLeftmostChild;
struct treeNode *rightSibling;
int whetherFirstChild;
};
typedef struct treeNode *treeNode;
struct parseTree
{
struct treeNode *root;
};
typedef struct parseTree *parseTree;
int last_rule_expanded = -1;
struct ASTList
{
int size;
struct ASTListNode *head;
struct ASTListNode *tail;
};
typedef struct ASTList *ASTList;
struct ASTListNode
{
struct ASTNode *data;
struct ASTListNode *next;
};
typedef struct ASTListNode *ASTListNode;
struct ASTNode
{
struct parseTreeNodeData *dataForPrint;
int num_children;
struct ASTList *info_list;
struct ASTNode **children;
int range_ast[2];
};
typedef struct ASTNode *ASTNode;
struct AST
{
ASTNode root;
};
typedef struct AST *AST;