From 962e8185de35e80491d36b83419bfcb70a49c28e Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 1 Jun 2021 15:25:04 -0500 Subject: [PATCH] parser cleanup; fixed bug when defining procedures inside of static ifs inside of procedures --- bin/onyx | Bin 366208 -> 366208 bytes core/builtin.onyx | 2 +- include/onyxparser.h | 2 +- src/onyxparser.c | 59 +++++++++++++++++++++---------------------- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/bin/onyx b/bin/onyx index 8b9ec16d5dd2a7688b52f98a14dc1dfba7f6442f..15f113436b2d3c3ae7239277b2fc1ee2fae1a033 100755 GIT binary patch delta 57481 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 P`jd9CDUsjn%d!6gcn@%X diff --git a/core/builtin.onyx b/core/builtin.onyx index 25b940e7..10f45735 100644 --- a/core/builtin.onyx +++ b/core/builtin.onyx @@ -41,7 +41,7 @@ vararg_get :: proc { } @NullProcHack -null_proc :: proc () #null --- +null_proc :: () -> void #null --- null :: cast(rawptr) 0; // I find myself wanting to return a completely nullified string like the diff --git a/include/onyxparser.h b/include/onyxparser.h index 11d024c2..1686320b 100644 --- a/include/onyxparser.h +++ b/include/onyxparser.h @@ -25,7 +25,7 @@ typedef struct OnyxParser { PolymorphicContext polymorph_context; - bh_arr(Scope *) scope_stack; + Scope *current_scope; bh_arr(bh_arr(Entity *) *) alternate_entity_placement_stack; b32 hit_unexpected_token : 1; diff --git a/src/onyxparser.c b/src/onyxparser.c index 43de83c0..f7014998 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -17,7 +17,7 @@ static AstNode error_node = { Ast_Kind_Error, 0, NULL, NULL }; -#define ENTITY_SUBMIT(node) (submit_entity_in_scope(parser, (AstNode *) (node), bh_arr_last(parser->scope_stack), parser->package)) +#define ENTITY_SUBMIT(node) (submit_entity_in_scope(parser, (AstNode *) (node), parser->current_scope, parser->package)) #define ENTITY_SUBMIT_IN_SCOPE(node, scope) (submit_entity_in_scope(parser, (AstNode *) (node), scope, parser->package)) void submit_entity_in_scope(OnyxParser* parser, AstNode* node, Scope* scope, Package* package) { @@ -54,7 +54,7 @@ static AstSwitch* parse_switch_stmt(OnyxParser* parser); static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret); static AstReturn* parse_return_stmt(OnyxParser* parser); static AstNode* parse_use_stmt(OnyxParser* parser); -static AstBlock* parse_block(OnyxParser* parser); +static AstBlock* parse_block(OnyxParser* parser, b32 make_a_new_scope); static AstNode* parse_statement(OnyxParser* parser); static AstType* parse_type(OnyxParser* parser); static AstStructType* parse_struct(OnyxParser* parser); @@ -880,7 +880,7 @@ static AstIfWhile* parse_if_stmt(OnyxParser* parser) { // an error is reported in the typechecking, saying that assignment isn't allowed // here, which is better than an unexpected token error. AstTyped* cond = parse_expression(parser, 1); - AstBlock* true_stmt = parse_block(parser); + AstBlock* true_stmt = parse_block(parser, 1); if_node->cond = cond; if (true_stmt != NULL) @@ -893,7 +893,7 @@ static AstIfWhile* parse_if_stmt(OnyxParser* parser) { elseif_node->token = parser->curr - 1; cond = parse_expression(parser, 1); - true_stmt = parse_block(parser); + true_stmt = parse_block(parser, 1); elseif_node->cond = cond; if (true_stmt != NULL) @@ -904,7 +904,7 @@ static AstIfWhile* parse_if_stmt(OnyxParser* parser) { } if (consume_token_if_next(parser, Token_Type_Keyword_Else)) { - AstBlock* false_stmt = parse_block(parser); + AstBlock* false_stmt = parse_block(parser, 1); if (false_stmt != NULL) if_node->false_stmt = false_stmt; } @@ -935,10 +935,10 @@ static AstIfWhile* parse_while_stmt(OnyxParser* parser) { } while_node->cond = parse_expression(parser, 1); - while_node->true_stmt = parse_block(parser); + while_node->true_stmt = parse_block(parser, 1); if (consume_token_if_next(parser, Token_Type_Keyword_Else)) { - while_node->false_stmt = parse_block(parser); + while_node->false_stmt = parse_block(parser, 1); } return while_node; @@ -959,7 +959,7 @@ static AstFor* parse_for_stmt(OnyxParser* parser) { expect_token(parser, ':'); for_node->iter = parse_expression(parser, 1); - for_node->stmt = parse_block(parser); + for_node->stmt = parse_block(parser, 1); return for_node; } @@ -997,7 +997,7 @@ static AstSwitch* parse_switch_stmt(OnyxParser* parser) { bh_arr_new(global_heap_allocator, case_values, 1); if (parse_possible_directive(parser, "default")) { - switch_node->default_case = parse_block(parser); + switch_node->default_case = parse_block(parser, 1); if (parser->curr->type != '}') { onyx_report_error(parser->curr->pos, "The #default case must be the last case in a switch statement.\n"); @@ -1014,7 +1014,7 @@ static AstSwitch* parse_switch_stmt(OnyxParser* parser) { bh_arr_push(case_values, value); } - AstBlock* block = parse_block(parser); + AstBlock* block = parse_block(parser, 1); AstSwitchCase sc_node; sc_node.block = block; @@ -1220,7 +1220,7 @@ static AstNode* parse_statement(OnyxParser* parser) { case Token_Type_Empty_Block: case Token_Type_Keyword_Do: needs_semicolon = 0; - retval = (AstNode *) parse_block(parser); + retval = (AstNode *) parse_block(parser, 1); break; case Token_Type_Symbol: { @@ -1303,7 +1303,7 @@ static AstNode* parse_statement(OnyxParser* parser) { assignment2->left = builtin_context_variable; assignment2->right = (AstTyped *) context_tmp; - AstBlock* context_block = parse_block(parser); + AstBlock* context_block = parse_block(parser, 1); assignment->next = (AstNode *) context_block; AstDefer* defer_node = make_node(AstDefer, Ast_Kind_Defer); @@ -1341,7 +1341,7 @@ static AstNode* parse_statement(OnyxParser* parser) { return retval; } -static AstBlock* parse_block(OnyxParser* parser) { +static AstBlock* parse_block(OnyxParser* parser, b32 make_a_new_scope) { AstBlock* block = make_node(AstBlock, Ast_Kind_Block); // NOTE: --- is for an empty block @@ -1350,14 +1350,15 @@ static AstBlock* parse_block(OnyxParser* parser) { return block; } - Scope* parent_scope = bh_arr_last(parser->scope_stack); - block->binding_scope = scope_create(parser->allocator, parent_scope, parser->curr->pos); - bh_arr_push(parser->scope_stack, block->binding_scope); + if (make_a_new_scope) { + block->binding_scope = scope_create(parser->allocator, parser->current_scope, parser->curr->pos); + parser->current_scope = block->binding_scope; + } if (parser->curr->type == Token_Type_Keyword_Do) { block->token = expect_token(parser, Token_Type_Keyword_Do); block->body = parse_statement(parser); - bh_arr_pop(parser->scope_stack); + if (make_a_new_scope) parser->current_scope = parser->current_scope->parent; return block; } @@ -1367,7 +1368,7 @@ static AstBlock* parse_block(OnyxParser* parser) { AstNode* stmt = NULL; while (!consume_token_if_next(parser, '}')) { if (parser->hit_unexpected_token) { - bh_arr_pop(parser->scope_stack); + if (make_a_new_scope) parser->current_scope = parser->current_scope->parent; return block; } @@ -1381,7 +1382,7 @@ static AstBlock* parse_block(OnyxParser* parser) { } } - bh_arr_pop(parser->scope_stack); + if (make_a_new_scope) parser->current_scope = parser->current_scope->parent; return block; } @@ -1710,8 +1711,8 @@ static AstStructType* parse_struct(OnyxParser* parser) { if (next_tokens_are(parser, 3, Token_Type_Symbol, ':', ':')) { if (!s_node->scope) { - s_node->scope = scope_create(context.ast_alloc, bh_arr_last(parser->scope_stack), s_node->token->pos); - bh_arr_push(parser->scope_stack, s_node->scope); + s_node->scope = scope_create(context.ast_alloc, parser->current_scope, s_node->token->pos); + parser->current_scope = s_node->scope; } OnyxToken* binding_name = expect_token(parser, Token_Type_Symbol); @@ -1770,7 +1771,7 @@ static AstStructType* parse_struct(OnyxParser* parser) { } } - if (s_node->scope) bh_arr_pop(parser->scope_stack); + if (s_node->scope) parser->current_scope = parser->current_scope->parent; bh_arr_free(member_list_temp); @@ -1936,7 +1937,7 @@ static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* tok } } - func_def->body = parse_block(parser); + func_def->body = parse_block(parser, 1); if (bh_arr_length(polymorphic_vars) > 0) { AstPolyProc* pp = make_node(AstPolyProc, Ast_Kind_Polymorphic_Proc); @@ -2083,7 +2084,7 @@ static AstIf* parse_static_if_stmt(OnyxParser* parser, b32 parse_block_as_statem bh_arr_push(parser->alternate_entity_placement_stack, &static_if_node->true_entities); if (parse_block_as_statements) { - static_if_node->true_stmt = parse_block(parser); + static_if_node->true_stmt = parse_block(parser, 0); } else { expect_token(parser, '{'); @@ -2101,7 +2102,7 @@ static AstIf* parse_static_if_stmt(OnyxParser* parser, b32 parse_block_as_statem bh_arr_push(parser->alternate_entity_placement_stack, &static_if_node->false_entities); if (parse_block_as_statements) { - static_if_node->false_stmt = parse_block(parser); + static_if_node->false_stmt = parse_block(parser, 0); } else { expect_token(parser, '{'); @@ -2455,7 +2456,7 @@ OnyxParser onyx_parser_create(bh_allocator alloc, OnyxTokenizer *tokenizer) { parser.curr = tokenizer->tokens; parser.prev = NULL; parser.hit_unexpected_token = 0; - parser.scope_stack = NULL; + parser.current_scope = NULL; parser.alternate_entity_placement_stack = NULL; parser.polymorph_context = (PolymorphicContext) { @@ -2463,14 +2464,12 @@ OnyxParser onyx_parser_create(bh_allocator alloc, OnyxTokenizer *tokenizer) { .poly_params = NULL, }; - bh_arr_new(global_heap_allocator, parser.scope_stack, 4); bh_arr_new(global_heap_allocator, parser.alternate_entity_placement_stack, 4); return parser; } void onyx_parser_free(OnyxParser* parser) { - bh_arr_free(parser->scope_stack); } void onyx_parse(OnyxParser *parser) { @@ -2479,7 +2478,7 @@ void onyx_parse(OnyxParser *parser) { parser->package = parse_file_package(parser); parser->file_scope = scope_create(parser->allocator, parser->package->private_scope, parser->tokenizer->tokens[0].pos); - bh_arr_push(parser->scope_stack, parser->file_scope); + parser->current_scope = parser->file_scope; AstUse* implicit_use_builtin = make_node(AstUse, Ast_Kind_Use); AstPackage* implicit_builtin_package = make_node(AstPackage, Ast_Kind_Package); @@ -2493,5 +2492,5 @@ void onyx_parse(OnyxParser *parser) { parse_top_level_statement(parser); } - bh_arr_pop(parser->scope_stack); + parser->current_scope = parser->current_scope->parent; } -- 2.25.1