From 84b53a855daf61fd14cc13a543c4899b859cc22c Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sat, 20 Jun 2020 15:38:29 -0500 Subject: [PATCH] Added logical comparison operators Still need to add boolean types --- include/onyxlex.h | 2 ++ onyx | Bin 159688 -> 164888 bytes progs/minimal.onyx | 8 ++++++ src/onyxlex.c | 8 ++++-- src/onyxparser.c | 30 ++++++++++++++++++----- src/onyxutils.c | 6 +++++ src/onyxwasm.c | 59 ++++++++++++++++++++++++++------------------- 7 files changed, 80 insertions(+), 33 deletions(-) diff --git a/include/onyxlex.h b/include/onyxlex.h index c9a4632a..7c502c76 100644 --- a/include/onyxlex.h +++ b/include/onyxlex.h @@ -46,6 +46,8 @@ typedef enum OnyxTokenType { TOKEN_TYPE_SYM_GREATER_EQUAL, TOKEN_TYPE_SYM_LESS, TOKEN_TYPE_SYM_LESS_EQUAL, + TOKEN_TYPE_SYM_EQUAL_EQUAL, + TOKEN_TYPE_SYM_NOT_EQUAL, TOKEN_TYPE_SYM_EQUALS, TOKEN_TYPE_SYM_TILDE, TOKEN_TYPE_SYM_BANG, diff --git a/onyx b/onyx index 20ab66431676508fa008c72cdaa70068536b9c33..1c15f82624dea9d2e6bdb843f4bea638577c6a7a 100755 GIT binary patch literal 164888 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 XK~ZpO`$cn2|G@yhK1O`~d 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 i32 { return a + b; } +abs :: proc (val i32) -> i32 { + if val <= 0 { + return -val; + } else { + return val; + }; +} + diff_square :: proc (a i32, b i32) -> i32 { // Typechecked c := a - b; // Mutable diff --git a/src/onyxlex.c b/src/onyxlex.c index 3ed4c58f..6c969bfa 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -41,9 +41,11 @@ static const char* onyx_token_type_names[] = { ";", // "TOKEN_TYPE_SYM_SEMICOLON", ",", // "TOKEN_TYPE_SYM_COMMA", ">", // "TOKEN_TYPE_SYM_GREATER", - ">=", // "TOKEN_TYPE_SYM_GREATER_EQUAL", + ">=", // "TOKEN_TYPE_SYM_GREATER_EQUAL", "<", // "TOKEN_TYPE_SYM_LESS", - "<=", // "TOKEN_TYPE_SYM_LESS_EQUAL", + "<=", // "TOKEN_TYPE_SYM_LESS_EQUAL", + "==", // "TOKEN_TYPE_SYM_EQUALS_EQUALS", + "!=", // "TOKEN_TYPE_SYM_NOT_EQUAL", "=", // "TOKEN_TYPE_SYM_EQUALS", "~", // "TOKEN_TYPE_SYM_TILDE", "!", // "TOKEN_TYPE_SYM_BANG", @@ -152,6 +154,8 @@ OnyxToken* onyx_get_token(OnyxTokenizer* tokenizer) { LITERAL_TOKEN("<-", 0, TOKEN_TYPE_RIGHT_ARROW); LITERAL_TOKEN("<=", 0, TOKEN_TYPE_SYM_LESS_EQUAL); LITERAL_TOKEN(">=", 0, TOKEN_TYPE_SYM_GREATER_EQUAL); + LITERAL_TOKEN("==", 0, TOKEN_TYPE_SYM_EQUAL_EQUAL); + LITERAL_TOKEN("!=", 0, TOKEN_TYPE_SYM_NOT_EQUAL); LITERAL_TOKEN("(", 0, TOKEN_TYPE_OPEN_PAREN); LITERAL_TOKEN(")", 0, TOKEN_TYPE_CLOSE_PAREN); LITERAL_TOKEN("{", 0, TOKEN_TYPE_OPEN_BRACE); diff --git a/src/onyxparser.c b/src/onyxparser.c index 0eaa4db1..bfe4a3c6 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -329,12 +329,23 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { static inline i32 get_precedence(OnyxAstNodeKind kind) { switch (kind) { - case ONYX_AST_NODE_KIND_ADD: return 1; - case ONYX_AST_NODE_KIND_MINUS: return 1; - case ONYX_AST_NODE_KIND_MULTIPLY: return 2; - case ONYX_AST_NODE_KIND_DIVIDE: return 2; - case ONYX_AST_NODE_KIND_MODULUS: return 3; - case ONYX_AST_NODE_KIND_CAST: return 4; + case ONYX_AST_NODE_KIND_EQUAL: return 3; + case ONYX_AST_NODE_KIND_NOT_EQUAL: return 3; + + case ONYX_AST_NODE_KIND_LESS_EQUAL: return 4; + case ONYX_AST_NODE_KIND_LESS: return 4; + case ONYX_AST_NODE_KIND_GREATER_EQUAL: return 4; + case ONYX_AST_NODE_KIND_GREATER: return 4; + + case ONYX_AST_NODE_KIND_ADD: return 5; + case ONYX_AST_NODE_KIND_MINUS: return 5; + + case ONYX_AST_NODE_KIND_MULTIPLY: return 6; + case ONYX_AST_NODE_KIND_DIVIDE: return 6; + + case ONYX_AST_NODE_KIND_MODULUS: return 7; + + case ONYX_AST_NODE_KIND_CAST: return 8; default: return -1; } } @@ -354,6 +365,13 @@ static OnyxAstNode* parse_expression(OnyxParser* parser) { while (1) { bin_op_kind = -1; switch (parser->curr_token->type) { + case TOKEN_TYPE_SYM_EQUAL_EQUAL: bin_op_kind = ONYX_AST_NODE_KIND_EQUAL; break; + case TOKEN_TYPE_SYM_NOT_EQUAL: bin_op_kind = ONYX_AST_NODE_KIND_NOT_EQUAL; break; + case TOKEN_TYPE_SYM_LESS_EQUAL: bin_op_kind = ONYX_AST_NODE_KIND_LESS_EQUAL; break; + case TOKEN_TYPE_SYM_LESS: bin_op_kind = ONYX_AST_NODE_KIND_LESS; break; + case TOKEN_TYPE_SYM_GREATER_EQUAL: bin_op_kind = ONYX_AST_NODE_KIND_GREATER_EQUAL; break; + case TOKEN_TYPE_SYM_GREATER: bin_op_kind = ONYX_AST_NODE_KIND_GREATER; break; + case TOKEN_TYPE_SYM_PLUS: bin_op_kind = ONYX_AST_NODE_KIND_ADD; break; case TOKEN_TYPE_SYM_MINUS: bin_op_kind = ONYX_AST_NODE_KIND_MINUS; break; case TOKEN_TYPE_SYM_STAR: bin_op_kind = ONYX_AST_NODE_KIND_MULTIPLY; break; diff --git a/src/onyxutils.c b/src/onyxutils.c index 5070e721..732be585 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -146,12 +146,18 @@ void onyx_ast_print(OnyxAstNode* node, i32 indent) { case ONYX_AST_NODE_KIND_IF: { OnyxAstNodeIf* if_node = &node->as_if; if (if_node->cond) { + print_indent; + bh_printf("Condition:"); onyx_ast_print(if_node->cond, indent + 1); } if (if_node->true_block) { + print_indent; + bh_printf("True block:"); onyx_ast_print(if_node->true_block, indent + 1); } if (if_node->false_block) { + print_indent; + bh_printf("False block:"); onyx_ast_print(if_node->false_block, indent + 1); } if (if_node->next) { diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 09091992..d5016649 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -305,36 +305,45 @@ static void process_assignment(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* break; \ } +#define BIN_OP_SIGNED_PROCESS(ast_binop, wasm_binop) \ + case ONYX_AST_NODE_KIND_##ast_binop: \ + { \ + WasmInstructionType instr_type; \ + switch (expr->type->kind) { \ + case ONYX_TYPE_INFO_KIND_UINT32: \ + case ONYX_TYPE_INFO_KIND_INT32: \ + if (expr->type->is_unsigned) instr_type = WI_I32_##wasm_binop##_U; \ + else instr_type = WI_I32_##wasm_binop##_S; \ + break; \ + case ONYX_TYPE_INFO_KIND_UINT64: \ + case ONYX_TYPE_INFO_KIND_INT64: \ + if (expr->type->is_unsigned) instr_type = WI_I64_##wasm_binop##_U; \ + else instr_type = WI_I64_##wasm_binop##_S; \ + break; \ + case ONYX_TYPE_INFO_KIND_FLOAT32: instr_type = WI_F32_##wasm_binop; break; \ + case ONYX_TYPE_INFO_KIND_FLOAT64: instr_type = WI_F64_##wasm_binop; break; \ + default: assert(("Invalid type", 0)); \ + } \ + \ + process_expression(mod, func, expr->left); \ + process_expression(mod, func, expr->right); \ + bh_arr_push(func->code, ((WasmInstruction){ instr_type, 0x00 })); \ + break; \ + } + static void process_expression(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* expr) { switch (expr->kind) { BIN_OP_PROCESS(ADD, ADD); BIN_OP_PROCESS(MINUS, SUB); BIN_OP_PROCESS(MULTIPLY, MUL); - - case ONYX_AST_NODE_KIND_DIVIDE: - { - WasmInstructionType instr_type; - switch (expr->type->kind) { - case ONYX_TYPE_INFO_KIND_UINT32: - case ONYX_TYPE_INFO_KIND_INT32: - if (expr->type->is_unsigned) instr_type = WI_I32_DIV_U; - else instr_type = WI_I32_DIV_S; - break; - case ONYX_TYPE_INFO_KIND_UINT64: - case ONYX_TYPE_INFO_KIND_INT64: - if (expr->type->is_unsigned) instr_type = WI_I64_DIV_U; - else instr_type = WI_I64_DIV_S; - break; - case ONYX_TYPE_INFO_KIND_FLOAT32: instr_type = WI_F32_DIV; break; - case ONYX_TYPE_INFO_KIND_FLOAT64: instr_type = WI_F64_DIV; break; - default: assert(("Invalid type", 0)); - } - - process_expression(mod, func, expr->left); - process_expression(mod, func, expr->right); - bh_arr_push(func->code, ((WasmInstruction){ instr_type, 0x00 })); - break; - } + BIN_OP_SIGNED_PROCESS(DIVIDE, DIV); + + BIN_OP_SIGNED_PROCESS(LESS, LT); + BIN_OP_SIGNED_PROCESS(LESS_EQUAL, LE); + BIN_OP_SIGNED_PROCESS(GREATER, GT); + BIN_OP_SIGNED_PROCESS(GREATER_EQUAL, GE); + BIN_OP_PROCESS(EQUAL, EQ); + BIN_OP_PROCESS(NOT_EQUAL, NE); case ONYX_AST_NODE_KIND_MODULUS: { -- 2.25.1