diff options
author | Bad Diode <bd@badd10de.dev> | 2021-10-30 08:51:46 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-10-30 08:51:46 +0200 |
commit | c0520617a974abd27c413fb21ecd64ca2d11d135 (patch) | |
tree | c284b450c7532303c1eb138bcf6fb45a8540603f /src/parser.h | |
parent | f17b11003fe384b49a7bf844824f23167b6095e0 (diff) | |
download | bdl-c0520617a974abd27c413fb21ecd64ca2d11d135.tar.gz bdl-c0520617a974abd27c413fb21ecd64ca2d11d135.zip |
Add parsing for def/set! expressions
Diffstat (limited to 'src/parser.h')
-rwxr-xr-x | src/parser.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/parser.h b/src/parser.h index b2b07c8..14d9df5 100755 --- a/src/parser.h +++ b/src/parser.h | |||
@@ -13,6 +13,8 @@ typedef enum ObjectType { | |||
13 | OBJ_TYPE_PAIR, | 13 | OBJ_TYPE_PAIR, |
14 | OBJ_TYPE_LAMBDA, | 14 | OBJ_TYPE_LAMBDA, |
15 | OBJ_TYPE_IF, | 15 | OBJ_TYPE_IF, |
16 | OBJ_TYPE_DEF, | ||
17 | OBJ_TYPE_SET, | ||
16 | } ObjectType; | 18 | } ObjectType; |
17 | 19 | ||
18 | typedef struct Object { | 20 | typedef struct Object { |
@@ -43,6 +45,13 @@ typedef struct Object { | |||
43 | struct Object *expr_true; | 45 | struct Object *expr_true; |
44 | struct Object *expr_false; | 46 | struct Object *expr_false; |
45 | }; | 47 | }; |
48 | |||
49 | // OBJ_TYPE_DEF | ||
50 | // OBJ_TYPE_SET | ||
51 | struct { | ||
52 | struct Object *var_name; | ||
53 | struct Object *var_expr; | ||
54 | }; | ||
46 | }; | 55 | }; |
47 | 56 | ||
48 | size_t line; | 57 | size_t line; |
@@ -71,6 +80,8 @@ Object * parse_bool(Token tok); | |||
71 | Object * parse_fixnum(Token tok); | 80 | Object * parse_fixnum(Token tok); |
72 | Object * parse_list(Parser *parser, Errors *errors); | 81 | Object * parse_list(Parser *parser, Errors *errors); |
73 | Object * parse_lambda(Parser *parser, Errors *errors); | 82 | Object * parse_lambda(Parser *parser, Errors *errors); |
83 | Object * parse_if(Parser *parser, Errors *errors); | ||
84 | Object * parse_var(Parser *parser, Errors *errors); | ||
74 | Root * parse(Token *tokens, Errors *errors); | 85 | Root * parse(Token *tokens, Errors *errors); |
75 | 86 | ||
76 | // Object operations. | 87 | // Object operations. |