From c412d9b19920734ccd623ca404b7a089e04f5e24 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sat, 9 Jan 2021 19:06:22 -0600 Subject: [PATCH] added basics of operator overloading --- bin/onyx | Bin 317632 -> 317776 bytes include/onyxastnodes.h | 6 ++ onyx.exe | Bin 399872 -> 401920 bytes src/onyxbuiltins.c | 5 ++ src/onyxchecker.c | 108 ++++++++++++++++++++-------- src/onyxparser.c | 160 +++++++++++++++++++++++------------------ src/onyxsymres.c | 8 +++ 7 files changed, 186 insertions(+), 101 deletions(-) diff --git a/bin/onyx b/bin/onyx index c3d9cd57d081302a2c6a7df8cfbb3a2718231e75..ea4c0c52959aed9255588b349bc2f3cfae051834 100755 GIT binary patch delta 95089 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 ZBJImC{B-tTd3@v(?<;v1k@f-a@L#fcZ(#rc diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index aadbb47a..f87ccdf7 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -722,6 +722,10 @@ struct AstFunction { // then resolved to an overloaded function. AstNode *overloaded_function; + // NOTE: set to -1 if the function is not an operator overload; + // set to a BinaryOp value if it is. + BinaryOp operator_overload; + OnyxToken* name; union { @@ -940,6 +944,8 @@ typedef struct IntrinsicMap { extern bh_table(OnyxIntrinsic) intrinsic_table; +extern bh_arr(AstTyped *) operator_overloads[Binary_Op_Count]; + void initialize_builtins(bh_allocator a, ProgramInfo* prog); diff --git a/onyx.exe b/onyx.exe index 249cd882ce72a784bd93ef7f5b08af307496b2c3..515eb88918fbc3c139c4adc6bb9945faad9c717d 100644 GIT binary patch delta 58901 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 delta 57273 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 z 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

  • _(grXi)<2eF}kDT2N~dWNJWMST1BSoWI9O!b;F0oYmati%1h3+ z)h)X-KS#1n{?L}gN?7ad$=oZ|m%Gc^mfI?}qE@eE>w>Q8buHRc?V#OkC++c$*Qs>k z&Y&auES6vAP8i6dEX#_l%DN0?Q$})4#&TVD<%UdTPxj?N3YAqkHLh$msT?(>Ts5OS zRZzZKRDmk0imIx*3TvH-%>KOFm}z*8Lc?!(EWp=`I?zR3))f|0*P(9eNU!Obg?06Y XPIOQA^?*fY+qF?UGrM}%yoT@({0Aeu diff --git a/src/onyxbuiltins.c b/src/onyxbuiltins.c index e0960975..60bb9726 100644 --- a/src/onyxbuiltins.c +++ b/src/onyxbuiltins.c @@ -322,6 +322,8 @@ static IntrinsicMap builtin_intrinsics[] = { { NULL, ONYX_INTRINSIC_UNDEFINED }, }; +bh_arr(AstTyped *) operator_overloads[Binary_Op_Count] = { 0 }; + void initialize_builtins(bh_allocator a, ProgramInfo* prog) { // HACK builtin_package_token.text = bh_strdup(global_heap_allocator, builtin_package_token.text); @@ -369,6 +371,9 @@ void initialize_builtins(bh_allocator a, ProgramInfo* prog) { return; } + fori (i, 0, Binary_Op_Count) { + bh_arr_new(global_heap_allocator, operator_overloads[i], 4); + } bh_table_init(global_heap_allocator, intrinsic_table, 128); IntrinsicMap* intrinsic = &builtin_intrinsics[0]; diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 77c8ae8f..47ea5c7f 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -293,25 +293,29 @@ CheckStatus check_switch(AstSwitch* switchnode) { return 0; } - -static AstTyped* match_overloaded_function(AstCall* call, AstOverloadedFunction* ofunc) { - bh_arr_each(AstTyped *, node, ofunc->overloads) { +static AstTyped* match_overloaded_function(bh_arr(AstTyped *) arg_arr, bh_arr(AstTyped *) overloads) { + bh_arr_each(AstTyped *, node, overloads) { AstFunction* overload = (AstFunction *) *node; fill_in_type((AstTyped *) overload); TypeFunction* ol_type = &overload->type->Function; - if (call->arg_count < ol_type->needed_param_count) continue; + if (bh_arr_length(arg_arr) < (i32) ol_type->needed_param_count) continue; Type** param_type = ol_type->params; - bh_arr_each(AstArgument*, arg, call->arg_arr) { - fill_in_type((AstTyped *) *arg); - if ((*param_type)->kind == Type_Kind_VarArgs) { - if (!type_check_or_auto_cast(&(*arg)->value, (*param_type)->VarArgs.ptr_to_data->Pointer.elem)) - goto no_match; - } - else if (!type_check_or_auto_cast(&(*arg)->value, *param_type)) goto no_match; + bh_arr_each(AstTyped*, arg, arg_arr) { + fill_in_type(*arg); + + Type* type_to_match = *param_type; + if ((*param_type)->kind == Type_Kind_VarArgs) + type_to_match = (*param_type)->VarArgs.ptr_to_data->Pointer.elem; + + AstTyped** value = arg; + if ((*arg)->kind == Ast_Kind_Argument) + value = &((AstArgument *) *arg)->value; + + if (!type_check_or_auto_cast(value, type_to_match)) goto no_match; param_type++; } @@ -321,20 +325,6 @@ static AstTyped* match_overloaded_function(AstCall* call, AstOverloadedFunction* no_match: continue; } - - char* arg_str = bh_alloc(global_scratch_allocator, 1024); - arg_str[0] = '\0'; - - bh_arr_each(AstArgument *, arg, call->arg_arr) { - strncat(arg_str, type_get_name((*arg)->value->type), 1023); - - if (arg != &bh_arr_last(call->arg_arr)) - strncat(arg_str, ", ", 1023); - } - - onyx_report_error(call->token->pos, "unable to match overloaded function with provided argument types: (%s)", arg_str); - - bh_free(global_scratch_allocator, arg_str); return NULL; } @@ -376,10 +366,28 @@ CheckStatus check_call(AstCall* call) { } if (callee->kind == Ast_Kind_Overloaded_Function) { - call->callee = match_overloaded_function(call, (AstOverloadedFunction *) callee); - callee = (AstFunction *) call->callee; + call->callee = match_overloaded_function( + (bh_arr(AstTyped *)) call->arg_arr, + ((AstOverloadedFunction *) callee)->overloads); + + if (call->callee == NULL) { + char* arg_str = bh_alloc(global_scratch_allocator, 1024); + arg_str[0] = '\0'; + + bh_arr_each(AstArgument *, arg, call->arg_arr) { + strncat(arg_str, type_get_name((*arg)->value->type), 1023); + + if (arg != &bh_arr_last(call->arg_arr)) + strncat(arg_str, ", ", 1023); + } + + onyx_report_error(call->token->pos, "unable to match overloaded function with provided argument types: (%s)", arg_str); + + bh_free(global_scratch_allocator, arg_str); + return Check_Error; + } - if (callee == NULL) return Check_Error; + callee = (AstFunction *) call->callee; } if (callee->kind == Ast_Kind_Polymorphic_Proc) { @@ -744,6 +752,45 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop, b32 assignment_is_ok) { return Check_Error; } + if (binop->left->type->kind != Type_Kind_Basic || binop->right->type->kind != Type_Kind_Basic) { + bh_arr(AstTyped *) args = NULL; + bh_arr_new(global_heap_allocator, args, 2); + bh_arr_push(args, binop->left); + bh_arr_push(args, binop->right); + + AstTyped* overload = match_overloaded_function(args, operator_overloads[binop->operation]); + if (overload == NULL) { + bh_arr_free(args); + goto not_overloaded; + } + + AstCall* implicit_call = onyx_ast_node_new(semstate.node_allocator, sizeof(AstCall), Ast_Kind_Call); + implicit_call->token = binop->token; + implicit_call->arg_count = 2; + implicit_call->callee = overload; + implicit_call->va_kind = VA_Kind_Not_VA; + + bh_arr_each(AstTyped *, arg, args) { + AstArgument* new_arg = onyx_ast_node_new(semstate.node_allocator, sizeof(AstArgument), Ast_Kind_Argument); + new_arg->token = (*arg)->token; + new_arg->type = (*arg)->type; + new_arg->value = *arg; + new_arg->va_kind = VA_Kind_Not_VA; + + *arg = (AstTyped *) new_arg; + } + + implicit_call->arg_arr = (AstArgument **) args; + + CHECK(call, implicit_call); + + // NOTE: Not a binary op + *pbinop = (AstBinaryOp *) implicit_call; + return Check_Success; + } + +not_overloaded: + if (!type_is_numeric(binop->left->type) && !type_is_pointer(binop->left->type)) { onyx_report_error(binop->token->pos, "Expected numeric or pointer type for left side of binary operator, got '%s'.", @@ -883,8 +930,9 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop, b32 assignment_is_ok) { } if ((binop_allowed[binop->operation] & effective_flags) == 0) { - onyx_report_error(binop->token->pos, "Binary operator not allowed for arguments of type '%s'.", - type_get_name(binop->type)); + onyx_report_error(binop->token->pos, "Binary operator not allowed for arguments of type '%s' and '%s'.", + type_get_name(binop->left->type), + type_get_name(binop->right->type)); return Check_Error; } diff --git a/src/onyxparser.c b/src/onyxparser.c index 9ac5151f..1bfe4f01 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -695,6 +695,50 @@ static inline i32 get_precedence(BinaryOp kind) { } } +static BinaryOp binary_op_from_token_type(TokenType t) { + switch (t) { + case Token_Type_Equal_Equal: return Binary_Op_Equal; + case Token_Type_Not_Equal: return Binary_Op_Not_Equal; + case Token_Type_Less_Equal: return Binary_Op_Less_Equal; + case Token_Type_Greater_Equal: return Binary_Op_Greater_Equal; + case '<': return Binary_Op_Less; + case '>': return Binary_Op_Greater; + + case '+': return Binary_Op_Add; + case '-': return Binary_Op_Minus; + case '*': return Binary_Op_Multiply; + case '/': return Binary_Op_Divide; + case '%': return Binary_Op_Modulus; + + case '&': return Binary_Op_And; + case '|': return Binary_Op_Or; + case '^': return Binary_Op_Xor; + case Token_Type_Shift_Left: return Binary_Op_Shl; + case Token_Type_Shift_Right: return Binary_Op_Shr; + case Token_Type_Shift_Arith_Right: return Binary_Op_Sar; + + case Token_Type_And_And: return Binary_Op_Bool_And; + case Token_Type_Or_Or: return Binary_Op_Bool_Or; + + case '=': return Binary_Op_Assign; + case Token_Type_Plus_Equal: return Binary_Op_Assign_Add; + case Token_Type_Minus_Equal: return Binary_Op_Assign_Minus; + case Token_Type_Star_Equal: return Binary_Op_Assign_Multiply; + case Token_Type_Fslash_Equal: return Binary_Op_Assign_Divide; + case Token_Type_Percent_Equal: return Binary_Op_Assign_Modulus; + case Token_Type_And_Equal: return Binary_Op_Assign_And; + case Token_Type_Or_Equal: return Binary_Op_Assign_Or; + case Token_Type_Xor_Equal: return Binary_Op_Assign_Xor; + case Token_Type_Shl_Equal: return Binary_Op_Assign_Shl; + case Token_Type_Shr_Equal: return Binary_Op_Assign_Shr; + case Token_Type_Sar_Equal: return Binary_Op_Assign_Sar; + + case Token_Type_Pipe: return Binary_Op_Pipe; + case Token_Type_Dot_Dot: return Binary_Op_Range; + default: return Binary_Op_Count; + } +} + // + // - // * @@ -729,85 +773,43 @@ static AstTyped* parse_expression(OnyxParser* parser) { while (1) { if (parser->hit_unexpected_token) return root; - bin_op_kind = Binary_Op_Count; - switch ((u16) parser->curr->type) { - case Token_Type_Equal_Equal: bin_op_kind = Binary_Op_Equal; break; - case Token_Type_Not_Equal: bin_op_kind = Binary_Op_Not_Equal; break; - case Token_Type_Less_Equal: bin_op_kind = Binary_Op_Less_Equal; break; - case Token_Type_Greater_Equal: bin_op_kind = Binary_Op_Greater_Equal; break; - case '<': bin_op_kind = Binary_Op_Less; break; - case '>': bin_op_kind = Binary_Op_Greater; break; - - case '+': bin_op_kind = Binary_Op_Add; break; - case '-': bin_op_kind = Binary_Op_Minus; break; - case '*': bin_op_kind = Binary_Op_Multiply; break; - case '/': bin_op_kind = Binary_Op_Divide; break; - case '%': bin_op_kind = Binary_Op_Modulus; break; - - case '&': bin_op_kind = Binary_Op_And; break; - case '|': bin_op_kind = Binary_Op_Or; break; - case '^': bin_op_kind = Binary_Op_Xor; break; - case Token_Type_Shift_Left: bin_op_kind = Binary_Op_Shl; break; - case Token_Type_Shift_Right: bin_op_kind = Binary_Op_Shr; break; - case Token_Type_Shift_Arith_Right: bin_op_kind = Binary_Op_Sar; break; - - case Token_Type_And_And: bin_op_kind = Binary_Op_Bool_And; break; - case Token_Type_Or_Or: bin_op_kind = Binary_Op_Bool_Or; break; - - case '=': bin_op_kind = Binary_Op_Assign; break; - case Token_Type_Plus_Equal: bin_op_kind = Binary_Op_Assign_Add; break; - case Token_Type_Minus_Equal: bin_op_kind = Binary_Op_Assign_Minus; break; - case Token_Type_Star_Equal: bin_op_kind = Binary_Op_Assign_Multiply; break; - case Token_Type_Fslash_Equal: bin_op_kind = Binary_Op_Assign_Divide; break; - case Token_Type_Percent_Equal: bin_op_kind = Binary_Op_Assign_Modulus; break; - case Token_Type_And_Equal: bin_op_kind = Binary_Op_Assign_And; break; - case Token_Type_Or_Equal: bin_op_kind = Binary_Op_Assign_Or; break; - case Token_Type_Xor_Equal: bin_op_kind = Binary_Op_Assign_Xor; break; - case Token_Type_Shl_Equal: bin_op_kind = Binary_Op_Assign_Shl; break; - case Token_Type_Shr_Equal: bin_op_kind = Binary_Op_Assign_Shr; break; - case Token_Type_Sar_Equal: bin_op_kind = Binary_Op_Assign_Sar; break; - - case Token_Type_Pipe: bin_op_kind = Binary_Op_Pipe; break; - case Token_Type_Dot_Dot: bin_op_kind = Binary_Op_Range; break; - default: goto expression_done; - } - - if (bin_op_kind != Binary_Op_Count) { - bin_op_tok = parser->curr; - consume_token(parser); - - AstBinaryOp* bin_op; - if (bin_op_kind == Binary_Op_Pipe) { - bin_op = make_node(AstBinaryOp, Ast_Kind_Pipe); + bin_op_kind = binary_op_from_token_type(parser->curr->type); + if (bin_op_kind == Binary_Op_Count) goto expression_done; - } else if (bin_op_kind == Binary_Op_Range) { - bin_op = (AstBinaryOp *) make_node(AstRangeLiteral, Ast_Kind_Range_Literal); + bin_op_tok = parser->curr; + consume_token(parser); - } else { - bin_op = make_node(AstBinaryOp, Ast_Kind_Binary_Op); - } + AstBinaryOp* bin_op; + if (bin_op_kind == Binary_Op_Pipe) { + bin_op = make_node(AstBinaryOp, Ast_Kind_Pipe); - bin_op->token = bin_op_tok; - bin_op->operation = bin_op_kind; + } else if (bin_op_kind == Binary_Op_Range) { + bin_op = (AstBinaryOp *) make_node(AstRangeLiteral, Ast_Kind_Range_Literal); - while ( !bh_arr_is_empty(tree_stack) && - get_precedence(bh_arr_last(tree_stack)->operation) >= get_precedence(bin_op_kind)) - bh_arr_pop(tree_stack); + } else { + bin_op = make_node(AstBinaryOp, Ast_Kind_Binary_Op); + } - if (bh_arr_is_empty(tree_stack)) { - // NOTE: new is now the root node - bin_op->left = root; - root = (AstTyped *) bin_op; - } else { - bin_op->left = bh_arr_last(tree_stack)->right; - bh_arr_last(tree_stack)->right = (AstTyped *) bin_op; - } + bin_op->token = bin_op_tok; + bin_op->operation = bin_op_kind; - bh_arr_push(tree_stack, bin_op); + while ( !bh_arr_is_empty(tree_stack) && + get_precedence(bh_arr_last(tree_stack)->operation) >= get_precedence(bin_op_kind)) + bh_arr_pop(tree_stack); - right = parse_factor(parser); - bin_op->right = right; + if (bh_arr_is_empty(tree_stack)) { + // NOTE: new is now the root node + bin_op->left = root; + root = (AstTyped *) bin_op; + } else { + bin_op->left = bh_arr_last(tree_stack)->right; + bh_arr_last(tree_stack)->right = (AstTyped *) bin_op; } + + bh_arr_push(tree_stack, bin_op); + + right = parse_factor(parser); + bin_op->right = right; } bh_arr_free(tree_stack); @@ -1838,6 +1840,7 @@ static AstFunction* parse_function_definition(OnyxParser* parser) { AstFunction* func_def = make_node(AstFunction, Ast_Kind_Function); func_def->token = proc_token; + func_def->operator_overload = -1; bh_arr_new(global_heap_allocator, func_def->allocate_exprs, 4); bh_arr_new(global_heap_allocator, func_def->params, 4); @@ -1864,10 +1867,25 @@ static AstFunction* parse_function_definition(OnyxParser* parser) { expect_token(parser, Token_Type_Symbol); } else { + if (bh_arr_length(parser->block_stack) != 0) { + onyx_report_error(parser->curr->pos, "#add_overload cannot be placed on procedures inside of other scopes"); + } + func_def->overloaded_function = (AstNode *) parse_expression(parser); } } + else if (parse_possible_directive(parser, "operator")) { + BinaryOp op = binary_op_from_token_type(parser->curr->type); + consume_token(parser); + + if (op == Binary_Op_Count) { + onyx_report_error(parser->curr->pos, "Invalid binary operator."); + } else { + func_def->operator_overload = op; + } + } + else if (parse_possible_directive(parser, "intrinsic")) { func_def->flags |= Ast_Flag_Intrinsic; diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 3f9feb93..10ab50b2 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -657,6 +657,14 @@ void symres_function_header(AstFunction* func) { } } + if (func->operator_overload != (BinaryOp) -1) { + if (bh_arr_length(func->params) != 2) { + onyx_report_error(func->token->pos, "Expected 2 exactly arguments for binary operator overload."); + } + + bh_arr_push(operator_overloads[func->operator_overload], (AstTyped *) func); + } + func->return_type = symres_type(func->return_type); if (!node_is_type((AstNode *) func->return_type)) { onyx_report_error(func->token->pos, "Return type is not a type."); -- 2.25.1