summaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-02-27 20:59:37 -0500
committerLLLL Colonq <llll@colonq>2026-02-27 20:59:37 -0500
commit83d7d3cf960ecb7b1e20b691d4018a67d407cf47 (patch)
tree074732177f1bd5a4b18f1ae53f6b718812b5621a /src/parser.c
parenta525fadf516bc5aae2c0ec648d3b8c22e9f86293 (diff)
Update for RealNaesten :)
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/parser.c b/src/parser.c
index b2d0f31..1f540d6 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -61,7 +61,6 @@ void pit_parser_from_lexer(pit_parser *ret, pit_lexer *lex) {
/* parse a single expression */
pit_value pit_parse(pit_runtime *rt, pit_parser *st, bool *eof) {
- char buf[256] = {0};
if (rt == NULL || st == NULL) return PIT_NIL;
pit_lex_token t = advance(st);
rt->source_line = st->cur.line;
@@ -153,6 +152,7 @@ pit_value pit_parse(pit_runtime *rt, pit_parser *st, bool *eof) {
return pit_integer_new(rt, total);
}
case PIT_LEX_TOKEN_STRING_LITERAL: {
+ char buf[256] = {0};
get_token_string(st, buf, sizeof(buf));
i64 len = (i64) strlen(buf);
i64 cur = 0;
@@ -163,9 +163,11 @@ pit_value pit_parse(pit_runtime *rt, pit_parser *st, bool *eof) {
}
return pit_bytes_new(rt, (u8 *) buf, cur);
}
- case PIT_LEX_TOKEN_SYMBOL:
+ case PIT_LEX_TOKEN_SYMBOL: {
+ char buf[256] = {0};
get_token_string(st, buf, sizeof(buf));
return pit_intern_cstr(rt, buf);
+ }
default:
pit_error(rt, "unexpected token: %s", pit_lex_token_name(t));
return PIT_NIL;