From 89cc1ba7c749004d1c574a4eb607cc5198d6e870 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 19 Jul 2020 14:39:56 -0500 Subject: [PATCH] Added basic for loops Just syntactic sugar for certain kinds of while loops --- include/onyxastnodes.h | 17 +++++++++++++- include/onyxlex.h | 51 +++++++++++++++++++++-------------------- onyx | Bin 262992 -> 265496 bytes progs/arrays.onyx | 15 ++++++++---- progs/print_funcs.onyx | 5 ++++ src/onyxchecker.c | 27 ++++++++++++++++++++++ src/onyxlex.c | 1 + src/onyxparser.c | 31 +++++++++++++++++++++++++ src/onyxsymres.c | 17 ++++++++++++++ src/onyxutils.c | 1 + src/onyxwasm.c | 49 +++++++++++++++++++++++++++++++++++++++ 11 files changed, 184 insertions(+), 30 deletions(-) diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 72dbe704..25791afb 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -25,6 +25,7 @@ typedef struct AstReturn AstReturn; typedef struct AstBlock AstBlock; typedef struct AstIf AstIf; +typedef struct AstFor AstFor; typedef struct AstWhile AstWhile; typedef struct AstType AstType; @@ -84,6 +85,7 @@ typedef enum AstKind { Ast_Kind_Array_Access, Ast_Kind_If, + Ast_Kind_For, Ast_Kind_While, Ast_Kind_Break, Ast_Kind_Continue, @@ -205,7 +207,7 @@ struct AstLocal { AstTyped_base; AstLocal *prev_local; }; struct AstCall { AstTyped_base; AstArgument *arguments; u64 arg_count; AstNode *callee; }; struct AstIntrinsicCall { AstTyped_base; AstArgument *arguments; u64 arg_count; OnyxIntrinsic intrinsic; }; struct AstArgument { AstTyped_base; AstTyped *value; }; -struct AstAddressOf { AstTyped_base; AstTyped *expr; }; +struct AstAddressOf { AstTyped_base; AstTyped *expr; }; struct AstDereference { AstTyped_base; AstTyped *expr; }; struct AstArrayAccess { AstTyped_base; AstTyped *addr; AstTyped *expr; u64 elem_size; }; @@ -215,6 +217,19 @@ struct AstReturn { AstNode_base; AstTyped* expr; }; // Structure Nodes struct AstBlock { AstNode_base; AstNode *body; Scope *scope; }; struct AstWhile { AstNode_base; AstTyped *cond; AstNode *stmt; }; +struct AstFor { + AstNode_base; + + // NOTE: Stores the iteration variable + Scope *scope; + + // NOTE: Local defining the iteration variable + AstLocal* var; + + AstTyped *start, *end, *step; + + AstNode *stmt; +}; struct AstIf { AstNode_base; AstTyped *cond; diff --git a/include/onyxlex.h b/include/onyxlex.h index 24168862..c54fdbbc 100644 --- a/include/onyxlex.h +++ b/include/onyxlex.h @@ -21,37 +21,38 @@ typedef enum TokenType { Token_Type_Keyword_Proc = 267, Token_Type_Keyword_Cast = 268, Token_Type_Keyword_While = 269, - Token_Type_Keyword_Break = 270, - Token_Type_Keyword_Continue = 271, - - Token_Type_Right_Arrow = 272, - Token_Type_Left_Arrow = 273, - Token_Type_Empty_Block = 274, - - Token_Type_Greater_Equal = 275, - Token_Type_Less_Equal = 276, - Token_Type_Equal_Equal = 277, - Token_Type_Not_Equal = 278, - Token_Type_Plus_Equal = 279, - Token_Type_Minus_Equal = 280, - Token_Type_Star_Equal = 281, - Token_Type_Fslash_Equal = 282, - Token_Type_Percent_Equal = 283, - - Token_Type_Symbol = 284, - Token_Type_Literal_String = 285, - Token_Type_Literal_Numeric = 286, - Token_Type_Literal_True = 287, - Token_Type_Literal_False = 288, - - Token_Type_Count = 289, + Token_Type_Keyword_For = 270, + Token_Type_Keyword_Break = 271, + Token_Type_Keyword_Continue = 272, + + Token_Type_Right_Arrow = 273, + Token_Type_Left_Arrow = 274, + Token_Type_Empty_Block = 275, + + Token_Type_Greater_Equal = 276, + Token_Type_Less_Equal = 277, + Token_Type_Equal_Equal = 278, + Token_Type_Not_Equal = 279, + Token_Type_Plus_Equal = 280, + Token_Type_Minus_Equal = 281, + Token_Type_Star_Equal = 282, + Token_Type_Fslash_Equal = 283, + Token_Type_Percent_Equal = 284, + + Token_Type_Symbol = 285, + Token_Type_Literal_String = 286, + Token_Type_Literal_Numeric = 287, + Token_Type_Literal_True = 288, + Token_Type_Literal_False = 289, + + Token_Type_Count = 290, } TokenType; typedef struct OnyxFilePos { const char* filename; char* line_start; u32 line; - + // NOTE: This assumes that no line is no longer than 2^16 chars u16 column, length; } OnyxFilePos; diff --git a/onyx b/onyx index b87f677f797237435b562b046eee5ccb7c096b6a..c238b47f754bf11bc6e08b7fae2c9154cffc2db5 100755 GIT binary patch delta 104076 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

RQGxa0_~gZE+vt?$c^Z8DGvV zaS^oyxITi^a-XWj%OF5qQ*j^Uc!LwT{Sx10-0dOzG2`yjGp8AMzheK6adI5WQWV>B zC>CDdpaI<{Cei`#j04%^K1|{Esu;rf@QGxk?QE;t8Gm950RtJYW88fb?S5g*wLjt^1?&;>a<0r9Xrjv#gyMy$i39gAid|h3JTP_R!-htKma6&Dy(O)vfVu v^!SA8wP+vr7+eXr8#6?-k>K2$ diff --git a/progs/arrays.onyx b/progs/arrays.onyx index f2f61384..eab2ac03 100644 --- a/progs/arrays.onyx +++ b/progs/arrays.onyx @@ -39,19 +39,26 @@ sort :: proc (src: ^i32, len: i32) { } } -other_str :: "I can't believe this \n actually fricken worked!"; +for_test :: proc { + // 0 to 9 + for i: 0, 10 print(i); +} -str_test :: proc { +str_test :: proc #export "main" { hello_str :: "Hello World!"; // Address of and dereference cancel each other out print(^*hello_str); - print("This is a test"[10] as i32); + print(hello_str, 5); + + for i: 0, 10, 2 print(i); + + for y: 0, 5 for x: 0, 5 print(x + y * 5); } // Don't need to bind this function to a symbol -proc #export "main" { +proc #export "main2" { print(min(10.0, 12.0)); global_arr = 128 as ^i32; diff --git a/progs/print_funcs.onyx b/progs/print_funcs.onyx index 3aadfc9d..e232cb25 100644 --- a/progs/print_funcs.onyx +++ b/progs/print_funcs.onyx @@ -45,6 +45,10 @@ print_str :: proc (str: ^u8) { } } +print_str_len :: proc (str: ^u8, len: i32) { + for i: 0, len print(str[i] as i32); +} + print :: proc #overloaded { print_bool, print_i32, @@ -58,4 +62,5 @@ print :: proc #overloaded { print_f64arr, print_str, + print_str_len, } diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 05b17017..dd521cf1 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -10,6 +10,7 @@ CHECK(statement, AstNode* stmt); CHECK(return, AstReturn* retnode); CHECK(if, AstIf* ifnode); CHECK(while, AstWhile* whilenode); +CHECK(for, AstFor* fornode); CHECK(call, AstCall* call); CHECK(binaryop, AstBinaryOp* binop); CHECK(expression, AstTyped* expr); @@ -77,6 +78,31 @@ CHECK(while, AstWhile* whilenode) { return check_statement(whilenode->stmt); } +CHECK(for, AstFor* fornode) { + check_expression(fornode->start); + check_expression(fornode->end); + if (fornode->step) check_expression(fornode->step); + + // HACK + if (fornode->start->type != &basic_types[Basic_Kind_I32]) { + onyx_message_add(Msg_Type_Literal, + fornode->start->token->pos, + "expected expression of type i32 for start"); + return 1; + } + + if (fornode->end->type != &basic_types[Basic_Kind_I32]) { + onyx_message_add(Msg_Type_Literal, + fornode->end->token->pos, + "expected expression of type i32 for end"); + return 1; + } + + check_statement(fornode->stmt); + + return 0; +} + static AstTyped* match_overloaded_function(AstCall* call, AstOverloadedFunction* ofunc) { bh_arr_each(AstTyped *, node, ofunc->overloads) { AstFunction* overload = (AstFunction *) *node; @@ -503,6 +529,7 @@ CHECK(statement, AstNode* stmt) { case Ast_Kind_Return: return check_return((AstReturn *) stmt); case Ast_Kind_If: return check_if((AstIf *) stmt); case Ast_Kind_While: return check_while((AstWhile *) stmt); + case Ast_Kind_For: return check_for((AstFor *) stmt); case Ast_Kind_Call: return check_call((AstCall *) stmt); case Ast_Kind_Block: return check_block((AstBlock *) stmt); diff --git a/src/onyxlex.c b/src/onyxlex.c index 8a1da57b..afc0b6c5 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -138,6 +138,7 @@ OnyxToken* onyx_get_token(OnyxTokenizer* tokenizer) { 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("for", 1, Token_Type_Keyword_For); LITERAL_TOKEN("break", 1, Token_Type_Keyword_Break); LITERAL_TOKEN("continue", 1, Token_Type_Keyword_Continue); LITERAL_TOKEN("true", 1, Token_Type_Literal_True); diff --git a/src/onyxparser.c b/src/onyxparser.c index 0bee666a..097af9cb 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -33,6 +33,7 @@ static AstTyped* parse_factor(OnyxParser* parser); static AstTyped* parse_expression(OnyxParser* parser); static AstIf* parse_if_stmt(OnyxParser* parser); static AstWhile* parse_while_stmt(OnyxParser* parser); +static AstFor* parse_for_stmt(OnyxParser* parser); static b32 parse_symbol_declaration(OnyxParser* parser, AstNode** ret); static AstReturn* parse_return_statement(OnyxParser* parser); static AstBlock* parse_block(OnyxParser* parser); @@ -484,6 +485,31 @@ static AstWhile* parse_while_stmt(OnyxParser* parser) { return while_node; } +static AstFor* parse_for_stmt(OnyxParser* parser) { + AstFor* for_node = make_node(AstFor, Ast_Kind_For); + for_node->token = expect_token(parser, Token_Type_Keyword_For); + + AstLocal* var_node = make_node(AstLocal, Ast_Kind_Local); + var_node->token = expect_token(parser, Token_Type_Symbol); + var_node->type_node = (AstType *) &basic_type_i32; + + for_node->var = var_node; + + expect_token(parser, ':'); + for_node->start = parse_expression(parser); + expect_token(parser, ','); + for_node->end = parse_expression(parser); + + if (parser->curr->type == ',') { + consume_token(parser); + for_node->step = parse_expression(parser); + } + + for_node->stmt = parse_statement(parser); + + return for_node; +} + // Returns 1 if the symbol was consumed. Returns 0 otherwise // ret is set to the statement to insert // : = @@ -605,6 +631,11 @@ static AstNode* parse_statement(OnyxParser* parser) { retval = (AstNode *) parse_while_stmt(parser); break; + case Token_Type_Keyword_For: + needs_semicolon = 0; + retval = (AstNode *) parse_for_stmt(parser); + break; + case Token_Type_Keyword_Break: retval = make_node(AstNode, Ast_Kind_Break); retval->token = expect_token(parser, Token_Type_Keyword_Break); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 00b81658..f504daa3 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -14,6 +14,7 @@ static void symres_expression(AstTyped** expr); static void symres_return(AstReturn* ret); static void symres_if(AstIf* ifnode); static void symres_while(AstWhile* whilenode); +static void symres_for(AstFor* fornode); static void symres_statement_chain(AstNode* walker, AstNode** trailer); static b32 symres_statement(AstNode* stmt); static void symres_block(AstBlock* block); @@ -214,6 +215,21 @@ static void symres_while(AstWhile* whilenode) { symres_statement(whilenode->stmt); } +static void symres_for(AstFor* fornode) { + fornode->scope = scope_create(semstate.node_allocator, semstate.curr_scope); + scope_enter(fornode->scope); + + symbol_introduce(fornode->var->token, (AstNode *) fornode->var); + + symres_expression(&fornode->start); + symres_expression(&fornode->end); + if (fornode->step) symres_expression(&fornode->step); + + symres_statement(fornode->stmt); + + scope_leave(); +} + // NOTE: Returns 1 if the statment should be removed static b32 symres_statement(AstNode* stmt) { switch (stmt->kind) { @@ -221,6 +237,7 @@ static b32 symres_statement(AstNode* stmt) { case Ast_Kind_Return: symres_return((AstReturn *) stmt); return 0; case Ast_Kind_If: symres_if((AstIf *) stmt); return 0; case Ast_Kind_While: symres_while((AstWhile *) stmt); return 0; + case Ast_Kind_For: symres_for((AstFor *) stmt); return 0; case Ast_Kind_Call: symres_call((AstCall *) stmt); return 0; case Ast_Kind_Argument: symres_expression((AstTyped **) &((AstArgument *)stmt)->value); return 0; case Ast_Kind_Block: symres_block((AstBlock *) stmt); return 0; diff --git a/src/onyxutils.c b/src/onyxutils.c index 06ed78a5..541accf5 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -43,6 +43,7 @@ static const char* ast_node_names[] = { "ARRAY_ACCESS", "IF", + "FOR", "WHILE", "BREAK", "CONTINUE", diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 536a0c8a..972db89f 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -232,6 +232,7 @@ COMPILE_FUNC(statement, AstNode* stmt); COMPILE_FUNC(assignment, AstBinaryOp* assign); COMPILE_FUNC(if, AstIf* if_node); COMPILE_FUNC(while, AstWhile* while_node); +COMPILE_FUNC(for, AstFor* for_node); COMPILE_FUNC(binop, AstBinaryOp* binop); COMPILE_FUNC(unaryop, AstUnaryOp* unop); COMPILE_FUNC(call, AstCall* call); @@ -303,6 +304,7 @@ COMPILE_FUNC(statement, AstNode* stmt) { case Ast_Kind_Return: compile_return(mod, &code, (AstReturn *) stmt); break; case Ast_Kind_If: compile_if(mod, &code, (AstIf *) stmt); break; case Ast_Kind_While: compile_while(mod, &code, (AstWhile *) stmt); break; + case Ast_Kind_For: compile_for(mod, &code, (AstFor *) stmt); break; case Ast_Kind_Break: compile_structured_jump(mod, &code, 0); break; case Ast_Kind_Continue: compile_structured_jump(mod, &code, 1); break; case Ast_Kind_Block: compile_block(mod, &code, (AstBlock *) stmt); break; @@ -431,6 +433,52 @@ COMPILE_FUNC(while, AstWhile* while_node) { *pcode = code; } +COMPILE_FUNC(for, AstFor* for_node) { + bh_arr(WasmInstruction) code = *pcode; + + i32 it_idx = (i32) bh_imap_get(&mod->local_map, (u64) for_node->var); + + compile_expression(mod, &code, for_node->start); + WID(WI_LOCAL_SET, it_idx); + + WID(WI_BLOCK_START, 0x40); + WID(WI_LOOP_START, 0x40); + + bh_arr_push(mod->structured_jump_target, 1); + bh_arr_push(mod->structured_jump_target, 2); + + WID(WI_LOCAL_GET, it_idx); + compile_expression(mod, &code, for_node->end); + WI(WI_I32_GE_S); + WID(WI_COND_JUMP, 0x01); + + if (for_node->stmt->kind == Ast_Kind_Block) { + forll (AstNode, stmt, ((AstBlock *) for_node->stmt)->body, next) { + compile_statement(mod, &code, stmt); + } + } else { + compile_statement(mod, &code, for_node->stmt); + } + + if (for_node->step == NULL) + WID(WI_I32_CONST, 0x01); + else + compile_expression(mod, &code, for_node->step); + WID(WI_LOCAL_GET, it_idx); + WI(WI_I32_ADD); + WID(WI_LOCAL_SET, it_idx); + + bh_arr_pop(mod->structured_jump_target); + bh_arr_pop(mod->structured_jump_target); + + WID(WI_JUMP, 0x00); + + WI(WI_LOOP_END); + WI(WI_BLOCK_END); + + *pcode = code; +} + // NOTE: These need to be in the same order as // the OnyxBinaryOp enum static const WasmInstructionType binop_map[][4] = { @@ -1517,6 +1565,7 @@ static void output_instruction(WasmInstruction* instr, bh_buffer* buff) { switch (instr->type) { case WI_LOCAL_GET: case WI_LOCAL_SET: + case WI_LOCAL_TEE: case WI_GLOBAL_GET: case WI_GLOBAL_SET: case WI_CALL: -- 2.25.1