diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index c66f9005..54c38c44 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -279,8 +279,8 @@ few_params1(Pair *pairs, int count, Function_No_Params_Type *no_params_type){ } static void -type_coverage_eval_tests(void){ - +type_coverage_eval_tests(void) +{ Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; Basics_Stdint basics_stdint = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; @@ -432,6 +432,10 @@ type_coverage_eval_tests(void){ OutputDebugStringA("\n"); } + const int32_t x1 = 3; + const int32_t y1 = -10; + const int32_t z1 = x1 + y1; + int x = (int)(Anonymous_D); } diff --git a/src/text_cache/text_cache.c b/src/text_cache/text_cache.c index a25dd24f..08e6af17 100644 --- a/src/text_cache/text_cache.c +++ b/src/text_cache/text_cache.c @@ -1377,6 +1377,7 @@ txt_token_array_from_string__disasm_x64_intel(Arena *arena, U64 *bytes_processed B32 string_is_char = 0; S32 brace_nest = 0; S32 paren_nest = 0; + S32 string_tick_nest = 0; for(U64 advance = 0; off <= string.size; off += advance) { U8 byte = (off+0 < string.size) ? string.str[off+0] : 0; @@ -1425,6 +1426,13 @@ txt_token_array_from_string__disasm_x64_intel(Arena *arena, U64 *bytes_processed advance = 1; string_is_char = 0; } + else if(byte == '`') + { + active_token_start_off = off; + active_token_kind = TXT_TokenKind_String; + advance = 1; + string_tick_nest += 1; + } else if(('0' <= byte && byte <= '9') || (byte == '.' && '0' <= next_byte && next_byte <= '9')) { active_token_start_off = off; @@ -1479,11 +1487,20 @@ txt_token_array_from_string__disasm_x64_intel(Arena *arena, U64 *bytes_processed }break; case TXT_TokenKind_String: { - U8 ender_byte = string_is_char ? '\'' : '"'; + U8 ender_byte = (string_tick_nest > 0 ? '\'' : + string_is_char ? '\'' + : '"'); if(!escaped && byte == ender_byte) { - ender_found = 1; - advance = 1; + if(string_tick_nest > 0) + { + string_tick_nest -= 1; + } + if(string_tick_nest == 0) + { + ender_found = 1; + advance = 1; + } } else if(escaped) { @@ -1495,6 +1512,10 @@ txt_token_array_from_string__disasm_x64_intel(Arena *arena, U64 *bytes_processed escaped = 1; advance = 1; } + else if(string_tick_nest > 0 && byte == '`') + { + string_tick_nest += 1; + } else { U8 byte_class = utf8_class[byte>>3];