-
Notifications
You must be signed in to change notification settings - Fork 0
/
parser.h
100 lines (57 loc) · 1.62 KB
/
parser.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
95
96
97
98
99
100
#ifndef _PARSER_H_
#define _PARSER_H_
void program (void);
int func_definitions (void);
int func_definition (void);
int var_declaration (int* space);
int lcl_var_declarations (int* space);
int arg_declaration (void);
int arg_declarations (void);
int block (void);
int statements (void);
int keyword (void);
int if_statement (void);
int while_statement (void);
int do_statement (void);
int for_statement (void);
int return_statement (void);
int break_statement (void);
int continue_statement (void);
int statement (void);
int expression_statement (void);
int expressions (void);
int expression (void);
int prefixop(void);
int parentheses (void);
int logical_neg (void);
int bitwise_neg (void);
int addressof (void);
int assignment (void);
int recursive_assignment (void);
int primary_expression(void);
int ternary_cond (void);
int numeric_const (int* value);
int const_expression (void);
int function_expression (char* identifier);
int asm_expression (char* identifier);
int sizeof_expression (char* identifier);
int fn_call (char* identifier);
int fn_call_args (void);
int binary_operation(int min_prec);
void do_operations (int op_type);
int object_expression (void);
int dereference (void);
typedef enum id_obj_e {
RC_NONE = 0,
RC_ADDRESS = 1,
RC_VARIABLE = 2,
RC_FUNCTION = 3
} id_obj_t;
id_obj_t object_identifier (void);
int switch_statement (void);
int case_type_statements (int lbl, int *next_lbl);
int case_type_statement (int lbl, int *next_lbl);
int case_statement (int lbl, int *next_lbl);
int default_statement (int lbl, int *next_lbl);
int switch_block (int lbl, int *next_lbl);
#endif