aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.h
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-03-30 16:06:01 +0200
committerBad Diode <bd@badd10de.dev>2022-03-30 16:06:01 +0200
commit5fc604279a9fb156dd3a8ade7bdf5c0936e9f9a7 (patch)
treef08d452ccfb51c7043a90a769f959cb970870d23 /src/parser.h
parent138b466b897f94ea6a29a7b62c39caa717efafec (diff)
downloadbdl-5fc604279a9fb156dd3a8ade7bdf5c0936e9f9a7.tar.gz
bdl-5fc604279a9fb156dd3a8ade7bdf5c0936e9f9a7.zip
Add parsing for builtin arithmetic ops
Diffstat (limited to 'src/parser.h')
-rw-r--r--src/parser.h20
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
11typedef enum NodeType { 11typedef 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
45void parse(Token *tokens); 40void parse(Token *tokens);
41Node * parse_next(Parser *parser);
46 42
47#endif // BDL_PARSER_H 43#endif // BDL_PARSER_H