From 9915980b1d6bbe0b7c899be2b570c03ceffd0288 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 19 Jul 2020 10:48:51 -0500 Subject: [PATCH] Added strings to the language Currently they are null-terminated ^u8 --- include/onyxastnodes.h | 15 ++-- include/onyxwasm.h | 13 +++ onyx | Bin 256320 -> 259144 bytes progs/arrays.onyx | 15 +++- src/onyx.c | 7 +- src/onyxchecker.c | 9 +- src/onyxparser.c | 55 ++++++++----- src/onyxsymres.c | 9 +- src/onyxutils.c | 3 +- src/onyxwasm.c | 181 +++++++++++++++++++++++++++++------------ 10 files changed, 219 insertions(+), 88 deletions(-) diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index fcd257d4..8aec4720 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -11,6 +11,7 @@ typedef struct AstTyped AstTyped; typedef struct AstBinOp AstBinaryOp; typedef struct AstUnaryOp AstUnaryOp; typedef struct AstNumLit AstNumLit; +typedef struct AstStrLit AstStrLit; typedef struct AstLocal AstLocal; typedef struct AstCall AstCall; typedef struct AstIntrinsicCall AstIntrinsicCall; @@ -69,7 +70,8 @@ typedef enum AstKind { Ast_Kind_Function_Type, Ast_Kind_Type_End, - Ast_Kind_Literal, + Ast_Kind_NumLit, + Ast_Kind_StrLit, Ast_Kind_Param, Ast_Kind_Argument, Ast_Kind_Call, @@ -194,6 +196,7 @@ struct AstTyped AstTyped_members; struct AstBinOp { AstTyped_base; BinaryOp operation; AstTyped *left, *right; }; struct AstUnaryOp { AstTyped_base; UnaryOp operation; AstTyped *expr; }; struct AstNumLit { AstTyped_base; union { i32 i; i64 l; f32 f; f64 d; } value; }; +struct AstStrLit { AstTyped_base; u64 addr; }; 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; }; @@ -279,6 +282,7 @@ typedef enum EntityType { Entity_Type_Function, Entity_Type_Overloaded_Function, Entity_Type_Global, + Entity_Type_String_Literal, Entity_Type_Expression } EntityType; @@ -286,10 +290,11 @@ typedef struct Entity { EntityType type; union { - AstFunction* function; - AstOverloadedFunction* overloaded_function; - AstGlobal* global; - AstTyped* expr; + AstFunction *function; + AstOverloadedFunction *overloaded_function; + AstGlobal *global; + AstTyped *expr; + AstStrLit *strlit; }; } Entity; diff --git a/include/onyxwasm.h b/include/onyxwasm.h index fe6aa6b4..863ee1fa 100644 --- a/include/onyxwasm.h +++ b/include/onyxwasm.h @@ -221,6 +221,12 @@ typedef enum WasmInstructionType { WI_I64_REINTERPRET_F64 = 0xBD, WI_F32_REINTERPRET_I32 = 0xBE, WI_F64_REINTERPRET_I64 = 0xBF, + + WI_I32_EXTEND_8_S = 0xC0, + WI_I32_EXTEND_16_S = 0xC1, + WI_I64_EXTEND_8_S = 0xC2, + WI_I64_EXTEND_16_S = 0xC3, + WI_I64_EXTEND_32_S = 0xC4, } WasmInstructionType; typedef union { @@ -275,6 +281,11 @@ typedef struct WasmImport { OnyxToken *mod, *name; } WasmImport; +typedef struct WasmDatum { + u32 offset, length; + ptr data; +} WasmDatum; + typedef struct OnyxWasmModule { bh_allocator allocator; OnyxMessages* msgs; @@ -297,6 +308,7 @@ typedef struct OnyxWasmModule { bh_table(WasmExport) exports; bh_arr(WasmGlobal) globals; bh_arr(WasmFunc) funcs; + bh_arr(WasmDatum) data; u32 next_type_idx; u32 export_count; @@ -304,6 +316,7 @@ typedef struct OnyxWasmModule { u32 next_foreign_func_idx; u32 next_global_idx; u32 next_foreign_global_idx; + u32 next_datum_offset; } OnyxWasmModule; OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc, OnyxMessages* msgs); diff --git a/onyx b/onyx index 0791ddf04cb41f4c72f037c9e51e4538d381c291..c60bce6eacbfad42fe9f260901f3ad5ef65ef89e 100755 GIT binary patch delta 101754 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 delta 97319 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�n>HD^^UU*f&Rf~`nm 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 diff --git a/progs/arrays.onyx b/progs/arrays.onyx index ed01b721..b10b6deb 100644 --- a/progs/arrays.onyx +++ b/progs/arrays.onyx @@ -39,8 +39,21 @@ sort :: proc (src: ^i32, len: i32) { } } +other_str :: "I can't believe this \n actually fricken worked!"; + +str_test :: proc #export "main" { + hello_str :: "Hello World!"; + + walker := other_str; + while walker[0] != 0 as u8 { + print(walker[0] as i32); + + walker = (walker as i32 + 1) as ^u8; + } +} + // Don't need to bind this function to a symbol -proc #export "main" { +proc #export "main2" { print(min(10.0, 12.0)); global_arr = 0 as ^i32; diff --git a/src/onyx.c b/src/onyx.c index 028eafc8..59963553 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -183,7 +183,7 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res bh_arr_each(AstNode *, node, results->nodes_to_process) { Entity ent = { Entity_Type_Unknown }; - AstKind nkind = (*node)->kind; + AstKind nkind = (*node)->kind; switch (nkind) { case Ast_Kind_Function: ent.type = Entity_Type_Function; @@ -200,6 +200,11 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res ent.global = (AstGlobal *) *node; break; + case Ast_Kind_StrLit: + ent.type = Entity_Type_String_Literal; + ent.strlit = (AstStrLit *) *node; + break; + default: ent.type = Entity_Type_Expression; ent.expr = (AstTyped *) *node; diff --git a/src/onyxchecker.c b/src/onyxchecker.c index e1c215ca..abaf0ede 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -322,7 +322,7 @@ CHECK(binaryop, AstBinaryOp* binop) { onyx_message_add(state->msgs, ONYX_MESSAGE_TYPE_UNRESOLVED_TYPE, binop->token->pos, - NULL, 0); + binop->left->token->text, binop->left->token->length); return 1; } @@ -330,7 +330,7 @@ CHECK(binaryop, AstBinaryOp* binop) { onyx_message_add(state->msgs, ONYX_MESSAGE_TYPE_UNRESOLVED_TYPE, binop->token->pos, - NULL, 0); + binop->right->token->text, binop->right->token->length); return 1; } @@ -446,12 +446,13 @@ CHECK(expression, AstTyped* expr) { expr->type = ((AstArgument *) expr)->value->type; break; - case Ast_Kind_Literal: + case Ast_Kind_NumLit: // NOTE: Literal types should have been decided // in the parser (for now). assert(expr->type != NULL); break; + case Ast_Kind_StrLit: break; case Ast_Kind_Function: break; case Ast_Kind_Overloaded_Function: break; @@ -648,6 +649,8 @@ void onyx_type_check(SemState* state, ProgramInfo* program) { if (check_expression(state, entity->expr)) return; break; + case Entity_Type_String_Literal: break; + default: DEBUG_HERE; break; } } diff --git a/src/onyxparser.c b/src/onyxparser.c index 641c32d9..d9260851 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -87,7 +87,7 @@ static OnyxToken* expect_token(OnyxParser* parser, TokenType token_type) { } static AstNumLit* parse_numeric_literal(OnyxParser* parser) { - AstNumLit* lit_node = make_node(AstNumLit, Ast_Kind_Literal); + AstNumLit* lit_node = make_node(AstNumLit, Ast_Kind_NumLit); lit_node->token = expect_token(parser, Token_Type_Literal_Numeric); lit_node->flags |= Ast_Flag_Comptime; lit_node->value.l = 0ll; @@ -230,25 +230,39 @@ static AstTyped* parse_factor(OnyxParser* parser) { retval = (AstTyped *) parse_numeric_literal(parser); break; - case Token_Type_Literal_True: - { - AstNumLit* bool_node = make_node(AstNumLit, Ast_Kind_Literal); - bool_node->type_node = (AstType *) &basic_type_bool; - bool_node->token = expect_token(parser, Token_Type_Literal_True); - bool_node->value.i = 1; - retval = (AstTyped *) bool_node; - break; - } + case Token_Type_Literal_String: { + AstPointerType* str_type = make_node(AstPointerType, Ast_Kind_Pointer_Type); + str_type->flags |= Basic_Flag_Pointer; + str_type->elem = (AstType *) &basic_type_u8; - case Token_Type_Literal_False: - { - AstNumLit* bool_node = make_node(AstNumLit, Ast_Kind_Literal); - bool_node->type_node = (AstType *) &basic_type_bool; - bool_node->token = expect_token(parser, Token_Type_Literal_False); - bool_node->value.i = 0; - retval = (AstTyped *) bool_node; - break; - } + AstStrLit* str_node = make_node(AstStrLit, Ast_Kind_StrLit); + str_node->token = expect_token(parser, Token_Type_Literal_String); + str_node->type_node = (AstType *) str_type; + str_node->addr = 0; + + bh_arr_push(parser->results.nodes_to_process, (AstNode *) str_node); + + retval = (AstTyped *) str_node; + break; + } + + case Token_Type_Literal_True: { + AstNumLit* bool_node = make_node(AstNumLit, Ast_Kind_NumLit); + bool_node->type_node = (AstType *) &basic_type_bool; + bool_node->token = expect_token(parser, Token_Type_Literal_True); + bool_node->value.i = 1; + retval = (AstTyped *) bool_node; + break; + } + + case Token_Type_Literal_False: { + AstNumLit* bool_node = make_node(AstNumLit, Ast_Kind_NumLit); + bool_node->type_node = (AstType *) &basic_type_bool; + bool_node->token = expect_token(parser, Token_Type_Literal_False); + bool_node->value.i = 0; + retval = (AstTyped *) bool_node; + break; + } default: onyx_message_add(parser->msgs, @@ -941,7 +955,8 @@ static AstNode* parse_top_level_statement(OnyxParser* parser) { if (global->exported_name == NULL) global->exported_name = symbol; - } else if (node->kind != Ast_Kind_Overloaded_Function) { + } else if (node->kind != Ast_Kind_Overloaded_Function + && node->kind != Ast_Kind_StrLit) { // HACK bh_arr_push(parser->results.nodes_to_process, (AstNode *) node); } diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 179dc9a1..5b03638b 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -158,12 +158,8 @@ static void symres_expression(SemState* state, AstTyped** expr) { symres_expression(state, &((AstBinaryOp *)(*expr))->right); break; - case Ast_Kind_Unary_Op: - symres_unaryop(state, (AstUnaryOp **) expr); - break; - + case Ast_Kind_Unary_Op: symres_unaryop(state, (AstUnaryOp **) expr); break; case Ast_Kind_Call: symres_call(state, (AstCall *) *expr); break; - case Ast_Kind_Block: symres_block(state, (AstBlock *) *expr); break; case Ast_Kind_Symbol: @@ -174,7 +170,8 @@ static void symres_expression(SemState* state, AstTyped** expr) { case Ast_Kind_Local: break; case Ast_Kind_Function: - case Ast_Kind_Literal: + case Ast_Kind_NumLit: + case Ast_Kind_StrLit: (*expr)->type_node = symres_type(state, (*expr)->type_node); break; diff --git a/src/onyxutils.c b/src/onyxutils.c index 96163faf..1138f7cc 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -32,7 +32,8 @@ static const char* ast_node_names[] = { "FUNCTION_TYPE", "TYPE_END (BAD)" - "LITERAL", + "NUMERIC LITERAL", + "STRING LITERAL", "PARAM", "ARGUMENT", "CALL", diff --git a/src/onyxwasm.c b/src/onyxwasm.c index d8040ae7..7117648d 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -634,70 +634,62 @@ COMPILE_FUNC(expression, AstTyped* expr) { bh_arr(WasmInstruction) code = *pcode; switch (expr->kind) { - case Ast_Kind_Binary_Op: - compile_binop(mod, &code, (AstBinaryOp *) expr); - break; - - case Ast_Kind_Unary_Op: - compile_unaryop(mod, &code, (AstUnaryOp *) expr); - break; - case Ast_Kind_Local: - case Ast_Kind_Param: - { - i32 localidx = (i32) bh_imap_get(&mod->local_map, (u64) expr); + case Ast_Kind_Param: { + i32 localidx = (i32) bh_imap_get(&mod->local_map, (u64) expr); - WID(WI_LOCAL_GET, localidx); - break; - } - - case Ast_Kind_Global: - { - i32 globalidx = (i32) bh_imap_get(&mod->index_map, (u64) expr); + WID(WI_LOCAL_GET, localidx); + break; + } - WID(WI_GLOBAL_GET, globalidx); - break; - } + case Ast_Kind_Global: { + i32 globalidx = (i32) bh_imap_get(&mod->index_map, (u64) expr); - case Ast_Kind_Literal: - { - AstNumLit* lit = (AstNumLit *) expr; - WasmType lit_type = onyx_type_to_wasm_type(lit->type); - WasmInstruction instr = { WI_NOP, 0 }; - - if (lit_type == WASM_TYPE_INT32) { - instr.type = WI_I32_CONST; - instr.data.i1 = lit->value.i; - } else if (lit_type == WASM_TYPE_INT64) { - instr.type = WI_I64_CONST; - instr.data.l = lit->value.l; - } else if (lit_type == WASM_TYPE_FLOAT32) { - instr.type = WI_F32_CONST; - instr.data.f = lit->value.f; - } else if (lit_type == WASM_TYPE_FLOAT64) { - instr.type = WI_F64_CONST; - instr.data.d = lit->value.d; - } + WID(WI_GLOBAL_GET, globalidx); + break; + } - bh_arr_push(code, instr); - break; + case Ast_Kind_NumLit: { + AstNumLit* lit = (AstNumLit *) expr; + WasmType lit_type = onyx_type_to_wasm_type(lit->type); + WasmInstruction instr = { WI_NOP, 0 }; + + if (lit_type == WASM_TYPE_INT32) { + instr.type = WI_I32_CONST; + instr.data.i1 = lit->value.i; + } else if (lit_type == WASM_TYPE_INT64) { + instr.type = WI_I64_CONST; + instr.data.l = lit->value.l; + } else if (lit_type == WASM_TYPE_FLOAT32) { + instr.type = WI_F32_CONST; + instr.data.f = lit->value.f; + } else if (lit_type == WASM_TYPE_FLOAT64) { + instr.type = WI_F64_CONST; + instr.data.d = lit->value.d; } - case Ast_Kind_Block: compile_block(mod, &code, (AstBlock *) expr); break; - - case Ast_Kind_Call: - compile_call(mod, &code, (AstCall *) expr); + bh_arr_push(code, instr); break; + } - case Ast_Kind_Intrinsic_Call: - compile_intrinsic_call(mod, &code, (AstIntrinsicCall *) expr); + case Ast_Kind_StrLit: { + WID(WI_I32_CONST, ((AstStrLit *) expr)->addr); break; + } + + case Ast_Kind_Block: compile_block(mod, &code, (AstBlock *) expr); break; + case Ast_Kind_Call: compile_call(mod, &code, (AstCall *) expr); break; + case Ast_Kind_Intrinsic_Call: compile_intrinsic_call(mod, &code, (AstIntrinsicCall *) expr); break; + case Ast_Kind_Binary_Op: compile_binop(mod, &code, (AstBinaryOp *) expr); break; + case Ast_Kind_Unary_Op: compile_unaryop(mod, &code, (AstUnaryOp *) expr); break; case Ast_Kind_Array_Access: { AstArrayAccess* aa = (AstArrayAccess *) expr; - WID(WI_I32_CONST, aa->elem_size); compile_expression(mod, &code, aa->expr); - WI(WI_I32_MUL); + if (aa->elem_size != 1) { + WID(WI_I32_CONST, aa->elem_size); + WI(WI_I32_MUL); + } compile_expression(mod, &code, aa->addr); WI(WI_I32_ADD); @@ -981,6 +973,47 @@ static void compile_global(OnyxWasmModule* module, AstGlobal* global) { bh_arr_push(module->globals, glob); } +static void compile_string_literal(OnyxWasmModule* mod, AstStrLit* strlit) { + + // NOTE: Allocating more than necessary, but there are no cases + // in a string literal that create more bytes than already + // existed. You can create less however ('\n' => 0x0a). + i8* strdata = bh_alloc_array(global_heap_allocator, i8, strlit->token->length + 1); + + i8* src = (i8 *) strlit->token->text; + i8* des = strdata; + for (i32 i = 0, len = strlit->token->length; i < len; i++) { + if (src[i] == '\\') { + i++; + switch (src[i]) { + case 'n': *des++ = '\n'; break; + case 't': *des++ = '\t'; break; + case 'r': *des++ = '\r'; break; + case 'v': *des++ = '\v'; break; + case 'e': *des++ = '\e'; break; + default: *des++ = '\\'; + *des++ = src[i]; + } + } else { + *des++ = src[i]; + } + } + *des++ = '\0'; + + u32 length = (u32) (des - strdata); + + WasmDatum datum = { + .offset = mod->next_datum_offset, + .length = length, + .data = strdata, + }; + + strlit->addr = (u32) mod->next_datum_offset, + mod->next_datum_offset += length; + + bh_arr_push(mod->data, datum); +} + OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc, OnyxMessages* msgs) { OnyxWasmModule module = { .allocator = alloc, @@ -1003,6 +1036,9 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc, OnyxMessages* msgs) { .next_global_idx = 0, .next_foreign_global_idx = 0, + .data = NULL, + .next_datum_offset = 0, + .structured_jump_target = NULL, }; @@ -1010,6 +1046,7 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc, OnyxMessages* msgs) { bh_arr_new(alloc, module.funcs, 4); bh_arr_new(alloc, module.imports, 4); bh_arr_new(alloc, module.globals, 4); + bh_arr_new(alloc, module.data, 4); // NOTE: 16 is probably needlessly large bh_arr_new(global_heap_allocator, module.structured_jump_target, 16); @@ -1025,7 +1062,6 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc, OnyxMessages* msgs) { } void onyx_wasm_module_compile(OnyxWasmModule* module, ProgramInfo* program) { - module->next_func_idx = program->foreign_func_count; module->next_global_idx = program->foreign_global_count; @@ -1056,10 +1092,17 @@ void onyx_wasm_module_compile(OnyxWasmModule* module, ProgramInfo* program) { break; } + case Entity_Type_String_Literal: { + compile_string_literal(module, (AstStrLit *) entity->strlit); + } + default: break; } } + + + // NOTE: Then, compile everything bh_arr_each(Entity, entity, program->entities) { switch (entity->type) { @@ -1516,6 +1559,41 @@ static i32 output_codesection(OnyxWasmModule* module, bh_buffer* buff) { return buff->length - prev_len; } +static i32 output_datasection(OnyxWasmModule* module, bh_buffer* buff) { + i32 prev_len = buff->length; + + bh_buffer_write_byte(buff, WASM_SECTION_ID_DATA); + + bh_buffer vec_buff; + bh_buffer_init(&vec_buff, buff->allocator, 128); + + i32 leb_len; + u8* leb = uint_to_uleb128((u64) bh_arr_length(module->data), &leb_len); + bh_buffer_append(&vec_buff, leb, leb_len); + + bh_arr_each(WasmDatum, datum, module->data) { + // NOTE: 0x00 memory index + bh_buffer_write_byte(&vec_buff, 0x00); + + bh_buffer_write_byte(&vec_buff, WI_I32_CONST); + leb = int_to_leb128((i64) datum->offset, &leb_len); + bh_buffer_append(&vec_buff, leb, leb_len); + bh_buffer_write_byte(&vec_buff, WI_BLOCK_END); + + leb = uint_to_uleb128((u64) datum->length, &leb_len); + bh_buffer_append(&vec_buff, leb, leb_len); + fori (i, 0, datum->length - 1) bh_buffer_write_byte(&vec_buff, ((u8 *) datum->data)[i]); + } + + leb = uint_to_uleb128((u64) (vec_buff.length), &leb_len); + bh_buffer_append(buff, leb, leb_len); + + bh_buffer_concat(buff, vec_buff); + bh_buffer_free(&vec_buff); + + return buff->length - prev_len; +} + void onyx_wasm_module_write_to_file(OnyxWasmModule* module, bh_file file) { bh_buffer master_buffer; bh_buffer_init(&master_buffer, global_heap_allocator, 128); @@ -1530,6 +1608,7 @@ void onyx_wasm_module_write_to_file(OnyxWasmModule* module, bh_file file) { output_exportsection(module, &master_buffer); output_startsection(module, &master_buffer); output_codesection(module, &master_buffer); + output_datasection(module, &master_buffer); bh_file_write(&file, master_buffer.data, master_buffer.length); } -- 2.25.1