From: Brendan Hansen Date: Mon, 11 Dec 2023 17:10:58 +0000 (-0600) Subject: fixed: #82 parsing error X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=2180a36b964e6c3e0c29873fd1edd5345145d15f;p=onyx.git fixed: #82 parsing error --- diff --git a/compiler/src/parser.c b/compiler/src/parser.c index 543e82be..b89077a6 100644 --- a/compiler/src/parser.c +++ b/compiler/src/parser.c @@ -620,12 +620,21 @@ static AstTyped* parse_factor(OnyxParser* parser) { } if (parser->curr->type != '{') { - onyx_report_error(parser->curr->pos, Error_Critical, "Expected '{' after 'do', got '%s'.", token_name(parser->curr)); - retval = NULL; - break; - } + AstBlock *tmp_block = make_node(AstBlock, Ast_Kind_Block); + tmp_block->token = do_token; + + tmp_block->binding_scope = scope_create(parser->allocator, parser->current_scope, parser->curr->pos); + tmp_block->binding_scope->name = ""; + + parser->current_scope = tmp_block->binding_scope; + tmp_block->body = parse_statement(parser); + parser->current_scope = parser->current_scope->parent; - do_block->block = parse_block(parser, 1, NULL); + do_block->block = tmp_block; + + } else { + do_block->block = parse_block(parser, 1, NULL); + } retval = (AstTyped *) do_block; break;