diff options
author | Bad Diode <bd@badd10de.dev> | 2021-10-12 18:15:03 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-10-12 18:15:03 +0200 |
commit | f834e2d832ed574d4d8d341bce5e0a57a0c66a61 (patch) | |
tree | e6ca2756ba226ad23ffa3ad6a08825c1a346be71 /src | |
parent | 9e186234e75a1142f2a6bf815ffec1db167a618e (diff) | |
download | bdl-f834e2d832ed574d4d8d341bce5e0a57a0c66a61.tar.gz bdl-f834e2d832ed574d4d8d341bce5e0a57a0c66a61.zip |
Resolve quote symbol directly on parserv0.3
Diffstat (limited to 'src')
-rw-r--r-- | src/bootstrap/parser.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/bootstrap/parser.c b/src/bootstrap/parser.c index e690c29..f047b8e 100644 --- a/src/bootstrap/parser.c +++ b/src/bootstrap/parser.c | |||
@@ -91,14 +91,13 @@ parse_tree(Visitor *vs) { | |||
91 | return obj_err; | 91 | return obj_err; |
92 | } break; | 92 | } break; |
93 | case TOKEN_QUOTE: { | 93 | case TOKEN_QUOTE: { |
94 | // TODO: Implement. | 94 | Object *quote_sym = make_symbol((StringView){"quote", 5}); |
95 | error_push((Error){ | 95 | Object *next_obj = parse_tree(vs); |
96 | .type = ERR_TYPE_PARSER, | 96 | if (next_obj == obj_err) { |
97 | .value = ERR_NOT_IMPLEMENTED, | 97 | free_objects(quote_sym); |
98 | .line = tok.line, | 98 | return obj_err; |
99 | .col = tok.column, | 99 | } |
100 | }); | 100 | return make_pair(quote_sym, make_pair(next_obj, obj_nil)); |
101 | return obj_err; | ||
102 | } break; | 101 | } break; |
103 | case TOKEN_LPAREN: { | 102 | case TOKEN_LPAREN: { |
104 | Object *obj = parse_list(vs); | 103 | Object *obj = parse_list(vs); |