From 9322338a692b399b986edba8cec48dc9b4da7d79 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 10 Aug 2020 09:23:33 -0500 Subject: [PATCH] small improvement for binary operator checking --- docs/plan | 2 +- include/onyxtypes.h | 1 + onyx | Bin 140288 -> 140328 bytes progs/alloc_test.onyx | 4 ++-- progs/stack_based.onyx | 4 +++- src/onyxchecker.c | 14 ++++++++++++++ src/onyxtypes.c | 6 ++++++ 7 files changed, 27 insertions(+), 4 deletions(-) diff --git a/docs/plan b/docs/plan index ca7bcea6..6ef779a7 100644 --- a/docs/plan +++ b/docs/plan @@ -156,7 +156,7 @@ HOW: [X] Char literals - [ ] Properly checking binary operators + [X] Properly checking binary operators - Shouldn't be able to add two structs/arrays together [ ] Array literals diff --git a/include/onyxtypes.h b/include/onyxtypes.h index f997d897..fb2fa7e9 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -124,6 +124,7 @@ b32 type_is_array(Type* tyoe); b32 type_is_struct(Type* type); b32 type_is_bool(Type* type); b32 type_is_integer(Type* type); +b32 type_is_numeric(Type* type); b32 type_results_in_void(Type* type); #endif // #ifndef ONYX_TYPES diff --git a/onyx b/onyx index 5c7d161715bb4e7c70c41744143e35291c75aa90..cc695e09207abd7690ae61278ce3b30081b33bfc 100755 GIT binary patch delta 23235 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 i32 { for i: 0, 8 do arr[i] = cast(i64) (i * i); - walker := cast(^i64) arr; + walker := arr; for _: 0, 8 { - print_u64(cast(i64) *walker); + print_u64(*walker); walker += 1; } diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index 75a8dd43..b8f409ec 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -53,7 +53,9 @@ start :: proc #export { print_bin(42l); print_hex(42l); - print_hex(cast(u64) #char "a"); + for i: #char "a", #char "f" { + print_hex(cast(u64) i); + } a := 12345; diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 6307ed75..8be74b0a 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -504,6 +504,20 @@ CHECK(binaryop, AstBinaryOp* binop, b32 assignment_is_ok) { || binop->operation == Binary_Op_Bool_Or) return check_binaryop_bool(binop); + if (!type_is_numeric(binop->left->type)) { + onyx_message_add(Msg_Type_Literal, + binop->token->pos, + "expected numeric type for left side of binary operator"); + return 1; + } + + if (!type_is_numeric(binop->right->type)) { + onyx_message_add(Msg_Type_Literal, + binop->token->pos, + "expected numeric type for right side of binary operator"); + return 1; + } + if (type_is_pointer(binop->right->type)) { onyx_message_add(Msg_Type_Literal, binop->token->pos, diff --git a/src/onyxtypes.c b/src/onyxtypes.c index c6891d4f..df03d677 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -477,6 +477,12 @@ b32 type_is_integer(Type* type) { return type->Basic.kind >= Basic_Kind_I8 && type->Basic.kind <= Basic_Kind_U64; } +b32 type_is_numeric(Type* type) { + if (type->kind != Type_Kind_Basic) return 0; + + return type->Basic.kind >= Basic_Kind_I8 && type->Basic.kind <= Basic_Kind_F64; +} + b32 type_results_in_void(Type* type) { return (type == NULL) || (type->kind == Type_Kind_Basic && type->Basic.kind == Basic_Kind_Void) -- 2.25.1