From 6580bf426160ad852abcf136a9dee1c793cd4a1d Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 1 Jun 2021 09:10:28 -0500 Subject: [PATCH] added static if statements in procedures; a little limited at the moment --- bin/onyx | Bin 366032 -> 366152 bytes include/onyxastnodes.h | 21 ++++++++++----------- src/onyxastnodes.c | 9 +++++++++ src/onyxchecker.c | 35 +++++++++++++++++++++++------------ src/onyxentities.c | 2 +- src/onyxparser.c | 38 ++++++++++++++++++++++++-------------- src/onyxsymres.c | 23 +++++++++++++++++------ src/onyxwasm.c | 12 ++++++++++++ 8 files changed, 96 insertions(+), 44 deletions(-) diff --git a/bin/onyx b/bin/onyx index b1a21794a5d9904d15aaab88e570ade524a0fc65..e4eccdcb078803ccbc87908f29c76b0f263e93cf 100755 GIT binary patch delta 105689 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 delta 104773 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 L6F)p-ZvOuO-x6Hz diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 4db208e9..87c20fa2 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -30,7 +30,6 @@ NODE(Compound) \ \ NODE(DirectiveSolidify) \ - NODE(StaticIf) \ NODE(DirectiveError) \ NODE(DirectiveAddOverload) \ NODE(DirectiveOperator) \ @@ -626,7 +625,14 @@ struct AstIfWhile { AstBlock *true_stmt; AstBlock *false_stmt; + + // Used by Static_If + bh_arr(struct Entity *) true_entities; + bh_arr(struct Entity *) false_entities; }; +typedef struct AstIfWhile AstIf; +typedef struct AstIfWhile AstWhile; + struct AstSwitchCase { // NOTE: All expressions that end up in this block bh_arr(AstTyped *) values; @@ -882,15 +888,6 @@ struct AstPolyProc { }; -struct AstStaticIf { - AstNode_base; - - AstTyped* cond; - - bh_arr(struct Entity *) true_entities; - bh_arr(struct Entity *) false_entities; -}; - struct AstDirectiveError { AstNode_base; @@ -991,7 +988,7 @@ typedef struct Entity { AstDirectiveError *error; AstInclude *include; AstBinding *binding; - AstStaticIf *static_if; + AstIf *static_if; AstFunction *function; AstOverloadedFunction *overloaded_function; AstGlobal *global; @@ -1202,6 +1199,8 @@ void arguments_remove_baked(Arguments* args); // GROSS: Using void* to avoid having to cast everything. const char* node_get_type_name(void* node); +b32 static_if_resolution(AstIf* static_if); + typedef enum PolyProcLookupMethod { PPLM_By_Arguments, PPLM_By_Function_Type, diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index aa711518..4db5c8f5 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -859,3 +859,12 @@ const char* node_get_type_name(void* node) { return type_get_name(((AstTyped *) node)->type); } + +b32 static_if_resolution(AstIf* static_if) { + if (static_if->kind != Ast_Kind_Static_If) return 0; + + AstNumLit* condition_value = (AstNumLit *) static_if->cond; + assert(condition_value->kind == Ast_Kind_NumLit); // This should be right, right? + + return condition_value->value.i != 0; +} \ No newline at end of file diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 7e4ab81e..333b75b4 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -125,15 +125,25 @@ CheckStatus check_return(AstReturn* retnode) { CheckStatus check_if(AstIfWhile* ifnode) { if (ifnode->assignment != NULL) CHECK(statement, (AstNode **) &ifnode->assignment); - CHECK(expression, &ifnode->cond); + if (ifnode->kind == Ast_Kind_Static_If) { + if (static_if_resolution(ifnode)) { + if (ifnode->true_stmt != NULL) CHECK(statement, (AstNode **) &ifnode->true_stmt); + + } else { + if (ifnode->false_stmt != NULL) CHECK(statement, (AstNode **) &ifnode->false_stmt); + } - if (!type_is_bool(ifnode->cond->type)) { - onyx_report_error(ifnode->cond->token->pos, "expected boolean type for condition"); - return Check_Error; - } + } else { + CHECK(expression, &ifnode->cond); - if (ifnode->true_stmt) CHECK(statement, (AstNode **) &ifnode->true_stmt); - if (ifnode->false_stmt) CHECK(statement, (AstNode **) &ifnode->false_stmt); + if (!type_is_bool(ifnode->cond->type)) { + onyx_report_error(ifnode->cond->token->pos, "expected boolean type for condition"); + return Check_Error; + } + + if (ifnode->true_stmt) CHECK(statement, (AstNode **) &ifnode->true_stmt); + if (ifnode->false_stmt) CHECK(statement, (AstNode **) &ifnode->false_stmt); + } return Check_Success; } @@ -1488,6 +1498,7 @@ CheckStatus check_statement(AstNode** pstmt) { case Ast_Kind_Return: return check_return((AstReturn *) stmt); case Ast_Kind_If: return check_if((AstIfWhile *) stmt); + case Ast_Kind_Static_If: return check_if((AstIfWhile *) stmt); case Ast_Kind_While: return check_while((AstIfWhile *) stmt); case Ast_Kind_For: return check_for((AstFor *) stmt); case Ast_Kind_Switch: return check_switch((AstSwitch *) stmt); @@ -1778,7 +1789,7 @@ CheckStatus check_type(AstType* type) { return Check_Success; } -CheckStatus check_static_if(AstStaticIf* static_if) { +CheckStatus check_static_if(AstIf* static_if) { CheckStatus result = check_expression(&static_if->cond); if (result > Check_Errors_Start || !(static_if->cond->flags & Ast_Flag_Comptime)) { @@ -1791,17 +1802,16 @@ CheckStatus check_static_if(AstStaticIf* static_if) { return Check_Error; } - AstNumLit* condition_value = (AstNumLit *) static_if->cond; - assert(condition_value->kind == Ast_Kind_NumLit); // This should be right, right? + b32 resolution = static_if_resolution(static_if); if (context.options->print_static_if_results) bh_printf("Static if statement at %s:%d:%d resulted in %s\n", static_if->token->pos.filename, static_if->token->pos.line, static_if->token->pos.column, - condition_value->value.i ? "true" : "false"); + resolution ? "true" : "false"); - if (condition_value->value.i) { + if (resolution) { bh_arr_each(Entity *, ent, static_if->true_entities) { entity_heap_insert_existing(&context.entities, *ent); } @@ -1822,6 +1832,7 @@ CheckStatus check_node(AstNode* node) { case Ast_Kind_Block: return check_block((AstBlock *) node); case Ast_Kind_Return: return check_return((AstReturn *) node); case Ast_Kind_If: return check_if((AstIfWhile *) node); + case Ast_Kind_Static_If: return check_if((AstIfWhile *) node); case Ast_Kind_While: return check_while((AstIfWhile *) node); case Ast_Kind_Call: return check_call((AstCall *) node); case Ast_Kind_Binary_Op: return check_binaryop((AstBinaryOp **) &node, 1); diff --git a/src/onyxentities.c b/src/onyxentities.c index c5b1972e..410d13ae 100644 --- a/src/onyxentities.c +++ b/src/onyxentities.c @@ -290,7 +290,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s case Ast_Kind_Static_If: { ent.state = Entity_State_Comptime_Resolve_Symbols; ent.type = Entity_Type_Static_If; - ent.static_if = (AstStaticIf *) node; + ent.static_if = (AstIf *) node; ENTITY_INSERT(ent); break; } diff --git a/src/onyxparser.c b/src/onyxparser.c index 007d3ac4..43de83c0 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -64,7 +64,7 @@ static b32 parse_possible_function_definition(OnyxParser* parser, Ast static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* token); static AstTyped* parse_global_declaration(OnyxParser* parser); static AstEnumType* parse_enum_declaration(OnyxParser* parser); -static AstStaticIf* parse_static_if_stmt(OnyxParser* parser); +static AstIf* parse_static_if_stmt(OnyxParser* parser, b32 parse_block_as_statements); static AstTyped* parse_top_level_expression(OnyxParser* parser); static AstBinding* parse_top_level_binding(OnyxParser* parser, OnyxToken* symbol); static void parse_top_level_statement(OnyxParser* parser); @@ -1320,16 +1320,16 @@ static AstNode* parse_statement(OnyxParser* parser) { This is in theory where the static if in procedures will be parsed. However, this breaks many things because static if statements currently only parse top level expressions in them, not general statements. + */ if (next_tokens_are(parser, 2, '#', Token_Type_Keyword_If)) { - AstStaticIf* static_if = parse_static_if_stmt(parser); + AstIf* static_if = parse_static_if_stmt(parser, 1); ENTITY_SUBMIT(static_if); needs_semicolon = 0; retval = (AstNode *) static_if; break; } - */ } default: @@ -2072,8 +2072,8 @@ static AstEnumType* parse_enum_declaration(OnyxParser* parser) { return enum_node; } -static AstStaticIf* parse_static_if_stmt(OnyxParser* parser) { - AstStaticIf* static_if_node = make_node(AstStaticIf, Ast_Kind_Static_If); +static AstIf* parse_static_if_stmt(OnyxParser* parser, b32 parse_block_as_statements) { + AstIf* static_if_node = make_node(AstIf, Ast_Kind_Static_If); static_if_node->token = expect_token(parser, '#'); expect_token(parser, Token_Type_Keyword_If); @@ -2082,11 +2082,16 @@ static AstStaticIf* parse_static_if_stmt(OnyxParser* parser) { bh_arr_new(global_heap_allocator, static_if_node->true_entities, 2); bh_arr_push(parser->alternate_entity_placement_stack, &static_if_node->true_entities); - expect_token(parser, '{'); - while (!consume_token_if_next(parser, '}')) { - if (parser->hit_unexpected_token) return static_if_node; + if (parse_block_as_statements) { + static_if_node->true_stmt = parse_block(parser); - parse_top_level_statement(parser); + } else { + expect_token(parser, '{'); + while (!consume_token_if_next(parser, '}')) { + if (parser->hit_unexpected_token) return static_if_node; + + parse_top_level_statement(parser); + } } bh_arr_pop(parser->alternate_entity_placement_stack); @@ -2095,11 +2100,16 @@ static AstStaticIf* parse_static_if_stmt(OnyxParser* parser) { bh_arr_new(global_heap_allocator, static_if_node->false_entities, 2); bh_arr_push(parser->alternate_entity_placement_stack, &static_if_node->false_entities); - expect_token(parser, '{'); - while (!consume_token_if_next(parser, '}')) { - if (parser->hit_unexpected_token) return static_if_node; + if (parse_block_as_statements) { + static_if_node->false_stmt = parse_block(parser); - parse_top_level_statement(parser); + } else { + expect_token(parser, '{'); + while (!consume_token_if_next(parser, '}')) { + if (parser->hit_unexpected_token) return static_if_node; + + parse_top_level_statement(parser); + } } bh_arr_pop(parser->alternate_entity_placement_stack); @@ -2234,7 +2244,7 @@ static void parse_top_level_statement(OnyxParser* parser) { case '#': { if (next_tokens_are(parser, 2, '#', Token_Type_Keyword_If)) { - AstStaticIf* static_if = parse_static_if_stmt(parser); + AstIf* static_if = parse_static_if_stmt(parser, 0); ENTITY_SUBMIT(static_if); return; } diff --git a/src/onyxsymres.c b/src/onyxsymres.c index e6bbc20c..fefc9295 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -55,7 +55,7 @@ static SymresStatus symres_enum(AstEnumType* enum_node); static SymresStatus symres_memres_type(AstMemRes** memres); static SymresStatus symres_memres(AstMemRes** memres); static SymresStatus symres_struct_defaults(AstType* st); -static SymresStatus symres_static_if(AstStaticIf* static_if); +static SymresStatus symres_static_if(AstIf* static_if); static void scope_enter(Scope* new_scope) { curr_scope = new_scope; @@ -498,12 +498,22 @@ static SymresStatus symres_if(AstIfWhile* ifnode) { SYMRES(statement, (AstNode **) &ifnode->assignment, NULL); } - SYMRES(expression, &ifnode->cond); + if (ifnode->kind == Ast_Kind_Static_If) { + if (static_if_resolution(ifnode)) { + if (ifnode->true_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->true_stmt, NULL); + + } else { + if (ifnode->false_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->false_stmt, NULL); + } - if (ifnode->true_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->true_stmt, NULL); - if (ifnode->false_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->false_stmt, NULL); + } else { + SYMRES(expression, &ifnode->cond); + + if (ifnode->true_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->true_stmt, NULL); + if (ifnode->false_stmt != NULL) SYMRES(statement, (AstNode **) &ifnode->false_stmt, NULL); - if (ifnode->assignment != NULL) scope_leave(); + if (ifnode->assignment != NULL) scope_leave(); + } return Symres_Success; } @@ -717,6 +727,7 @@ static SymresStatus symres_statement(AstNode** stmt, b32 *remove) { switch ((*stmt)->kind) { case Ast_Kind_Return: SYMRES(return, (AstReturn *) *stmt); break; case Ast_Kind_If: SYMRES(if, (AstIfWhile *) *stmt); break; + case Ast_Kind_Static_If: SYMRES(if, (AstIfWhile *) *stmt); break; case Ast_Kind_While: SYMRES(while, (AstIfWhile *) *stmt); break; case Ast_Kind_For: SYMRES(for, (AstFor *) *stmt); break; case Ast_Kind_Switch: SYMRES(switch, (AstSwitch *) *stmt); break; @@ -993,7 +1004,7 @@ static SymresStatus symres_polyproc(AstPolyProc* pp) { return Symres_Success; } -static SymresStatus symres_static_if(AstStaticIf* static_if) { +static SymresStatus symres_static_if(AstIf* static_if) { SYMRES(expression, &static_if->cond); return Symres_Success; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 851c7444..8f40cce8 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -387,6 +387,7 @@ EMIT_FUNC(statement, AstNode* stmt) { switch (stmt->kind) { case Ast_Kind_Return: emit_return(mod, &code, (AstReturn *) stmt); break; case Ast_Kind_If: emit_if(mod, &code, (AstIfWhile *) stmt); break; + case Ast_Kind_Static_If: emit_if(mod, &code, (AstIfWhile *) stmt); break; case Ast_Kind_While: emit_while(mod, &code, (AstIfWhile *) stmt); break; case Ast_Kind_For: emit_for(mod, &code, (AstFor *) stmt); break; case Ast_Kind_Switch: emit_switch(mod, &code, (AstSwitch *) stmt); break; @@ -662,6 +663,17 @@ EMIT_FUNC(if, AstIfWhile* if_node) { emit_assignment(mod, &code, if_node->assignment); } + if (if_node->kind == Ast_Kind_Static_If) { + if (static_if_resolution(if_node)) { + if (if_node->true_stmt) emit_block(mod, &code, if_node->true_stmt, 1); + } else { + if (if_node->false_stmt) emit_block(mod, &code, if_node->false_stmt, 1); + } + + *pcode = code; + return; + } + emit_expression(mod, &code, if_node->cond); emit_enter_structured_block(mod, &code, SBT_Basic_If); -- 2.25.1