forked from cop3402/toy1
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparser.h
More file actions
40 lines (29 loc) · 869 Bytes
/
parser.h
File metadata and controls
40 lines (29 loc) · 869 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
#ifndef PARSER_H
#define PARSER_H
#include <stdlib.h>
#include "lexer.h"
typedef struct S_statement_list* T_statement_list;
typedef struct S_statement* T_statement;
typedef struct S_expression* T_expression;
struct S_statement_list {
T_statement statement;
T_statement_list statement_list;
};
struct S_statement {
T_expression expression;
};
struct S_expression {
T_token operand1;
T_token op;
T_token operand2;
};
T_statement_list parse_statement_list();
T_statement parse_statement();
T_expression parse_expression();
T_statement_list create_statement_list(T_statement statement, T_statement_list statement_list);
T_statement create_statement(T_expression expression);
T_expression create_expression(T_token operand1, T_token op, T_token operand2);
T_token get_lookahead();
void next_token();
void parser_error();
#endif // PARSER_H