diff options
| author | hachem <im@hachem.wtf> | 2026-08-31 23:14:26 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-31 23:14:26 +0200 |
| commit | 9dc06d01c2224ee1dbeb11ebee7c8afecfac8b05 (patch) | |
| tree | 110fe30b5b1f228568087a8fe7b0f7e0ca43fbb1 /src/parser/parser.c | |
| parent | 5b06b0e4b8effaacd23308d6a6b26c525e7d3af4 (diff) | |
feat: add support for floats through xmm registers
Diffstat (limited to 'src/parser/parser.c')
| -rw-r--r-- | src/parser/parser.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/parser/parser.c b/src/parser/parser.c index 682e193..3ed9fff 100644 --- a/src/parser/parser.c +++ b/src/parser/parser.c @@ -248,7 +248,8 @@ static struct Expr* parse_primary(struct Parser* parser) return deref; } - if (check(parser, TOKEN_IDENTIFIER) || check(parser, TOKEN_INTEGER) || check(parser, TOKEN_CHAR)) + if (check(parser, TOKEN_IDENTIFIER) || check(parser, TOKEN_INTEGER) + || check(parser, TOKEN_FLOAT) || check(parser, TOKEN_CHAR)) { advance_parser(parser); @@ -439,12 +440,15 @@ static bool parse_statement(struct Parser* parser, struct Statement* out) if (!consume(parser, TOKEN_LEFT_BRACKET, "expected '[' after buffer name")) return false; - if (!consume(parser, TOKEN_INTEGER, "expected buffer size")) + struct Expr* size = parse_expression(parser); + if (size == NULL) return false; - struct Token size = parser->previous; if (!consume(parser, TOKEN_RIGHT_BRACKET, "expected ']' after buffer size")) + { + free_expr(size); return false; + } out->kind = STATEMENT_STACK; out->stack.name = name; |
