-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtype.h
More file actions
48 lines (39 loc) · 947 Bytes
/
type.h
File metadata and controls
48 lines (39 loc) · 947 Bytes
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
/* constant used in the parser */
#define STRLENGTH 24 /* maximal length of an identifier */
#define PLUS 0 /* labels of the AST nodes */
#define TIMES 2
#define IDF 4
#define NUM 5
#define SEMI_COLON 6
#define NON_DEF -1
#define WORD_SIZE 1024
#define BLOC 7
#define VAR 8
#define ASSIGN 9
#define AND 10
#define WHILE 11
#define IF 12
#define THENELSE 13
#define EGAL 14
#define NOT 15
#define SUP 16
#define PROC_DECL 17
#define PROC 18
#define CALL 19
#define COMMA 20
#define SKIP 21
#define INF 22
#define INFEQ 23
#define SUPEQ 24
typedef union {
int u_int; /* value associated to a NUM node */
char u_str[STRLENGTH]; /* string associated to an IDF node */
} leaf ;
typedef struct node{
int type_node ; /* node label */
leaf val_node ; /* node value, for IDF and NUM */
struct node *fg ; /* left child */
struct node *fd ; /* right child */
} NODE;
typedef NODE *PTR_NODE ;
NODE *root ; /* root of the AST */