From 9a2dc98aefe03869c3f9a5e61dde60456763830a Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 10 Aug 2020 15:43:29 -0500 Subject: [PATCH] added binary op reduction to comparison and boolean operators --- onyx | Bin 386712 -> 386744 bytes src/onyxchecker.c | 11 ++++++++++- src/onyxutils.c | 3 --- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/onyx b/onyx index 0481c589a8dd8e84b14463b082c3c9af6d809eb6..1234b0255ab602b1de965ce85577d7e1c6429f09 100755 GIT binary patch delta 24173 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 delta 23981 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 q))L-?T0JtA<type = &basic_types[Basic_Kind_Bool]; + if (binop->flags & Ast_Flag_Comptime) { + // NOTE: Not a binary op + *pbinop = (AstBinaryOp *) ast_reduce(semstate.node_allocator, (AstTyped *) binop); + } + return 0; } @@ -501,6 +506,11 @@ CHECK(binaryop_bool, AstBinaryOp** pbinop) { } binop->type = &basic_types[Basic_Kind_Bool]; + + if (binop->flags & Ast_Flag_Comptime) { + // NOTE: Not a binary op + *pbinop = (AstBinaryOp *) ast_reduce(semstate.node_allocator, (AstTyped *) binop); + } return 0; } @@ -621,7 +631,6 @@ CHECK(binaryop, AstBinaryOp** pbinop, b32 assignment_is_ok) { // NOTE: Not a binary op *pbinop = (AstBinaryOp *) ast_reduce(semstate.node_allocator, (AstTyped *) binop); } - return 0; } diff --git a/src/onyxutils.c b/src/onyxutils.c index 72dde5fd..9bb20b38 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -206,9 +206,6 @@ AstNode* symbol_resolve(Scope* start_scope, OnyxToken* tkn) { } \ break; - -AstTyped* ast_reduce(bh_allocator a, AstTyped* node); - AstNumLit* ast_reduce_binop(bh_allocator a, AstBinaryOp* node) { AstNumLit* left = (AstNumLit *) ast_reduce(a, node->left); AstNumLit* right = (AstNumLit *) ast_reduce(a, node->right); -- 2.25.1