diff options
author | Bad Diode <bd@badd10de.dev> | 2022-03-30 16:06:01 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-03-30 16:06:01 +0200 |
commit | 5fc604279a9fb156dd3a8ade7bdf5c0936e9f9a7 (patch) | |
tree | f08d452ccfb51c7043a90a769f959cb970870d23 /src/parser.h | |
parent | 138b466b897f94ea6a29a7b62c39caa717efafec (diff) | |
download | bdl-5fc604279a9fb156dd3a8ade7bdf5c0936e9f9a7.tar.gz bdl-5fc604279a9fb156dd3a8ade7bdf5c0936e9f9a7.zip |
Add parsing for builtin arithmetic ops
Diffstat (limited to 'src/parser.h')
-rw-r--r-- | src/parser.h | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/parser.h b/src/parser.h index 5a9d5c8..2957356 100644 --- a/src/parser.h +++ b/src/parser.h | |||
@@ -10,14 +10,7 @@ typedef struct Parser { | |||
10 | 10 | ||
11 | typedef enum NodeType { | 11 | typedef enum NodeType { |
12 | // NODE_FUNCALL, | 12 | // NODE_FUNCALL, |
13 | // NODE_U64, | 13 | NODE_BUILTIN, |
14 | // NODE_U32, | ||
15 | // NODE_U16, | ||
16 | // NODE_U8, | ||
17 | // NODE_S64, | ||
18 | // NODE_S32, | ||
19 | // NODE_S16, | ||
20 | // NODE_S8, | ||
21 | NODE_NUMBER, | 14 | NODE_NUMBER, |
22 | NODE_STRING, | 15 | NODE_STRING, |
23 | } NodeType; | 16 | } NodeType; |
@@ -35,13 +28,16 @@ typedef struct Node { | |||
35 | 28 | ||
36 | // String. | 29 | // String. |
37 | StringView string; | 30 | StringView string; |
38 | // struct { | 31 | |
39 | // u8 *str; | 32 | // Builtin primitive. |
40 | // u64 n; | 33 | struct { |
41 | // } as_str; | 34 | TokenType type; |
35 | struct Node **args; | ||
36 | } builtin; | ||
42 | }; | 37 | }; |
43 | } Node; | 38 | } Node; |
44 | 39 | ||
45 | void parse(Token *tokens); | 40 | void parse(Token *tokens); |
41 | Node * parse_next(Parser *parser); | ||
46 | 42 | ||
47 | #endif // BDL_PARSER_H | 43 | #endif // BDL_PARSER_H |