From d607a779a38891e514efc6e25ec5356fe31a1a4e Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sat, 28 Aug 2021 13:27:04 -0500 Subject: [PATCH] added 'do' expressions --- bin/onyx | Bin 426640 -> 426648 bytes docs/bugs | 12 +- include/onyxastnodes.h | 9 + include/onyxwasm.h | 3 +- src/onyxastnodes.c | 1 + src/onyxchecker.c | 32 ++- src/onyxclone.c | 534 +++++++++++++++++++++-------------------- src/onyxparser.c | 27 ++- src/onyxsymres.c | 3 + src/onyxwasm.c | 107 +++++++-- 10 files changed, 422 insertions(+), 306 deletions(-) diff --git a/bin/onyx b/bin/onyx index 3bcc2ba078bf9b5e67217cabfa112613f8d76cb9..7758c4dc245a51f75514141ce8bbd2c91bd6cc9b 100755 GIT binary patch delta 133434 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 delta 131107 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

W01w3Q;{-*xDDra-56HmdH#hP4&0~G+ab4jG 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 WRd>h+c$p7btq%6t&+}HRH~&Af8Jc7O diff --git a/docs/bugs b/docs/bugs index 4b26b29e..55a74452 100644 --- a/docs/bugs +++ b/docs/bugs @@ -6,14 +6,22 @@ List of known bugs: [ ] Enums suck. Make them more powerful. -[ ] add `do` expressions: - +[X] add `do` expressions: + x := do { a := 1; b := 2; return a + b; }; + So then, expression macros can just do the following: + + add :: macro (x: i32, y: i32) -> i32 do return x + y; + + x := add(1, 2); + x := do { return 1 + 2; } + + [X] Add support for tabs in error messages. [ ] switch statements should work with any type that supports '=='. diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index dbcb8f71..48ac2bcb 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -29,6 +29,7 @@ NODE(RangeLiteral) \ NODE(Compound) \ NODE(IfExpression) \ + NODE(DoBlock) \ \ NODE(DirectiveSolidify) \ NODE(DirectiveError) \ @@ -195,6 +196,7 @@ typedef enum AstKind { Ast_Kind_Code_Block, Ast_Kind_Directive_Insert, Ast_Kind_Macro, + Ast_Kind_Do_Block, Ast_Kind_Note, @@ -492,10 +494,12 @@ typedef enum VarArgKind { typedef enum BlockRule { Block_Rule_New_Scope = BH_BIT(1), Block_Rule_Clear_Defer = BH_BIT(2), + Block_Rule_Override_Return = BH_BIT(3), Block_Rule_Normal = Block_Rule_New_Scope | Block_Rule_Clear_Defer, Block_Rule_Macro = Block_Rule_New_Scope, Block_Rule_Code_Block = Block_Rule_New_Scope, + Block_Rule_Do_Block = Block_Rule_New_Scope | Block_Rule_Clear_Defer | Block_Rule_Override_Return, } BlockRule; typedef struct Arguments Arguments; @@ -626,6 +630,11 @@ struct AstIfExpression { AstTyped* true_expr; AstTyped* false_expr; }; +struct AstDoBlock { + AstTyped_base; + + AstBlock* block; +}; struct AstDirectiveSolidify { AstTyped_base; diff --git a/include/onyxwasm.h b/include/onyxwasm.h index 29dc274c..b423403d 100644 --- a/include/onyxwasm.h +++ b/include/onyxwasm.h @@ -556,7 +556,8 @@ typedef struct OnyxWasmModule { bh_table(StrLitInfo) loaded_file_info; bh_table(StrLitInfo) string_literals; - bh_arr(u8) structured_jump_target; + bh_arr(u8) structured_jump_target; + bh_arr(AstLocal*) return_location_stack; // NOTE: Used for do-block return expressions. bh_arr(WasmFuncType*) types; // NOTE: This have to be pointers because the type is variadic in size bh_arr(WasmImport) imports; diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index 439a1ff2..666a2038 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -91,6 +91,7 @@ static const char* ast_node_names[] = { "CODE BLOCK", "DIRECTIVE INSERT", "MACRO", + "DO BLOCK", "NOTE", diff --git a/src/onyxchecker.c b/src/onyxchecker.c index f57b116d..9a7b4f8d 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -82,7 +82,7 @@ CheckStatus check_memres_type(AstMemRes* memres); CheckStatus check_memres(AstMemRes* memres); CheckStatus check_type(AstType* type); CheckStatus check_insert_directive(AstDirectiveInsert** pinsert); - +CheckStatus check_do_block(AstDoBlock** pdoblock); // HACK HACK HACK b32 expression_types_must_be_known = 0; @@ -1357,6 +1357,26 @@ CheckStatus check_if_expression(AstIfExpression* if_expr) { return Check_Success; } +CheckStatus check_do_block(AstDoBlock** pdoblock) { + AstDoBlock* doblock = *pdoblock; + if (doblock->flags & Ast_Flag_Has_Been_Checked) return Check_Success; + + fill_in_type((AstTyped *) doblock); + + Type** old_expected_return_type = expected_return_type; + expected_return_type = &doblock->type; + + doblock->block->rules = Block_Rule_Do_Block; + CHECK(block, doblock->block); + + if (doblock->type == &type_auto_return) + ERROR(doblock->token->pos, "Unable to determine type of do-block expression."); + + expected_return_type = old_expected_return_type; + doblock->flags |= Ast_Flag_Has_Been_Checked; + return Check_Success; +} + CheckStatus check_address_of(AstAddressOf* aof) { CHECK(expression, &aof->expr); if (aof->expr->type == NULL) { @@ -1549,12 +1569,12 @@ CheckStatus check_method_call(AstBinaryOp** mcall) { // would be good. - brendanfh 2020/02/05 if (implicit_argument->type->kind != Type_Kind_Pointer) implicit_argument = (AstTyped *) make_address_of(context.ast_alloc, implicit_argument); - + implicit_argument = (AstTyped *) make_argument(context.ast_alloc, implicit_argument); bh_arr_insertn(call_node->args.values, 0, 1); call_node->args.values[0] = implicit_argument; - } + } (*mcall)->flags |= Ast_Flag_Has_Been_Checked; CHECK(call, &call_node); @@ -1731,6 +1751,10 @@ CheckStatus check_expression(AstTyped** pexpr) { fill_in_type(expr); break; + case Ast_Kind_Do_Block: + retval = check_do_block((AstDoBlock **) pexpr); + break; + case Ast_Kind_StrLit: break; case Ast_Kind_File_Contents: break; case Ast_Kind_Overloaded_Function: break; @@ -1740,7 +1764,7 @@ CheckStatus check_expression(AstTyped** pexpr) { case Ast_Kind_Package: break; case Ast_Kind_Error: break; case Ast_Kind_Unary_Field_Access: break; - + // NOTE: The only way to have an Intrinsic_Call node is to have gone through the // checking of a call node at least once. case Ast_Kind_Intrinsic_Call: break; diff --git a/src/onyxclone.c b/src/onyxclone.c index 425a2dca..7dfe23da 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -3,30 +3,30 @@ #include "onyxutils.h" static inline b32 should_clone(AstNode* node) { - if (node->flags & Ast_Flag_No_Clone) return 0; - - switch (node->kind) { - // List of nodes that should not be copied - case Ast_Kind_Global: - case Ast_Kind_Memres: - case Ast_Kind_StrLit: - case Ast_Kind_Package: - case Ast_Kind_Enum_Type: - case Ast_Kind_Enum_Value: - case Ast_Kind_Overloaded_Function: - case Ast_Kind_Polymorphic_Proc: - case Ast_Kind_Alias: - case Ast_Kind_Code_Block: - case Ast_Kind_Macro: - case Ast_Kind_File_Contents: - return 0; - - default: return 1; - } + if (node->flags & Ast_Flag_No_Clone) return 0; + + switch (node->kind) { + // List of nodes that should not be copied + case Ast_Kind_Global: + case Ast_Kind_Memres: + case Ast_Kind_StrLit: + case Ast_Kind_Package: + case Ast_Kind_Enum_Type: + case Ast_Kind_Enum_Value: + case Ast_Kind_Overloaded_Function: + case Ast_Kind_Polymorphic_Proc: + case Ast_Kind_Alias: + case Ast_Kind_Code_Block: + case Ast_Kind_Macro: + case Ast_Kind_File_Contents: + return 0; + + default: return 1; + } } static inline i32 ast_kind_to_size(AstNode* node) { - switch (node->kind) { + switch (node->kind) { case Ast_Kind_Error: return sizeof(AstNode); case Ast_Kind_Package: return sizeof(AstPackage); case Ast_Kind_Load_File: return sizeof(AstInclude); @@ -98,217 +98,218 @@ static inline i32 ast_kind_to_size(AstNode* node) { case Ast_Kind_Static_If: return sizeof(AstIfWhile); case Ast_Kind_If_Expression: return sizeof(AstIfExpression); case Ast_Kind_Directive_Insert: return sizeof(AstDirectiveInsert); + case Ast_Kind_Do_Block: return sizeof(AstDoBlock); case Ast_Kind_Count: return 0; - } + } return 0; } AstNode* ast_clone_list(bh_allocator a, void* n) { - AstNode* node = (AstNode *) n; - if (node == NULL) return NULL; - - AstNode* root = ast_clone(a, node); - AstNode* curr = root->next; - AstNode** insertion = &root->next; - - while (curr != NULL) { - curr = ast_clone(a, curr); - *insertion = curr; - insertion = &curr->next; - curr = curr->next; - } + AstNode* node = (AstNode *) n; + if (node == NULL) return NULL; + + AstNode* root = ast_clone(a, node); + AstNode* curr = root->next; + AstNode** insertion = &root->next; + + while (curr != NULL) { + curr = ast_clone(a, curr); + *insertion = curr; + insertion = &curr->next; + curr = curr->next; + } - return root; + return root; } #define C(nt, mname) ((nt *) nn)->mname = (void *) ast_clone(a, ((nt *) node)->mname); // NOTE: Using void* to avoid a lot of unnecessary casting AstNode* ast_clone(bh_allocator a, void* n) { - AstNode* node = (AstNode *) n; + AstNode* node = (AstNode *) n; - if (node == NULL) return NULL; - if (!should_clone(node)) return node; + if (node == NULL) return NULL; + if (!should_clone(node)) return node; - static int clone_depth = 0; - clone_depth++; + static int clone_depth = 0; + clone_depth++; - i32 node_size = ast_kind_to_size(node); - // bh_printf("Cloning %s with size %d\n", onyx_ast_node_kind_string(node->kind), node_size); + i32 node_size = ast_kind_to_size(node); + // bh_printf("Cloning %s with size %d\n", onyx_ast_node_kind_string(node->kind), node_size); - AstNode* nn = onyx_ast_node_new(a, node_size, node->kind); - memmove(nn, node, node_size); + AstNode* nn = onyx_ast_node_new(a, node_size, node->kind); + memmove(nn, node, node_size); - switch ((u16) node->kind) { - case Ast_Kind_Binary_Op: + switch ((u16) node->kind) { + case Ast_Kind_Binary_Op: case Ast_Kind_Pipe: case Ast_Kind_Method_Call: - C(AstBinaryOp, left); - C(AstBinaryOp, right); - break; + C(AstBinaryOp, left); + C(AstBinaryOp, right); + break; - case Ast_Kind_Unary_Op: - C(AstUnaryOp, expr); - C(AstUnaryOp, type_node); - break; + case Ast_Kind_Unary_Op: + C(AstUnaryOp, expr); + C(AstUnaryOp, type_node); + break; - case Ast_Kind_Param: - case Ast_Kind_Local: - C(AstLocal, type_node); - break; + case Ast_Kind_Param: + case Ast_Kind_Local: + C(AstLocal, type_node); + break; - case Ast_Kind_Call: + case Ast_Kind_Call: arguments_deep_clone(a, &((AstCall *) nn)->args, &((AstCall *) node)->args); - break; + break; - case Ast_Kind_Argument: - C(AstArgument, value); - break; + case Ast_Kind_Argument: + C(AstArgument, value); + break; - case Ast_Kind_Address_Of: - C(AstAddressOf, expr); - break; + case Ast_Kind_Address_Of: + C(AstAddressOf, expr); + break; - case Ast_Kind_Dereference: - C(AstDereference, expr); - break; + case Ast_Kind_Dereference: + C(AstDereference, expr); + break; - case Ast_Kind_Slice: - case Ast_Kind_Subscript: - C(AstSubscript, addr); - C(AstSubscript, expr); - break; + case Ast_Kind_Slice: + case Ast_Kind_Subscript: + C(AstSubscript, addr); + C(AstSubscript, expr); + break; - case Ast_Kind_Field_Access: - C(AstFieldAccess, expr); - break; + case Ast_Kind_Field_Access: + C(AstFieldAccess, expr); + break; - case Ast_Kind_Size_Of: - C(AstSizeOf, so_ast_type); - break; + case Ast_Kind_Size_Of: + C(AstSizeOf, so_ast_type); + break; - case Ast_Kind_Align_Of: - C(AstAlignOf, ao_ast_type); - break; + case Ast_Kind_Align_Of: + C(AstAlignOf, ao_ast_type); + break; - case Ast_Kind_Struct_Literal: { - AstStructLiteral* st = (AstStructLiteral *) node; - AstStructLiteral* dt = (AstStructLiteral *) nn; + case Ast_Kind_Struct_Literal: { + AstStructLiteral* st = (AstStructLiteral *) node; + AstStructLiteral* dt = (AstStructLiteral *) nn; - dt->stnode = (AstTyped *) ast_clone(a, st->stnode); + dt->stnode = (AstTyped *) ast_clone(a, st->stnode); arguments_deep_clone(a, &dt->args, &st->args); - break; - } + break; + } - case Ast_Kind_Array_Literal: { - AstArrayLiteral* st = (AstArrayLiteral *) node; - AstArrayLiteral* dt = (AstArrayLiteral *) nn; + case Ast_Kind_Array_Literal: { + AstArrayLiteral* st = (AstArrayLiteral *) node; + AstArrayLiteral* dt = (AstArrayLiteral *) nn; - dt->atnode = (AstTyped *) ast_clone(a, st->atnode); + dt->atnode = (AstTyped *) ast_clone(a, st->atnode); - dt->values = NULL; - bh_arr_new(global_heap_allocator, dt->values, bh_arr_length(st->values)); - bh_arr_each(AstTyped *, val, st->values) - bh_arr_push(dt->values, (AstTyped *) ast_clone(a, *val)); + dt->values = NULL; + bh_arr_new(global_heap_allocator, dt->values, bh_arr_length(st->values)); + bh_arr_each(AstTyped *, val, st->values) + bh_arr_push(dt->values, (AstTyped *) ast_clone(a, *val)); - break; - } + break; + } case Ast_Kind_Range_Literal: - C(AstRangeLiteral, low); - C(AstRangeLiteral, high); - C(AstRangeLiteral, step); - break; - - case Ast_Kind_Return: - C(AstReturn, expr); - break; - - case Ast_Kind_Block: - ((AstBlock *) nn)->body = ast_clone_list(a, ((AstBlock *) node)->body); - break; - - case Ast_Kind_Defer: - C(AstDefer, stmt); - break; - - case Ast_Kind_For: - C(AstFor, var); - C(AstFor, iter); - C(AstFor, stmt); - break; - - case Ast_Kind_If: - case Ast_Kind_While: - C(AstIfWhile, local); - C(AstIfWhile, assignment); - - if (((AstIfWhile *) nn)->assignment) - ((AstIfWhile *) nn)->assignment->left = (AstTyped *) ((AstIfWhile *) nn)->local; - - C(AstIfWhile, cond); - //fallthrough - - case Ast_Kind_Static_If: - C(AstIfWhile, true_stmt); - C(AstIfWhile, false_stmt); - break; - - case Ast_Kind_Switch: { - AstSwitch* dw = (AstSwitch *) nn; - AstSwitch* sw = (AstSwitch *) node; - - dw->local = (AstLocal *) ast_clone(a, sw->local); - dw->assignment = (AstBinaryOp *) ast_clone(a, sw->assignment); - if (dw->assignment) - dw->assignment->left = (AstTyped *) sw->local; - dw->expr = (AstTyped *) ast_clone(a, sw->expr); - - dw->default_case = (AstBlock *) ast_clone(a, sw->default_case); - - dw->cases = NULL; - bh_arr_new(global_heap_allocator, dw->cases, bh_arr_length(sw->cases)); - - bh_arr_each(AstSwitchCase, c, sw->cases) { - bh_arr(AstTyped *) new_values = NULL; - bh_arr_new(global_heap_allocator, new_values, bh_arr_length(c->values)); - bh_arr_each(AstTyped *, value, c->values) - bh_arr_push(new_values, (AstTyped *) ast_clone(a, *value)); - - AstSwitchCase sc; - sc.values = new_values; - sc.block = (AstBlock *) ast_clone(a, c->block); - bh_arr_push(dw->cases, sc); - } - break; - } - - case Ast_Kind_Pointer_Type: - C(AstPointerType, elem); - break; - - case Ast_Kind_Array_Type: - C(AstArrayType, count_expr); - C(AstArrayType, elem); - break; - - case Ast_Kind_Slice_Type: - C(AstSliceType, elem); - break; - - case Ast_Kind_DynArr_Type: - C(AstDynArrType, elem); - break; - - case Ast_Kind_VarArg_Type: - C(AstVarArgType, elem); - break; - - case Ast_Kind_Type_Alias: - C(AstTypeAlias, to); - break; + C(AstRangeLiteral, low); + C(AstRangeLiteral, high); + C(AstRangeLiteral, step); + break; + + case Ast_Kind_Return: + C(AstReturn, expr); + break; + + case Ast_Kind_Block: + ((AstBlock *) nn)->body = ast_clone_list(a, ((AstBlock *) node)->body); + break; + + case Ast_Kind_Defer: + C(AstDefer, stmt); + break; + + case Ast_Kind_For: + C(AstFor, var); + C(AstFor, iter); + C(AstFor, stmt); + break; + + case Ast_Kind_If: + case Ast_Kind_While: + C(AstIfWhile, local); + C(AstIfWhile, assignment); + + if (((AstIfWhile *) nn)->assignment) + ((AstIfWhile *) nn)->assignment->left = (AstTyped *) ((AstIfWhile *) nn)->local; + + C(AstIfWhile, cond); + //fallthrough + + case Ast_Kind_Static_If: + C(AstIfWhile, true_stmt); + C(AstIfWhile, false_stmt); + break; + + case Ast_Kind_Switch: { + AstSwitch* dw = (AstSwitch *) nn; + AstSwitch* sw = (AstSwitch *) node; + + dw->local = (AstLocal *) ast_clone(a, sw->local); + dw->assignment = (AstBinaryOp *) ast_clone(a, sw->assignment); + if (dw->assignment) + dw->assignment->left = (AstTyped *) sw->local; + dw->expr = (AstTyped *) ast_clone(a, sw->expr); + + dw->default_case = (AstBlock *) ast_clone(a, sw->default_case); + + dw->cases = NULL; + bh_arr_new(global_heap_allocator, dw->cases, bh_arr_length(sw->cases)); + + bh_arr_each(AstSwitchCase, c, sw->cases) { + bh_arr(AstTyped *) new_values = NULL; + bh_arr_new(global_heap_allocator, new_values, bh_arr_length(c->values)); + bh_arr_each(AstTyped *, value, c->values) + bh_arr_push(new_values, (AstTyped *) ast_clone(a, *value)); + + AstSwitchCase sc; + sc.values = new_values; + sc.block = (AstBlock *) ast_clone(a, c->block); + bh_arr_push(dw->cases, sc); + } + break; + } + + case Ast_Kind_Pointer_Type: + C(AstPointerType, elem); + break; + + case Ast_Kind_Array_Type: + C(AstArrayType, count_expr); + C(AstArrayType, elem); + break; + + case Ast_Kind_Slice_Type: + C(AstSliceType, elem); + break; + + case Ast_Kind_DynArr_Type: + C(AstDynArrType, elem); + break; + + case Ast_Kind_VarArg_Type: + C(AstVarArgType, elem); + break; + + case Ast_Kind_Type_Alias: + C(AstTypeAlias, to); + break; case Ast_Kind_Struct_Type: { AstStructType* ds = (AstStructType *) nn; @@ -326,8 +327,8 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Struct_Member: - C(AstStructMember, type_node); - C(AstStructMember, initial_value); + C(AstStructMember, type_node); + C(AstStructMember, initial_value); break; case Ast_Kind_Poly_Call_Type: { @@ -358,72 +359,72 @@ AstNode* ast_clone(bh_allocator a, void* n) { break; } - case Ast_Kind_Function_Type: - C(AstFunctionType, return_type); - ((AstFunctionType *) nn)->param_count = ((AstFunctionType *) node)->param_count; - fori (i, 0, (i64) ((AstFunctionType *) nn)->param_count) { - ((AstFunctionType *) nn)->params[i] = (AstType *) ast_clone(a, ((AstFunctionType *) node)->params[i]); - } - break; - - case Ast_Kind_Binding: - bh_printf("Cloning binding: %b\n", node->token->text, node->token->length); - C(AstTyped, type_node); - C(AstBinding, node); - break; - - case Ast_Kind_Function: { - if (clone_depth > 1) { - clone_depth--; - return node; - } - - AstFunction* df = (AstFunction *) nn; - AstFunction* sf = (AstFunction *) node; - - if (sf->flags & Ast_Flag_Foreign) return node; - - df->return_type = (AstType *) ast_clone(a, sf->return_type); - df->body = (AstBlock *) ast_clone(a, sf->body); - - df->params = NULL; - bh_arr_new(global_heap_allocator, df->params, bh_arr_length(sf->params)); - - bh_arr_each(AstParam, param, sf->params) { - AstParam new_param = { 0 }; - new_param.local = (AstLocal *) ast_clone(a, param->local); - new_param.default_value = (AstTyped *) ast_clone(a, param->default_value); + case Ast_Kind_Function_Type: + C(AstFunctionType, return_type); + ((AstFunctionType *) nn)->param_count = ((AstFunctionType *) node)->param_count; + fori (i, 0, (i64) ((AstFunctionType *) nn)->param_count) { + ((AstFunctionType *) nn)->params[i] = (AstType *) ast_clone(a, ((AstFunctionType *) node)->params[i]); + } + break; + + case Ast_Kind_Binding: + bh_printf("Cloning binding: %b\n", node->token->text, node->token->length); + C(AstTyped, type_node); + C(AstBinding, node); + break; + + case Ast_Kind_Function: { + if (clone_depth > 1) { + clone_depth--; + return node; + } + + AstFunction* df = (AstFunction *) nn; + AstFunction* sf = (AstFunction *) node; + + if (sf->flags & Ast_Flag_Foreign) return node; + + df->return_type = (AstType *) ast_clone(a, sf->return_type); + df->body = (AstBlock *) ast_clone(a, sf->body); + + df->params = NULL; + bh_arr_new(global_heap_allocator, df->params, bh_arr_length(sf->params)); + + bh_arr_each(AstParam, param, sf->params) { + AstParam new_param = { 0 }; + new_param.local = (AstLocal *) ast_clone(a, param->local); + new_param.default_value = (AstTyped *) ast_clone(a, param->default_value); new_param.vararg_kind = param->vararg_kind; - bh_arr_push(df->params, new_param); - } + bh_arr_push(df->params, new_param); + } - break; - } + break; + } - case Ast_Kind_Use: - C(AstUse, expr); - break; + case Ast_Kind_Use: + C(AstUse, expr); + break; - case Ast_Kind_Directive_Solidify: { - AstDirectiveSolidify* dd = (AstDirectiveSolidify *) nn; - AstDirectiveSolidify* sd = (AstDirectiveSolidify *) node; + case Ast_Kind_Directive_Solidify: { + AstDirectiveSolidify* dd = (AstDirectiveSolidify *) nn; + AstDirectiveSolidify* sd = (AstDirectiveSolidify *) node; - dd->poly_proc = (AstPolyProc *) ast_clone(a, (AstNode *) sd->poly_proc); - dd->resolved_proc = NULL; + dd->poly_proc = (AstPolyProc *) ast_clone(a, (AstNode *) sd->poly_proc); + dd->resolved_proc = NULL; - dd->known_polyvars = NULL; - bh_arr_new(global_heap_allocator, dd->known_polyvars, bh_arr_length(sd->known_polyvars)); + dd->known_polyvars = NULL; + bh_arr_new(global_heap_allocator, dd->known_polyvars, bh_arr_length(sd->known_polyvars)); - bh_arr_each(AstPolySolution, sln, sd->known_polyvars) { - AstPolySolution new_sln; + bh_arr_each(AstPolySolution, sln, sd->known_polyvars) { + AstPolySolution new_sln; new_sln.kind = sln->kind; - new_sln.poly_sym = (AstNode *) ast_clone(a, (AstNode *) sln->poly_sym); - new_sln.ast_type = (AstType *) ast_clone(a, (AstNode *) sln->ast_type); - bh_arr_push(dd->known_polyvars, new_sln); - } + new_sln.poly_sym = (AstNode *) ast_clone(a, (AstNode *) sln->poly_sym); + new_sln.ast_type = (AstType *) ast_clone(a, (AstNode *) sln->ast_type); + bh_arr_push(dd->known_polyvars, new_sln); + } - break; - } + break; + } case Ast_Kind_Compound: { AstCompound* cd = (AstCompound *) nn; @@ -439,27 +440,32 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Named_Value: - C(AstNamedValue, value); + C(AstNamedValue, value); break; case Ast_Kind_If_Expression: - C(AstIfExpression, cond); - C(AstIfExpression, true_expr); - C(AstIfExpression, false_expr); + C(AstIfExpression, cond); + C(AstIfExpression, true_expr); + C(AstIfExpression, false_expr); break; - case Ast_Kind_Directive_Insert: - C(AstDirectiveInsert, code_expr); - break; + case Ast_Kind_Directive_Insert: + C(AstDirectiveInsert, code_expr); + break; - case Ast_Kind_Typeof: - C(AstTypeOf, expr); - ((AstTypeOf *) nn)->resolved_type = NULL; - break; - } + case Ast_Kind_Typeof: + C(AstTypeOf, expr); + ((AstTypeOf *) nn)->resolved_type = NULL; + break; + + case Ast_Kind_Do_Block: + C(AstDoBlock, block); + ((AstDoBlock *) nn)->type_node = (AstType *) &basic_type_auto_return; + break; + } - clone_depth--; - return nn; + clone_depth--; + return nn; } #undef C diff --git a/src/onyxparser.c b/src/onyxparser.c index 8553f3c5..9fefea06 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -478,15 +478,6 @@ static AstTyped* parse_factor(OnyxParser* parser) { break; } - #if 0 - case Token_Type_Keyword_Proc: { - OnyxToken* proc_token = expect_token(parser, Token_Type_Keyword_Proc); - onyx_report_warning(proc_token->pos, "Warning: 'proc' is a deprecated keyword."); - retval = (AstTyped *) parse_function_definition(parser, proc_token); - break; - } - #endif - case Token_Type_Keyword_Package: { retval = (AstTyped *) parse_package_expression(parser); break; @@ -497,6 +488,24 @@ static AstTyped* parse_factor(OnyxParser* parser) { break; } + case Token_Type_Keyword_Do: { + OnyxToken* do_token = expect_token(parser, Token_Type_Keyword_Do); + AstDoBlock* do_block = make_node(AstDoBlock, Ast_Kind_Do_Block); + do_block->token = do_token; + do_block->type_node = (AstType *) &basic_type_auto_return; + + if (parser->curr->type != '{') { + onyx_report_error(parser->curr->pos, "Expected '{' after 'do', got '%s'.", token_name(parser->curr->type)); + retval = NULL; + break; + } + + do_block->block = parse_block(parser, 1); + + retval = (AstTyped *) do_block; + break; + } + // :TypeValueInterchange case '<': { AstTypeAlias* alias = make_node(AstTypeAlias, Ast_Kind_Type_Alias); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index d0599222..475e3f95 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -491,6 +491,9 @@ static SymresStatus symres_expression(AstTyped** expr) { SYMRES(directive_insert, (AstDirectiveInsert *) *expr); break; + case Ast_Kind_Do_Block: + SYMRES(block, ((AstDoBlock *) *expr)->block); + break; default: break; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 399002a1..c15a66d0 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -256,6 +256,7 @@ EMIT_FUNC(array_store, Type* type, u32 offset); EMIT_FUNC(array_literal, AstArrayLiteral* al); EMIT_FUNC(range_literal, AstRangeLiteral* range); EMIT_FUNC(if_expression, AstIfExpression* if_expr); +EMIT_FUNC(do_block, AstDoBlock* doblock); EMIT_FUNC(expression, AstTyped* expr); EMIT_FUNC(cast, AstUnaryOp* cast); EMIT_FUNC(return, AstReturn* ret); @@ -283,8 +284,11 @@ EMIT_FUNC(block, AstBlock* block, b32 generate_block_headers) { generate_block_headers = generate_block_headers && (block->rules & Block_Rule_New_Scope); - if (generate_block_headers) - emit_enter_structured_block(mod, &code, SBT_Breakable_Block); + if (generate_block_headers) { + emit_enter_structured_block(mod, &code, (block->rules & Block_Rule_Override_Return) + ? SBT_Return_Block + : SBT_Breakable_Block); + } forll (AstNode, stmt, block->body, next) { emit_statement(mod, &code, stmt); @@ -346,19 +350,15 @@ EMIT_FUNC_NO_ARGS(leave_structured_block) { *pcode = code; } -EMIT_FUNC(structured_jump, AstJump* jump) { - bh_arr(WasmInstruction) code = *pcode; - +i64 get_structured_jump_label(OnyxWasmModule* mod, JumpType jump_type, u32 jump_count) { // :CLEANUP These numbers should become constants because they are shared with // enter_structured_block's definitions. static const u8 wants[Jump_Type_Count] = { 1, 2, 3, 4 }; - u64 labelidx = 0; - u8 wanted = wants[jump->jump]; + i64 labelidx = 0; + u8 wanted = wants[jump_type]; b32 success = 0; - u32 jump_count = jump->count; - i32 len = bh_arr_length(mod->structured_jump_target) - 1; for (u8* t = &bh_arr_last(mod->structured_jump_target); len >= 0; len--, t--) { if (*t == wanted) jump_count--; @@ -370,6 +370,14 @@ EMIT_FUNC(structured_jump, AstJump* jump) { labelidx++; } + return (success == 0) ? -1 : labelidx; +} + +EMIT_FUNC(structured_jump, AstJump* jump) { + bh_arr(WasmInstruction) code = *pcode; + + i64 labelidx = get_structured_jump_label(mod, jump->jump, jump->count); + if (bh_arr_length(mod->deferred_stmts) != 0) { i32 i = bh_arr_length(mod->deferred_stmts) - 1; i32 d = bh_arr_length(mod->structured_jump_target) - (labelidx + 1); @@ -380,7 +388,7 @@ EMIT_FUNC(structured_jump, AstJump* jump) { } } - if (success) { + if (labelidx >= 0) { // NOTE: If the previous instruction was a non conditional jump, // don't emit another jump since it will never be reached. if (bh_arr_last(code).type != WI_JUMP) @@ -406,7 +414,7 @@ EMIT_FUNC(statement, AstNode* stmt) { case Ast_Kind_Block: emit_block(mod, &code, (AstBlock *) stmt, 1); break; case Ast_Kind_Defer: emit_defer(mod, &code, (AstDefer *) stmt); break; case Ast_Kind_Local: emit_local_allocation(mod, &code, (AstTyped *) stmt); break; - + case Ast_Kind_Directive_Insert: break; default: emit_expression(mod, &code, (AstTyped *) stmt); break; @@ -2283,11 +2291,36 @@ EMIT_FUNC(if_expression, AstIfExpression* if_expr) { if (!result_is_local) { emit_local_location(mod, &code, (AstLocal *) if_expr, &offset); emit_load_instruction(mod, &code, if_expr->type, offset); - + + } else { + WIL(WI_LOCAL_GET, result_local); + } + + *pcode = code; +} + +EMIT_FUNC(do_block, AstDoBlock* doblock) { + bh_arr(WasmInstruction) code = *pcode; + + u64 result_local = local_allocate(mod->local_alloc, (AstTyped *) doblock); + b32 result_is_local = (b32) ((result_local & LOCAL_IS_WASM) != 0); + + bh_imap_put(&mod->local_map, (u64) doblock, result_local); + bh_arr_push(mod->return_location_stack, (AstLocal *) doblock); + + emit_block(mod, &code, doblock->block, 1); + + u64 offset = 0; + if (!result_is_local) { + emit_local_location(mod, &code, (AstLocal *) doblock, &offset); + emit_load_instruction(mod, &code, doblock->type, offset); + } else { WIL(WI_LOCAL_GET, result_local); } + bh_arr_pop(mod->return_location_stack); + *pcode = code; } @@ -2478,6 +2511,7 @@ EMIT_FUNC(expression, AstTyped* expr) { } case Ast_Kind_Block: emit_block(mod, &code, (AstBlock *) expr, 1); break; + case Ast_Kind_Do_Block: emit_do_block(mod, &code, (AstDoBlock *) expr); break; case Ast_Kind_Call: emit_call(mod, &code, (AstCall *) expr); break; case Ast_Kind_Argument: emit_expression(mod, &code, ((AstArgument *) expr)->value); break; case Ast_Kind_Intrinsic_Call: emit_intrinsic_call(mod, &code, (AstCall *) expr); break; @@ -2764,7 +2798,7 @@ EMIT_FUNC(cast, AstUnaryOp* cast) { if (fromidx != -1 && toidx != -1) { WasmInstructionType cast_op = cast_map[fromidx][toidx]; assert(cast_op != WI_UNREACHABLE); - + if (cast_op != WI_NOP) { WI(cast_op); } @@ -2778,7 +2812,20 @@ EMIT_FUNC(return, AstReturn* ret) { // If we have an expression to return, we see if it should be placed on the linear memory stack, or the WASM stack. if (ret->expr) { - if (mod->curr_cc == CC_Return_Stack) { + if (bh_arr_length(mod->return_location_stack) > 0) { + AstLocal* dest = bh_arr_last(mod->return_location_stack); + u64 dest_loc = bh_imap_get(&mod->local_map, (u64) dest); + b32 dest_is_local = (b32) ((dest_loc & LOCAL_IS_WASM) != 0); + + u64 offset = 0; + if (!dest_is_local) emit_local_location(mod, &code, dest, &offset); + + emit_expression(mod, &code, ret->expr); + + if (!dest_is_local) emit_store_instruction(mod, &code, dest->type, offset); + else WIL(WI_LOCAL_SET, dest_loc); + + } else if (mod->curr_cc == CC_Return_Stack) { WIL(WI_LOCAL_GET, mod->stack_base_idx); WID(WI_I32_CONST, type_size_of(ret->expr->type)); WI(WI_I32_SUB); @@ -2803,12 +2850,18 @@ EMIT_FUNC(return, AstReturn* ret) { } } - // Make a patch for the two instructions needed to restore the stack pointer - SUBMIT_PATCH(mod->stack_leave_patches, 0); - WI(WI_NOP); - WI(WI_NOP); + i64 jump_label = get_structured_jump_label(mod, Jump_Type_Return, 1); + if (jump_label >= 0) { + WIL(WI_JUMP, jump_label); - WI(WI_RETURN); + } else { + // Make a patch for the two instructions needed to restore the stack pointer + SUBMIT_PATCH(mod->stack_leave_patches, 0); + WI(WI_NOP); + WI(WI_NOP); + + WI(WI_RETURN); + } *pcode = code; } @@ -2858,7 +2911,7 @@ EMIT_FUNC(zero_value, WasmType wt) { EMIT_FUNC(zero_value_for_type, Type* type, OnyxToken* where) { bh_arr(WasmInstruction) code = *pcode; - + if (type_is_structlike_strict(type)) { i32 mem_count = type_linear_member_count(type); TypeWithOffset two; @@ -3036,7 +3089,7 @@ static void emit_function(OnyxWasmModule* mod, AstFunction* fd) { bh_arr_insert_end(wasm_func.code, 5); fori (i, 0, 5) wasm_func.code[i] = (WasmInstruction) { WI_NOP, 0 }; - + mod->stack_base_idx = local_raw_allocate(mod->local_alloc, WASM_TYPE_PTR); // Generate code @@ -3173,7 +3226,7 @@ static void emit_string_literal(OnyxWasmModule* mod, AstStrLit* strlit) { StrLitInfo sti = bh_table_get(StrLitInfo, mod->string_literals, (char *) strdata); strlit->addr = sti.addr; strlit->length = sti.len; - + bh_free(global_heap_allocator, strdata); return; } @@ -3216,7 +3269,7 @@ static b32 emit_raw_data_(OnyxWasmModule* mod, ptr data, AstTyped* node) { i++; } - break; + break; } case Ast_Kind_Struct_Literal: { @@ -3275,7 +3328,7 @@ static b32 emit_raw_data_(OnyxWasmModule* mod, ptr data, AstTyped* node) { if (effective_type->kind == Type_Kind_Enum) effective_type = effective_type->Enum.backing; - + switch (effective_type->Basic.kind) { case Basic_Kind_Bool: case Basic_Kind_I8: @@ -3449,6 +3502,7 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc) { .next_elem_idx = 0, .structured_jump_target = NULL, + .return_location_stack = NULL, .local_allocations = NULL, .stack_leave_patches = NULL, @@ -3473,6 +3527,7 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc) { bh_arr_new(alloc, module.data, 4); bh_arr_new(alloc, module.elems, 4); + bh_arr_new(global_heap_allocator, module.return_location_stack, 4); bh_arr_new(global_heap_allocator, module.structured_jump_target, 16); bh_arr_set_length(module.structured_jump_target, 0); @@ -3520,7 +3575,7 @@ void emit_entity(Entity* ent) { switch (ent->type) { case Entity_Type_Foreign_Function_Header: if (!should_emit_function(ent->function)) break; - + module->foreign_function_count++; emit_foreign_function(module, ent->function); // fallthrough @@ -3535,7 +3590,7 @@ void emit_entity(Entity* ent) { ent->expr->token->pos.line, ent->expr->token->pos.column); } - + bh_imap_put(&module->index_map, (u64) ent->function, module->next_func_idx++); if (ent->function->flags & Ast_Flag_Proc_Is_Null) { -- 2.25.1