-
Notifications
You must be signed in to change notification settings - Fork 4
/
node.h
executable file
·68 lines (63 loc) · 1.41 KB
/
node.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
#ifndef SPL_NODE_H
#define SPL_NODE_H
#define NODE_IF 0
#define NODE_LOAD 1
#define NODE_STORE 2
#define NODE_LOADI 3
#define NODE_READ 4
#define NODE_READI 5
#define NODE_PRINT 6
#define NODE_REG 7
#define NODE_NUM 8
#define NODE_STRING 9
#define NODE_IDENT 10
#define NODE_NONTERM 11
#define NODE_STRCMP 12
#define NODE_STRCOPY 13
#define NODE_WHILE 14
#define NODE_EQ 15
#define NODE_GT 16
#define NODE_LT 17
#define NODE_LE 18
#define NODE_GE 19
#define NODE_NE 20
#define NODE_AND 21
#define NODE_OR 22
#define NODE_NOT 23
#define NODE_BREAK 24
#define NODE_CONTINUE 25
#define NODE_ADDR_EXPR 26
#define NODE_HALT 27
#define NODE_BREAKPOINT 28
#define NODE_RETURN 29
#define NODE_IRETURN 30
#define NODE_INLINE 31
#define NODE_ENCRYPT 32
#define NODE_STMTLIST 33
#define NODE_ADD 34
#define NODE_SUB 35
#define NODE_MUL 36
#define NODE_DIV 37
#define NODE_MOD 38
#define NODE_ASSIGN 39
#define NODE_BACKUP 40
#define NODE_RESTORE 41
#define NODE_GOTO 42
#define NODE_CALL 43
#define NODE_PORT 44
#define NODE_LABEL_DEF 45
#define NODE_MULTIPUSH 46
#define NODE_MULTIPOP 47
typedef struct tree
{
char nodetype;
char *name;
int value;
struct tree *ptr1, *ptr2, *ptr3;
} node;
node *create_termNode(char nodetype, char *name, int value);
node *create_nontermNode(char nodetype, node *a, node *b);
char node_getType(node *nn);
char *node_getName(node *nn);
node *create_tree(node *a, node *b, node *c, node *d);
#endif