#if !defined(FCODER_LEX_GEN_HAND_WRITTEN) #define FCODER_LEX_GEN_HAND_WRITTEN internal u64 lexeme_hash(u64 seed, u8 *ptr, u64 size){ u64 result = 0; for (u64 i = 0; i < size; i += 1, ptr += 1){ result ^= ((*ptr) ^ result*59) + seed; } return(result); } internal Lexeme_Table_Lookup lexeme_table_lookup(u64 *hash_array, String_Const_u8 *key_array, Lexeme_Table_Value *value_array, i32 slot_count, u64 seed, u8 *ptr, u64 size){ Lexeme_Table_Lookup result = {}; u64 hash = lexeme_hash(seed, ptr, size); u64 comparison_hash = hash | 1; i32 first_index = (hash % slot_count); i32 index = first_index; for (;;){ if (hash_array[index] == comparison_hash){ if (string_match(SCu8(ptr, size), key_array[index])){ result.found_match = true; result.base_kind = value_array[index].base_kind; result.sub_kind = value_array[index].sub_kind; break; } } else if (hash_array[index] == 0){ break; } index += 1; if (index == slot_count){ index = 0; } if (index == first_index){ break; } } return(result); } #endif u64 jai_main_keys_hash_array[89] = { 0xac8da306275a3d43,0x665a25aa3b756401,0x0000000000000000,0x0000000000000000, 0xb1e237e936c3447d,0xb1e237e936fa66fd,0x0000000000000000,0xb1e237e935117d87, 0xac8da306275d1653,0x975f946c0976900b,0x0000000000000000,0x0000000000000000, 0x665ad32687d670fb,0x0000000000000000,0xb87f5d1e1491cffb,0x0000000000000000, 0x0000000000000000,0xac8da306275de2c9,0x0000000000000000,0x975f946c09769443, 0xac8da306275dfe43,0xac8da30627581ad5,0xe60fd2aaa2d8fea5,0x0000000000000000, 0x975f946c0976901b,0xd6e62de8686a297b,0xe60fd2aa0eefd08f,0x0000000000000000, 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x975f946c09769559, 0x0000000000000000,0x89e0a030f49fb443,0xac8da306275a56c5,0x0000000000000000, 0x0000000000000000,0x0000000000000000,0x89e361d6d477dc99,0x0000000000000000, 0x0000000000000000,0xb1e237e936ccaf47,0xb87f5d1e91f824d1,0xe60fd2aa03f48729, 0xe60fd2aa0c43a4cd,0x0000000000000000,0x0000000000000000,0x975f946c097691ef, 0xac8da306275ab1eb,0xb1e237e936fa66cf,0x0000000000000000,0xe60fd2aaa969843f, 0xac8da306275de345,0x89e3641bfff00935,0xb1e237e9350ff699,0x665ad3fbd4976631, 0x0000000000000000,0xb87f5d7ca9937091,0x665ad3517fc73f73,0xac8da306275dfe69, 0x0000000000000000,0x665ad3416b60807b,0x0000000000000000,0xe60fd2aa9f8815d7, 0xb1e237e936ec2a63,0xb1e237e936cc5ca1,0x0000000000000000,0x0000000000000000, 0x0000000000000000,0xb87f5d1e90910b39,0xac8da306275dfe75,0xac8da306275985a1, 0xb87f5d7d250cd24d,0x0000000000000000,0x0000000000000000,0xb1e237e936f1e2c3, 0x0000000000000000,0x0000000000000000,0x975f946c0976952f,0x0000000000000000, 0x0000000000000000,0x665ad3517fc73b05,0x0000000000000000,0x0000000000000000, 0xb87f5d1e139deaef,0x0000000000000000,0xb87f5d1e1237098f,0xe60fd2aa9f34bb7d, 0x0000000000000000, }; u8 jai_main_keys_key_array_0[] = {0x69,0x6e,0x74,}; u8 jai_main_keys_key_array_1[] = {0x73,0x69,0x7a,0x65,0x5f,0x6f,0x66,}; u8 jai_main_keys_key_array_4[] = {0x65,0x6c,0x73,0x65,}; u8 jai_main_keys_key_array_5[] = {0x63,0x61,0x73,0x65,}; u8 jai_main_keys_key_array_7[] = {0x76,0x6f,0x69,0x64,}; u8 jai_main_keys_key_array_8[] = {0x75,0x36,0x34,}; u8 jai_main_keys_key_array_9[] = {0x73,0x38,}; u8 jai_main_keys_key_array_12[] = {0x64,0x65,0x66,0x61,0x75,0x6c,0x74,}; u8 jai_main_keys_key_array_14[] = {0x73,0x77,0x69,0x74,0x63,0x68,}; u8 jai_main_keys_key_array_17[] = {0x75,0x31,0x36,}; u8 jai_main_keys_key_array_19[] = {0x64,0x6f,}; u8 jai_main_keys_key_array_20[] = {0x73,0x36,0x34,}; u8 jai_main_keys_key_array_21[] = {0x41,0x6e,0x79,}; u8 jai_main_keys_key_array_22[] = {0x64,0x65,0x66,0x65,0x72,}; u8 jai_main_keys_key_array_24[] = {0x75,0x38,}; u8 jai_main_keys_key_array_25[] = {0x70,0x75,0x73,0x68,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,}; u8 jai_main_keys_key_array_26[] = {0x75,0x73,0x69,0x6e,0x67,}; u8 jai_main_keys_key_array_31[] = {0x69,0x66,}; u8 jai_main_keys_key_array_33[] = {0x69,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,}; u8 jai_main_keys_key_array_34[] = {0x66,0x6f,0x72,}; u8 jai_main_keys_key_array_38[] = {0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,}; u8 jai_main_keys_key_array_41[] = {0x62,0x6f,0x6f,0x6c,}; u8 jai_main_keys_key_array_42[] = {0x72,0x65,0x6d,0x6f,0x76,0x65,}; u8 jai_main_keys_key_array_43[] = {0x75,0x6e,0x69,0x6f,0x6e,}; u8 jai_main_keys_key_array_44[] = {0x77,0x68,0x69,0x6c,0x65,}; u8 jai_main_keys_key_array_47[] = {0x78,0x78,}; u8 jai_main_keys_key_array_48[] = {0x6e,0x65,0x77,}; u8 jai_main_keys_key_array_49[] = {0x63,0x61,0x73,0x74,}; u8 jai_main_keys_key_array_51[] = {0x62,0x72,0x65,0x61,0x6b,}; u8 jai_main_keys_key_array_52[] = {0x75,0x33,0x32,}; u8 jai_main_keys_key_array_53[] = {0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,}; u8 jai_main_keys_key_array_54[] = {0x74,0x72,0x75,0x65,}; u8 jai_main_keys_key_array_55[] = {0x61,0x6c,0x69,0x67,0x6e,0x6f,0x66,}; u8 jai_main_keys_key_array_57[] = {0x69,0x6e,0x6c,0x69,0x6e,0x65,}; u8 jai_main_keys_key_array_58[] = {0x66,0x6c,0x6f,0x61,0x74,0x36,0x34,}; u8 jai_main_keys_key_array_59[] = {0x73,0x31,0x36,}; u8 jai_main_keys_key_array_61[] = {0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,}; u8 jai_main_keys_key_array_63[] = {0x66,0x6c,0x6f,0x61,0x74,}; u8 jai_main_keys_key_array_64[] = {0x6e,0x75,0x6c,0x6c,}; u8 jai_main_keys_key_array_65[] = {0x65,0x6e,0x75,0x6d,}; u8 jai_main_keys_key_array_69[] = {0x72,0x65,0x74,0x75,0x72,0x6e,}; u8 jai_main_keys_key_array_70[] = {0x73,0x33,0x32,}; u8 jai_main_keys_key_array_71[] = {0x2d,0x2d,0x2d,}; u8 jai_main_keys_key_array_72[] = {0x64,0x65,0x6c,0x65,0x74,0x65,}; u8 jai_main_keys_key_array_75[] = {0x67,0x6f,0x74,0x6f,}; u8 jai_main_keys_key_array_78[] = {0x69,0x74,}; u8 jai_main_keys_key_array_81[] = {0x66,0x6c,0x6f,0x61,0x74,0x33,0x32,}; u8 jai_main_keys_key_array_84[] = {0x73,0x74,0x72,0x69,0x6e,0x67,}; u8 jai_main_keys_key_array_86[] = {0x73,0x74,0x72,0x75,0x63,0x74,}; u8 jai_main_keys_key_array_87[] = {0x66,0x61,0x6c,0x73,0x65,}; String_Const_u8 jai_main_keys_key_array[89] = { {jai_main_keys_key_array_0, 3}, {jai_main_keys_key_array_1, 7}, {0, 0}, {0, 0}, {jai_main_keys_key_array_4, 4}, {jai_main_keys_key_array_5, 4}, {0, 0}, {jai_main_keys_key_array_7, 4}, {jai_main_keys_key_array_8, 3}, {jai_main_keys_key_array_9, 2}, {0, 0}, {0, 0}, {jai_main_keys_key_array_12, 7}, {0, 0}, {jai_main_keys_key_array_14, 6}, {0, 0}, {0, 0}, {jai_main_keys_key_array_17, 3}, {0, 0}, {jai_main_keys_key_array_19, 2}, {jai_main_keys_key_array_20, 3}, {jai_main_keys_key_array_21, 3}, {jai_main_keys_key_array_22, 5}, {0, 0}, {jai_main_keys_key_array_24, 2}, {jai_main_keys_key_array_25, 12}, {jai_main_keys_key_array_26, 5}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {jai_main_keys_key_array_31, 2}, {0, 0}, {jai_main_keys_key_array_33, 8}, {jai_main_keys_key_array_34, 3}, {0, 0}, {0, 0}, {0, 0}, {jai_main_keys_key_array_38, 8}, {0, 0}, {0, 0}, {jai_main_keys_key_array_41, 4}, {jai_main_keys_key_array_42, 6}, {jai_main_keys_key_array_43, 5}, {jai_main_keys_key_array_44, 5}, {0, 0}, {0, 0}, {jai_main_keys_key_array_47, 2}, {jai_main_keys_key_array_48, 3}, {jai_main_keys_key_array_49, 4}, {0, 0}, {jai_main_keys_key_array_51, 5}, {jai_main_keys_key_array_52, 3}, {jai_main_keys_key_array_53, 8}, {jai_main_keys_key_array_54, 4}, {jai_main_keys_key_array_55, 7}, {0, 0}, {jai_main_keys_key_array_57, 6}, {jai_main_keys_key_array_58, 7}, {jai_main_keys_key_array_59, 3}, {0, 0}, {jai_main_keys_key_array_61, 7}, {0, 0}, {jai_main_keys_key_array_63, 5}, {jai_main_keys_key_array_64, 4}, {jai_main_keys_key_array_65, 4}, {0, 0}, {0, 0}, {0, 0}, {jai_main_keys_key_array_69, 6}, {jai_main_keys_key_array_70, 3}, {jai_main_keys_key_array_71, 3}, {jai_main_keys_key_array_72, 6}, {0, 0}, {0, 0}, {jai_main_keys_key_array_75, 4}, {0, 0}, {0, 0}, {jai_main_keys_key_array_78, 2}, {0, 0}, {0, 0}, {jai_main_keys_key_array_81, 7}, {0, 0}, {0, 0}, {jai_main_keys_key_array_84, 6}, {0, 0}, {jai_main_keys_key_array_86, 6}, {jai_main_keys_key_array_87, 5}, {0, 0}, }; Lexeme_Table_Value jai_main_keys_value_array[89] = { {4, TokenJaiKind_Int}, {4, TokenJaiKind_SizeOf}, {0, 0}, {0, 0}, {4, TokenJaiKind_Else}, {4, TokenJaiKind_Case}, {0, 0}, {4, TokenJaiKind_Void}, {4, TokenJaiKind_U64}, {4, TokenJaiKind_S8}, {0, 0}, {0, 0}, {4, TokenJaiKind_Default}, {0, 0}, {4, TokenJaiKind_Switch}, {0, 0}, {0, 0}, {4, TokenJaiKind_U16}, {0, 0}, {4, TokenJaiKind_Do}, {4, TokenJaiKind_S64}, {4, TokenJaiKind_Any}, {4, TokenJaiKind_Defer}, {0, 0}, {4, TokenJaiKind_U8}, {4, TokenJaiKind_PushContext}, {4, TokenJaiKind_Using}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {4, TokenJaiKind_If}, {0, 0}, {4, TokenJaiKind_ItIndex}, {4, TokenJaiKind_For}, {0, 0}, {0, 0}, {0, 0}, {4, TokenJaiKind_Continue}, {0, 0}, {0, 0}, {4, TokenJaiKind_Bool}, {4, TokenJaiKind_Remove}, {4, TokenJaiKind_Union}, {4, TokenJaiKind_While}, {0, 0}, {0, 0}, {4, TokenJaiKind_Autocast}, {4, TokenJaiKind_New}, {4, TokenJaiKind_Cast}, {0, 0}, {4, TokenJaiKind_Break}, {4, TokenJaiKind_U32}, {4, TokenJaiKind_Operator}, {8, TokenJaiKind_LiteralTrue}, {4, TokenJaiKind_AlignOf}, {0, 0}, {4, TokenJaiKind_Inline}, {4, TokenJaiKind_Float64}, {4, TokenJaiKind_S16}, {0, 0}, {4, TokenJaiKind_Context}, {0, 0}, {4, TokenJaiKind_Float}, {4, TokenJaiKind_Null}, {4, TokenJaiKind_Enum}, {0, 0}, {0, 0}, {0, 0}, {4, TokenJaiKind_Return}, {4, TokenJaiKind_S32}, {4, TokenJaiKind_Uninitialized}, {4, TokenJaiKind_Delete}, {0, 0}, {0, 0}, {4, TokenJaiKind_Goto}, {0, 0}, {0, 0}, {4, TokenJaiKind_It}, {0, 0}, {0, 0}, {4, TokenJaiKind_Float32}, {0, 0}, {0, 0}, {4, TokenJaiKind_String}, {0, 0}, {4, TokenJaiKind_Struct}, {8, TokenJaiKind_LiteralFalse}, {0, 0}, }; i32 jai_main_keys_slot_count = 89; u64 jai_main_keys_seed = 0x58cb0283ffd83e33; u64 jai_pp_directives_hash_array[26] = { 0x6417a3d9dfc55afb,0x0000000000000000,0x8b4204d7b211c19b,0x8c86ef570f6ef2d7, 0x6417a3d9cb655ea1,0x0000000000000000,0x8c86ef5753b78877,0x8c86ef528e7779ed, 0x0000000000000000,0x8b4204d7b211c001,0xbc36b9ef7cd828fb,0x0000000000000000, 0x6417a3d9cbec23db,0x0000000000000000,0xb6b15ef12b1b4453,0x0000000000000000, 0x6417a3d9d9f9efdb,0x8b4204d7b3ae6191,0x0000000000000000,0x0000000000000000, 0x6417a3d9ded4990b,0xb6b15ee3161a294f,0x0000000000000000,0x8b4204d7b3afca57, 0x8c86ef5446fe6a5b,0x0000000000000000, }; u8 jai_pp_directives_key_array_0[] = {0x65,0x6e,0x64,0x69,0x66,}; u8 jai_pp_directives_key_array_2[] = {0x65,0x6c,0x69,0x66,}; u8 jai_pp_directives_key_array_3[] = {0x64,0x65,0x66,0x69,0x6e,0x65,}; u8 jai_pp_directives_key_array_4[] = {0x75,0x73,0x69,0x6e,0x67,}; u8 jai_pp_directives_key_array_6[] = {0x69,0x6d,0x70,0x6f,0x72,0x74,}; u8 jai_pp_directives_key_array_7[] = {0x70,0x72,0x61,0x67,0x6d,0x61,}; u8 jai_pp_directives_key_array_9[] = {0x65,0x6c,0x73,0x65,}; u8 jai_pp_directives_key_array_10[] = {0x69,0x66,}; u8 jai_pp_directives_key_array_12[] = {0x75,0x6e,0x64,0x65,0x66,}; u8 jai_pp_directives_key_array_14[] = {0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,}; u8 jai_pp_directives_key_array_16[] = {0x69,0x66,0x64,0x65,0x66,}; u8 jai_pp_directives_key_array_17[] = {0x6c,0x6f,0x61,0x64,}; u8 jai_pp_directives_key_array_20[] = {0x65,0x72,0x72,0x6f,0x72,}; u8 jai_pp_directives_key_array_21[] = {0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,}; u8 jai_pp_directives_key_array_23[] = {0x6c,0x69,0x6e,0x65,}; u8 jai_pp_directives_key_array_24[] = {0x69,0x66,0x6e,0x64,0x65,0x66,}; String_Const_u8 jai_pp_directives_key_array[26] = { {jai_pp_directives_key_array_0, 5}, {0, 0}, {jai_pp_directives_key_array_2, 4}, {jai_pp_directives_key_array_3, 6}, {jai_pp_directives_key_array_4, 5}, {0, 0}, {jai_pp_directives_key_array_6, 6}, {jai_pp_directives_key_array_7, 6}, {0, 0}, {jai_pp_directives_key_array_9, 4}, {jai_pp_directives_key_array_10, 2}, {0, 0}, {jai_pp_directives_key_array_12, 5}, {0, 0}, {jai_pp_directives_key_array_14, 7}, {0, 0}, {jai_pp_directives_key_array_16, 5}, {jai_pp_directives_key_array_17, 4}, {0, 0}, {0, 0}, {jai_pp_directives_key_array_20, 5}, {jai_pp_directives_key_array_21, 7}, {0, 0}, {jai_pp_directives_key_array_23, 4}, {jai_pp_directives_key_array_24, 6}, {0, 0}, }; Lexeme_Table_Value jai_pp_directives_value_array[26] = { {5, TokenJaiKind_PPEndIf}, {0, 0}, {5, TokenJaiKind_PPElIf}, {5, TokenJaiKind_PPDefine}, {5, TokenJaiKind_PPUsing}, {0, 0}, {5, TokenJaiKind_PPImport}, {5, TokenJaiKind_PPPragma}, {0, 0}, {5, TokenJaiKind_PPElse}, {5, TokenJaiKind_PPIf}, {0, 0}, {5, TokenJaiKind_PPUndef}, {0, 0}, {5, TokenJaiKind_PPVersion}, {0, 0}, {5, TokenJaiKind_PPIfDef}, {5, TokenJaiKind_PPLoad}, {0, 0}, {0, 0}, {5, TokenJaiKind_PPError}, {5, TokenJaiKind_PPInclude}, {0, 0}, {5, TokenJaiKind_PPLine}, {5, TokenJaiKind_PPIfNDef}, {0, 0}, }; i32 jai_pp_directives_slot_count = 26; u64 jai_pp_directives_seed = 0xd71e895862a43342; u64 jai_pp_keys_hash_array[2] = { 0x0000000000000000,0x6f10bd7e78f1fcc3, }; u8 jai_pp_keys_key_array_1[] = {0x64,0x65,0x66,0x69,0x6e,0x65,0x64,}; String_Const_u8 jai_pp_keys_key_array[2] = { {0, 0}, {jai_pp_keys_key_array_1, 7}, }; Lexeme_Table_Value jai_pp_keys_value_array[2] = { {0, 0}, {4, TokenJaiKind_PPDefined}, }; i32 jai_pp_keys_slot_count = 2; u64 jai_pp_keys_seed = 0x567b5b0cc8c5535f; struct Lex_State_Jai{ u32 flags_ZF0; u32 flags_KF0; u16 flags_ZB0; u8 *base; u8 *delim_first; u8 *delim_one_past_last; u8 *emit_ptr; u8 *ptr; u8 *opl_ptr; }; internal void lex_full_input_jai_init(Lex_State_Jai *state_ptr, String_Const_u8 input){ state_ptr->flags_ZF0 = 0; state_ptr->flags_KF0 = 0; state_ptr->flags_ZB0 = 0; state_ptr->base = input.str; state_ptr->delim_first = input.str; state_ptr->delim_one_past_last = input.str; state_ptr->emit_ptr = input.str; state_ptr->ptr = input.str; state_ptr->opl_ptr = input.str + input.size; } internal b32 lex_full_input_jai_breaks(Arena *arena, Token_List *list, Lex_State_Jai *state_ptr, u64 max){ b32 result = false; u64 emit_counter = 0; Lex_State_Jai state; block_copy_struct(&state, state_ptr); { state_label_1: // root if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EOF; token.kind = 0; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; result = true; goto end; } } switch (*state.ptr){ case 0x00:case 0x01:case 0x02:case 0x03:case 0x04:case 0x05:case 0x06: case 0x07:case 0x08:case 0x0e:case 0x0f:case 0x10:case 0x11:case 0x12: case 0x13:case 0x14:case 0x15:case 0x16:case 0x17:case 0x18:case 0x19: case 0x1a:case 0x1b:case 0x1c:case 0x1d:case 0x1e:case 0x1f:case 0x40: case 0x60:case 0x7f: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x09:case 0x0b:case 0x0c:case 0x0d:case 0x20: { if ((HasFlag(state.flags_KF0, 0x2))){ state.ptr += 1; goto state_label_4; // error_body } state.ptr += 1; goto state_label_3; // whitespace }break; case 0x0a: { state.ptr += 1; state.flags_ZB0 &= ~(0x1); state.flags_KF0 &= ~(0x1); state.flags_KF0 &= ~(0x2); goto state_label_3; // whitespace }break; case 0x21: { state.ptr += 1; goto state_label_58; // op stage }break; case 0x22: { if ((HasFlag(state.flags_KF0, 0x1))){ state.ptr += 1; goto state_label_26; // include_quotes } state.ptr += 1; goto state_label_32; // string }break; case 0x23: { if ((!HasFlag(state.flags_ZB0, 0x1))){ state.ptr += 1; goto state_label_23; // pp_directive_whitespace } state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; default: { state.ptr += 1; goto state_label_2; // identifier }break; case 0x25: { state.ptr += 1; goto state_label_63; // op stage }break; case 0x26: { state.ptr += 1; goto state_label_59; // op stage }break; case 0x27: { state.ptr += 1; state.flags_ZF0 |= 0x40; goto state_label_32; // string }break; case 0x28: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_ParenOp; token.kind = 13; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x29: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_ParenCl; token.kind = 14; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2a: { state.ptr += 1; goto state_label_62; // op stage }break; case 0x2b: { state.ptr += 1; goto state_label_61; // op stage }break; case 0x2c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Comma; token.kind = 15; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2d: { state.ptr += 1; goto state_label_54; // op stage }break; case 0x2e: { state.ptr += 1; goto state_label_6; // operator_or_fnumber_dot }break; case 0x2f: { state.ptr += 1; goto state_label_7; // operator_or_comment_slash }break; case 0x30: { state.ptr += 1; goto state_label_9; // znumber }break; case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37: case 0x38:case 0x39: { state.ptr += 1; goto state_label_8; // number }break; case 0x3a: { state.ptr += 1; goto state_label_53; // op stage }break; case 0x3b: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Semicolon; token.kind = 15; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3c: { if ((!HasFlag(state.flags_KF0, 0x1))){ state.ptr += 1; goto state_label_56; // op stage } state.ptr += 1; goto state_label_25; // include_pointy }break; case 0x3d: { state.ptr += 1; goto state_label_55; // op stage }break; case 0x3e: { state.ptr += 1; goto state_label_57; // op stage }break; case 0x3f: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Ternary; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c: { state.ptr += 1; state.flags_ZF0 |= 0x4; goto state_label_27; // pre_L }break; case 0x52: { state.ptr += 1; goto state_label_31; // pre_R }break; case 0x55: { state.ptr += 1; state.flags_ZF0 |= 0x20; goto state_label_29; // pre_U }break; case 0x5b: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BrackOp; token.kind = 13; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x5c: { state.ptr += 1; goto state_label_5; // backslash }break; case 0x5d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BrackCl; token.kind = 14; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x5e: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Xor; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x75: { state.ptr += 1; state.flags_ZF0 |= 0x10; goto state_label_28; // pre_u }break; case 0x7b: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BraceOp; token.kind = 11; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x7c: { state.ptr += 1; goto state_label_60; // op stage }break; case 0x7d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BraceCl; token.kind = 12; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x7e: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Tilde; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_2: // identifier if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZB0, 0x1)){ Lexeme_Table_Lookup lookup = lexeme_table_lookup(jai_pp_keys_hash_array, jai_pp_keys_key_array, jai_pp_keys_value_array, jai_pp_keys_slot_count, jai_pp_keys_seed, state.emit_ptr, token.size); if (lookup.found_match){ token.kind = lookup.base_kind; token.sub_kind = lookup.sub_kind; break; } } Lexeme_Table_Lookup lookup = lexeme_table_lookup(jai_main_keys_hash_array, jai_main_keys_key_array, jai_main_keys_value_array, jai_main_keys_slot_count, jai_main_keys_seed, state.emit_ptr, token.size); if (lookup.found_match){ token.kind = lookup.base_kind; token.sub_kind = lookup.sub_kind; break; } token.sub_kind = TokenJaiKind_Identifier; token.kind = 6; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ case 0x00:case 0x01:case 0x02:case 0x03:case 0x04:case 0x05:case 0x06: case 0x07:case 0x08:case 0x09:case 0x0a:case 0x0b:case 0x0c:case 0x0d: case 0x0e:case 0x0f:case 0x10:case 0x11:case 0x12:case 0x13:case 0x14: case 0x15:case 0x16:case 0x17:case 0x18:case 0x19:case 0x1a:case 0x1b: case 0x1c:case 0x1d:case 0x1e:case 0x1f:case 0x20:case 0x21:case 0x22: case 0x23:case 0x25:case 0x26:case 0x27:case 0x28:case 0x29:case 0x2a: case 0x2b:case 0x2c:case 0x2d:case 0x2e:case 0x2f:case 0x3a:case 0x3b: case 0x3c:case 0x3d:case 0x3e:case 0x3f:case 0x40:case 0x5b:case 0x5c: case 0x5d:case 0x5e:case 0x60:case 0x7b:case 0x7c:case 0x7d:case 0x7e: case 0x7f: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZB0, 0x1)){ Lexeme_Table_Lookup lookup = lexeme_table_lookup(jai_pp_keys_hash_array, jai_pp_keys_key_array, jai_pp_keys_value_array, jai_pp_keys_slot_count, jai_pp_keys_seed, state.emit_ptr, token.size); if (lookup.found_match){ token.kind = lookup.base_kind; token.sub_kind = lookup.sub_kind; break; } } Lexeme_Table_Lookup lookup = lexeme_table_lookup(jai_main_keys_hash_array, jai_main_keys_key_array, jai_main_keys_value_array, jai_main_keys_slot_count, jai_main_keys_seed, state.emit_ptr, token.size); if (lookup.found_match){ token.kind = lookup.base_kind; token.sub_kind = lookup.sub_kind; break; } token.sub_kind = TokenJaiKind_Identifier; token.kind = 6; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; default: { state.ptr += 1; goto state_label_2; // identifier }break; } } { state_label_3: // whitespace if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Whitespace; token.kind = 1; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Whitespace; token.kind = 1; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x09:case 0x0b:case 0x0c:case 0x0d:case 0x20: { state.ptr += 1; goto state_label_3; // whitespace }break; case 0x0a: { state.ptr += 1; state.flags_ZB0 &= ~(0x1); state.flags_KF0 &= ~(0x1); state.flags_KF0 &= ~(0x2); goto state_label_3; // whitespace }break; } } { state_label_4: // error_body if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_PPErrorMessage; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_4; // error_body }break; case 0x0a: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_PPErrorMessage; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_5: // backslash if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Backslash; token.kind = 1; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Backslash; token.kind = 1; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x0a: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Backslash; token.kind = 1; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x0d: { state.ptr += 1; goto state_label_5; // backslash }break; } } { state_label_6: // operator_or_fnumber_dot if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Dot; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Dot; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2a: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_DotStar; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2e: { state.ptr += 1; goto state_label_66; // op stage }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39: { state.ptr += 1; goto state_label_10; // fnumber_decimal }break; } } { state_label_7: // operator_or_comment_slash if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Div; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Div; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2a: { state.ptr += 1; goto state_label_49; // comment_block }break; case 0x2f: { state.ptr += 1; goto state_label_51; // comment_line }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_DivEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_8: // number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralInteger; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralInteger; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2e: { state.ptr += 1; goto state_label_10; // fnumber_decimal }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39: { state.ptr += 1; goto state_label_8; // number }break; case 0x45:case 0x65: { state.ptr += 1; goto state_label_11; // fnumber_exponent }break; case 0x4c: { state.ptr += 1; goto state_label_18; // L_number }break; case 0x55:case 0x75: { state.ptr += 1; goto state_label_17; // U_number }break; case 0x6c: { state.ptr += 1; goto state_label_20; // l_number }break; } } { state_label_9: // znumber if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralInteger; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralInteger; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2e: { state.ptr += 1; goto state_label_10; // fnumber_decimal }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37: { state.ptr += 1; state.flags_ZF0 |= 0x2; goto state_label_16; // number_oct }break; case 0x45:case 0x65: { state.ptr += 1; goto state_label_11; // fnumber_exponent }break; case 0x4c: { state.ptr += 1; goto state_label_18; // L_number }break; case 0x55:case 0x75: { state.ptr += 1; goto state_label_17; // U_number }break; case 0x58:case 0x78: { state.ptr += 1; state.flags_ZF0 |= 0x1; goto state_label_14; // number_hex_first }break; case 0x6c: { state.ptr += 1; goto state_label_20; // l_number }break; } } { state_label_10: // fnumber_decimal if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39: { state.ptr += 1; goto state_label_10; // fnumber_decimal }break; case 0x45:case 0x65: { state.ptr += 1; goto state_label_11; // fnumber_exponent }break; case 0x46:case 0x66: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat32; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c:case 0x6c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_11: // fnumber_exponent if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2b:case 0x2d: { state.ptr += 1; goto state_label_12; // fnumber_exponent_sign }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39: { state.ptr += 1; goto state_label_13; // fnumber_exponent_digits }break; case 0x46:case 0x66: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat32; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c:case 0x6c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_12: // fnumber_exponent_sign if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39: { state.ptr += 1; goto state_label_13; // fnumber_exponent_digits }break; case 0x46:case 0x66: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat32; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c:case 0x6c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_13: // fnumber_exponent_digits if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39: { state.ptr += 1; goto state_label_13; // fnumber_exponent_digits }break; case 0x46:case 0x66: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat32; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c:case 0x6c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralFloat64; token.kind = 9; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_14: // number_hex_first if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_15; // number_hex }break; } } { state_label_15: // number_hex if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralIntegerHex; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralIntegerHex; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_15; // number_hex }break; case 0x4c: { state.ptr += 1; goto state_label_18; // L_number }break; case 0x55:case 0x75: { state.ptr += 1; goto state_label_17; // U_number }break; case 0x6c: { state.ptr += 1; goto state_label_20; // l_number }break; } } { state_label_16: // number_oct if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralIntegerOct; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LiteralIntegerOct; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37: { state.ptr += 1; state.flags_ZF0 |= 0x2; goto state_label_16; // number_oct }break; case 0x4c: { state.ptr += 1; goto state_label_18; // L_number }break; case 0x55:case 0x75: { state.ptr += 1; goto state_label_17; // U_number }break; case 0x6c: { state.ptr += 1; goto state_label_20; // l_number }break; } } { state_label_17: // U_number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexU; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctU; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerU; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexU; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctU; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerU; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c: { state.ptr += 1; goto state_label_19; // UL_number }break; case 0x6c: { state.ptr += 1; goto state_label_21; // Ul_number }break; } } { state_label_18: // L_number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c: { state.ptr += 1; goto state_label_22; // LL_number }break; case 0x55:case 0x75: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexUL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctUL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerUL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_19: // UL_number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexUL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctUL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerUL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexUL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctUL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerUL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x4c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexULL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctULL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerULL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_20: // l_number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x55:case 0x75: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexUL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctUL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerUL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x6c: { state.ptr += 1; goto state_label_22; // LL_number }break; } } { state_label_21: // Ul_number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexUL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctUL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerUL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexUL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctUL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerUL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x6c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexULL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctULL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerULL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_22: // LL_number if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexLL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctLL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerLL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexLL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctLL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerLL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x55:case 0x75: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x1)){ token.sub_kind = TokenJaiKind_LiteralIntegerHexULL; token.kind = 8; break; } if (HasFlag(state.flags_ZF0, 0x2)){ token.sub_kind = TokenJaiKind_LiteralIntegerOctULL; token.kind = 8; break; } token.sub_kind = TokenJaiKind_LiteralIntegerULL; token.kind = 8; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_23: // pp_directive_whitespace if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x09:case 0x0b:case 0x0c:case 0x20: { state.ptr += 1; goto state_label_23; // pp_directive_whitespace }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x47:case 0x48:case 0x49:case 0x4a:case 0x4b: case 0x4c:case 0x4d:case 0x4e:case 0x4f:case 0x50:case 0x51:case 0x52: case 0x53:case 0x54:case 0x55:case 0x56:case 0x57:case 0x58:case 0x59: case 0x5a:case 0x5f:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66:case 0x67:case 0x68:case 0x69:case 0x6a:case 0x6b:case 0x6c: case 0x6d:case 0x6e:case 0x6f:case 0x70:case 0x71:case 0x72:case 0x73: case 0x74:case 0x75:case 0x76:case 0x77:case 0x78:case 0x79:case 0x7a: { state.delim_first = state.ptr; state.flags_ZB0 |= 0x1; state.ptr += 1; goto state_label_24; // pp_directive }break; } } { state_label_24: // pp_directive if (state.ptr == state.opl_ptr){ if ((true)){ state.delim_one_past_last = state.ptr; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ Lexeme_Table_Lookup lookup = lexeme_table_lookup(jai_pp_directives_hash_array, jai_pp_directives_key_array, jai_pp_directives_value_array, jai_pp_directives_slot_count, jai_pp_directives_seed, state.delim_first, (state.delim_one_past_last - state.delim_first)); if (lookup.found_match){ token.kind = lookup.base_kind; token.sub_kind = lookup.sub_kind; break; } token.sub_kind = TokenJaiKind_PPUnknown; token.kind = 2; }while(0); switch (token.sub_kind){ case TokenJaiKind_PPInclude: { state.flags_KF0 |= 0x1; }break; case TokenJaiKind_PPError: { state.flags_KF0 |= 0x2; }break; } token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { state.delim_one_past_last = state.ptr; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ Lexeme_Table_Lookup lookup = lexeme_table_lookup(jai_pp_directives_hash_array, jai_pp_directives_key_array, jai_pp_directives_value_array, jai_pp_directives_slot_count, jai_pp_directives_seed, state.delim_first, (state.delim_one_past_last - state.delim_first)); if (lookup.found_match){ token.kind = lookup.base_kind; token.sub_kind = lookup.sub_kind; break; } token.sub_kind = TokenJaiKind_PPUnknown; token.kind = 2; }while(0); switch (token.sub_kind){ case TokenJaiKind_PPInclude: { state.flags_KF0 |= 0x1; }break; case TokenJaiKind_PPError: { state.flags_KF0 |= 0x2; }break; } token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x47:case 0x48:case 0x49:case 0x4a:case 0x4b: case 0x4c:case 0x4d:case 0x4e:case 0x4f:case 0x50:case 0x51:case 0x52: case 0x53:case 0x54:case 0x55:case 0x56:case 0x57:case 0x58:case 0x59: case 0x5a:case 0x5f:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66:case 0x67:case 0x68:case 0x69:case 0x6a:case 0x6b:case 0x6c: case 0x6d:case 0x6e:case 0x6f:case 0x70:case 0x71:case 0x72:case 0x73: case 0x74:case 0x75:case 0x76:case 0x77:case 0x78:case 0x79:case 0x7a: { state.ptr += 1; goto state_label_24; // pp_directive }break; } } { state_label_25: // include_pointy if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x20:case 0x2e:case 0x2f:case 0x30:case 0x31:case 0x32:case 0x33: case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:case 0x41: case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:case 0x47:case 0x48: case 0x49:case 0x4a:case 0x4b:case 0x4c:case 0x4d:case 0x4e:case 0x4f: case 0x50:case 0x51:case 0x52:case 0x53:case 0x54:case 0x55:case 0x56: case 0x57:case 0x58:case 0x59:case 0x5a:case 0x5c:case 0x5f:case 0x61: case 0x62:case 0x63:case 0x64:case 0x65:case 0x66:case 0x67:case 0x68: case 0x69:case 0x6a:case 0x6b:case 0x6c:case 0x6d:case 0x6e:case 0x6f: case 0x70:case 0x71:case 0x72:case 0x73:case 0x74:case 0x75:case 0x76: case 0x77:case 0x78:case 0x79:case 0x7a: { state.ptr += 1; goto state_label_25; // include_pointy }break; case 0x3e: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_PPIncludeFile; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_26: // include_quotes if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x20:case 0x2e:case 0x2f:case 0x30:case 0x31:case 0x32:case 0x33: case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:case 0x41: case 0x42:case 0x43:case 0x44:case 0x45:case 0x46:case 0x47:case 0x48: case 0x49:case 0x4a:case 0x4b:case 0x4c:case 0x4d:case 0x4e:case 0x4f: case 0x50:case 0x51:case 0x52:case 0x53:case 0x54:case 0x55:case 0x56: case 0x57:case 0x58:case 0x59:case 0x5a:case 0x5c:case 0x5f:case 0x61: case 0x62:case 0x63:case 0x64:case 0x65:case 0x66:case 0x67:case 0x68: case 0x69:case 0x6a:case 0x6b:case 0x6c:case 0x6d:case 0x6e:case 0x6f: case 0x70:case 0x71:case 0x72:case 0x73:case 0x74:case 0x75:case 0x76: case 0x77:case 0x78:case 0x79:case 0x7a: { state.ptr += 1; goto state_label_26; // include_quotes }break; case 0x22: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_PPIncludeFile; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_27: // pre_L if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_2; // identifier } } switch (*state.ptr){ default: { goto state_label_2; // identifier }break; case 0x22: { state.ptr += 1; goto state_label_32; // string }break; case 0x52: { state.ptr += 1; goto state_label_31; // pre_R }break; } } { state_label_28: // pre_u if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_2; // identifier } } switch (*state.ptr){ default: { goto state_label_2; // identifier }break; case 0x22: { state.ptr += 1; goto state_label_32; // string }break; case 0x38: { state.ptr += 1; state.flags_ZF0 |= 0x8; goto state_label_30; // pre_u8 }break; case 0x52: { state.ptr += 1; goto state_label_31; // pre_R }break; } } { state_label_29: // pre_U if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_2; // identifier } } switch (*state.ptr){ default: { goto state_label_2; // identifier }break; case 0x22: { state.ptr += 1; goto state_label_32; // string }break; case 0x52: { state.ptr += 1; goto state_label_31; // pre_R }break; } } { state_label_30: // pre_u8 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_2; // identifier } } switch (*state.ptr){ default: { goto state_label_2; // identifier }break; case 0x22: { state.ptr += 1; goto state_label_32; // string }break; case 0x52: { state.ptr += 1; goto state_label_31; // pre_R }break; } } { state_label_31: // pre_R if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_2; // identifier } } switch (*state.ptr){ default: { goto state_label_2; // identifier }break; case 0x22: { state.ptr += 1; state.delim_first = state.ptr; goto state_label_45; // raw_string_get_delim }break; } } { state_label_32: // string if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_32; // string }break; case 0x0a: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x22: { if ((!HasFlag(state.flags_ZF0, 0x40))){ state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x4)){ token.sub_kind = TokenJaiKind_LiteralStringWide; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x8)){ token.sub_kind = TokenJaiKind_LiteralStringUTF8; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x10)){ token.sub_kind = TokenJaiKind_LiteralStringUTF16; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x20)){ token.sub_kind = TokenJaiKind_LiteralStringUTF32; token.kind = 10; break; } token.sub_kind = TokenJaiKind_LiteralString; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } state.ptr += 1; goto state_label_32; // string }break; case 0x27: { if ((HasFlag(state.flags_ZF0, 0x40))){ state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x4)){ token.sub_kind = TokenJaiKind_LiteralCharacterWide; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x8)){ token.sub_kind = TokenJaiKind_LiteralCharacterUTF8; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x10)){ token.sub_kind = TokenJaiKind_LiteralCharacterUTF16; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x20)){ token.sub_kind = TokenJaiKind_LiteralCharacterUTF32; token.kind = 10; break; } token.sub_kind = TokenJaiKind_LiteralCharacter; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } state.ptr += 1; goto state_label_32; // string }break; case 0x5c: { state.ptr += 1; goto state_label_33; // string_esc }break; } } { state_label_33: // string_esc if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EOF; token.kind = 0; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; result = true; goto end; } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37: { state.ptr += 1; goto state_label_34; // string_esc_oct2 }break; case 0x55: { state.ptr += 1; goto state_label_37; // string_esc_universal_8 }break; case 0x75: { state.ptr += 1; goto state_label_41; // string_esc_universal_4 }break; case 0x78: { state.ptr += 1; goto state_label_36; // string_esc_hex }break; } } { state_label_34: // string_esc_oct2 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37: { state.ptr += 1; goto state_label_35; // string_esc_oct1 }break; } } { state_label_35: // string_esc_oct1 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37: { state.ptr += 1; goto state_label_32; // string }break; } } { state_label_36: // string_esc_hex if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_36; // string_esc_hex }break; } } { state_label_37: // string_esc_universal_8 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_38; // string_esc_universal_7 }break; } } { state_label_38: // string_esc_universal_7 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_39; // string_esc_universal_6 }break; } } { state_label_39: // string_esc_universal_6 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_40; // string_esc_universal_5 }break; } } { state_label_40: // string_esc_universal_5 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_41; // string_esc_universal_4 }break; } } { state_label_41: // string_esc_universal_4 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_42; // string_esc_universal_3 }break; } } { state_label_42: // string_esc_universal_3 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_43; // string_esc_universal_2 }break; } } { state_label_43: // string_esc_universal_2 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_44; // string_esc_universal_1 }break; } } { state_label_44: // string_esc_universal_1 if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_32; // string } } switch (*state.ptr){ default: { goto state_label_32; // string }break; case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36: case 0x37:case 0x38:case 0x39:case 0x41:case 0x42:case 0x43:case 0x44: case 0x45:case 0x46:case 0x61:case 0x62:case 0x63:case 0x64:case 0x65: case 0x66: { state.ptr += 1; goto state_label_32; // string }break; } } { state_label_45: // raw_string_get_delim if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EOF; token.kind = 0; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; result = true; goto end; } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_45; // raw_string_get_delim }break; case 0x20:case 0x29:case 0x5c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x28: { state.delim_one_past_last = state.ptr; state.ptr += 1; goto state_label_46; // raw_string_find_close }break; } } { state_label_46: // raw_string_find_close if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LexError; token.kind = 2; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EOF; token.kind = 0; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; result = true; goto end; } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_46; // raw_string_find_close }break; case 0x29: { state.ptr += 1; goto state_label_47; // raw_string_try_delim }break; } } { state_label_47: // raw_string_try_delim u64 delim_length = state.delim_one_past_last - state.delim_first; u64 parse_length = 0; for (;;){ if (parse_length == delim_length){ goto state_label_48; // raw_string_try_quote } if (state.ptr == state.opl_ptr){ goto state_label_48; // raw_string_try_quote } if (*state.ptr == state.delim_first[parse_length]){ state.ptr += 1; parse_length += 1; } else{ goto state_label_46; // raw_string_find_close } } } { state_label_48: // raw_string_try_quote if (state.ptr == state.opl_ptr){ if ((true)){ goto state_label_46; // raw_string_find_close } } switch (*state.ptr){ default: { goto state_label_46; // raw_string_find_close }break; case 0x22: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ if (HasFlag(state.flags_ZF0, 0x4)){ token.sub_kind = TokenJaiKind_LiteralStringWideRaw; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x8)){ token.sub_kind = TokenJaiKind_LiteralStringUTF8Raw; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x10)){ token.sub_kind = TokenJaiKind_LiteralStringUTF16Raw; token.kind = 10; break; } if (HasFlag(state.flags_ZF0, 0x20)){ token.sub_kind = TokenJaiKind_LiteralStringUTF32Raw; token.kind = 10; break; } token.sub_kind = TokenJaiKind_LiteralStringRaw; token.kind = 10; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_49: // comment_block if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BlockComment; token.kind = 3; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EOF; token.kind = 0; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; result = true; goto end; } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_49; // comment_block }break; case 0x0a: { state.ptr += 1; state.flags_ZB0 &= ~(0x1); state.flags_KF0 &= ~(0x1); goto state_label_49; // comment_block }break; case 0x2a: { state.ptr += 1; goto state_label_50; // comment_block_try_close }break; } } { state_label_50: // comment_block_try_close if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BlockComment; token.kind = 3; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EOF; token.kind = 0; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; result = true; goto end; } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_49; // comment_block }break; case 0x2a: { state.ptr += 1; goto state_label_50; // comment_block_try_close }break; case 0x2f: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_BlockComment; token.kind = 3; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_51: // comment_line if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LineComment; token.kind = 3; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_51; // comment_line }break; case 0x0a: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LineComment; token.kind = 3; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x5c: { state.ptr += 1; goto state_label_52; // comment_line_backslashing }break; } } { state_label_52: // comment_line_backslashing if (state.ptr == state.opl_ptr){ if ((true)){ result = true; goto end; } } switch (*state.ptr){ default: { state.ptr += 1; goto state_label_51; // comment_line }break; case 0x0d: { state.ptr += 1; goto state_label_52; // comment_line_backslashing }break; } } { state_label_53: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Colon; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Colon; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3a: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_ColonColon; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_ColonEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_54: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Minus; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Minus; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_MinusEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3e: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_MinusGrtr; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_55: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Eq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Eq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EqEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3e: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_EqGrtr; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_56: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Less; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Less; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3c: { state.ptr += 1; goto state_label_64; // op stage }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LessEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_57: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Grtr; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Grtr; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_GrtrEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3e: { state.ptr += 1; goto state_label_65; // op stage }break; } } { state_label_58: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Not; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Not; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_NotEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_59: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_And; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_And; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x26: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_AndAnd; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_60: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Or; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Or; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x7c: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_OrOr; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_61: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Plus; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Plus; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_PlusEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_62: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Star; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Star; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_StarEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_63: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Mod; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_Mod; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_ModEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_64: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LeftLeft; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LeftLeft; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_LeftLeftEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_65: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_RightRight; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_RightRight; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x3d: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_RightRightEq; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } { state_label_66: // op stage if (state.ptr == state.opl_ptr){ if ((true)){ { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_DotDot; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root } } switch (*state.ptr){ default: { { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_DotDot; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; case 0x2e: { state.ptr += 1; { Token token = {}; token.pos = (i64)(state.emit_ptr - state.base); token.size = (i64)(state.ptr - state.emit_ptr); token.flags = state.flags_ZB0; do{ token.sub_kind = TokenJaiKind_DotDotDot; token.kind = 7; }while(0); token_list_push(arena, list, &token); emit_counter += 1; state.emit_ptr = state.ptr; if (emit_counter == max){ goto end; } } state.flags_ZF0 = 0; state.flags_ZB0 = 0; goto state_label_1; // root }break; } } end:; block_copy_struct(state_ptr, &state); return(result); } internal Token_List lex_full_input_jai(Arena *arena, String_Const_u8 input){ Lex_State_Jai state = {}; lex_full_input_jai_init(&state, input); Token_List list = {}; lex_full_input_jai_breaks(arena, &list, &state, max_u64); return(list); }