From b00f7a508930a5377eb2b1b25deee255cfeeda70 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 26 Jun 2020 10:26:25 -0500 Subject: [PATCH] code cleanup; grouped all binary ops together --- .vimspector.json | 2 +- Makefile | 6 +- docs/plan | 2 +- include/onyxlex.h | 5 +- include/onyxparser.h | 82 ++++++++++++++++----- onyx | Bin 206336 -> 200632 bytes progs/test.onyx | 6 +- src/onyx.c | 2 +- src/onyxlex.c | 94 ++++++++++++------------ src/onyxparser.c | 150 +++++++++++++++++++++----------------- src/onyxsymres.c | 22 +----- src/onyxtypecheck.c | 29 ++------ src/onyxwasm.c | 169 +++++++++++++++++++++---------------------- 13 files changed, 298 insertions(+), 271 deletions(-) diff --git a/.vimspector.json b/.vimspector.json index e309f7f9..1ecdcd93 100644 --- a/.vimspector.json +++ b/.vimspector.json @@ -6,7 +6,7 @@ "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/onyx", - "args": ["progs/test.onyx"], + "args": ["progs/other.onyx", "progs/test.onyx"], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], diff --git a/Makefile b/Makefile index b300bbaf..aa3056cc 100644 --- a/Makefile +++ b/Makefile @@ -13,13 +13,17 @@ CC=gcc INCLUDES=-I./include LIBS= FLAGS=-g +TARGET=./onyx build/%.o: src/%.c include/bh.h $(CC) $(FLAGS) -c $< -o $@ $(INCLUDES) -onyx: $(OBJ_FILES) +$(TARGET): $(OBJ_FILES) $(CC) $(FLAGS) $(OBJ_FILES) -o $@ $(LIBS) +install: $(TARGET) + cp $(TARGET) /usr/bin/ + clean: rm -f $(OBJ_FILES) 2>&1 >/dev/null diff --git a/docs/plan b/docs/plan index c7f8e803..bdc27508 100644 --- a/docs/plan +++ b/docs/plan @@ -59,7 +59,7 @@ HOW: [X] Comparison operators [X] Proper boolean type [X] Conditional branching works as expected - [ ] Simple while loop is functioning as expected + XX] Simple while loop is functioning as expected [ ] break and continue semantics [X] Function calling works for the builtin types [X] Function return values are type checked diff --git a/include/onyxlex.h b/include/onyxlex.h index 29c1c73a..6a2c7550 100644 --- a/include/onyxlex.h +++ b/include/onyxlex.h @@ -15,14 +15,13 @@ typedef enum OnyxTokenType { TOKEN_TYPE_KEYWORD_IF, TOKEN_TYPE_KEYWORD_ELSE, TOKEN_TYPE_KEYWORD_ELSEIF, - TOKEN_TYPE_KEYWORD_FOR, - TOKEN_TYPE_KEYWORD_DO, TOKEN_TYPE_KEYWORD_RETURN, TOKEN_TYPE_KEYWORD_FOREIGN, TOKEN_TYPE_KEYWORD_PROC, - TOKEN_TYPE_KEYWORD_GLOBAL, TOKEN_TYPE_KEYWORD_CAST, TOKEN_TYPE_KEYWORD_WHILE, + TOKEN_TYPE_KEYWORD_BREAK, + TOKEN_TYPE_KEYWORD_CONTINUE, TOKEN_TYPE_RIGHT_ARROW, TOKEN_TYPE_LEFT_ARROW, diff --git a/include/onyxparser.h b/include/onyxparser.h index f9dceade..1e237912 100644 --- a/include/onyxparser.h +++ b/include/onyxparser.h @@ -7,6 +7,8 @@ #include "onyxmsgs.h" typedef union OnyxAstNode OnyxAstNode; +typedef struct OnyxAstNodeUnaryOp OnyxAstNodeUnaryOp; +typedef struct OnyxAstNodeBinOp OnyxAstNodeBinOp; typedef struct OnyxAstNodeNumLit OnyxAstNodeNumLit; typedef struct OnyxAstNodeLocal OnyxAstNodeLocal; typedef struct OnyxAstNodeScope OnyxAstNodeScope; @@ -43,32 +45,21 @@ typedef enum OnyxAstNodeKind { ONYX_AST_NODE_KIND_LOCAL, ONYX_AST_NODE_KIND_SYMBOL, - ONYX_AST_NODE_KIND_ADD, - ONYX_AST_NODE_KIND_MINUS, - ONYX_AST_NODE_KIND_MULTIPLY, - ONYX_AST_NODE_KIND_DIVIDE, - ONYX_AST_NODE_KIND_MODULUS, - ONYX_AST_NODE_KIND_NEGATE, + ONYX_AST_NODE_KIND_UNARY_OP, + ONYX_AST_NODE_KIND_BIN_OP, ONYX_AST_NODE_KIND_TYPE, ONYX_AST_NODE_KIND_LITERAL, - ONYX_AST_NODE_KIND_CAST, ONYX_AST_NODE_KIND_PARAM, ONYX_AST_NODE_KIND_ARGUMENT, ONYX_AST_NODE_KIND_CALL, ONYX_AST_NODE_KIND_ASSIGNMENT, ONYX_AST_NODE_KIND_RETURN, - ONYX_AST_NODE_KIND_EQUAL, - ONYX_AST_NODE_KIND_NOT_EQUAL, - ONYX_AST_NODE_KIND_LESS, - ONYX_AST_NODE_KIND_LESS_EQUAL, - ONYX_AST_NODE_KIND_GREATER, - ONYX_AST_NODE_KIND_GREATER_EQUAL, - ONYX_AST_NODE_KIND_NOT, - ONYX_AST_NODE_KIND_IF, ONYX_AST_NODE_KIND_WHILE, + ONYX_AST_NODE_KIND_BREAK, + ONYX_AST_NODE_KIND_CONTINUE, ONYX_AST_NODE_KIND_COUNT } OnyxAstNodeKind; @@ -112,6 +103,48 @@ typedef enum OnyxAstFlags { ONYX_AST_FLAG_COMPTIME = BH_BIT(3), } OnyxAstFlags; +typedef enum OnyxUnaryOp { + ONYX_UNARY_OP_NEGATE, + ONYX_UNARY_OP_NOT, + ONYX_UNARY_OP_CAST, +} OnyxUnaryOp; + +typedef enum OnyxBinaryOp { + ONYX_BINARY_OP_ADD, + ONYX_BINARY_OP_MINUS, + ONYX_BINARY_OP_MULTIPLY, + ONYX_BINARY_OP_DIVIDE, + ONYX_BINARY_OP_MODULUS, + + ONYX_BINARY_OP_EQUAL, + ONYX_BINARY_OP_NOT_EQUAL, + ONYX_BINARY_OP_LESS, + ONYX_BINARY_OP_LESS_EQUAL, + ONYX_BINARY_OP_GREATER, + ONYX_BINARY_OP_GREATER_EQUAL, +} OnyxBinaryOp; + +struct OnyxAstNodeBinOp { + OnyxAstNodeKind kind; + u32 flags; + OnyxToken *token; + OnyxTypeInfo *type; + OnyxBinaryOp operation; + OnyxAstNode *next; + OnyxAstNode *left; + OnyxAstNode *right; +}; + +struct OnyxAstNodeUnaryOp { + OnyxAstNodeKind kind; + u32 flags; + OnyxToken *token; + OnyxTypeInfo *type; + OnyxUnaryOp operation; + OnyxAstNode *next; + OnyxAstNode *left; +}; + struct OnyxAstNodeNumLit { OnyxAstNodeKind kind; u32 flags; @@ -126,6 +159,7 @@ struct OnyxAstNodeLocal { u32 flags; OnyxToken *token; OnyxTypeInfo *type; + u64 data; // NOTE: Unused OnyxAstNode *next; OnyxAstNodeLocal *prev_local; }; @@ -133,8 +167,9 @@ struct OnyxAstNodeLocal { struct OnyxAstNodeParam { OnyxAstNodeKind kind; u32 flags; - OnyxToken *token; // Symbol name i.e. 'a', 'b' + OnyxToken *token; // NOTE: Symbol name i.e. 'a', 'b' OnyxTypeInfo *type; + u64 data; // NOTE: UNUSED OnyxAstNodeParam *next; OnyxAstNodeLocal *prev_local; }; @@ -144,6 +179,7 @@ struct OnyxAstNodeScope { u32 flags; OnyxToken *token; // NOTE: UNUSED OnyxTypeInfo *type; // NOTE: UNUSED + u64 data; // NOTE: UNUSED OnyxAstNodeScope *prev_scope; OnyxAstNodeLocal *last_local; }; @@ -153,6 +189,7 @@ struct OnyxAstNodeBlock { u32 flags; OnyxToken *token; OnyxTypeInfo *return_type; + u64 data; // NOTE: UNUSED OnyxAstNode *next; OnyxAstNode *body; OnyxAstNodeScope *scope; @@ -162,6 +199,7 @@ struct OnyxAstNodeIf { OnyxAstNodeKind kind; u32 flags; OnyxToken *token; // NOTE: UNUSED + u64 data; // NOTE: UNUSED OnyxAstNode *false_block; OnyxAstNode *next; OnyxAstNode *cond; @@ -173,6 +211,7 @@ struct OnyxAstNodeWhile { u32 flags; OnyxToken *token; // NOTE: UNUSED OnyxTypeInfo *type; + u64 data; OnyxAstNode *next; OnyxAstNode *cond; OnyxAstNodeBlock *body; @@ -183,6 +222,7 @@ struct OnyxAstNodeFuncDef { u32 flags; OnyxToken *token; // This will point to the symbol token to identify it OnyxTypeInfo *return_type; + u64 data; OnyxAstNode *next; OnyxAstNodeBlock *body; OnyxAstNodeParam *params; @@ -193,6 +233,7 @@ struct OnyxAstNodeForeign { u32 flags; OnyxToken *mod_token; OnyxTypeInfo *type; + u64 data; OnyxAstNode *next; OnyxToken *name_token; OnyxAstNode *import; @@ -201,8 +242,9 @@ struct OnyxAstNodeForeign { struct OnyxAstNodeCall { OnyxAstNodeKind kind; u32 flags; - OnyxToken *token; // NOTE: Not specified (undefined) + OnyxToken *token; OnyxTypeInfo *type; // NOTE: The type that the function returns + u64 data; OnyxAstNode *next; OnyxAstNode *callee; // NOTE: Function definition node OnyxAstNode *arguments; // NOTE: Expressions that form the actual param list @@ -215,6 +257,7 @@ struct OnyxAstNodeFile { u32 flags; OnyxToken *token; // NOTE: unused OnyxTypeInfo *type; // NOTE: unused + u64 data; OnyxAstNodeFile *next; // NOTE: next file OnyxAstNode *contents; // NOTE: the first top-level element }; @@ -227,6 +270,7 @@ union OnyxAstNode { u32 flags; OnyxToken *token; OnyxTypeInfo *type; + u64 data; OnyxAstNode *next; OnyxAstNode *left; OnyxAstNode *right; @@ -239,6 +283,8 @@ union OnyxAstNode { OnyxAstNodeScope as_scope; OnyxAstNodeCall as_call; OnyxAstNodeNumLit as_numlit; + OnyxAstNodeBinOp as_binop; + OnyxAstNodeUnaryOp as_unaryop; OnyxAstNodeForeign as_foreign; OnyxAstNodeIf as_if; OnyxAstNodeWhile as_while; @@ -246,7 +292,7 @@ union OnyxAstNode { }; const char* onyx_ast_node_kind_string(OnyxAstNodeKind kind); -OnyxAstNode* onyx_ast_node_new(bh_allocator alloc, OnyxAstNodeKind kind); +void* onyx_ast_node_new(bh_allocator alloc, OnyxAstNodeKind kind); OnyxParser onyx_parser_create(bh_allocator alloc, OnyxTokenizer *tokenizer, OnyxMessages* msgs); void onyx_parser_free(OnyxParser* parser); OnyxAstNodeFile* onyx_parse(OnyxParser *parser); diff --git a/onyx b/onyx index 5c15d2c20b759bd57e4503abac3e67f971a98151..0245333ad254d02ae277adfb705874793fe6f10c 100755 GIT binary patch literal 200632 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%0AAkMCh;c6U(TKlpM5;MqtCwg+576M(|6g> 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�P)>}p=H^+!D|17)J>ujwB5@FPQ!kft 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 WDpE42=r^GvWO*CQ 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 DL#esq literal 206336 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

    t*Vrs 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 TY+9K9$z_(_*ULNOeER i32 { export main :: proc { i := 0; while i < 10 { - print_i32(fib(i)); + res :: fib(i); + print_i32(res); i = i + 1; } i = 0; while i < 10 { - print_i32(factorial(i)); + res :: factorial(i); + print_i32(res); i = i + 1; } diff --git a/src/onyx.c b/src/onyx.c index a4614528..3d8912ef 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -238,7 +238,7 @@ int main(int argc, char *argv[]) { compiler_state_free(&compile_state); - return compiler_progress == ONYX_COMPILER_PROGRESS_SUCCESS; + return compiler_progress != ONYX_COMPILER_PROGRESS_SUCCESS; } // NOTE: Old bits of code that may be useful again at some point. diff --git a/src/onyxlex.c b/src/onyxlex.c index 9b0c68f9..925d3b03 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -13,14 +13,13 @@ static const char* onyx_token_type_names[] = { "if", //"TOKEN_TYPE_KEYWORD_IF", "else", //"TOKEN_TYPE_KEYWORD_ELSE", "elseif", //"TOKEN_TYPE_KEYWORD_ELSEIF", - "for", //"TOKEN_TYPE_KEYWORD_FOR", - "do", //"TOKEN_TYPE_KEYWORD_DO", "return", //"TOKEN_TYPE_KEYWORD_RETURN", "foreign", //"TOKEN_TYPE_KEYWORD_FOREIGN", "proc", //"TOKEN_TYPE_KEYWORD_PROC", - "global", //"TOKEN_TYPE_KEYWORD_GLOBAL", "as", //"TOKEN_TYPE_KEYWORD_CAST", "while", //"TOKEN_TYPE_KEYWORD_WHILE", + "break", //"TOKEN_TYPE_KEYWORD_BREAK", + "continue", //"TOKEN_TYPE_KEYWORD_CONTINUE, "->", //"TOKEN_TYPE_RIGHT_ARROW", "<-", //"TOKEN_TYPE_LEFT_ARROW", @@ -140,51 +139,50 @@ OnyxToken* onyx_get_token(OnyxTokenizer* tokenizer) { goto token_parsed; } - LITERAL_TOKEN("struct", 1, TOKEN_TYPE_KEYWORD_STRUCT); - LITERAL_TOKEN("export", 1, TOKEN_TYPE_KEYWORD_EXPORT); - LITERAL_TOKEN("use", 1, TOKEN_TYPE_KEYWORD_USE); - LITERAL_TOKEN("if", 1, TOKEN_TYPE_KEYWORD_IF); - LITERAL_TOKEN("elseif", 1, TOKEN_TYPE_KEYWORD_ELSEIF); - LITERAL_TOKEN("else", 1, TOKEN_TYPE_KEYWORD_ELSE); - LITERAL_TOKEN("foreign", 1, TOKEN_TYPE_KEYWORD_FOREIGN); - LITERAL_TOKEN("for", 1, TOKEN_TYPE_KEYWORD_FOR); - LITERAL_TOKEN("return", 1, TOKEN_TYPE_KEYWORD_RETURN); - LITERAL_TOKEN("do", 1, TOKEN_TYPE_KEYWORD_DO); - LITERAL_TOKEN("proc", 1, TOKEN_TYPE_KEYWORD_PROC); - LITERAL_TOKEN("global", 1, TOKEN_TYPE_KEYWORD_GLOBAL); - LITERAL_TOKEN("as", 1, TOKEN_TYPE_KEYWORD_CAST); - LITERAL_TOKEN("while", 1, TOKEN_TYPE_KEYWORD_WHILE); - LITERAL_TOKEN("true", 1, TOKEN_TYPE_LITERAL_BOOL_TRUE); - LITERAL_TOKEN("false", 1, TOKEN_TYPE_LITERAL_BOOL_FALSE); - LITERAL_TOKEN("->", 0, TOKEN_TYPE_RIGHT_ARROW); - 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); - LITERAL_TOKEN("}", 0, TOKEN_TYPE_CLOSE_BRACE); - LITERAL_TOKEN("[", 0, TOKEN_TYPE_OPEN_BRACKET); - LITERAL_TOKEN("]", 0, TOKEN_TYPE_CLOSE_BRACKET); - LITERAL_TOKEN("+", 0, TOKEN_TYPE_SYM_PLUS); - LITERAL_TOKEN("-", 0, TOKEN_TYPE_SYM_MINUS); - LITERAL_TOKEN("*", 0, TOKEN_TYPE_SYM_STAR); - LITERAL_TOKEN(".", 0, TOKEN_TYPE_SYM_DOT); - LITERAL_TOKEN("%", 0, TOKEN_TYPE_SYM_PERCENT); - LITERAL_TOKEN("/", 0, TOKEN_TYPE_SYM_FSLASH); - LITERAL_TOKEN("\\", 0, TOKEN_TYPE_SYM_BSLASH); - LITERAL_TOKEN(":", 0, TOKEN_TYPE_SYM_COLON); - LITERAL_TOKEN(";", 0, TOKEN_TYPE_SYM_SEMICOLON); - LITERAL_TOKEN(",", 0, TOKEN_TYPE_SYM_COMMA); - LITERAL_TOKEN(">", 0, TOKEN_TYPE_SYM_GREATER); - LITERAL_TOKEN("<", 0, TOKEN_TYPE_SYM_LESS); - LITERAL_TOKEN("=", 0, TOKEN_TYPE_SYM_EQUALS); - LITERAL_TOKEN("~", 0, TOKEN_TYPE_SYM_TILDE); - LITERAL_TOKEN("!", 0, TOKEN_TYPE_SYM_BANG); - LITERAL_TOKEN("^", 0, TOKEN_TYPE_SYM_CARET); - LITERAL_TOKEN("&", 0, TOKEN_TYPE_SYM_AMPERSAND); + LITERAL_TOKEN("struct", 1, TOKEN_TYPE_KEYWORD_STRUCT); + LITERAL_TOKEN("export", 1, TOKEN_TYPE_KEYWORD_EXPORT); + LITERAL_TOKEN("use", 1, TOKEN_TYPE_KEYWORD_USE); + LITERAL_TOKEN("if", 1, TOKEN_TYPE_KEYWORD_IF); + LITERAL_TOKEN("elseif", 1, TOKEN_TYPE_KEYWORD_ELSEIF); + LITERAL_TOKEN("else", 1, TOKEN_TYPE_KEYWORD_ELSE); + LITERAL_TOKEN("foreign", 1, TOKEN_TYPE_KEYWORD_FOREIGN); + LITERAL_TOKEN("return", 1, TOKEN_TYPE_KEYWORD_RETURN); + LITERAL_TOKEN("proc", 1, TOKEN_TYPE_KEYWORD_PROC); + LITERAL_TOKEN("as", 1, TOKEN_TYPE_KEYWORD_CAST); + LITERAL_TOKEN("while", 1, TOKEN_TYPE_KEYWORD_WHILE); + LITERAL_TOKEN("break", 1, TOKEN_TYPE_KEYWORD_BREAK); + LITERAL_TOKEN("continue", 1, TOKEN_TYPE_KEYWORD_CONTINUE); + LITERAL_TOKEN("true", 1, TOKEN_TYPE_LITERAL_BOOL_TRUE); + LITERAL_TOKEN("false", 1, TOKEN_TYPE_LITERAL_BOOL_FALSE); + LITERAL_TOKEN("->", 0, TOKEN_TYPE_RIGHT_ARROW); + 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); + LITERAL_TOKEN("}", 0, TOKEN_TYPE_CLOSE_BRACE); + LITERAL_TOKEN("[", 0, TOKEN_TYPE_OPEN_BRACKET); + LITERAL_TOKEN("]", 0, TOKEN_TYPE_CLOSE_BRACKET); + LITERAL_TOKEN("+", 0, TOKEN_TYPE_SYM_PLUS); + LITERAL_TOKEN("-", 0, TOKEN_TYPE_SYM_MINUS); + LITERAL_TOKEN("*", 0, TOKEN_TYPE_SYM_STAR); + LITERAL_TOKEN(".", 0, TOKEN_TYPE_SYM_DOT); + LITERAL_TOKEN("%", 0, TOKEN_TYPE_SYM_PERCENT); + LITERAL_TOKEN("/", 0, TOKEN_TYPE_SYM_FSLASH); + LITERAL_TOKEN("\\", 0, TOKEN_TYPE_SYM_BSLASH); + LITERAL_TOKEN(":", 0, TOKEN_TYPE_SYM_COLON); + LITERAL_TOKEN(";", 0, TOKEN_TYPE_SYM_SEMICOLON); + LITERAL_TOKEN(",", 0, TOKEN_TYPE_SYM_COMMA); + LITERAL_TOKEN(">", 0, TOKEN_TYPE_SYM_GREATER); + LITERAL_TOKEN("<", 0, TOKEN_TYPE_SYM_LESS); + LITERAL_TOKEN("=", 0, TOKEN_TYPE_SYM_EQUALS); + LITERAL_TOKEN("~", 0, TOKEN_TYPE_SYM_TILDE); + LITERAL_TOKEN("!", 0, TOKEN_TYPE_SYM_BANG); + LITERAL_TOKEN("^", 0, TOKEN_TYPE_SYM_CARET); + LITERAL_TOKEN("&", 0, TOKEN_TYPE_SYM_AMPERSAND); // Symbols if (char_is_alpha(*tk.token)) { diff --git a/src/onyxparser.c b/src/onyxparser.c index 9a7dbd51..8cf4a513 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -14,12 +14,8 @@ static const char* ast_node_names[] = { "LOCAL", "SYMBOL", - "ADD", - "MINUS", - "MULTIPLY", - "DIVIDE", - "MODULUS", - "NEGATE", + "UN_OP", + "BIN_OP", "TYPE", "LITERAL", @@ -30,14 +26,6 @@ static const char* ast_node_names[] = { "ASSIGN", "RETURN", - "EQUAL", - "NOT_EQUAL", - "GREATER", - "GREATER_EQUAL", - "LESS", - "LESS_EQUAL", - "NOT", - "IF", "WHILE", @@ -63,7 +51,7 @@ struct OnyxTypeInfo builtin_types[] = { { 0xffffffff } // Sentinel }; -static OnyxAstNode error_node = { { ONYX_AST_NODE_KIND_ERROR, 0, NULL, &builtin_types[0], NULL, NULL, NULL } }; +static OnyxAstNode error_node = { { ONYX_AST_NODE_KIND_ERROR, 0, NULL, &builtin_types[0], 0, NULL, NULL, NULL } }; // NOTE: Forward declarations static void parser_next_token(OnyxParser* parser); @@ -174,13 +162,16 @@ static OnyxAstNodeNumLit* parse_numeric_literal(OnyxParser* parser) { } static OnyxAstNode* parse_factor(OnyxParser* parser) { + OnyxAstNode* retval = NULL; + switch (parser->curr_token->type) { case TOKEN_TYPE_OPEN_PAREN: { parser_next_token(parser); OnyxAstNode* expr = parse_expression(parser); expect(parser, TOKEN_TYPE_CLOSE_PAREN); - return expr; + retval = expr; + break; } case TOKEN_TYPE_SYM_MINUS: @@ -188,7 +179,8 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { parser_next_token(parser); OnyxAstNode* factor = parse_factor(parser); - OnyxAstNode* negate_node = onyx_ast_node_new(parser->allocator, ONYX_AST_NODE_KIND_NEGATE); + OnyxAstNodeUnaryOp* negate_node = onyx_ast_node_new(parser->allocator, ONYX_AST_NODE_KIND_UNARY_OP); + negate_node->operation = ONYX_UNARY_OP_NEGATE; negate_node->left = factor; negate_node->type = factor->type; @@ -196,7 +188,8 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { negate_node->flags |= ONYX_AST_FLAG_COMPTIME; } - return negate_node; + retval = (OnyxAstNode *) negate_node; + break; } case TOKEN_TYPE_SYMBOL: @@ -206,7 +199,8 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { sym_node->token = sym_token; if (parser->curr_token->type != TOKEN_TYPE_OPEN_PAREN) { - return sym_node; + retval = sym_node; + break; } // NOTE: Function call @@ -245,10 +239,13 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { } parser_next_token(parser); - return (OnyxAstNode *) call_node; + retval = (OnyxAstNode *) call_node; + break; } - case TOKEN_TYPE_LITERAL_NUMERIC: return (OnyxAstNode *) parse_numeric_literal(parser); + case TOKEN_TYPE_LITERAL_NUMERIC: + retval = (OnyxAstNode *) parse_numeric_literal(parser); + break; case TOKEN_TYPE_LITERAL_BOOL_TRUE: { @@ -256,7 +253,8 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { bool_node->type = &builtin_types[ONYX_TYPE_INFO_KIND_BOOL]; bool_node->token = expect(parser, TOKEN_TYPE_LITERAL_BOOL_TRUE); bool_node->value.i = 1; - return (OnyxAstNode *) bool_node; + retval = (OnyxAstNode *) bool_node; + break; } case TOKEN_TYPE_LITERAL_BOOL_FALSE: @@ -265,7 +263,8 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { bool_node->type = &builtin_types[ONYX_TYPE_INFO_KIND_BOOL]; bool_node->token = expect(parser, TOKEN_TYPE_LITERAL_BOOL_FALSE); bool_node->value.i = 0; - return (OnyxAstNode *) bool_node; + retval = (OnyxAstNode *) bool_node; + break; } default: @@ -273,36 +272,43 @@ static OnyxAstNode* parse_factor(OnyxParser* parser) { ONYX_MESSAGE_TYPE_UNEXPECTED_TOKEN, parser->curr_token->pos, onyx_get_token_type_name(parser->curr_token->type)); + return NULL; } - return NULL; + if (parser->curr_token->type == TOKEN_TYPE_KEYWORD_CAST) { + OnyxAstNodeUnaryOp* cast_node = onyx_ast_node_new(parser->allocator, ONYX_AST_NODE_KIND_UNARY_OP); + cast_node->operation = ONYX_UNARY_OP_CAST; + cast_node->type = parse_type(parser); + cast_node->left = retval; + retval = (OnyxAstNode *) cast_node; + } + + return retval; } -static inline i32 get_precedence(OnyxAstNodeKind kind) { +static inline i32 get_precedence(OnyxBinaryOp kind) { switch (kind) { - case ONYX_AST_NODE_KIND_EQUAL: return 3; - case ONYX_AST_NODE_KIND_NOT_EQUAL: return 3; + case ONYX_BINARY_OP_EQUAL: return 3; + case ONYX_BINARY_OP_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_BINARY_OP_LESS_EQUAL: return 4; + case ONYX_BINARY_OP_LESS: return 4; + case ONYX_BINARY_OP_GREATER_EQUAL: return 4; + case ONYX_BINARY_OP_GREATER: return 4; - case ONYX_AST_NODE_KIND_ADD: return 5; - case ONYX_AST_NODE_KIND_MINUS: return 5; + case ONYX_BINARY_OP_ADD: return 5; + case ONYX_BINARY_OP_MINUS: return 5; - case ONYX_AST_NODE_KIND_MULTIPLY: return 6; - case ONYX_AST_NODE_KIND_DIVIDE: return 6; + case ONYX_BINARY_OP_MULTIPLY: return 6; + case ONYX_BINARY_OP_DIVIDE: return 6; - case ONYX_AST_NODE_KIND_MODULUS: return 7; - - case ONYX_AST_NODE_KIND_CAST: return 8; + case ONYX_BINARY_OP_MODULUS: return 7; default: return -1; } } static OnyxAstNode* parse_expression(OnyxParser* parser) { - bh_arr(OnyxAstNode*) tree_stack = NULL; + bh_arr(OnyxAstNodeBinOp*) tree_stack = NULL; bh_arr_new(global_scratch_allocator, tree_stack, 4); bh_arr_set_length(tree_stack, 0); @@ -310,25 +316,24 @@ static OnyxAstNode* parse_expression(OnyxParser* parser) { OnyxAstNode* right; OnyxAstNode* root = left; - i32 bin_op_kind; + OnyxBinaryOp bin_op_kind; OnyxToken* bin_op_tok; 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; - case TOKEN_TYPE_SYM_FSLASH: bin_op_kind = ONYX_AST_NODE_KIND_DIVIDE; break; - case TOKEN_TYPE_SYM_PERCENT: bin_op_kind = ONYX_AST_NODE_KIND_MODULUS; break; - case TOKEN_TYPE_KEYWORD_CAST: bin_op_kind = ONYX_AST_NODE_KIND_CAST; break; + case TOKEN_TYPE_SYM_EQUAL_EQUAL: bin_op_kind = ONYX_BINARY_OP_EQUAL; break; + case TOKEN_TYPE_SYM_NOT_EQUAL: bin_op_kind = ONYX_BINARY_OP_NOT_EQUAL; break; + case TOKEN_TYPE_SYM_LESS_EQUAL: bin_op_kind = ONYX_BINARY_OP_LESS_EQUAL; break; + case TOKEN_TYPE_SYM_LESS: bin_op_kind = ONYX_BINARY_OP_LESS; break; + case TOKEN_TYPE_SYM_GREATER_EQUAL: bin_op_kind = ONYX_BINARY_OP_GREATER_EQUAL; break; + case TOKEN_TYPE_SYM_GREATER: bin_op_kind = ONYX_BINARY_OP_GREATER; break; + + case TOKEN_TYPE_SYM_PLUS: bin_op_kind = ONYX_BINARY_OP_ADD; break; + case TOKEN_TYPE_SYM_MINUS: bin_op_kind = ONYX_BINARY_OP_MINUS; break; + case TOKEN_TYPE_SYM_STAR: bin_op_kind = ONYX_BINARY_OP_MULTIPLY; break; + case TOKEN_TYPE_SYM_FSLASH: bin_op_kind = ONYX_BINARY_OP_DIVIDE; break; + case TOKEN_TYPE_SYM_PERCENT: bin_op_kind = ONYX_BINARY_OP_MODULUS; break; default: goto expression_done; } @@ -336,34 +341,31 @@ static OnyxAstNode* parse_expression(OnyxParser* parser) { bin_op_tok = parser->curr_token; parser_next_token(parser); - OnyxAstNode* bin_op = onyx_ast_node_new(parser->allocator, bin_op_kind); + OnyxAstNodeBinOp* bin_op = onyx_ast_node_new(parser->allocator, ONYX_AST_NODE_KIND_BIN_OP); + bin_op->operation = bin_op_kind; bin_op->token = bin_op_tok; while ( !bh_arr_is_empty(tree_stack) && - get_precedence(bh_arr_last(tree_stack)->kind) >= get_precedence(bin_op_kind)) + get_precedence(bh_arr_last(tree_stack)->operation) >= get_precedence(bin_op_kind)) bh_arr_pop(tree_stack); if (bh_arr_is_empty(tree_stack)) { // NOTE: new is now the root node bin_op->left = root; - root = bin_op; + root = (OnyxAstNode *) bin_op; } else { bin_op->left = bh_arr_last(tree_stack)->right; - bh_arr_last(tree_stack)->right = bin_op; + bh_arr_last(tree_stack)->right = (OnyxAstNode *) bin_op; } bh_arr_push(tree_stack, bin_op); - if (bin_op_kind == ONYX_AST_NODE_KIND_CAST) { - bin_op->type = parse_type(parser); - } else { - right = parse_factor(parser); - bin_op->right = right; - bin_op->type = right->type; + right = parse_factor(parser); + bin_op->right = right; + bin_op->type = right->type; - if ((left->flags & ONYX_AST_FLAG_COMPTIME) != 0 && (right->flags & ONYX_AST_FLAG_COMPTIME) != 0) { - bin_op->flags |= ONYX_AST_FLAG_COMPTIME; - } + if ((left->flags & ONYX_AST_FLAG_COMPTIME) != 0 && (right->flags & ONYX_AST_FLAG_COMPTIME) != 0) { + bin_op->flags |= ONYX_AST_FLAG_COMPTIME; } } } @@ -558,6 +560,16 @@ static OnyxAstNode* parse_statement(OnyxParser* parser) { retval = (OnyxAstNode *) parse_while_stmt(parser); break; + case TOKEN_TYPE_KEYWORD_BREAK: + retval = onyx_ast_node_new(parser->allocator, ONYX_AST_NODE_KIND_BREAK); + retval->token = expect(parser, TOKEN_TYPE_KEYWORD_BREAK); + break; + + case TOKEN_TYPE_KEYWORD_CONTINUE: + retval = onyx_ast_node_new(parser->allocator, ONYX_AST_NODE_KIND_CONTINUE); + retval->token = expect(parser, TOKEN_TYPE_KEYWORD_CONTINUE); + break; + default: break; } @@ -779,12 +791,14 @@ const char* onyx_ast_node_kind_string(OnyxAstNodeKind kind) { return ast_node_names[kind]; } -OnyxAstNode* onyx_ast_node_new(bh_allocator alloc, OnyxAstNodeKind kind) {\ - OnyxAstNode* node = (OnyxAstNode *) bh_alloc(alloc, sizeof(OnyxAstNode)); +// NOTE: This returns a void* so I don't need to cast it everytime I use it +void* onyx_ast_node_new(bh_allocator alloc, OnyxAstNodeKind kind) {\ + OnyxAstNode* node = bh_alloc_item(alloc, OnyxAstNode); node->kind = kind; node->flags = 0; node->token = NULL; node->type = NULL; + node->data = 0; node->next = NULL; node->left = NULL; node->right = NULL; diff --git a/src/onyxsymres.c b/src/onyxsymres.c index a03dd614..d5cf6d6e 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -131,30 +131,12 @@ static void symres_call(OnyxSemPassState* state, OnyxAstNode* stmt) { static void symres_expression(OnyxSemPassState* state, OnyxAstNode** expr) { switch ((*expr)->kind) { - case ONYX_AST_NODE_KIND_ADD: - case ONYX_AST_NODE_KIND_MINUS: - case ONYX_AST_NODE_KIND_MULTIPLY: - case ONYX_AST_NODE_KIND_DIVIDE: - case ONYX_AST_NODE_KIND_MODULUS: - case ONYX_AST_NODE_KIND_EQUAL: - case ONYX_AST_NODE_KIND_NOT_EQUAL: - case ONYX_AST_NODE_KIND_LESS: - case ONYX_AST_NODE_KIND_LESS_EQUAL: - case ONYX_AST_NODE_KIND_GREATER: - case ONYX_AST_NODE_KIND_GREATER_EQUAL: + case ONYX_AST_NODE_KIND_BIN_OP: symres_expression(state, &(*expr)->left); symres_expression(state, &(*expr)->right); break; - case ONYX_AST_NODE_KIND_NEGATE: - symres_expression(state, &(*expr)->left); - break; - - case ONYX_AST_NODE_KIND_CAST: - if ((*expr)->type == NULL) { - DEBUG_HERE; - return; - } + case ONYX_AST_NODE_KIND_UNARY_OP: symres_expression(state, &(*expr)->left); break; diff --git a/src/onyxtypecheck.c b/src/onyxtypecheck.c index 65c687c5..a1846c2f 100644 --- a/src/onyxtypecheck.c +++ b/src/onyxtypecheck.c @@ -161,17 +161,7 @@ static void typecheck_call(OnyxSemPassState* state, OnyxAstNodeCall* call) { static void typecheck_expression(OnyxSemPassState* state, OnyxAstNode* expr) { switch (expr->kind) { - case ONYX_AST_NODE_KIND_ADD: - case ONYX_AST_NODE_KIND_MINUS: - case ONYX_AST_NODE_KIND_MULTIPLY: - case ONYX_AST_NODE_KIND_DIVIDE: - case ONYX_AST_NODE_KIND_MODULUS: - case ONYX_AST_NODE_KIND_EQUAL: - case ONYX_AST_NODE_KIND_NOT_EQUAL: - case ONYX_AST_NODE_KIND_LESS: - case ONYX_AST_NODE_KIND_LESS_EQUAL: - case ONYX_AST_NODE_KIND_GREATER: - case ONYX_AST_NODE_KIND_GREATER_EQUAL: + case ONYX_AST_NODE_KIND_BIN_OP: expr->type = &builtin_types[ONYX_TYPE_INFO_KIND_UNKNOWN]; typecheck_expression(state, expr->left); @@ -202,8 +192,8 @@ static void typecheck_expression(OnyxSemPassState* state, OnyxAstNode* expr) { return; } - if (expr->kind >= ONYX_AST_NODE_KIND_EQUAL - && expr->kind <= ONYX_AST_NODE_KIND_GREATER_EQUAL) { + if (expr->as_binop.operation >= ONYX_BINARY_OP_EQUAL + && expr->as_binop.operation <= ONYX_BINARY_OP_GREATER_EQUAL) { expr->type = &builtin_types[ONYX_TYPE_INFO_KIND_BOOL]; } else { expr->type = expr->left->type; @@ -211,14 +201,11 @@ static void typecheck_expression(OnyxSemPassState* state, OnyxAstNode* expr) { break; - case ONYX_AST_NODE_KIND_NEGATE: - typecheck_expression(state, expr->left); - expr->type = expr->left->type; - break; - - case ONYX_AST_NODE_KIND_CAST: - // NOTE: Do nothing. The resulting type from the cast - // is already in the cast expression. + case ONYX_AST_NODE_KIND_UNARY_OP: + if (expr->as_unaryop.operation != ONYX_UNARY_OP_CAST) { + typecheck_expression(state, expr->left); + expr->type = expr->left->type; + } break; case ONYX_AST_NODE_KIND_CALL: diff --git a/src/onyxwasm.c b/src/onyxwasm.c index a9c6d22a..02941609 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -215,8 +215,10 @@ static void compile_assign_lval(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode static void compile_assignment(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* assign); static void compile_if(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeIf* if_node); static void compile_while(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeWhile* while_node); +static void compile_binop(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeBinOp* binop); +static void compile_unaryop(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeUnaryOp* unop); static void compile_expression(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* expr); -static void compile_cast(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* cast); +static void compile_cast(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeUnaryOp* cast); static void compile_return(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* ret); static void compile_function_body(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeFuncDef* fd) { @@ -321,105 +323,79 @@ static void compile_assignment(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* compile_assign_lval(mod, func, assign->left); } -#define BIN_OP_PROCESS(ast_binop, wasm_binop) \ - case ONYX_AST_NODE_KIND_##ast_binop: \ - { \ - WasmInstructionType instr_type; \ - switch (expr->left->type->kind) { \ - case ONYX_TYPE_INFO_KIND_BOOL: \ - case ONYX_TYPE_INFO_KIND_UINT32: \ - case ONYX_TYPE_INFO_KIND_INT32: instr_type = WI_I32_##wasm_binop; break; \ - case ONYX_TYPE_INFO_KIND_UINT64: \ - case ONYX_TYPE_INFO_KIND_INT64: instr_type = WI_I64_##wasm_binop; 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)); \ - } \ - \ - compile_expression(mod, func, expr->left); \ - compile_expression(mod, func, expr->right); \ - bh_arr_push(func->code, ((WasmInstruction){ instr_type, 0x00 })); \ - break; \ - } +// NOTE: These need to be in the same order as +// the OnyxBinaryOp enum +static const WasmInstructionType binop_map[][4] = { + // I32 I64 F32 F64 + /* ADD */ { WI_I32_ADD, WI_I64_ADD, WI_F32_ADD, WI_F64_ADD }, + /* SUB */ { WI_I32_SUB, WI_I64_SUB, WI_F32_SUB, WI_F64_SUB }, + /* MUL */ { WI_I32_MUL, WI_I64_MUL, WI_F32_MUL, WI_F64_MUL }, + /* DIV */ { WI_I32_DIV_S, WI_I64_DIV_S, WI_F32_DIV, WI_F64_DIV }, + /* REM */ { WI_I32_REM_S, WI_I64_REM_S, WI_NOP, WI_NOP }, + + /* EQ */ { WI_I32_EQ, WI_I64_EQ, WI_F32_EQ, WI_F64_EQ }, + /* NEQ */ { WI_NOP, WI_NOP, WI_F32_NE , WI_F64_NE }, + /* LT */ { WI_I32_LT_S, WI_I64_LT_S, WI_F32_LT, WI_F64_LT }, + /* LTE */ { WI_I32_LE_S, WI_I64_LE_S, WI_F32_LE, WI_F64_LE }, + /* GT */ { WI_I32_GT_S, WI_I64_GT_S, WI_F32_GT, WI_F64_GT }, + /* GTE */ { WI_I32_GE_S, WI_I64_GE_S, WI_F32_GE, WI_F64_GE }, +}; -#define BIN_OP_SIGNED_PROCESS(ast_binop, wasm_binop) \ - case ONYX_AST_NODE_KIND_##ast_binop: \ - { \ - WasmInstructionType instr_type; \ - switch (expr->left->type->kind) { \ - case ONYX_TYPE_INFO_KIND_BOOL: \ - case ONYX_TYPE_INFO_KIND_UINT32: \ - case ONYX_TYPE_INFO_KIND_INT32: \ - if (expr->left->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->left->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)); \ - } \ - \ - compile_expression(mod, func, expr->left); \ - compile_expression(mod, func, expr->right); \ - bh_arr_push(func->code, ((WasmInstruction){ instr_type, 0x00 })); \ - break; \ - } +static void compile_binop(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeBinOp* binop) { + b32 is_sign_significant = 0; -static void compile_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); - 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: - { - WasmInstructionType instr_type; - switch (expr->type->kind) { - case ONYX_TYPE_INFO_KIND_INT32: - if (expr->type->is_unsigned) instr_type = WI_I32_REM_U; - else instr_type = WI_I32_REM_S; - break; - case ONYX_TYPE_INFO_KIND_INT64: - if (expr->type->is_unsigned) instr_type = WI_I64_REM_U; - else instr_type = WI_I64_REM_S; - break; - default: assert(("Invalid type", 0)); - } + switch (binop->operation) { + case ONYX_BINARY_OP_DIVIDE: + case ONYX_BINARY_OP_MODULUS: + case ONYX_BINARY_OP_LESS: + case ONYX_BINARY_OP_LESS_EQUAL: + case ONYX_BINARY_OP_GREATER: + case ONYX_BINARY_OP_GREATER_EQUAL: + is_sign_significant = 1; - compile_expression(mod, func, expr->left); - compile_expression(mod, func, expr->right); - bh_arr_push(func->code, ((WasmInstruction){ instr_type, 0x00 })); - break; - } + default: break; + } + + WasmType operator_type = onyx_type_to_wasm_type(binop->left->type); + WasmInstructionType binop_instr = binop_map[binop->operation][operator_type]; + + if (binop_instr == WI_NOP) { + assert(("Invalid type and operation", 0)); + } + + // NOTE: Use unsigned variant if needed + // Unsigned instructions are always right after + // the signed equivalent + if (is_sign_significant) { + if (binop->left->type->is_unsigned) { + binop_instr += 1; + } + } - case ONYX_AST_NODE_KIND_NEGATE: + compile_expression(mod, func, binop->left); + compile_expression(mod, func, binop->right); + + bh_arr_push(func->code, ((WasmInstruction){ binop_instr, 0x00 })); +} + +static void compile_unaryop(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeUnaryOp* unop) { + switch (unop->operation) { + case ONYX_UNARY_OP_NEGATE: { - OnyxTypeInfoKind type_kind = expr->type->kind; + OnyxTypeInfoKind type_kind = unop->type->kind; if (type_kind == ONYX_TYPE_INFO_KIND_INT32) { bh_arr_push(func->code, ((WasmInstruction){ WI_I32_CONST, 0x00 })); - compile_expression(mod, func, expr->left); + compile_expression(mod, func, unop->left); bh_arr_push(func->code, ((WasmInstruction){ WI_I32_SUB, 0x00 })); } else if (type_kind == ONYX_TYPE_INFO_KIND_INT64) { bh_arr_push(func->code, ((WasmInstruction){ WI_I64_CONST, 0x00 })); - compile_expression(mod, func, expr->left); + compile_expression(mod, func, unop->left); bh_arr_push(func->code, ((WasmInstruction){ WI_I64_SUB, 0x00 })); } else { - compile_expression(mod, func, expr->left); + compile_expression(mod, func, unop->left); if (type_kind == ONYX_TYPE_INFO_KIND_FLOAT32) bh_arr_push(func->code, ((WasmInstruction){ WI_F32_NEG, 0x00 })); @@ -427,9 +403,29 @@ static void compile_expression(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* if (type_kind == ONYX_TYPE_INFO_KIND_FLOAT64) bh_arr_push(func->code, ((WasmInstruction){ WI_F32_NEG, 0x00 })); } + break; } + case ONYX_UNARY_OP_NOT: + compile_expression(mod, func, unop->left); + bh_arr_push(func->code, ((WasmInstruction){ WI_I32_EQZ, 0x00 })); + break; + + case ONYX_UNARY_OP_CAST: compile_cast(mod, func, unop); break; + } +} + +static void compile_expression(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* expr) { + switch (expr->kind) { + case ONYX_AST_NODE_KIND_BIN_OP: + compile_binop(mod, func, &expr->as_binop); + break; + + case ONYX_AST_NODE_KIND_UNARY_OP: + compile_unaryop(mod, func, &expr->as_unaryop); + break; + case ONYX_AST_NODE_KIND_LOCAL: case ONYX_AST_NODE_KIND_PARAM: { @@ -439,7 +435,6 @@ static void compile_expression(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* break; } - case ONYX_AST_NODE_KIND_CAST: compile_cast(mod, func, expr); break; case ONYX_AST_NODE_KIND_LITERAL: { OnyxAstNodeNumLit* lit = &expr->as_numlit; @@ -496,7 +491,7 @@ static const WasmInstructionType cast_map[][6] = { /* F64 */ { WI_I32_FROM_F64_S, WI_I32_FROM_F64_U, WI_I64_FROM_F64_S, WI_I64_FROM_F64_U, WI_F32_FROM_F64, WI_NOP, }, }; -static void compile_cast(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNode* cast) { +static void compile_cast(OnyxWasmModule* mod, WasmFunc* func, OnyxAstNodeUnaryOp* cast) { compile_expression(mod, func, cast->left); OnyxTypeInfo* from = cast->left->type; -- 2.25.1