From 220e5789d532a775fc8df4a0c28b083b191c42af Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 30 Aug 2021 07:13:49 -0500 Subject: [PATCH] added overloadable assignment operators --- bin/onyx | Bin 426784 -> 426784 bytes core/container/array.onyx | 2 +- core/io/writer.onyx | 5 +++ modules/ui/ui.onyx | 2 +- src/onyxchecker.c | 85 ++++++++++++++++++++++---------------- src/onyxparser.c | 58 +++++++++++++------------- src/onyxsymres.c | 12 +++--- 7 files changed, 92 insertions(+), 72 deletions(-) diff --git a/bin/onyx b/bin/onyx index a5bf1b64868174f15928ee78f9cfd75223682a24..646b002479b5c76b2a210c46fd03c872c505f6f2 100755 GIT binary patch delta 82660 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 z
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Å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 LsUyeie%=2A^#r1< diff --git a/core/container/array.onyx b/core/container/array.onyx index 88e5180d..2998fcb4 100644 --- a/core/container/array.onyx +++ b/core/container/array.onyx @@ -107,7 +107,7 @@ remove :: (arr: ^[..] $T, elem: T) { while i := 0; i < arr.count - move { defer i += 1; - + if arr.data[i + move] == elem do move += 1; if move != 0 do arr.data[i] = arr.data[i + move]; } diff --git a/core/io/writer.onyx b/core/io/writer.onyx index da730eae..6f956358 100644 --- a/core/io/writer.onyx +++ b/core/io/writer.onyx @@ -118,4 +118,9 @@ write :: #match { write_range, write_format, + + // Catch all for any type. Has a high precedence so you can easily override it. + #precedence 1000 (w: ^Writer, a: $T) { + write_format(w, "{}", a); + } } diff --git a/modules/ui/ui.onyx b/modules/ui/ui.onyx index 4fb159f6..da3cc025 100644 --- a/modules/ui/ui.onyx +++ b/modules/ui/ui.onyx @@ -161,7 +161,7 @@ Rectangle :: struct { Text_Theme :: struct { text_color := gfx.Color4.{ 1, 1, 1 }; - font : i32 = 0; // Default to font index 0 + font := 0; // Default to font index 0 font_size := 1.0f; } diff --git a/src/onyxchecker.c b/src/onyxchecker.c index dd8b2d4a..c7ec01e3 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -735,7 +735,54 @@ static void report_bad_binaryop(AstBinaryOp* binop) { node_get_type_name(binop->right)); } -CheckStatus check_binaryop_assignment(AstBinaryOp* binop) { +static AstCall* binaryop_try_operator_overload(AstBinaryOp* binop) { + if (bh_arr_length(operator_overloads[binop->operation]) == 0) return NULL; + + Arguments args = ((Arguments) { NULL, NULL }); + bh_arr_new(global_heap_allocator, args.values, 2); + bh_arr_push(args.values, binop->left); + bh_arr_push(args.values, binop->right); + + if (binop_is_assignment(binop->operation)) { + args.values[0] = (AstTyped *) make_address_of(context.ast_alloc, binop->left); + + u32 current_checking_level_store = current_checking_level; + CheckStatus cs = check_address_of((AstAddressOf *) args.values[0]); + current_checking_level = current_checking_level_store; + + if (cs == Check_Yield_Macro) return (AstCall *) &node_that_signals_a_yield; + if (cs == Check_Error) { + return NULL; + } + } + + b32 should_yield = 0; + AstTyped* overload = find_matching_overload_by_arguments(operator_overloads[binop->operation], &args, &should_yield); + if (should_yield) { + bh_arr_free(args.values); + return (AstCall *) &node_that_signals_a_yield; + } + + if (overload == NULL) { + bh_arr_free(args.values); + return NULL; + } + + AstCall* implicit_call = onyx_ast_node_new(context.ast_alloc, sizeof(AstCall), Ast_Kind_Call); + implicit_call->token = binop->token; + implicit_call->callee = overload; + implicit_call->va_kind = VA_Kind_Not_VA; + + bh_arr_each(AstTyped *, arg, args.values) + *arg = (AstTyped *) make_argument(context.ast_alloc, *arg); + + implicit_call->args = args; + return implicit_call; +} + + +CheckStatus check_binaryop_assignment(AstBinaryOp** pbinop) { + AstBinaryOp* binop = *pbinop; if (current_checking_level == EXPRESSION_LEVEL) ERROR(binop->token->pos, "Assignment not valid in expression."); @@ -947,38 +994,6 @@ CheckStatus check_binaryop_bool(AstBinaryOp** pbinop) { return Check_Success; } -static AstCall* binaryop_try_operator_overload(AstBinaryOp* binop) { - if (bh_arr_length(operator_overloads[binop->operation]) == 0) return NULL; - - Arguments args = ((Arguments) { NULL, NULL }); - bh_arr_new(global_heap_allocator, args.values, 2); - bh_arr_push(args.values, binop->left); - bh_arr_push(args.values, binop->right); - - b32 should_yield = 0; - AstTyped* overload = find_matching_overload_by_arguments(operator_overloads[binop->operation], &args, &should_yield); - if (should_yield) { - bh_arr_free(args.values); - return (AstCall *) &node_that_signals_a_yield; - } - - if (overload == NULL) { - bh_arr_free(args.values); - return NULL; - } - - AstCall* implicit_call = onyx_ast_node_new(context.ast_alloc, sizeof(AstCall), Ast_Kind_Call); - implicit_call->token = binop->token; - implicit_call->callee = overload; - implicit_call->va_kind = VA_Kind_Not_VA; - - bh_arr_each(AstTyped *, arg, args.values) - *arg = (AstTyped *) make_argument(context.ast_alloc, *arg); - - implicit_call->args = args; - return implicit_call; -} - CheckStatus check_binaryop(AstBinaryOp** pbinop) { AstBinaryOp* binop = *pbinop; @@ -993,8 +1008,6 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop) { binop->flags |= Ast_Flag_Comptime; } - if (binop_is_assignment(binop->operation)) return check_binaryop_assignment(binop); - if (expression_types_must_be_known) { if (binop->left->type == NULL || binop->right->type == NULL) { ERROR(binop->token->pos, "Internal compiler error: one of the operands types is unknown here."); @@ -1029,6 +1042,8 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop) { } } + if (binop_is_assignment(binop->operation)) return check_binaryop_assignment(pbinop); + // NOTE: Comparision operators and boolean operators are handled separately. if (binop_is_compare(binop->operation)) return check_binaryop_compare(pbinop); diff --git a/src/onyxparser.c b/src/onyxparser.c index 74126e77..58c34b40 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -251,7 +251,7 @@ static b32 parse_possible_struct_literal(OnyxParser* parser, AstTyped* left, Ast static b32 parse_possible_array_literal(OnyxParser* parser, AstTyped* left, AstTyped** ret) { if (!next_tokens_are(parser, 2, '.', '[')) return 0; - + AstArrayLiteral* al = make_node(AstArrayLiteral, Ast_Kind_Array_Literal); al->token = parser->curr; al->atnode = left; @@ -263,7 +263,7 @@ static b32 parse_possible_array_literal(OnyxParser* parser, AstTyped* left, AstT expect_token(parser, '['); while (!consume_token_if_next(parser, ']')) { if (parser->hit_unexpected_token) return 1; - + AstTyped* value = parse_expression(parser, 0); bh_arr_push(al->values, value); @@ -451,9 +451,9 @@ static AstTyped* parse_factor(OnyxParser* parser) { str_node->token = expect_token(parser, Token_Type_Literal_String); str_node->addr = 0; str_node->flags |= Ast_Flag_Comptime; - + ENTITY_SUBMIT(str_node); - + retval = (AstTyped *) str_node; break; } @@ -523,9 +523,9 @@ static AstTyped* parse_factor(OnyxParser* parser) { fc->token = parser->prev - 1; fc->filename_token = expect_token(parser, Token_Type_Literal_String); fc->type = type_make_slice(parser->allocator, &basic_types[Basic_Kind_U8]); - + ENTITY_SUBMIT(fc); - + retval = (AstTyped *) fc; break; } @@ -541,7 +541,7 @@ static AstTyped* parse_factor(OnyxParser* parser) { AstStrLit* filename = make_node(AstStrLit, Ast_Kind_StrLit); filename->token = str_token; filename->addr = 0; - + ENTITY_SUBMIT(filename); retval = (AstTyped *) filename; break; @@ -692,7 +692,7 @@ static AstTyped* parse_factor(OnyxParser* parser) { case '.': { if (parse_possible_struct_literal(parser, retval, &retval)) return retval; if (parse_possible_array_literal(parser, retval, &retval)) return retval; - + consume_token(parser); AstFieldAccess* field = make_node(AstFieldAccess, Ast_Kind_Field_Access); field->token = expect_token(parser, Token_Type_Symbol); @@ -943,7 +943,7 @@ static AstTyped* parse_expression(OnyxParser* parser, b32 assignment_allowed) { right = parse_factor(parser); bin_op->right = right; } - + expression_done: bh_arr_free(tree_stack); return root; @@ -1869,7 +1869,7 @@ static AstStructType* parse_struct(OnyxParser* parser) { while (!consume_token_if_next(parser, '}')) { if (parser->hit_unexpected_token) return s_node; - + member_is_used = consume_token_if_next(parser, Token_Type_Keyword_Use); if (next_tokens_are(parser, 3, Token_Type_Symbol, ':', ':')) { @@ -2069,7 +2069,7 @@ static AstOverloadedFunction* parse_overloaded_function(OnyxParser* parser, Onyx if (parser->curr->type != '}') expect_token(parser, ','); } - + ENTITY_SUBMIT(ofunc); return ofunc; } @@ -2132,7 +2132,7 @@ static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* tok pp->token = func_def->token; pp->poly_params = polymorphic_vars; pp->base_func = func_def; - + return (AstFunction *) pp; } else { @@ -2522,7 +2522,7 @@ static void parse_top_level_statement(OnyxParser* parser) { else if (parse_possible_directive(parser, "private_file")) private_kind = Ast_Flag_Private_File; AstBinding* binding = NULL; - + switch ((u16) parser->curr->type) { case Token_Type_Keyword_Use: { AstNode* use_node = parse_use_stmt(parser); @@ -2545,19 +2545,19 @@ static void parse_top_level_statement(OnyxParser* parser) { goto submit_binding_to_entities; } - + AstMemRes* memres = make_node(AstMemRes, Ast_Kind_Memres); memres->token = symbol; if (parser->curr->type != '=') memres->type_node = parse_type(parser); - + if (consume_token_if_next(parser, '=')) memres->initial_value = parse_expression(parser, 1); - - + + ENTITY_SUBMIT(memres); - + binding = make_node(AstBinding, Ast_Kind_Binding); binding->token = symbol; binding->flags |= private_kind; @@ -2585,28 +2585,28 @@ static void parse_top_level_statement(OnyxParser* parser) { include->name = bh_strdup(parser->allocator, str_token->text); token_toggle_end(str_token); } - + ENTITY_SUBMIT(include); return; } else if (parse_possible_directive(parser, "load_path")) { AstInclude* include = make_node(AstInclude, Ast_Kind_Load_Path); include->token = dir_token; - + OnyxToken* str_token = expect_token(parser, Token_Type_Literal_String); if (str_token != NULL) { token_toggle_end(str_token); include->name = bh_strdup(parser->allocator, str_token->text); token_toggle_end(str_token); } - + ENTITY_SUBMIT(include); return; } else if (parse_possible_directive(parser, "error")) { AstDirectiveError *error = make_node(AstDirectiveError, Ast_Kind_Directive_Error); error->token = dir_token; - error->error_msg = expect_token(parser, Token_Type_Literal_String); + error->error_msg = expect_token(parser, Token_Type_Literal_String); ENTITY_SUBMIT(error); return; @@ -2618,7 +2618,7 @@ static void parse_top_level_statement(OnyxParser* parser) { BinaryOp op = binary_op_from_token_type(parser->curr->type); consume_token(parser); if (op == Binary_Op_Subscript) expect_token(parser, ']'); // #operator [] ... needs to consume the other ']' - + if (op == Binary_Op_Count) { onyx_report_error(parser->curr->pos, "Invalid binary operator."); } else { @@ -2686,7 +2686,7 @@ submit_binding_to_entities: target_scope = parser->package->private_scope; if (binding->flags & Ast_Flag_Private_File) target_scope = parser->file_scope; - + ENTITY_SUBMIT_IN_SCOPE(binding, target_scope); } } @@ -2703,7 +2703,7 @@ static AstPackage* parse_package_expression(OnyxParser* parser) { OnyxToken* symbol = expect_token(parser, Token_Type_Symbol); bh_arr_push(package_node->path, symbol); - + if (consume_token_if_next(parser, '.')); else break; } @@ -2713,7 +2713,7 @@ static AstPackage* parse_package_expression(OnyxParser* parser) { total_package_name_length += (*token)->length + 1; } - char* package_name = bh_alloc_array(context.ast_alloc, char, total_package_name_length); + char* package_name = bh_alloc_array(context.ast_alloc, char, total_package_name_length); *package_name = '\0'; bh_arr_each(OnyxToken *, token, package_node->path) { @@ -2738,7 +2738,7 @@ static Package* parse_file_package(OnyxParser* parser) { } AstPackage* package_node = parse_package_expression(parser); - + char aggregate_name[2048]; aggregate_name[0] = '\0'; @@ -2749,7 +2749,7 @@ static Package* parse_file_package(OnyxParser* parser) { strncat(aggregate_name, (*symbol)->text, 2047); Package* newpackage = package_lookup_or_create(aggregate_name, context.global_scope, parser->allocator); - + AstPackage* pnode = make_node(AstPackage, Ast_Kind_Package); pnode->token = *symbol; pnode->package = newpackage; @@ -2767,7 +2767,7 @@ static Package* parse_file_package(OnyxParser* parser) { } package_node->package = prevpackage; - + return package_node->package; } diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 18f6ef5e..d853a4d3 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -68,7 +68,7 @@ static void scope_leave() { static SymresStatus symres_symbol(AstNode** symbol_node) { OnyxToken* token = (*symbol_node)->token; - AstNode* res = symbol_resolve(curr_scope, token); + AstNode* res = symbol_resolve(curr_scope, token); if (!res) { // :SymresStall if (report_unresolved_symbols) { @@ -906,7 +906,7 @@ SymresStatus symres_function(AstFunction* func) { // // Foo :: struct (T: type_expr) { // use t : T; - // + // // something_else := 5 + 6 * 8; // } // @@ -1078,7 +1078,7 @@ static SymresStatus symres_polyproc(AstPolyProc* pp) { // because I think the following should be possible: // // baked_proc :: (x: $T, $f: (T) -> T) -> T ... - // + // // The type of 'f' depends on resolving the value for the polyvar 'T'. SYMRES(type, ¶m->type_expr); } @@ -1127,10 +1127,10 @@ static SymresStatus symres_process_directive(AstNode* directive) { return Symres_Error; } - if (binop_is_assignment(operator->operator)) { + /*if (binop_is_assignment(operator->operator)) { onyx_report_error(overload->token->pos, "'%s' is not currently overloadable.", binaryop_string[operator->operator]); return Symres_Error; - } + }*/ add_overload_option(&operator_overloads[operator->operator], 0, operator->overload); break; @@ -1207,7 +1207,7 @@ void symres_entity(Entity* ent) { } case Entity_Type_Static_If: ss = symres_static_if(ent->static_if); break; - + case Entity_Type_Foreign_Function_Header: case Entity_Type_Function_Header: ss = symres_function_header(ent->function); break; case Entity_Type_Function: ss = symres_function(ent->function); break; -- 2.25.1