-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintermediateCodeGenDef.h
More file actions
73 lines (66 loc) · 1.42 KB
/
intermediateCodeGenDef.h
File metadata and controls
73 lines (66 loc) · 1.42 KB
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
// GROUP - 30
// ID: 2020A7PS0094P Name: Arya Veer Singh Chauhan
// ID: 2020A7PS0049P Name: Madhav Madhusoodanan
// ID: 2020A7PS0016P Name: Ruchika Sarkar
// ID: 2020A7PS0984P Name: Utsav Goel
// ID: 2020A7PS0102P Name: Hardik Jain
#ifndef ICG_DEFH
#define ICG_DEFH
#include "ast.h"
typedef enum{
MODULE_DECLARATION,
DRIVER_MODULE,
MODULE_DEFINITION,
FORMAL_INPUT_PARAMS,
FORMAL_OUTPUT_PARAMS,
MODULE_REUSE,
MODULE_END,
DECLARE_VARIABLE,
GET_VALUE,
PRINT_VALUE,
PASS_PARAM,
GET_RETURN,
FOR_LOOP,
FOR_LOOP_END,
SWITCH_START,
SWITCH_END,
CASE_START,
CASE_BREAK,
DEFAULT_START,
WHILE_START,
WHILE_END,
ASSIGN,
ADDITION,
SUBTRACTION,
MULTIPLICATION,
DIVISION,
UNARY_MINUS,
ARRAY_ACCESS,
ARRAY_ASSIGNMENT,
DRIVER_MODULE_END,
LESS_THAN,
LESS_THAN_EQUAL,
GREATER_THAN,
GREATER_THAN_EQUAL,
EQUAL,
NOT_EQUAL,
AND,
OR
} OPERATOR;
typedef struct Quadruple* QUADRUPLE;
typedef struct QuadrupleRow* QUADRUPLEROW;
struct QuadrupleRow{
OPERATOR operator;
TREENODE left;
TREENODE op1;
TREENODE op2;
QUADRUPLEROW below;
SYMBOLTABLEROW currFunc;
SYMBOLTABLE ST;
int data;
};
struct Quadruple{
QUADRUPLEROW top;
QUADRUPLEROW curr;
};
#endif