From 68d44fd565bc7e35b6e8a2298c53a9ab422660bf Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 22 Apr 2014 23:38:26 -0700 Subject: [PATCH] Intern symbols during grammar preparation --- examples/parsers/arithmetic.c | 563 +- examples/parsers/golang.c | 3801 ++-- examples/parsers/javascript.c | 14629 ++++++++-------- examples/parsers/json.c | 793 +- .../build_tables/conflict_manager_spec.cc | 15 +- spec/compiler/build_tables/first_set_spec.cc | 78 +- .../compiler/build_tables/follow_sets_spec.cc | 44 +- .../build_tables/item_set_closure_spec.cc | 40 +- .../build_tables/item_set_transitions_spec.cc | 12 +- spec/compiler/build_tables/lex_item_spec.cc | 2 +- .../build_tables/rule_can_be_blank_spec.cc | 12 +- .../build_tables/rule_transitions_spec.cc | 56 +- spec/compiler/compiler_spec_helper.h | 2 +- .../compiler/helpers/character_set_helpers.cc | 20 - spec/compiler/helpers/rule_helpers.cc | 37 + ...character_set_helpers.h => rule_helpers.h} | 4 + .../name_symbols/name_symbols_spec.cc | 58 - .../prepare_grammar/expand_repeats_spec.cc | 97 + .../prepare_grammar/extract_tokens_spec.cc | 99 + .../prepare_grammar/intern_symbols_spec.cc | 43 + spec/compiler/prepare_grammar_spec.cc | 106 - src/compiler/build_tables/build_tables.cc | 27 +- src/compiler/build_tables/build_tables.h | 3 +- src/compiler/build_tables/conflict_manager.cc | 38 +- src/compiler/build_tables/conflict_manager.h | 9 +- src/compiler/build_tables/first_set.cc | 33 +- src/compiler/build_tables/first_set.h | 4 +- src/compiler/build_tables/follow_sets.cc | 12 +- src/compiler/build_tables/follow_sets.h | 2 +- src/compiler/build_tables/item.cc | 2 +- src/compiler/build_tables/item.h | 6 +- src/compiler/build_tables/item_set_closure.cc | 6 +- .../build_tables/item_set_transitions.cc | 15 +- .../build_tables/item_set_transitions.h | 2 +- src/compiler/build_tables/lex_item.cc | 2 +- src/compiler/build_tables/lex_item.h | 4 +- src/compiler/build_tables/merge_transitions.h | 10 +- src/compiler/build_tables/parse_item.cc | 4 +- src/compiler/build_tables/parse_item.h | 12 +- .../build_tables/rule_can_be_blank.cc | 6 +- src/compiler/build_tables/rule_transitions.cc | 13 +- src/compiler/build_tables/rule_transitions.h | 4 +- src/compiler/compile.cc | 7 +- src/compiler/generate_code/c_code.cc | 49 +- src/compiler/generate_code/c_code.h | 5 +- .../generate_code/token_description.cc | 25 + .../generate_code/token_description.h | 13 + src/compiler/lex_table.cc | 15 +- src/compiler/lex_table.h | 10 +- src/compiler/name_symbols/name_symbols.cc | 52 - src/compiler/name_symbols/name_symbols.h | 18 - src/compiler/parse_table.cc | 22 +- src/compiler/parse_table.h | 18 +- .../prepare_grammar/expand_repeats.cc | 12 +- .../prepare_grammar/extract_tokens.cc | 104 +- .../prepare_grammar/intern_symbols.cc | 65 + src/compiler/prepare_grammar/intern_symbols.h | 23 + .../prepare_grammar/prepare_grammar.cc | 12 +- src/compiler/prepared_grammar.cc | 33 +- src/compiler/prepared_grammar.h | 7 +- src/compiler/rules/built_in_symbols.cc | 6 +- src/compiler/rules/built_in_symbols.h | 8 +- src/compiler/rules/interned_symbol.cc | 61 + src/compiler/rules/interned_symbol.h | 45 + src/compiler/rules/symbol.cc | 34 +- src/compiler/rules/symbol.h | 12 - src/compiler/rules/visitor.h | 5 + 67 files changed, 10829 insertions(+), 10557 deletions(-) delete mode 100644 spec/compiler/helpers/character_set_helpers.cc create mode 100644 spec/compiler/helpers/rule_helpers.cc rename spec/compiler/helpers/{character_set_helpers.h => rule_helpers.h} (69%) delete mode 100644 spec/compiler/name_symbols/name_symbols_spec.cc create mode 100644 spec/compiler/prepare_grammar/expand_repeats_spec.cc create mode 100644 spec/compiler/prepare_grammar/extract_tokens_spec.cc create mode 100644 spec/compiler/prepare_grammar/intern_symbols_spec.cc delete mode 100644 spec/compiler/prepare_grammar_spec.cc create mode 100644 src/compiler/generate_code/token_description.cc create mode 100644 src/compiler/generate_code/token_description.h delete mode 100644 src/compiler/name_symbols/name_symbols.cc delete mode 100644 src/compiler/name_symbols/name_symbols.h create mode 100644 src/compiler/prepare_grammar/intern_symbols.cc create mode 100644 src/compiler/prepare_grammar/intern_symbols.h create mode 100644 src/compiler/rules/interned_symbol.cc create mode 100644 src/compiler/rules/interned_symbol.h diff --git a/examples/parsers/arithmetic.c b/examples/parsers/arithmetic.c index c51b5c2f..580cec5e 100644 --- a/examples/parsers/arithmetic.c +++ b/examples/parsers/arithmetic.c @@ -4,53 +4,53 @@ #define SYMBOL_COUNT 18 enum { - ts_sym_difference = 2, - ts_sym_exponent = 3, - ts_sym_expression = 4, - ts_sym_group = 5, - ts_sym_number = 6, - ts_sym_product = 7, - ts_sym_quotient = 8, - ts_sym_sum = 9, + ts_sym_expression = 2, + ts_sym_sum = 3, + ts_sym_difference = 4, + ts_sym_product = 5, + ts_sym_quotient = 6, + ts_sym_exponent = 7, + ts_sym_group = 8, + ts_sym_number = 9, ts_sym_variable = 10, - ts_aux_sym_token1 = 11, - ts_aux_sym_token2 = 12, - ts_aux_sym_token3 = 13, - ts_aux_sym_token4 = 14, - ts_aux_sym_token5 = 15, - ts_aux_sym_token6 = 16, - ts_aux_sym_token7 = 17, + ts_aux_sym_token0 = 11, + ts_aux_sym_token1 = 12, + ts_aux_sym_token2 = 13, + ts_aux_sym_token3 = 14, + ts_aux_sym_token4 = 15, + ts_aux_sym_token5 = 16, + ts_aux_sym_token6 = 17, }; SYMBOL_NAMES = { - [ts_sym_difference] = "difference", - [ts_sym_exponent] = "exponent", [ts_sym_expression] = "expression", - [ts_sym_group] = "group", - [ts_sym_number] = "number", + [ts_sym_sum] = "sum", + [ts_sym_difference] = "difference", [ts_sym_product] = "product", [ts_sym_quotient] = "quotient", - [ts_sym_sum] = "sum", + [ts_sym_exponent] = "exponent", + [ts_sym_group] = "group", + [ts_builtin_sym_error] = "error", + [ts_builtin_sym_end] = "end", + [ts_sym_number] = "number", [ts_sym_variable] = "variable", - [ts_aux_sym_token1] = "'+'", - [ts_aux_sym_token2] = "'-'", - [ts_aux_sym_token3] = "'*'", - [ts_aux_sym_token4] = "'/'", - [ts_aux_sym_token5] = "'^'", - [ts_aux_sym_token6] = "'('", - [ts_aux_sym_token7] = "')'", - [ts_builtin_sym_end] = "EOF", - [ts_builtin_sym_error] = "ERROR", + [ts_aux_sym_token0] = "'+'", + [ts_aux_sym_token1] = "'-'", + [ts_aux_sym_token2] = "'*'", + [ts_aux_sym_token3] = "'/'", + [ts_aux_sym_token4] = "'^'", + [ts_aux_sym_token5] = "'('", + [ts_aux_sym_token6] = "')'", }; HIDDEN_SYMBOLS = { + [ts_aux_sym_token0] = 1, [ts_aux_sym_token1] = 1, [ts_aux_sym_token2] = 1, [ts_aux_sym_token3] = 1, [ts_aux_sym_token4] = 1, [ts_aux_sym_token5] = 1, [ts_aux_sym_token6] = 1, - [ts_aux_sym_token7] = 1, }; LEX_FN() { @@ -78,15 +78,15 @@ LEX_FN() { case 1: ACCEPT_TOKEN(ts_builtin_sym_end); case 2: - ACCEPT_TOKEN(ts_aux_sym_token3); - case 3: - ACCEPT_TOKEN(ts_aux_sym_token1); - case 4: ACCEPT_TOKEN(ts_aux_sym_token2); + case 3: + ACCEPT_TOKEN(ts_aux_sym_token0); + case 4: + ACCEPT_TOKEN(ts_aux_sym_token1); case 5: - ACCEPT_TOKEN(ts_aux_sym_token4); + ACCEPT_TOKEN(ts_aux_sym_token3); case 6: - ACCEPT_TOKEN(ts_aux_sym_token5); + ACCEPT_TOKEN(ts_aux_sym_token4); case 7: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || @@ -107,7 +107,7 @@ LEX_FN() { ADVANCE(6); LEX_ERROR(); case 8: - ACCEPT_TOKEN(ts_aux_sym_token7); + ACCEPT_TOKEN(ts_aux_sym_token6); case 9: START_TOKEN(); if ((lookahead == '\t') || @@ -133,7 +133,7 @@ LEX_FN() { ADVANCE(13); LEX_ERROR(); case 11: - ACCEPT_TOKEN(ts_aux_sym_token6); + ACCEPT_TOKEN(ts_aux_sym_token5); case 12: if ('0' <= lookahead && lookahead <= '9') ADVANCE(12); @@ -174,7 +174,6 @@ LEX_FN() { ADVANCE(6); LEX_ERROR(); case ts_lex_state_error: - START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if (('\t' <= lookahead && lookahead <= '\n') || @@ -209,29 +208,29 @@ LEX_FN() { LEX_STATES = { [0] = 10, [1] = 0, - [2] = 0, - [3] = 10, - [4] = 0, - [5] = 10, - [6] = 0, - [7] = 10, - [8] = 0, - [9] = 10, - [10] = 0, - [11] = 10, + [2] = 10, + [3] = 0, + [4] = 10, + [5] = 0, + [6] = 10, + [7] = 0, + [8] = 10, + [9] = 0, + [10] = 10, + [11] = 0, [12] = 0, [13] = 10, [14] = 7, - [15] = 7, - [16] = 10, - [17] = 7, - [18] = 10, - [19] = 7, - [20] = 10, - [21] = 7, - [22] = 10, - [23] = 7, - [24] = 10, + [15] = 10, + [16] = 7, + [17] = 10, + [18] = 7, + [19] = 10, + [20] = 7, + [21] = 10, + [22] = 7, + [23] = 10, + [24] = 7, [25] = 7, [26] = 10, [27] = 7, @@ -246,304 +245,304 @@ LEX_STATES = { PARSE_TABLE = { [0] = { - [ts_sym_difference] = SHIFT(1), - [ts_sym_exponent] = SHIFT(1), - [ts_sym_expression] = SHIFT(2), - [ts_sym_group] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_product] = SHIFT(1), - [ts_sym_quotient] = SHIFT(1), - [ts_sym_sum] = SHIFT(1), - [ts_sym_variable] = SHIFT(1), - [ts_aux_sym_token6] = SHIFT(13), + [ts_sym_expression] = SHIFT(1), + [ts_sym_sum] = SHIFT(12), + [ts_sym_difference] = SHIFT(12), + [ts_sym_product] = SHIFT(12), + [ts_sym_quotient] = SHIFT(12), + [ts_sym_exponent] = SHIFT(12), + [ts_sym_group] = SHIFT(12), + [ts_sym_number] = SHIFT(12), + [ts_sym_variable] = SHIFT(12), + [ts_aux_sym_token5] = SHIFT(13), }, [1] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_expression, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_expression, 1), + [ts_builtin_sym_end] = ACCEPT_INPUT(), + [ts_aux_sym_token0] = SHIFT(2), + [ts_aux_sym_token1] = SHIFT(4), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token3] = SHIFT(8), + [ts_aux_sym_token4] = SHIFT(10), }, [2] = { - [ts_aux_sym_token1] = SHIFT(3), - [ts_aux_sym_token2] = SHIFT(5), - [ts_aux_sym_token3] = SHIFT(7), - [ts_aux_sym_token4] = SHIFT(9), - [ts_aux_sym_token5] = SHIFT(11), - [ts_builtin_sym_end] = ACCEPT_INPUT(), + [ts_sym_expression] = SHIFT(3), + [ts_sym_sum] = SHIFT(12), + [ts_sym_difference] = SHIFT(12), + [ts_sym_product] = SHIFT(12), + [ts_sym_quotient] = SHIFT(12), + [ts_sym_exponent] = SHIFT(12), + [ts_sym_group] = SHIFT(12), + [ts_sym_number] = SHIFT(12), + [ts_sym_variable] = SHIFT(12), + [ts_aux_sym_token5] = SHIFT(13), }, [3] = { - [ts_sym_difference] = SHIFT(1), - [ts_sym_exponent] = SHIFT(1), - [ts_sym_expression] = SHIFT(4), - [ts_sym_group] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_product] = SHIFT(1), - [ts_sym_quotient] = SHIFT(1), - [ts_sym_sum] = SHIFT(1), - [ts_sym_variable] = SHIFT(1), - [ts_aux_sym_token6] = SHIFT(13), + [ts_builtin_sym_end] = REDUCE(ts_sym_sum, 3), + [ts_aux_sym_token0] = SHIFT(2), + [ts_aux_sym_token1] = SHIFT(4), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token3] = SHIFT(8), + [ts_aux_sym_token4] = SHIFT(10), }, [4] = { - [ts_aux_sym_token1] = SHIFT(3), - [ts_aux_sym_token2] = SHIFT(5), - [ts_aux_sym_token3] = SHIFT(7), - [ts_aux_sym_token4] = SHIFT(9), - [ts_aux_sym_token5] = SHIFT(11), - [ts_builtin_sym_end] = REDUCE(ts_sym_sum, 3), + [ts_sym_expression] = SHIFT(5), + [ts_sym_sum] = SHIFT(12), + [ts_sym_difference] = SHIFT(12), + [ts_sym_product] = SHIFT(12), + [ts_sym_quotient] = SHIFT(12), + [ts_sym_exponent] = SHIFT(12), + [ts_sym_group] = SHIFT(12), + [ts_sym_number] = SHIFT(12), + [ts_sym_variable] = SHIFT(12), + [ts_aux_sym_token5] = SHIFT(13), }, [5] = { - [ts_sym_difference] = SHIFT(1), - [ts_sym_exponent] = SHIFT(1), - [ts_sym_expression] = SHIFT(6), - [ts_sym_group] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_product] = SHIFT(1), - [ts_sym_quotient] = SHIFT(1), - [ts_sym_sum] = SHIFT(1), - [ts_sym_variable] = SHIFT(1), - [ts_aux_sym_token6] = SHIFT(13), + [ts_builtin_sym_end] = REDUCE(ts_sym_difference, 3), + [ts_aux_sym_token0] = SHIFT(2), + [ts_aux_sym_token1] = SHIFT(4), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token3] = SHIFT(8), + [ts_aux_sym_token4] = SHIFT(10), }, [6] = { - [ts_aux_sym_token1] = SHIFT(3), - [ts_aux_sym_token2] = SHIFT(5), - [ts_aux_sym_token3] = SHIFT(7), - [ts_aux_sym_token4] = SHIFT(9), - [ts_aux_sym_token5] = SHIFT(11), - [ts_builtin_sym_end] = REDUCE(ts_sym_difference, 3), + [ts_sym_expression] = SHIFT(7), + [ts_sym_sum] = SHIFT(12), + [ts_sym_difference] = SHIFT(12), + [ts_sym_product] = SHIFT(12), + [ts_sym_quotient] = SHIFT(12), + [ts_sym_exponent] = SHIFT(12), + [ts_sym_group] = SHIFT(12), + [ts_sym_number] = SHIFT(12), + [ts_sym_variable] = SHIFT(12), + [ts_aux_sym_token5] = SHIFT(13), }, [7] = { - [ts_sym_difference] = SHIFT(1), - [ts_sym_exponent] = SHIFT(1), - [ts_sym_expression] = SHIFT(8), - [ts_sym_group] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_product] = SHIFT(1), - [ts_sym_quotient] = SHIFT(1), - [ts_sym_sum] = SHIFT(1), - [ts_sym_variable] = SHIFT(1), - [ts_aux_sym_token6] = SHIFT(13), + [ts_builtin_sym_end] = REDUCE(ts_sym_product, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_product, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_product, 3), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token3] = SHIFT(8), + [ts_aux_sym_token4] = SHIFT(10), }, [8] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_product, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_product, 3), - [ts_aux_sym_token3] = SHIFT(7), - [ts_aux_sym_token4] = SHIFT(9), - [ts_aux_sym_token5] = SHIFT(11), - [ts_builtin_sym_end] = REDUCE(ts_sym_product, 3), + [ts_sym_expression] = SHIFT(9), + [ts_sym_sum] = SHIFT(12), + [ts_sym_difference] = SHIFT(12), + [ts_sym_product] = SHIFT(12), + [ts_sym_quotient] = SHIFT(12), + [ts_sym_exponent] = SHIFT(12), + [ts_sym_group] = SHIFT(12), + [ts_sym_number] = SHIFT(12), + [ts_sym_variable] = SHIFT(12), + [ts_aux_sym_token5] = SHIFT(13), }, [9] = { - [ts_sym_difference] = SHIFT(1), - [ts_sym_exponent] = SHIFT(1), - [ts_sym_expression] = SHIFT(10), - [ts_sym_group] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_product] = SHIFT(1), - [ts_sym_quotient] = SHIFT(1), - [ts_sym_sum] = SHIFT(1), - [ts_sym_variable] = SHIFT(1), - [ts_aux_sym_token6] = SHIFT(13), + [ts_builtin_sym_end] = REDUCE(ts_sym_quotient, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_quotient, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_quotient, 3), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token3] = SHIFT(8), + [ts_aux_sym_token4] = SHIFT(10), }, [10] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_quotient, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_quotient, 3), - [ts_aux_sym_token3] = SHIFT(7), - [ts_aux_sym_token4] = SHIFT(9), - [ts_aux_sym_token5] = SHIFT(11), - [ts_builtin_sym_end] = REDUCE(ts_sym_quotient, 3), + [ts_sym_expression] = SHIFT(11), + [ts_sym_sum] = SHIFT(12), + [ts_sym_difference] = SHIFT(12), + [ts_sym_product] = SHIFT(12), + [ts_sym_quotient] = SHIFT(12), + [ts_sym_exponent] = SHIFT(12), + [ts_sym_group] = SHIFT(12), + [ts_sym_number] = SHIFT(12), + [ts_sym_variable] = SHIFT(12), + [ts_aux_sym_token5] = SHIFT(13), }, [11] = { - [ts_sym_difference] = SHIFT(1), - [ts_sym_exponent] = SHIFT(1), - [ts_sym_expression] = SHIFT(12), - [ts_sym_group] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_product] = SHIFT(1), - [ts_sym_quotient] = SHIFT(1), - [ts_sym_sum] = SHIFT(1), - [ts_sym_variable] = SHIFT(1), - [ts_aux_sym_token6] = SHIFT(13), - }, - [12] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_exponent, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_exponent, 3), [ts_aux_sym_token1] = REDUCE(ts_sym_exponent, 3), [ts_aux_sym_token2] = REDUCE(ts_sym_exponent, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_exponent, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_exponent, 3), - [ts_aux_sym_token5] = SHIFT(11), - [ts_builtin_sym_end] = REDUCE(ts_sym_exponent, 3), + [ts_aux_sym_token4] = SHIFT(10), }, - [13] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), - [ts_sym_expression] = SHIFT(15), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), - [ts_builtin_sym_error] = SHIFT(31), - }, - [14] = { + [12] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token1] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + }, + [13] = { + [ts_sym_expression] = SHIFT(14), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), + [ts_builtin_sym_error] = SHIFT(31), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), + }, + [14] = { + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token1] = SHIFT(17), + [ts_aux_sym_token2] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(21), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = SHIFT(30), }, [15] = { - [ts_aux_sym_token1] = SHIFT(16), - [ts_aux_sym_token2] = SHIFT(18), - [ts_aux_sym_token3] = SHIFT(20), - [ts_aux_sym_token4] = SHIFT(22), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = SHIFT(30), + [ts_sym_expression] = SHIFT(16), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), }, [16] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), - [ts_sym_expression] = SHIFT(17), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token1] = SHIFT(17), + [ts_aux_sym_token2] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(21), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = REDUCE(ts_sym_sum, 3), }, [17] = { - [ts_aux_sym_token1] = SHIFT(16), - [ts_aux_sym_token2] = SHIFT(18), - [ts_aux_sym_token3] = SHIFT(20), - [ts_aux_sym_token4] = SHIFT(22), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = REDUCE(ts_sym_sum, 3), + [ts_sym_expression] = SHIFT(18), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), }, [18] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), - [ts_sym_expression] = SHIFT(19), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token1] = SHIFT(17), + [ts_aux_sym_token2] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(21), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = REDUCE(ts_sym_difference, 3), }, [19] = { - [ts_aux_sym_token1] = SHIFT(16), - [ts_aux_sym_token2] = SHIFT(18), - [ts_aux_sym_token3] = SHIFT(20), - [ts_aux_sym_token4] = SHIFT(22), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = REDUCE(ts_sym_difference, 3), + [ts_sym_expression] = SHIFT(20), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), }, [20] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), - [ts_sym_expression] = SHIFT(21), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), + [ts_aux_sym_token0] = REDUCE(ts_sym_product, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_product, 3), + [ts_aux_sym_token2] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(21), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = REDUCE(ts_sym_product, 3), }, [21] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_product, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_product, 3), - [ts_aux_sym_token3] = SHIFT(20), - [ts_aux_sym_token4] = SHIFT(22), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = REDUCE(ts_sym_product, 3), + [ts_sym_expression] = SHIFT(22), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), }, [22] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), - [ts_sym_expression] = SHIFT(23), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), + [ts_aux_sym_token0] = REDUCE(ts_sym_quotient, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_quotient, 3), + [ts_aux_sym_token2] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(21), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = REDUCE(ts_sym_quotient, 3), }, [23] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_quotient, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_quotient, 3), - [ts_aux_sym_token3] = SHIFT(20), - [ts_aux_sym_token4] = SHIFT(22), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = REDUCE(ts_sym_quotient, 3), + [ts_sym_expression] = SHIFT(24), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), }, [24] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), - [ts_sym_expression] = SHIFT(25), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), - }, - [25] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_exponent, 3), [ts_aux_sym_token1] = REDUCE(ts_sym_exponent, 3), [ts_aux_sym_token2] = REDUCE(ts_sym_exponent, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_exponent, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_exponent, 3), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = REDUCE(ts_sym_exponent, 3), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = REDUCE(ts_sym_exponent, 3), + }, + [25] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), }, [26] = { - [ts_sym_difference] = SHIFT(14), - [ts_sym_exponent] = SHIFT(14), [ts_sym_expression] = SHIFT(27), - [ts_sym_group] = SHIFT(14), - [ts_sym_number] = SHIFT(14), - [ts_sym_product] = SHIFT(14), - [ts_sym_quotient] = SHIFT(14), - [ts_sym_sum] = SHIFT(14), - [ts_sym_variable] = SHIFT(14), - [ts_aux_sym_token6] = SHIFT(26), + [ts_sym_sum] = SHIFT(25), + [ts_sym_difference] = SHIFT(25), + [ts_sym_product] = SHIFT(25), + [ts_sym_quotient] = SHIFT(25), + [ts_sym_exponent] = SHIFT(25), + [ts_sym_group] = SHIFT(25), [ts_builtin_sym_error] = SHIFT(29), + [ts_sym_number] = SHIFT(25), + [ts_sym_variable] = SHIFT(25), + [ts_aux_sym_token5] = SHIFT(26), }, [27] = { - [ts_aux_sym_token1] = SHIFT(16), - [ts_aux_sym_token2] = SHIFT(18), - [ts_aux_sym_token3] = SHIFT(20), - [ts_aux_sym_token4] = SHIFT(22), - [ts_aux_sym_token5] = SHIFT(24), - [ts_aux_sym_token7] = SHIFT(28), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token1] = SHIFT(17), + [ts_aux_sym_token2] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(21), + [ts_aux_sym_token4] = SHIFT(23), + [ts_aux_sym_token6] = SHIFT(28), }, [28] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token1] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token2] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_group, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_group, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_group, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_group, 3), }, [29] = { - [ts_aux_sym_token7] = SHIFT(28), + [ts_aux_sym_token6] = SHIFT(28), }, [30] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_group, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token1] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token2] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_group, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_group, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_group, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_group, 3), }, [31] = { - [ts_aux_sym_token7] = SHIFT(30), + [ts_aux_sym_token6] = SHIFT(30), }, }; diff --git a/examples/parsers/golang.c b/examples/parsers/golang.c index 03ef0f33..444b61fa 100644 --- a/examples/parsers/golang.c +++ b/examples/parsers/golang.c @@ -4,134 +4,135 @@ #define SYMBOL_COUNT 52 enum { - ts_sym__func = 2, - ts_sym__func_signature = 3, - ts_sym__identifier = 4, - ts_sym__import = 5, - ts_sym__interface = 6, - ts_sym__map = 7, - ts_sym__package = 8, - ts_sym__struct = 9, - ts_sym__type = 10, - ts_sym__var = 11, - ts_sym_declaration = 12, - ts_sym_expression = 13, - ts_sym_func_declaration = 14, - ts_sym_imports_block = 15, - ts_sym_interface_type = 16, - ts_sym_map_type = 17, - ts_sym_number = 18, - ts_sym_package_directive = 19, - ts_sym_package_import = 20, - ts_sym_package_name = 21, - ts_sym_pointer_type = 22, - ts_sym_program = 23, - ts_sym_slice_type = 24, - ts_sym_statement_block = 25, - ts_sym_string = 26, - ts_sym_struct_type = 27, - ts_sym_type_declaration = 28, - ts_sym_type_expression = 29, - ts_sym_type_name = 30, - ts_sym_var_declaration = 31, - ts_sym_var_name = 32, - ts_aux_sym__func_signature_repeat1 = 33, - ts_aux_sym__func_signature_repeat2 = 34, - ts_aux_sym__func_signature_repeat3 = 35, - ts_aux_sym__func_signature_repeat4 = 36, - ts_aux_sym__func_signature_repeat5 = 37, - ts_aux_sym_imports_block_repeat1 = 38, - ts_aux_sym_interface_type_repeat1 = 39, - ts_aux_sym_program_repeat1 = 40, - ts_aux_sym_program_repeat2 = 41, - ts_aux_sym_struct_type_repeat1 = 42, - ts_aux_sym_token1 = 43, - ts_aux_sym_token2 = 44, - ts_aux_sym_token3 = 45, - ts_aux_sym_token4 = 46, - ts_aux_sym_token5 = 47, - ts_aux_sym_token6 = 48, - ts_aux_sym_token7 = 49, - ts_aux_sym_token8 = 50, - ts_aux_sym_token9 = 51, + ts_sym_program = 2, + ts_sym_package_directive = 3, + ts_sym_imports_block = 4, + ts_sym_package_import = 5, + ts_sym_declaration = 6, + ts_sym_type_declaration = 7, + ts_sym_var_declaration = 8, + ts_sym_func_declaration = 9, + ts_sym_statement_block = 10, + ts_sym_expression = 11, + ts_sym_type_expression = 12, + ts_sym_pointer_type = 13, + ts_sym_map_type = 14, + ts_sym_slice_type = 15, + ts_sym_struct_type = 16, + ts_sym_interface_type = 17, + ts_sym__func_signature = 18, + ts_sym_package_name = 19, + ts_sym_var_name = 20, + ts_sym_type_name = 21, + ts_sym__map = 22, + ts_sym__interface = 23, + ts_sym__struct = 24, + ts_sym__package = 25, + ts_sym__import = 26, + ts_sym__var = 27, + ts_sym__func = 28, + ts_sym__type = 29, + ts_sym_string = 30, + ts_sym__identifier = 31, + ts_sym_number = 32, + ts_aux_sym_program_repeat0 = 33, + ts_aux_sym_program_repeat1 = 34, + ts_aux_sym_imports_block_repeat0 = 35, + ts_aux_sym_struct_type_repeat0 = 36, + ts_aux_sym_interface_type_repeat0 = 37, + ts_aux_sym__func_signature_repeat0 = 38, + ts_aux_sym__func_signature_repeat1 = 39, + ts_aux_sym__func_signature_repeat2 = 40, + ts_aux_sym__func_signature_repeat3 = 41, + ts_aux_sym__func_signature_repeat4 = 42, + ts_aux_sym_token0 = 43, + ts_aux_sym_token1 = 44, + ts_aux_sym_token2 = 45, + ts_aux_sym_token3 = 46, + ts_aux_sym_token4 = 47, + ts_aux_sym_token5 = 48, + ts_aux_sym_token6 = 49, + ts_aux_sym_token7 = 50, + ts_aux_sym_token8 = 51, }; SYMBOL_NAMES = { - [ts_sym__func] = "_func", - [ts_sym__func_signature] = "_func_signature", - [ts_sym__identifier] = "_identifier", - [ts_sym__import] = "_import", - [ts_sym__interface] = "_interface", - [ts_sym__map] = "_map", - [ts_sym__package] = "_package", - [ts_sym__struct] = "_struct", - [ts_sym__type] = "_type", - [ts_sym__var] = "_var", - [ts_sym_declaration] = "declaration", - [ts_sym_expression] = "expression", - [ts_sym_func_declaration] = "func_declaration", - [ts_sym_imports_block] = "imports_block", - [ts_sym_interface_type] = "interface_type", - [ts_sym_map_type] = "map_type", - [ts_sym_number] = "number", - [ts_sym_package_directive] = "package_directive", - [ts_sym_package_import] = "package_import", - [ts_sym_package_name] = "package_name", - [ts_sym_pointer_type] = "pointer_type", [ts_sym_program] = "program", - [ts_sym_slice_type] = "slice_type", - [ts_sym_statement_block] = "statement_block", - [ts_sym_string] = "string", - [ts_sym_struct_type] = "struct_type", + [ts_sym_package_directive] = "package_directive", + [ts_sym_imports_block] = "imports_block", + [ts_sym_package_import] = "package_import", + [ts_sym_declaration] = "declaration", [ts_sym_type_declaration] = "type_declaration", - [ts_sym_type_expression] = "type_expression", - [ts_sym_type_name] = "type_name", [ts_sym_var_declaration] = "var_declaration", + [ts_sym_func_declaration] = "func_declaration", + [ts_sym_statement_block] = "statement_block", + [ts_sym_expression] = "expression", + [ts_sym_type_expression] = "type_expression", + [ts_sym_pointer_type] = "pointer_type", + [ts_sym_map_type] = "map_type", + [ts_sym_slice_type] = "slice_type", + [ts_sym_struct_type] = "struct_type", + [ts_sym_interface_type] = "interface_type", + [ts_sym__func_signature] = "_func_signature", + [ts_sym_package_name] = "package_name", [ts_sym_var_name] = "var_name", + [ts_sym_type_name] = "type_name", + [ts_builtin_sym_error] = "error", + [ts_builtin_sym_end] = "end", + [ts_sym__map] = "_map", + [ts_sym__interface] = "_interface", + [ts_sym__struct] = "_struct", + [ts_sym__package] = "_package", + [ts_sym__import] = "_import", + [ts_sym__var] = "_var", + [ts_sym__func] = "_func", + [ts_sym__type] = "_type", + [ts_sym_string] = "string", + [ts_sym__identifier] = "_identifier", + [ts_sym_number] = "number", + [ts_aux_sym_program_repeat0] = "program_repeat0", + [ts_aux_sym_program_repeat1] = "program_repeat1", + [ts_aux_sym_imports_block_repeat0] = "imports_block_repeat0", + [ts_aux_sym_struct_type_repeat0] = "struct_type_repeat0", + [ts_aux_sym_interface_type_repeat0] = "interface_type_repeat0", + [ts_aux_sym__func_signature_repeat0] = "_func_signature_repeat0", [ts_aux_sym__func_signature_repeat1] = "_func_signature_repeat1", [ts_aux_sym__func_signature_repeat2] = "_func_signature_repeat2", [ts_aux_sym__func_signature_repeat3] = "_func_signature_repeat3", [ts_aux_sym__func_signature_repeat4] = "_func_signature_repeat4", - [ts_aux_sym__func_signature_repeat5] = "_func_signature_repeat5", - [ts_aux_sym_imports_block_repeat1] = "imports_block_repeat1", - [ts_aux_sym_interface_type_repeat1] = "interface_type_repeat1", - [ts_aux_sym_program_repeat1] = "program_repeat1", - [ts_aux_sym_program_repeat2] = "program_repeat2", - [ts_aux_sym_struct_type_repeat1] = "struct_type_repeat1", - [ts_aux_sym_token1] = "'('", - [ts_aux_sym_token2] = "')'", - [ts_aux_sym_token3] = "'='", - [ts_aux_sym_token4] = "'{'", - [ts_aux_sym_token5] = "'}'", - [ts_aux_sym_token6] = "'*'", - [ts_aux_sym_token7] = "'['", - [ts_aux_sym_token8] = "']'", - [ts_aux_sym_token9] = "','", - [ts_builtin_sym_end] = "EOF", - [ts_builtin_sym_error] = "ERROR", + [ts_aux_sym_token0] = "'('", + [ts_aux_sym_token1] = "')'", + [ts_aux_sym_token2] = "'='", + [ts_aux_sym_token3] = "'{'", + [ts_aux_sym_token4] = "'}'", + [ts_aux_sym_token5] = "'*'", + [ts_aux_sym_token6] = "'['", + [ts_aux_sym_token7] = "']'", + [ts_aux_sym_token8] = "','", }; HIDDEN_SYMBOLS = { - [ts_sym__func] = 1, [ts_sym__func_signature] = 1, - [ts_sym__identifier] = 1, - [ts_sym__import] = 1, - [ts_sym__interface] = 1, [ts_sym__map] = 1, - [ts_sym__package] = 1, + [ts_sym__interface] = 1, [ts_sym__struct] = 1, - [ts_sym__type] = 1, + [ts_sym__package] = 1, + [ts_sym__import] = 1, [ts_sym__var] = 1, + [ts_sym__func] = 1, + [ts_sym__type] = 1, + [ts_sym__identifier] = 1, + [ts_aux_sym_program_repeat0] = 1, + [ts_aux_sym_program_repeat1] = 1, + [ts_aux_sym_imports_block_repeat0] = 1, + [ts_aux_sym_struct_type_repeat0] = 1, + [ts_aux_sym_interface_type_repeat0] = 1, + [ts_aux_sym__func_signature_repeat0] = 1, [ts_aux_sym__func_signature_repeat1] = 1, [ts_aux_sym__func_signature_repeat2] = 1, [ts_aux_sym__func_signature_repeat3] = 1, [ts_aux_sym__func_signature_repeat4] = 1, - [ts_aux_sym__func_signature_repeat5] = 1, - [ts_aux_sym_imports_block_repeat1] = 1, - [ts_aux_sym_interface_type_repeat1] = 1, - [ts_aux_sym_program_repeat1] = 1, - [ts_aux_sym_program_repeat2] = 1, - [ts_aux_sym_struct_type_repeat1] = 1, + [ts_aux_sym_token0] = 1, [ts_aux_sym_token1] = 1, [ts_aux_sym_token2] = 1, [ts_aux_sym_token3] = 1, @@ -140,7 +141,6 @@ HIDDEN_SYMBOLS = { [ts_aux_sym_token6] = 1, [ts_aux_sym_token7] = 1, [ts_aux_sym_token8] = 1, - [ts_aux_sym_token9] = 1, }; LEX_FN() { @@ -150,208 +150,202 @@ LEX_FN() { START_TOKEN(); if (lookahead == '\0') ADVANCE(1); - if (('\t' <= lookahead && lookahead <= '\n') || + if ((lookahead == '\t') || + (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(0); - if (lookahead == 'f') - ADVANCE(2); - if (lookahead == 'i') - ADVANCE(6); - if (lookahead == 't') - ADVANCE(12); - if (lookahead == 'v') - ADVANCE(16); LEX_ERROR(); case 1: ACCEPT_TOKEN(ts_builtin_sym_end); case 2: - if (lookahead == 'u') - ADVANCE(3); - LEX_ERROR(); - case 3: - if (lookahead == 'n') - ADVANCE(4); - LEX_ERROR(); - case 4: - if (lookahead == 'c') - ADVANCE(5); - LEX_ERROR(); - case 5: - ACCEPT_TOKEN(ts_sym__func); - case 6: - if (lookahead == 'm') - ADVANCE(7); - LEX_ERROR(); - case 7: - if (lookahead == 'p') - ADVANCE(8); - LEX_ERROR(); - case 8: - if (lookahead == 'o') - ADVANCE(9); - LEX_ERROR(); - case 9: - if (lookahead == 'r') - ADVANCE(10); - LEX_ERROR(); - case 10: - if (lookahead == 't') - ADVANCE(11); - LEX_ERROR(); - case 11: - ACCEPT_TOKEN(ts_sym__import); - case 12: - if (lookahead == 'y') - ADVANCE(13); - LEX_ERROR(); - case 13: - if (lookahead == 'p') - ADVANCE(14); - LEX_ERROR(); - case 14: - if (lookahead == 'e') - ADVANCE(15); - LEX_ERROR(); - case 15: - ACCEPT_TOKEN(ts_sym__type); - case 16: - if (lookahead == 'a') - ADVANCE(17); - LEX_ERROR(); - case 17: - if (lookahead == 'r') - ADVANCE(18); - LEX_ERROR(); - case 18: - ACCEPT_TOKEN(ts_sym__var); - case 19: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(19); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - LEX_ERROR(); - case 20: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__identifier); - case 21: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(21); - if (lookahead == '\"') - ADVANCE(22); - if (lookahead == ')') - ADVANCE(27); - LEX_ERROR(); - case 22: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(23); - if (lookahead == '\\') - ADVANCE(25); - LEX_ERROR(); - case 23: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(23); - if (lookahead == '\"') - ADVANCE(24); - if (lookahead == '\\') - ADVANCE(25); - LEX_ERROR(); - case 24: - ACCEPT_TOKEN(ts_sym_string); - case 25: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(23); - if (lookahead == '\"') - ADVANCE(26); - if (lookahead == '\\') - ADVANCE(25); - LEX_ERROR(); - case 26: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(23); - if (lookahead == '\"') - ADVANCE(24); - if (lookahead == '\\') - ADVANCE(25); - ACCEPT_TOKEN(ts_sym_string); - case 27: - ACCEPT_TOKEN(ts_aux_sym_token2); - case 28: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(28); - if (lookahead == ')') - ADVANCE(27); - LEX_ERROR(); - case 29: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(29); - if (lookahead == '\"') - ADVANCE(22); - if (lookahead == '(') - ADVANCE(30); - LEX_ERROR(); - case 30: - ACCEPT_TOKEN(ts_aux_sym_token1); - case 31: START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(31); - if (lookahead == 'f') ADVANCE(2); + if (lookahead == 'f') + ADVANCE(3); + if (lookahead == 'i') + ADVANCE(7); + if (lookahead == 't') + ADVANCE(13); + if (lookahead == 'v') + ADVANCE(17); + LEX_ERROR(); + case 3: + if (lookahead == 'u') + ADVANCE(4); + LEX_ERROR(); + case 4: + if (lookahead == 'n') + ADVANCE(5); + LEX_ERROR(); + case 5: + if (lookahead == 'c') + ADVANCE(6); + LEX_ERROR(); + case 6: + ACCEPT_TOKEN(ts_sym__func); + case 7: + if (lookahead == 'm') + ADVANCE(8); + LEX_ERROR(); + case 8: + if (lookahead == 'p') + ADVANCE(9); + LEX_ERROR(); + case 9: + if (lookahead == 'o') + ADVANCE(10); + LEX_ERROR(); + case 10: + if (lookahead == 'r') + ADVANCE(11); + LEX_ERROR(); + case 11: if (lookahead == 't') ADVANCE(12); - if (lookahead == 'v') + LEX_ERROR(); + case 12: + ACCEPT_TOKEN(ts_sym__import); + case 13: + if (lookahead == 'y') + ADVANCE(14); + LEX_ERROR(); + case 14: + if (lookahead == 'p') + ADVANCE(15); + LEX_ERROR(); + case 15: + if (lookahead == 'e') ADVANCE(16); LEX_ERROR(); - case 32: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(32); - if (lookahead == '(') - ADVANCE(30); + case 16: + ACCEPT_TOKEN(ts_sym__type); + case 17: + if (lookahead == 'a') + ADVANCE(18); LEX_ERROR(); - case 33: + case 18: + if (lookahead == 'r') + ADVANCE(19); + LEX_ERROR(); + case 19: + ACCEPT_TOKEN(ts_sym__var); + case 20: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(20); + if (lookahead == '\"') + ADVANCE(21); + if (lookahead == ')') + ADVANCE(26); + LEX_ERROR(); + case 21: + if (!((lookahead == '\"') || + (lookahead == '\\'))) + ADVANCE(22); + if (lookahead == '\\') + ADVANCE(24); + LEX_ERROR(); + case 22: + if (!((lookahead == '\"') || + (lookahead == '\\'))) + ADVANCE(22); + if (lookahead == '\"') + ADVANCE(23); + if (lookahead == '\\') + ADVANCE(24); + LEX_ERROR(); + case 23: + ACCEPT_TOKEN(ts_sym_string); + case 24: + if (!((lookahead == '\"') || + (lookahead == '\\'))) + ADVANCE(22); + if (lookahead == '\"') + ADVANCE(25); + if (lookahead == '\\') + ADVANCE(24); + LEX_ERROR(); + case 25: + if (!((lookahead == '\"') || + (lookahead == '\\'))) + ADVANCE(22); + if (lookahead == '\"') + ADVANCE(23); + if (lookahead == '\\') + ADVANCE(24); + ACCEPT_TOKEN(ts_sym_string); + case 26: + ACCEPT_TOKEN(ts_aux_sym_token1); + case 27: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) + ADVANCE(27); + if (lookahead == ')') + ADVANCE(26); + LEX_ERROR(); + case 28: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(28); + if (lookahead == '\"') + ADVANCE(21); + if (lookahead == '(') + ADVANCE(29); + LEX_ERROR(); + case 29: + ACCEPT_TOKEN(ts_aux_sym_token0); + case 30: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(30); + if (lookahead == 'f') + ADVANCE(3); + if (lookahead == 't') + ADVANCE(13); + if (lookahead == 'v') + ADVANCE(17); + LEX_ERROR(); + case 31: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(31); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(32); + LEX_ERROR(); + case 32: + if (lookahead == '.') ADVANCE(33); - if (lookahead == '}') + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(32); + ACCEPT_TOKEN(ts_sym_number); + case 33: + if ('0' <= lookahead && lookahead <= '9') ADVANCE(34); LEX_ERROR(); case 34: - ACCEPT_TOKEN(ts_aux_sym_token5); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(34); + ACCEPT_TOKEN(ts_sym_number); case 35: START_TOKEN(); if ((lookahead == '\t') || @@ -359,345 +353,326 @@ LEX_FN() { (lookahead == '\r') || (lookahead == ' ')) ADVANCE(35); - if (lookahead == '{') + if (lookahead == '=') ADVANCE(36); LEX_ERROR(); case 36: - ACCEPT_TOKEN(ts_aux_sym_token4); + ACCEPT_TOKEN(ts_aux_sym_token2); case 37: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(37); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + LEX_ERROR(); + case 38: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + ACCEPT_TOKEN(ts_sym__identifier); + case 39: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(39); + if (lookahead == '}') + ADVANCE(40); + LEX_ERROR(); + case 40: + ACCEPT_TOKEN(ts_aux_sym_token4); + case 41: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(41); + if (lookahead == '{') + ADVANCE(42); + LEX_ERROR(); + case 42: + ACCEPT_TOKEN(ts_aux_sym_token3); + case 43: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(37); - if (lookahead == '*') - ADVANCE(38); + ADVANCE(43); + if (lookahead == ')') + ADVANCE(26); if (lookahead == ',') - ADVANCE(39); + ADVANCE(44); + LEX_ERROR(); + case 44: + ACCEPT_TOKEN(ts_aux_sym_token8); + case 45: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(45); + if (lookahead == ')') + ADVANCE(26); + if (lookahead == ',') + ADVANCE(44); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + LEX_ERROR(); + case 46: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(46); + if (lookahead == '(') + ADVANCE(29); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == '{') + ADVANCE(42); + LEX_ERROR(); + case 47: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(47); + if (lookahead == '(') + ADVANCE(29); + LEX_ERROR(); + case 48: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(48); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == '}') + ADVANCE(40); + LEX_ERROR(); + case 49: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(49); + if (lookahead == '(') + ADVANCE(29); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == '}') + ADVANCE(40); + LEX_ERROR(); + case 50: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(50); + if (lookahead == '*') + ADVANCE(51); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == '[') - ADVANCE(40); + ADVANCE(52); if (lookahead == 'i') - ADVANCE(41); - if (lookahead == 'm') - ADVANCE(50); - if (lookahead == 's') ADVANCE(53); + if (lookahead == 'm') + ADVANCE(62); + if (lookahead == 's') + ADVANCE(65); LEX_ERROR(); - case 38: + case 51: + ACCEPT_TOKEN(ts_aux_sym_token5); + case 52: ACCEPT_TOKEN(ts_aux_sym_token6); - case 39: - ACCEPT_TOKEN(ts_aux_sym_token9); - case 40: - ACCEPT_TOKEN(ts_aux_sym_token7); - case 41: + case 53: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'n') - ADVANCE(42); - ACCEPT_TOKEN(ts_sym__identifier); - case 42: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 't') - ADVANCE(43); - ACCEPT_TOKEN(ts_sym__identifier); - case 43: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'e') - ADVANCE(44); - ACCEPT_TOKEN(ts_sym__identifier); - case 44: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'r') - ADVANCE(45); - ACCEPT_TOKEN(ts_sym__identifier); - case 45: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'e') || - ('g' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'f') - ADVANCE(46); - ACCEPT_TOKEN(ts_sym__identifier); - case 46: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'a') - ADVANCE(47); - ACCEPT_TOKEN(ts_sym__identifier); - case 47: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'c') - ADVANCE(48); - ACCEPT_TOKEN(ts_sym__identifier); - case 48: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'e') - ADVANCE(49); - ACCEPT_TOKEN(ts_sym__identifier); - case 49: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__interface); - case 50: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'a') - ADVANCE(51); - ACCEPT_TOKEN(ts_sym__identifier); - case 51: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'p') - ADVANCE(52); - ACCEPT_TOKEN(ts_sym__identifier); - case 52: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__map); - case 53: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 't') ADVANCE(54); ACCEPT_TOKEN(ts_sym__identifier); case 54: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'r') + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 't') ADVANCE(55); ACCEPT_TOKEN(ts_sym__identifier); case 55: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 't') || - ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'u') + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'e') ADVANCE(56); ACCEPT_TOKEN(ts_sym__identifier); case 56: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'c') + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'r') ADVANCE(57); ACCEPT_TOKEN(ts_sym__identifier); case 57: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 't') + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'f') ADVANCE(58); ACCEPT_TOKEN(ts_sym__identifier); case 58: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__struct); - case 59: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(59); - if (lookahead == ')') - ADVANCE(27); - if (lookahead == ',') - ADVANCE(39); - LEX_ERROR(); - case 60: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(60); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == '}') - ADVANCE(34); - LEX_ERROR(); - case 61: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(61); - if (lookahead == ']') - ADVANCE(62); - LEX_ERROR(); - case 62: - ACCEPT_TOKEN(ts_aux_sym_token8); - case 63: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(63); - if (lookahead == '*') + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(38); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'h') || - ('j' <= lookahead && lookahead <= 'l') || - ('n' <= lookahead && lookahead <= 'r') || - ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == '[') - ADVANCE(40); - if (lookahead == 'i') - ADVANCE(41); - if (lookahead == 'm') - ADVANCE(50); - if (lookahead == 's') - ADVANCE(53); - LEX_ERROR(); - case 64: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) + if (lookahead == 'a') + ADVANCE(59); + ACCEPT_TOKEN(ts_sym__identifier); + case 59: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'c') + ADVANCE(60); + ACCEPT_TOKEN(ts_sym__identifier); + case 60: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'e') + ADVANCE(61); + ACCEPT_TOKEN(ts_sym__identifier); + case 61: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + ACCEPT_TOKEN(ts_sym__interface); + case 62: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'a') + ADVANCE(63); + ACCEPT_TOKEN(ts_sym__identifier); + case 63: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'p') ADVANCE(64); - if (lookahead == '[') - ADVANCE(40); - LEX_ERROR(); + ACCEPT_TOKEN(ts_sym__identifier); + case 64: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + ACCEPT_TOKEN(ts_sym__map); case 65: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(65); - if (lookahead == ')') - ADVANCE(27); - if (lookahead == ',') - ADVANCE(39); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - LEX_ERROR(); - case 66: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 't') ADVANCE(66); - if (lookahead == '(') - ADVANCE(30); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == '}') - ADVANCE(34); - LEX_ERROR(); - case 67: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) + ACCEPT_TOKEN(ts_sym__identifier); + case 66: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'r') ADVANCE(67); - if (lookahead == ')') - ADVANCE(27); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - LEX_ERROR(); - case 68: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) + ACCEPT_TOKEN(ts_sym__identifier); + case 67: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'u') ADVANCE(68); - if (lookahead == '(') - ADVANCE(30); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == '{') - ADVANCE(36); - LEX_ERROR(); - case 69: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) + ACCEPT_TOKEN(ts_sym__identifier); + case 68: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 'c') ADVANCE(69); - if (lookahead == '=') + ACCEPT_TOKEN(ts_sym__identifier); + case 69: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == 't') ADVANCE(70); - LEX_ERROR(); + ACCEPT_TOKEN(ts_sym__identifier); case 70: - ACCEPT_TOKEN(ts_aux_sym_token3); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + ACCEPT_TOKEN(ts_sym__struct); case 71: START_TOKEN(); if ((lookahead == '\t') || @@ -705,32 +680,57 @@ LEX_FN() { (lookahead == '\r') || (lookahead == ' ')) ADVANCE(71); - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == ']') ADVANCE(72); LEX_ERROR(); case 72: - if (lookahead == '.') - ADVANCE(73); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(72); - ACCEPT_TOKEN(ts_sym_number); + ACCEPT_TOKEN(ts_aux_sym_token7); case 73: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(74); - LEX_ERROR(); - case 74: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(74); - ACCEPT_TOKEN(ts_sym_number); - case 75: START_TOKEN(); - if (lookahead == '\0') - ADVANCE(1); if ((lookahead == '\t') || (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(73); + if (lookahead == '[') + ADVANCE(52); + LEX_ERROR(); + case 74: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(74); + if (lookahead == '*') + ADVANCE(51); + if (lookahead == ',') + ADVANCE(44); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'l') || + ('n' <= lookahead && lookahead <= 'r') || + ('t' <= lookahead && lookahead <= 'z')) + ADVANCE(38); + if (lookahead == '[') + ADVANCE(52); + if (lookahead == 'i') + ADVANCE(53); + if (lookahead == 'm') + ADVANCE(62); + if (lookahead == 's') + ADVANCE(65); + LEX_ERROR(); + case 75: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(75); + if (lookahead == ')') + ADVANCE(26); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(38); LEX_ERROR(); case 76: START_TOKEN(); @@ -777,19 +777,19 @@ LEX_FN() { (lookahead == ' ')) ADVANCE(84); if (lookahead == '\"') - ADVANCE(22); + ADVANCE(21); if (lookahead == '(') - ADVANCE(30); + ADVANCE(29); if (lookahead == ')') - ADVANCE(27); + ADVANCE(26); if (lookahead == '*') - ADVANCE(38); + ADVANCE(51); if (lookahead == ',') - ADVANCE(39); + ADVANCE(44); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(72); + ADVANCE(32); if (lookahead == '=') - ADVANCE(70); + ADVANCE(36); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -798,29 +798,29 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == '[') - ADVANCE(40); + ADVANCE(52); if (lookahead == ']') - ADVANCE(62); + ADVANCE(72); if (lookahead == 'f') ADVANCE(85); if (lookahead == 'i') ADVANCE(89); if (lookahead == 'm') - ADVANCE(50); + ADVANCE(62); if (lookahead == 'p') ADVANCE(95); if (lookahead == 's') - ADVANCE(53); + ADVANCE(65); if (lookahead == 't') ADVANCE(102); if (lookahead == 'v') ADVANCE(106); if (lookahead == '{') - ADVANCE(36); + ADVANCE(42); if (lookahead == '}') - ADVANCE(34); + ADVANCE(40); LEX_ERROR(); case 85: if (('0' <= lookahead && lookahead <= '9') || @@ -828,7 +828,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'u') ADVANCE(86); ACCEPT_TOKEN(ts_sym__identifier); @@ -838,7 +838,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'n') ADVANCE(87); ACCEPT_TOKEN(ts_sym__identifier); @@ -848,7 +848,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'b') || ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'c') ADVANCE(88); ACCEPT_TOKEN(ts_sym__identifier); @@ -857,7 +857,7 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); ACCEPT_TOKEN(ts_sym__func); case 89: if (('0' <= lookahead && lookahead <= '9') || @@ -865,11 +865,11 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'l') || ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'm') ADVANCE(90); if (lookahead == 'n') - ADVANCE(42); + ADVANCE(54); ACCEPT_TOKEN(ts_sym__identifier); case 90: if (('0' <= lookahead && lookahead <= '9') || @@ -877,7 +877,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'o') || ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'p') ADVANCE(91); ACCEPT_TOKEN(ts_sym__identifier); @@ -887,7 +887,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'n') || ('p' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'o') ADVANCE(92); ACCEPT_TOKEN(ts_sym__identifier); @@ -897,7 +897,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'r') ADVANCE(93); ACCEPT_TOKEN(ts_sym__identifier); @@ -907,7 +907,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 's') || ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 't') ADVANCE(94); ACCEPT_TOKEN(ts_sym__identifier); @@ -916,14 +916,14 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); ACCEPT_TOKEN(ts_sym__import); case 95: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'a') ADVANCE(96); ACCEPT_TOKEN(ts_sym__identifier); @@ -933,7 +933,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'b') || ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'c') ADVANCE(97); ACCEPT_TOKEN(ts_sym__identifier); @@ -943,7 +943,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'j') || ('l' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'k') ADVANCE(98); ACCEPT_TOKEN(ts_sym__identifier); @@ -952,7 +952,7 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'a') ADVANCE(99); ACCEPT_TOKEN(ts_sym__identifier); @@ -962,7 +962,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'f') || ('h' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'g') ADVANCE(100); ACCEPT_TOKEN(ts_sym__identifier); @@ -972,7 +972,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'd') || ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'e') ADVANCE(101); ACCEPT_TOKEN(ts_sym__identifier); @@ -981,7 +981,7 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); ACCEPT_TOKEN(ts_sym__package); case 102: if (('0' <= lookahead && lookahead <= '9') || @@ -989,7 +989,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'x') || (lookahead == 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'y') ADVANCE(103); ACCEPT_TOKEN(ts_sym__identifier); @@ -999,7 +999,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'o') || ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'p') ADVANCE(104); ACCEPT_TOKEN(ts_sym__identifier); @@ -1009,7 +1009,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'd') || ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'e') ADVANCE(105); ACCEPT_TOKEN(ts_sym__identifier); @@ -1018,14 +1018,14 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); ACCEPT_TOKEN(ts_sym__type); case 106: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'a') ADVANCE(107); ACCEPT_TOKEN(ts_sym__identifier); @@ -1035,7 +1035,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == 'r') ADVANCE(108); ACCEPT_TOKEN(ts_sym__identifier); @@ -1044,10 +1044,9 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); ACCEPT_TOKEN(ts_sym__var); case ts_lex_state_error: - START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if (('\t' <= lookahead && lookahead <= '\n') || @@ -1055,19 +1054,19 @@ LEX_FN() { (lookahead == ' ')) ADVANCE(84); if (lookahead == '\"') - ADVANCE(22); + ADVANCE(21); if (lookahead == '(') - ADVANCE(30); + ADVANCE(29); if (lookahead == ')') - ADVANCE(27); + ADVANCE(26); if (lookahead == '*') - ADVANCE(38); + ADVANCE(51); if (lookahead == ',') - ADVANCE(39); + ADVANCE(44); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(72); + ADVANCE(32); if (lookahead == '=') - ADVANCE(70); + ADVANCE(36); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -1076,29 +1075,29 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(38); if (lookahead == '[') - ADVANCE(40); + ADVANCE(52); if (lookahead == ']') - ADVANCE(62); + ADVANCE(72); if (lookahead == 'f') ADVANCE(85); if (lookahead == 'i') ADVANCE(89); if (lookahead == 'm') - ADVANCE(50); + ADVANCE(62); if (lookahead == 'p') ADVANCE(95); if (lookahead == 's') - ADVANCE(53); + ADVANCE(65); if (lookahead == 't') ADVANCE(102); if (lookahead == 'v') ADVANCE(106); if (lookahead == '{') - ADVANCE(36); + ADVANCE(42); if (lookahead == '}') - ADVANCE(34); + ADVANCE(40); LEX_ERROR(); default: LEX_PANIC(); @@ -1107,201 +1106,201 @@ LEX_FN() { LEX_STATES = { [0] = 76, - [1] = 19, - [2] = 0, - [3] = 0, - [4] = 0, - [5] = 29, - [6] = 0, - [7] = 0, - [8] = 21, - [9] = 21, - [10] = 21, - [11] = 28, - [12] = 28, - [13] = 0, - [14] = 0, - [15] = 31, - [16] = 31, - [17] = 19, - [18] = 32, - [19] = 32, - [20] = 35, - [21] = 31, - [22] = 33, - [23] = 31, - [24] = 67, - [25] = 37, - [26] = 37, - [27] = 63, - [28] = 59, - [29] = 35, - [30] = 60, - [31] = 32, - [32] = 60, - [33] = 33, - [34] = 67, - [35] = 37, - [36] = 63, - [37] = 64, - [38] = 63, - [39] = 61, - [40] = 35, - [41] = 60, - [42] = 33, - [43] = 61, - [44] = 64, - [45] = 63, - [46] = 35, - [47] = 60, - [48] = 63, - [49] = 63, - [50] = 60, - [51] = 35, - [52] = 60, - [53] = 33, - [54] = 60, - [55] = 64, - [56] = 63, - [57] = 61, - [58] = 61, - [59] = 63, - [60] = 35, - [61] = 60, - [62] = 33, - [63] = 60, - [64] = 60, - [65] = 60, - [66] = 63, - [67] = 60, - [68] = 61, - [69] = 63, - [70] = 60, - [71] = 63, - [72] = 61, - [73] = 61, - [74] = 63, - [75] = 61, - [76] = 60, - [77] = 33, - [78] = 33, - [79] = 61, - [80] = 61, - [81] = 63, - [82] = 61, - [83] = 61, - [84] = 63, - [85] = 35, - [86] = 60, - [87] = 33, - [88] = 59, - [89] = 59, - [90] = 59, - [91] = 63, - [92] = 59, - [93] = 61, - [94] = 63, - [95] = 59, - [96] = 59, - [97] = 28, - [98] = 66, - [99] = 60, - [100] = 19, - [101] = 65, - [102] = 59, - [103] = 28, - [104] = 60, - [105] = 19, - [106] = 59, - [107] = 28, - [108] = 19, - [109] = 59, - [110] = 28, - [111] = 60, - [112] = 19, - [113] = 19, - [114] = 19, - [115] = 59, - [116] = 28, - [117] = 19, - [118] = 37, - [119] = 63, - [120] = 59, - [121] = 28, - [122] = 19, - [123] = 37, - [124] = 63, - [125] = 19, - [126] = 37, - [127] = 63, - [128] = 66, - [129] = 60, - [130] = 19, - [131] = 59, - [132] = 28, - [133] = 60, - [134] = 19, - [135] = 59, - [136] = 28, - [137] = 33, - [138] = 59, - [139] = 59, - [140] = 28, - [141] = 68, - [142] = 35, - [143] = 35, - [144] = 19, - [145] = 59, - [146] = 28, - [147] = 35, - [148] = 19, - [149] = 59, - [150] = 28, - [151] = 35, - [152] = 68, - [153] = 35, - [154] = 19, - [155] = 59, - [156] = 28, - [157] = 35, - [158] = 19, - [159] = 59, - [160] = 28, - [161] = 19, - [162] = 63, - [163] = 63, - [164] = 31, - [165] = 35, - [166] = 60, - [167] = 33, - [168] = 31, - [169] = 64, - [170] = 63, - [171] = 61, - [172] = 63, - [173] = 35, - [174] = 60, - [175] = 33, - [176] = 31, - [177] = 31, - [178] = 31, - [179] = 63, - [180] = 31, - [181] = 61, - [182] = 63, - [183] = 31, - [184] = 31, - [185] = 19, - [186] = 69, - [187] = 69, - [188] = 71, - [189] = 31, - [190] = 31, - [191] = 31, - [192] = 31, - [193] = 75, - [194] = 75, - [195] = 75, + [1] = 0, + [2] = 2, + [3] = 2, + [4] = 28, + [5] = 2, + [6] = 2, + [7] = 20, + [8] = 20, + [9] = 20, + [10] = 27, + [11] = 27, + [12] = 2, + [13] = 30, + [14] = 30, + [15] = 30, + [16] = 30, + [17] = 37, + [18] = 35, + [19] = 31, + [20] = 30, + [21] = 30, + [22] = 35, + [23] = 37, + [24] = 47, + [25] = 41, + [26] = 30, + [27] = 39, + [28] = 30, + [29] = 75, + [30] = 74, + [31] = 50, + [32] = 43, + [33] = 27, + [34] = 46, + [35] = 41, + [36] = 41, + [37] = 37, + [38] = 37, + [39] = 43, + [40] = 27, + [41] = 41, + [42] = 37, + [43] = 37, + [44] = 43, + [45] = 27, + [46] = 43, + [47] = 37, + [48] = 43, + [49] = 27, + [50] = 41, + [51] = 37, + [52] = 43, + [53] = 27, + [54] = 45, + [55] = 37, + [56] = 74, + [57] = 50, + [58] = 43, + [59] = 27, + [60] = 43, + [61] = 73, + [62] = 50, + [63] = 71, + [64] = 50, + [65] = 43, + [66] = 41, + [67] = 48, + [68] = 47, + [69] = 48, + [70] = 47, + [71] = 39, + [72] = 75, + [73] = 74, + [74] = 50, + [75] = 43, + [76] = 27, + [77] = 49, + [78] = 48, + [79] = 48, + [80] = 37, + [81] = 37, + [82] = 43, + [83] = 27, + [84] = 48, + [85] = 43, + [86] = 27, + [87] = 48, + [88] = 41, + [89] = 48, + [90] = 50, + [91] = 48, + [92] = 50, + [93] = 39, + [94] = 48, + [95] = 73, + [96] = 50, + [97] = 71, + [98] = 50, + [99] = 48, + [100] = 41, + [101] = 48, + [102] = 39, + [103] = 48, + [104] = 41, + [105] = 48, + [106] = 39, + [107] = 48, + [108] = 50, + [109] = 48, + [110] = 71, + [111] = 50, + [112] = 48, + [113] = 71, + [114] = 73, + [115] = 50, + [116] = 71, + [117] = 50, + [118] = 71, + [119] = 41, + [120] = 48, + [121] = 39, + [122] = 71, + [123] = 41, + [124] = 48, + [125] = 39, + [126] = 71, + [127] = 71, + [128] = 50, + [129] = 71, + [130] = 71, + [131] = 50, + [132] = 71, + [133] = 39, + [134] = 43, + [135] = 50, + [136] = 43, + [137] = 71, + [138] = 50, + [139] = 43, + [140] = 37, + [141] = 74, + [142] = 50, + [143] = 74, + [144] = 49, + [145] = 48, + [146] = 37, + [147] = 37, + [148] = 43, + [149] = 27, + [150] = 43, + [151] = 27, + [152] = 48, + [153] = 39, + [154] = 43, + [155] = 37, + [156] = 74, + [157] = 50, + [158] = 46, + [159] = 41, + [160] = 37, + [161] = 37, + [162] = 43, + [163] = 27, + [164] = 43, + [165] = 27, + [166] = 41, + [167] = 37, + [168] = 50, + [169] = 30, + [170] = 30, + [171] = 73, + [172] = 50, + [173] = 71, + [174] = 50, + [175] = 30, + [176] = 41, + [177] = 48, + [178] = 39, + [179] = 30, + [180] = 41, + [181] = 48, + [182] = 39, + [183] = 30, + [184] = 30, + [185] = 50, + [186] = 30, + [187] = 71, + [188] = 50, + [189] = 30, + [190] = 50, + [191] = 0, + [192] = 0, + [193] = 37, + [194] = 2, + [195] = 2, }; #pragma GCC diagnostic push @@ -1309,1126 +1308,1126 @@ LEX_STATES = { PARSE_TABLE = { [0] = { - [ts_sym__package] = SHIFT(1), - [ts_sym_package_directive] = SHIFT(4), - [ts_sym_program] = SHIFT(195), + [ts_sym_program] = SHIFT(1), + [ts_sym_package_directive] = SHIFT(2), + [ts_sym__package] = SHIFT(193), }, [1] = { - [ts_sym__identifier] = SHIFT(2), - [ts_sym_package_name] = SHIFT(3), + [ts_builtin_sym_end] = ACCEPT_INPUT(), }, [2] = { - [ts_sym__func] = REDUCE(ts_sym_package_name, 1), - [ts_sym__import] = REDUCE(ts_sym_package_name, 1), - [ts_sym__type] = REDUCE(ts_sym_package_name, 1), - [ts_sym__var] = REDUCE(ts_sym_package_name, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_package_name, 1), + [ts_sym_imports_block] = SHIFT(3), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__import] = SHIFT(4), + [ts_sym__var] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__func] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__type] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_aux_sym_program_repeat0] = SHIFT(14), }, [3] = { - [ts_sym__func] = REDUCE(ts_sym_package_directive, 2), - [ts_sym__import] = REDUCE(ts_sym_package_directive, 2), - [ts_sym__type] = REDUCE(ts_sym_package_directive, 2), - [ts_sym__var] = REDUCE(ts_sym_package_directive, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_package_directive, 2), + [ts_sym_imports_block] = SHIFT(3), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__import] = SHIFT(4), + [ts_sym__var] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__func] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__type] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_aux_sym_program_repeat0] = SHIFT(13), }, [4] = { - [ts_sym__func] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_sym__import] = SHIFT(5), - [ts_sym__type] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_sym__var] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_sym_imports_block] = SHIFT(14), - [ts_aux_sym_program_repeat1] = SHIFT(16), - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), + [ts_sym_package_import] = SHIFT(5), + [ts_sym_string] = SHIFT(6), + [ts_aux_sym_token0] = SHIFT(7), }, [5] = { - [ts_sym_package_import] = SHIFT(6), - [ts_sym_string] = SHIFT(7), - [ts_aux_sym_token1] = SHIFT(8), + [ts_builtin_sym_end] = REDUCE(ts_sym_imports_block, 2), + [ts_sym__import] = REDUCE(ts_sym_imports_block, 2), + [ts_sym__var] = REDUCE(ts_sym_imports_block, 2), + [ts_sym__func] = REDUCE(ts_sym_imports_block, 2), + [ts_sym__type] = REDUCE(ts_sym_imports_block, 2), }, [6] = { - [ts_sym__func] = REDUCE(ts_sym_imports_block, 2), - [ts_sym__import] = REDUCE(ts_sym_imports_block, 2), - [ts_sym__type] = REDUCE(ts_sym_imports_block, 2), - [ts_sym__var] = REDUCE(ts_sym_imports_block, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_imports_block, 2), + [ts_builtin_sym_end] = REDUCE(ts_sym_package_import, 1), + [ts_sym__import] = REDUCE(ts_sym_package_import, 1), + [ts_sym__var] = REDUCE(ts_sym_package_import, 1), + [ts_sym__func] = REDUCE(ts_sym_package_import, 1), + [ts_sym__type] = REDUCE(ts_sym_package_import, 1), }, [7] = { - [ts_sym__func] = REDUCE(ts_sym_package_import, 1), - [ts_sym__import] = REDUCE(ts_sym_package_import, 1), - [ts_sym__type] = REDUCE(ts_sym_package_import, 1), - [ts_sym__var] = REDUCE(ts_sym_package_import, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_package_import, 1), + [ts_sym_package_import] = SHIFT(8), + [ts_builtin_sym_error] = SHIFT(11), + [ts_sym_string] = SHIFT(9), + [ts_aux_sym_imports_block_repeat0] = SHIFT(11), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_imports_block_repeat0, 0), }, [8] = { - [ts_sym_package_import] = SHIFT(9), - [ts_sym_string] = SHIFT(10), - [ts_aux_sym_imports_block_repeat1] = SHIFT(12), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_imports_block_repeat1, 0), - [ts_builtin_sym_error] = SHIFT(12), + [ts_sym_package_import] = SHIFT(8), + [ts_sym_string] = SHIFT(9), + [ts_aux_sym_imports_block_repeat0] = SHIFT(10), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_imports_block_repeat0, 0), }, [9] = { - [ts_sym_package_import] = SHIFT(9), - [ts_sym_string] = SHIFT(10), - [ts_aux_sym_imports_block_repeat1] = SHIFT(11), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_imports_block_repeat1, 0), + [ts_sym_string] = REDUCE(ts_sym_package_import, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_package_import, 1), }, [10] = { - [ts_sym_string] = REDUCE(ts_sym_package_import, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_package_import, 1), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_imports_block_repeat0, 2), }, [11] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_imports_block_repeat1, 2), + [ts_aux_sym_token1] = SHIFT(12), }, [12] = { - [ts_aux_sym_token2] = SHIFT(13), + [ts_builtin_sym_end] = REDUCE(ts_sym_imports_block, 4), + [ts_sym__import] = REDUCE(ts_sym_imports_block, 4), + [ts_sym__var] = REDUCE(ts_sym_imports_block, 4), + [ts_sym__func] = REDUCE(ts_sym_imports_block, 4), + [ts_sym__type] = REDUCE(ts_sym_imports_block, 4), }, [13] = { - [ts_sym__func] = REDUCE(ts_sym_imports_block, 4), - [ts_sym__import] = REDUCE(ts_sym_imports_block, 4), - [ts_sym__type] = REDUCE(ts_sym_imports_block, 4), - [ts_sym__var] = REDUCE(ts_sym_imports_block, 4), - [ts_builtin_sym_end] = REDUCE(ts_sym_imports_block, 4), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat0, 2), + [ts_sym__var] = REDUCE(ts_aux_sym_program_repeat0, 2), + [ts_sym__func] = REDUCE(ts_aux_sym_program_repeat0, 2), + [ts_sym__type] = REDUCE(ts_aux_sym_program_repeat0, 2), }, [14] = { - [ts_sym__func] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_sym__import] = SHIFT(5), - [ts_sym__type] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_sym__var] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_sym_imports_block] = SHIFT(14), - [ts_aux_sym_program_repeat1] = SHIFT(15), + [ts_sym_declaration] = SHIFT(15), + [ts_sym_type_declaration] = SHIFT(16), + [ts_sym_var_declaration] = SHIFT(16), + [ts_sym_func_declaration] = SHIFT(16), [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), + [ts_sym__var] = SHIFT(17), + [ts_sym__func] = SHIFT(23), + [ts_sym__type] = SHIFT(167), + [ts_aux_sym_program_repeat1] = SHIFT(192), }, [15] = { - [ts_sym__func] = REDUCE(ts_aux_sym_program_repeat1, 2), - [ts_sym__type] = REDUCE(ts_aux_sym_program_repeat1, 2), - [ts_sym__var] = REDUCE(ts_aux_sym_program_repeat1, 2), - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 2), + [ts_sym_declaration] = SHIFT(15), + [ts_sym_type_declaration] = SHIFT(16), + [ts_sym_var_declaration] = SHIFT(16), + [ts_sym_func_declaration] = SHIFT(16), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), + [ts_sym__var] = SHIFT(17), + [ts_sym__func] = SHIFT(23), + [ts_sym__type] = SHIFT(167), + [ts_aux_sym_program_repeat1] = SHIFT(191), }, [16] = { - [ts_sym__func] = SHIFT(17), - [ts_sym__type] = SHIFT(161), - [ts_sym__var] = SHIFT(185), - [ts_sym_declaration] = SHIFT(191), - [ts_sym_func_declaration] = SHIFT(192), - [ts_sym_type_declaration] = SHIFT(192), - [ts_sym_var_declaration] = SHIFT(192), - [ts_aux_sym_program_repeat2] = SHIFT(194), - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat2, 0), - }, - [17] = { - [ts_sym__identifier] = SHIFT(18), - [ts_sym_var_name] = SHIFT(19), - }, - [18] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_var_name, 1), - }, - [19] = { - [ts_sym__func_signature] = SHIFT(20), - [ts_aux_sym_token1] = SHIFT(24), - }, - [20] = { - [ts_sym_statement_block] = SHIFT(21), - [ts_aux_sym_token4] = SHIFT(22), - }, - [21] = { - [ts_sym__func] = REDUCE(ts_sym_func_declaration, 4), - [ts_sym__type] = REDUCE(ts_sym_func_declaration, 4), - [ts_sym__var] = REDUCE(ts_sym_func_declaration, 4), - [ts_builtin_sym_end] = REDUCE(ts_sym_func_declaration, 4), - }, - [22] = { - [ts_aux_sym_token5] = SHIFT(23), - }, - [23] = { - [ts_sym__func] = REDUCE(ts_sym_statement_block, 2), - [ts_sym__type] = REDUCE(ts_sym_statement_block, 2), - [ts_sym__var] = REDUCE(ts_sym_statement_block, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 2), - }, - [24] = { - [ts_sym__identifier] = SHIFT(25), - [ts_sym_var_name] = SHIFT(26), - [ts_aux_sym_token2] = SHIFT(152), - }, - [25] = { - [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), - [ts_sym__interface] = REDUCE(ts_sym_var_name, 1), - [ts_sym__map] = REDUCE(ts_sym_var_name, 1), - [ts_sym__struct] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token6] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_name, 1), - }, - [26] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym__func_signature_repeat1] = SHIFT(27), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(125), - }, - [27] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym__interface] = SHIFT(29), - [ts_sym__map] = SHIFT(37), - [ts_sym__struct] = SHIFT(85), - [ts_sym_interface_type] = SHIFT(89), - [ts_sym_map_type] = SHIFT(89), - [ts_sym_pointer_type] = SHIFT(89), - [ts_sym_slice_type] = SHIFT(89), - [ts_sym_struct_type] = SHIFT(89), - [ts_sym_type_expression] = SHIFT(139), - [ts_sym_type_name] = SHIFT(89), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(93), - }, - [28] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_type_name, 1), - }, - [29] = { - [ts_aux_sym_token4] = SHIFT(30), - }, - [30] = { - [ts_sym__identifier] = SHIFT(18), - [ts_sym_var_name] = SHIFT(31), - [ts_aux_sym_interface_type_repeat1] = SHIFT(137), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_interface_type_repeat1, 0), - }, - [31] = { - [ts_sym__func_signature] = SHIFT(32), - [ts_aux_sym_token1] = SHIFT(34), - }, - [32] = { - [ts_sym__identifier] = SHIFT(18), - [ts_sym_var_name] = SHIFT(31), - [ts_aux_sym_interface_type_repeat1] = SHIFT(33), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_interface_type_repeat1, 0), - }, - [33] = { - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_interface_type_repeat1, 3), - }, - [34] = { - [ts_sym__identifier] = SHIFT(25), - [ts_sym_var_name] = SHIFT(35), - [ts_aux_sym_token2] = SHIFT(128), - }, - [35] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym__func_signature_repeat1] = SHIFT(36), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(125), - }, - [36] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym__interface] = SHIFT(29), - [ts_sym__map] = SHIFT(37), - [ts_sym__struct] = SHIFT(85), - [ts_sym_interface_type] = SHIFT(89), - [ts_sym_map_type] = SHIFT(89), - [ts_sym_pointer_type] = SHIFT(89), - [ts_sym_slice_type] = SHIFT(89), - [ts_sym_struct_type] = SHIFT(89), - [ts_sym_type_expression] = SHIFT(96), - [ts_sym_type_name] = SHIFT(89), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(93), - }, - [37] = { - [ts_aux_sym_token7] = SHIFT(38), - }, - [38] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(83), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [39] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_type_name, 1), - }, - [40] = { - [ts_aux_sym_token4] = SHIFT(41), - }, - [41] = { - [ts_sym__identifier] = SHIFT(18), - [ts_sym_var_name] = SHIFT(31), - [ts_aux_sym_interface_type_repeat1] = SHIFT(42), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_interface_type_repeat1, 0), - }, - [42] = { - [ts_aux_sym_token5] = SHIFT(43), - }, - [43] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_interface_type, 4), - }, - [44] = { - [ts_aux_sym_token7] = SHIFT(45), - }, - [45] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(80), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [46] = { - [ts_aux_sym_token4] = SHIFT(47), - }, - [47] = { - [ts_sym__identifier] = SHIFT(48), - [ts_sym_var_name] = SHIFT(49), - [ts_aux_sym_struct_type_repeat1] = SHIFT(78), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_struct_type_repeat1, 0), - }, - [48] = { - [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), - [ts_sym__interface] = REDUCE(ts_sym_var_name, 1), - [ts_sym__map] = REDUCE(ts_sym_var_name, 1), - [ts_sym__struct] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token6] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_var_name, 1), - }, - [49] = { - [ts_sym__identifier] = SHIFT(50), - [ts_sym__interface] = SHIFT(51), - [ts_sym__map] = SHIFT(55), - [ts_sym__struct] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(64), - [ts_sym_map_type] = SHIFT(64), - [ts_sym_pointer_type] = SHIFT(64), - [ts_sym_slice_type] = SHIFT(64), - [ts_sym_struct_type] = SHIFT(64), - [ts_sym_type_expression] = SHIFT(76), - [ts_sym_type_name] = SHIFT(64), - [ts_aux_sym_token6] = SHIFT(66), - [ts_aux_sym_token7] = SHIFT(68), - }, - [50] = { - [ts_sym__identifier] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_type_name, 1), - }, - [51] = { - [ts_aux_sym_token4] = SHIFT(52), - }, - [52] = { - [ts_sym__identifier] = SHIFT(18), - [ts_sym_var_name] = SHIFT(31), - [ts_aux_sym_interface_type_repeat1] = SHIFT(53), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_interface_type_repeat1, 0), - }, - [53] = { - [ts_aux_sym_token5] = SHIFT(54), - }, - [54] = { - [ts_sym__identifier] = REDUCE(ts_sym_interface_type, 4), - [ts_aux_sym_token5] = REDUCE(ts_sym_interface_type, 4), - }, - [55] = { - [ts_aux_sym_token7] = SHIFT(56), - }, - [56] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(58), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [57] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_type_expression, 1), - }, - [58] = { - [ts_aux_sym_token8] = SHIFT(59), - }, - [59] = { - [ts_sym__identifier] = SHIFT(50), - [ts_sym__interface] = SHIFT(51), - [ts_sym__map] = SHIFT(55), - [ts_sym__struct] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(64), - [ts_sym_map_type] = SHIFT(64), - [ts_sym_pointer_type] = SHIFT(64), - [ts_sym_slice_type] = SHIFT(64), - [ts_sym_struct_type] = SHIFT(64), - [ts_sym_type_expression] = SHIFT(65), - [ts_sym_type_name] = SHIFT(64), - [ts_aux_sym_token6] = SHIFT(66), - [ts_aux_sym_token7] = SHIFT(68), - }, - [60] = { - [ts_aux_sym_token4] = SHIFT(61), - }, - [61] = { - [ts_sym__identifier] = SHIFT(48), - [ts_sym_var_name] = SHIFT(49), - [ts_aux_sym_struct_type_repeat1] = SHIFT(62), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_struct_type_repeat1, 0), - }, - [62] = { - [ts_aux_sym_token5] = SHIFT(63), - }, - [63] = { - [ts_sym__identifier] = REDUCE(ts_sym_struct_type, 4), - [ts_aux_sym_token5] = REDUCE(ts_sym_struct_type, 4), - }, - [64] = { - [ts_sym__identifier] = REDUCE(ts_sym_type_expression, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_type_expression, 1), - }, - [65] = { - [ts_sym__identifier] = REDUCE(ts_sym_map_type, 5), - [ts_aux_sym_token5] = REDUCE(ts_sym_map_type, 5), - }, - [66] = { - [ts_sym__identifier] = SHIFT(50), - [ts_sym__interface] = SHIFT(51), - [ts_sym__map] = SHIFT(55), - [ts_sym__struct] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(64), - [ts_sym_map_type] = SHIFT(64), - [ts_sym_pointer_type] = SHIFT(64), - [ts_sym_slice_type] = SHIFT(64), - [ts_sym_struct_type] = SHIFT(64), - [ts_sym_type_expression] = SHIFT(67), - [ts_sym_type_name] = SHIFT(64), - [ts_aux_sym_token6] = SHIFT(66), - [ts_aux_sym_token7] = SHIFT(68), - }, - [67] = { - [ts_sym__identifier] = REDUCE(ts_sym_pointer_type, 2), - [ts_aux_sym_token5] = REDUCE(ts_sym_pointer_type, 2), - }, - [68] = { - [ts_aux_sym_token8] = SHIFT(69), - }, - [69] = { - [ts_sym__identifier] = SHIFT(50), - [ts_sym__interface] = SHIFT(51), - [ts_sym__map] = SHIFT(55), - [ts_sym__struct] = SHIFT(60), - [ts_sym_interface_type] = SHIFT(64), - [ts_sym_map_type] = SHIFT(64), - [ts_sym_pointer_type] = SHIFT(64), - [ts_sym_slice_type] = SHIFT(64), - [ts_sym_struct_type] = SHIFT(64), - [ts_sym_type_expression] = SHIFT(70), - [ts_sym_type_name] = SHIFT(64), - [ts_aux_sym_token6] = SHIFT(66), - [ts_aux_sym_token7] = SHIFT(68), - }, - [70] = { - [ts_sym__identifier] = REDUCE(ts_sym_slice_type, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_slice_type, 3), - }, - [71] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(72), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [72] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_pointer_type, 2), - }, - [73] = { - [ts_aux_sym_token8] = SHIFT(74), - }, - [74] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(75), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [75] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_slice_type, 3), - }, - [76] = { - [ts_sym__identifier] = SHIFT(48), - [ts_sym_var_name] = SHIFT(49), - [ts_aux_sym_struct_type_repeat1] = SHIFT(77), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_struct_type_repeat1, 0), - }, - [77] = { - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_struct_type_repeat1, 3), - }, - [78] = { - [ts_aux_sym_token5] = SHIFT(79), - }, - [79] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_struct_type, 4), - }, - [80] = { - [ts_aux_sym_token8] = SHIFT(81), - }, - [81] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(82), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [82] = { - [ts_aux_sym_token8] = REDUCE(ts_sym_map_type, 5), - }, - [83] = { - [ts_aux_sym_token8] = SHIFT(84), - }, - [84] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym__interface] = SHIFT(29), - [ts_sym__map] = SHIFT(37), - [ts_sym__struct] = SHIFT(85), - [ts_sym_interface_type] = SHIFT(89), - [ts_sym_map_type] = SHIFT(89), - [ts_sym_pointer_type] = SHIFT(89), - [ts_sym_slice_type] = SHIFT(89), - [ts_sym_struct_type] = SHIFT(89), - [ts_sym_type_expression] = SHIFT(90), - [ts_sym_type_name] = SHIFT(89), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(93), - }, - [85] = { - [ts_aux_sym_token4] = SHIFT(86), - }, - [86] = { - [ts_sym__identifier] = SHIFT(48), - [ts_sym_var_name] = SHIFT(49), - [ts_aux_sym_struct_type_repeat1] = SHIFT(87), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_struct_type_repeat1, 0), - }, - [87] = { - [ts_aux_sym_token5] = SHIFT(88), - }, - [88] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_struct_type, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_struct_type, 4), - }, - [89] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_type_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_type_expression, 1), - }, - [90] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_map_type, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_map_type, 5), - }, - [91] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym__interface] = SHIFT(29), - [ts_sym__map] = SHIFT(37), - [ts_sym__struct] = SHIFT(85), - [ts_sym_interface_type] = SHIFT(89), - [ts_sym_map_type] = SHIFT(89), - [ts_sym_pointer_type] = SHIFT(89), - [ts_sym_slice_type] = SHIFT(89), - [ts_sym_struct_type] = SHIFT(89), - [ts_sym_type_expression] = SHIFT(92), - [ts_sym_type_name] = SHIFT(89), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(93), - }, - [92] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_pointer_type, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_pointer_type, 2), - }, - [93] = { - [ts_aux_sym_token8] = SHIFT(94), - }, - [94] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym__interface] = SHIFT(29), - [ts_sym__map] = SHIFT(37), - [ts_sym__struct] = SHIFT(85), - [ts_sym_interface_type] = SHIFT(89), - [ts_sym_map_type] = SHIFT(89), - [ts_sym_pointer_type] = SHIFT(89), - [ts_sym_slice_type] = SHIFT(89), - [ts_sym_struct_type] = SHIFT(89), - [ts_sym_type_expression] = SHIFT(95), - [ts_sym_type_name] = SHIFT(89), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(93), - }, - [95] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_slice_type, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_slice_type, 3), - }, - [96] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(97), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token9] = SHIFT(117), - }, - [97] = { - [ts_aux_sym_token2] = SHIFT(98), - }, - [98] = { - [ts_sym__identifier] = SHIFT(50), - [ts_sym_type_name] = SHIFT(99), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 6), - }, - [99] = { - [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 7), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 7), - }, - [100] = { - [ts_sym__identifier] = SHIFT(101), - [ts_sym_type_name] = SHIFT(102), - [ts_sym_var_name] = SHIFT(108), - }, - [101] = { - [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_type_name, 1), - }, - [102] = { - [ts_aux_sym__func_signature_repeat5] = SHIFT(103), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat5, 0), - [ts_aux_sym_token9] = SHIFT(105), - }, - [103] = { - [ts_aux_sym_token2] = SHIFT(104), - }, - [104] = { - [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 10), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 10), - }, - [105] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym_type_name] = SHIFT(106), - }, - [106] = { - [ts_aux_sym__func_signature_repeat5] = SHIFT(107), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat5, 0), - [ts_aux_sym_token9] = SHIFT(105), - }, - [107] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat5, 3), - }, - [108] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym_type_name] = SHIFT(109), - }, - [109] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(110), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token9] = SHIFT(112), - }, - [110] = { - [ts_aux_sym_token2] = SHIFT(111), - }, - [111] = { - [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 11), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 11), - }, - [112] = { - [ts_sym__identifier] = SHIFT(113), - [ts_sym_var_name] = SHIFT(114), - }, - [113] = { - [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), - }, - [114] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym_type_name] = SHIFT(115), - }, - [115] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(116), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token9] = SHIFT(112), - }, - [116] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat4, 4), - }, - [117] = { - [ts_sym__identifier] = SHIFT(25), - [ts_sym_var_name] = SHIFT(118), - }, - [118] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym__func_signature_repeat2] = SHIFT(119), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token9] = SHIFT(122), - }, - [119] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym__interface] = SHIFT(29), - [ts_sym__map] = SHIFT(37), - [ts_sym__struct] = SHIFT(85), - [ts_sym_interface_type] = SHIFT(89), - [ts_sym_map_type] = SHIFT(89), - [ts_sym_pointer_type] = SHIFT(89), - [ts_sym_slice_type] = SHIFT(89), - [ts_sym_struct_type] = SHIFT(89), - [ts_sym_type_expression] = SHIFT(120), - [ts_sym_type_name] = SHIFT(89), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(93), - }, - [120] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(121), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token9] = SHIFT(117), - }, - [121] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat3, 5), - }, - [122] = { - [ts_sym__identifier] = SHIFT(25), - [ts_sym_var_name] = SHIFT(123), - }, - [123] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym__func_signature_repeat2] = SHIFT(124), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), - [ts_aux_sym_token9] = SHIFT(122), - }, - [124] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat2, 3), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat2, 3), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat2, 3), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat2, 3), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat2, 3), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat2, 3), - }, - [125] = { - [ts_sym__identifier] = SHIFT(25), - [ts_sym_var_name] = SHIFT(126), - }, - [126] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym__func_signature_repeat1] = SHIFT(127), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(125), - }, - [127] = { - [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), - [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), - [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), - [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), - [ts_aux_sym_token7] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), - }, - [128] = { - [ts_sym__identifier] = SHIFT(50), - [ts_sym_type_name] = SHIFT(129), - [ts_aux_sym_token1] = SHIFT(130), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 2), - }, - [129] = { - [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 3), - }, - [130] = { - [ts_sym__identifier] = SHIFT(101), - [ts_sym_type_name] = SHIFT(131), - [ts_sym_var_name] = SHIFT(134), - }, - [131] = { - [ts_aux_sym__func_signature_repeat5] = SHIFT(132), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat5, 0), - [ts_aux_sym_token9] = SHIFT(105), - }, - [132] = { - [ts_aux_sym_token2] = SHIFT(133), - }, - [133] = { - [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 6), - [ts_aux_sym_token5] = REDUCE(ts_sym__func_signature, 6), - }, - [134] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym_type_name] = SHIFT(135), - }, - [135] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(136), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token9] = SHIFT(112), - }, - [136] = { - [ts_aux_sym_token2] = SHIFT(99), - }, - [137] = { - [ts_aux_sym_token5] = SHIFT(138), - }, - [138] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_interface_type, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_interface_type, 4), - }, - [139] = { - [ts_aux_sym__func_signature_repeat3] = SHIFT(140), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), - [ts_aux_sym_token9] = SHIFT(117), - }, - [140] = { - [ts_aux_sym_token2] = SHIFT(141), - }, - [141] = { - [ts_sym__identifier] = SHIFT(142), - [ts_sym_type_name] = SHIFT(143), - [ts_aux_sym_token1] = SHIFT(144), - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 6), - }, - [142] = { - [ts_aux_sym_token4] = REDUCE(ts_sym_type_name, 1), - }, - [143] = { - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 7), - }, - [144] = { - [ts_sym__identifier] = SHIFT(101), - [ts_sym_type_name] = SHIFT(145), - [ts_sym_var_name] = SHIFT(148), - }, - [145] = { - [ts_aux_sym__func_signature_repeat5] = SHIFT(146), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat5, 0), - [ts_aux_sym_token9] = SHIFT(105), - }, - [146] = { - [ts_aux_sym_token2] = SHIFT(147), - }, - [147] = { - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 10), - }, - [148] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym_type_name] = SHIFT(149), - }, - [149] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(150), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token9] = SHIFT(112), - }, - [150] = { - [ts_aux_sym_token2] = SHIFT(151), - }, - [151] = { - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 11), - }, - [152] = { - [ts_sym__identifier] = SHIFT(142), - [ts_sym_type_name] = SHIFT(153), - [ts_aux_sym_token1] = SHIFT(154), - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 2), - }, - [153] = { - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 3), - }, - [154] = { - [ts_sym__identifier] = SHIFT(101), - [ts_sym_type_name] = SHIFT(155), - [ts_sym_var_name] = SHIFT(158), - }, - [155] = { - [ts_aux_sym__func_signature_repeat5] = SHIFT(156), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat5, 0), - [ts_aux_sym_token9] = SHIFT(105), - }, - [156] = { - [ts_aux_sym_token2] = SHIFT(157), - }, - [157] = { - [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 6), - }, - [158] = { - [ts_sym__identifier] = SHIFT(28), - [ts_sym_type_name] = SHIFT(159), - }, - [159] = { - [ts_aux_sym__func_signature_repeat4] = SHIFT(160), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), - [ts_aux_sym_token9] = SHIFT(112), - }, - [160] = { - [ts_aux_sym_token2] = SHIFT(143), - }, - [161] = { - [ts_sym__identifier] = SHIFT(162), - [ts_sym_type_name] = SHIFT(163), - }, - [162] = { - [ts_sym__identifier] = REDUCE(ts_sym_type_name, 1), - [ts_sym__interface] = REDUCE(ts_sym_type_name, 1), - [ts_sym__map] = REDUCE(ts_sym_type_name, 1), - [ts_sym__struct] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token6] = REDUCE(ts_sym_type_name, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_type_name, 1), - }, - [163] = { - [ts_sym__identifier] = SHIFT(164), - [ts_sym__interface] = SHIFT(165), - [ts_sym__map] = SHIFT(169), - [ts_sym__struct] = SHIFT(173), - [ts_sym_interface_type] = SHIFT(177), - [ts_sym_map_type] = SHIFT(177), - [ts_sym_pointer_type] = SHIFT(177), - [ts_sym_slice_type] = SHIFT(177), - [ts_sym_struct_type] = SHIFT(177), - [ts_sym_type_expression] = SHIFT(184), - [ts_sym_type_name] = SHIFT(177), - [ts_aux_sym_token6] = SHIFT(179), - [ts_aux_sym_token7] = SHIFT(181), - }, - [164] = { - [ts_sym__func] = REDUCE(ts_sym_type_name, 1), - [ts_sym__type] = REDUCE(ts_sym_type_name, 1), - [ts_sym__var] = REDUCE(ts_sym_type_name, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_type_name, 1), - }, - [165] = { - [ts_aux_sym_token4] = SHIFT(166), - }, - [166] = { - [ts_sym__identifier] = SHIFT(18), - [ts_sym_var_name] = SHIFT(31), - [ts_aux_sym_interface_type_repeat1] = SHIFT(167), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_interface_type_repeat1, 0), - }, - [167] = { - [ts_aux_sym_token5] = SHIFT(168), - }, - [168] = { - [ts_sym__func] = REDUCE(ts_sym_interface_type, 4), - [ts_sym__type] = REDUCE(ts_sym_interface_type, 4), - [ts_sym__var] = REDUCE(ts_sym_interface_type, 4), - [ts_builtin_sym_end] = REDUCE(ts_sym_interface_type, 4), - }, - [169] = { - [ts_aux_sym_token7] = SHIFT(170), - }, - [170] = { - [ts_sym__identifier] = SHIFT(39), - [ts_sym__interface] = SHIFT(40), - [ts_sym__map] = SHIFT(44), - [ts_sym__struct] = SHIFT(46), - [ts_sym_interface_type] = SHIFT(57), - [ts_sym_map_type] = SHIFT(57), - [ts_sym_pointer_type] = SHIFT(57), - [ts_sym_slice_type] = SHIFT(57), - [ts_sym_struct_type] = SHIFT(57), - [ts_sym_type_expression] = SHIFT(171), - [ts_sym_type_name] = SHIFT(57), - [ts_aux_sym_token6] = SHIFT(71), - [ts_aux_sym_token7] = SHIFT(73), - }, - [171] = { - [ts_aux_sym_token8] = SHIFT(172), - }, - [172] = { - [ts_sym__identifier] = SHIFT(164), - [ts_sym__interface] = SHIFT(165), - [ts_sym__map] = SHIFT(169), - [ts_sym__struct] = SHIFT(173), - [ts_sym_interface_type] = SHIFT(177), - [ts_sym_map_type] = SHIFT(177), - [ts_sym_pointer_type] = SHIFT(177), - [ts_sym_slice_type] = SHIFT(177), - [ts_sym_struct_type] = SHIFT(177), - [ts_sym_type_expression] = SHIFT(178), - [ts_sym_type_name] = SHIFT(177), - [ts_aux_sym_token6] = SHIFT(179), - [ts_aux_sym_token7] = SHIFT(181), - }, - [173] = { - [ts_aux_sym_token4] = SHIFT(174), - }, - [174] = { - [ts_sym__identifier] = SHIFT(48), - [ts_sym_var_name] = SHIFT(49), - [ts_aux_sym_struct_type_repeat1] = SHIFT(175), - [ts_aux_sym_token5] = REDUCE(ts_aux_sym_struct_type_repeat1, 0), - }, - [175] = { - [ts_aux_sym_token5] = SHIFT(176), - }, - [176] = { - [ts_sym__func] = REDUCE(ts_sym_struct_type, 4), - [ts_sym__type] = REDUCE(ts_sym_struct_type, 4), - [ts_sym__var] = REDUCE(ts_sym_struct_type, 4), - [ts_builtin_sym_end] = REDUCE(ts_sym_struct_type, 4), - }, - [177] = { - [ts_sym__func] = REDUCE(ts_sym_type_expression, 1), - [ts_sym__type] = REDUCE(ts_sym_type_expression, 1), - [ts_sym__var] = REDUCE(ts_sym_type_expression, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_type_expression, 1), - }, - [178] = { - [ts_sym__func] = REDUCE(ts_sym_map_type, 5), - [ts_sym__type] = REDUCE(ts_sym_map_type, 5), - [ts_sym__var] = REDUCE(ts_sym_map_type, 5), - [ts_builtin_sym_end] = REDUCE(ts_sym_map_type, 5), - }, - [179] = { - [ts_sym__identifier] = SHIFT(164), - [ts_sym__interface] = SHIFT(165), - [ts_sym__map] = SHIFT(169), - [ts_sym__struct] = SHIFT(173), - [ts_sym_interface_type] = SHIFT(177), - [ts_sym_map_type] = SHIFT(177), - [ts_sym_pointer_type] = SHIFT(177), - [ts_sym_slice_type] = SHIFT(177), - [ts_sym_struct_type] = SHIFT(177), - [ts_sym_type_expression] = SHIFT(180), - [ts_sym_type_name] = SHIFT(177), - [ts_aux_sym_token6] = SHIFT(179), - [ts_aux_sym_token7] = SHIFT(181), - }, - [180] = { - [ts_sym__func] = REDUCE(ts_sym_pointer_type, 2), - [ts_sym__type] = REDUCE(ts_sym_pointer_type, 2), - [ts_sym__var] = REDUCE(ts_sym_pointer_type, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_pointer_type, 2), - }, - [181] = { - [ts_aux_sym_token8] = SHIFT(182), - }, - [182] = { - [ts_sym__identifier] = SHIFT(164), - [ts_sym__interface] = SHIFT(165), - [ts_sym__map] = SHIFT(169), - [ts_sym__struct] = SHIFT(173), - [ts_sym_interface_type] = SHIFT(177), - [ts_sym_map_type] = SHIFT(177), - [ts_sym_pointer_type] = SHIFT(177), - [ts_sym_slice_type] = SHIFT(177), - [ts_sym_struct_type] = SHIFT(177), - [ts_sym_type_expression] = SHIFT(183), - [ts_sym_type_name] = SHIFT(177), - [ts_aux_sym_token6] = SHIFT(179), - [ts_aux_sym_token7] = SHIFT(181), - }, - [183] = { - [ts_sym__func] = REDUCE(ts_sym_slice_type, 3), - [ts_sym__type] = REDUCE(ts_sym_slice_type, 3), - [ts_sym__var] = REDUCE(ts_sym_slice_type, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_slice_type, 3), - }, - [184] = { - [ts_sym__func] = REDUCE(ts_sym_type_declaration, 3), - [ts_sym__type] = REDUCE(ts_sym_type_declaration, 3), - [ts_sym__var] = REDUCE(ts_sym_type_declaration, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_type_declaration, 3), - }, - [185] = { - [ts_sym__identifier] = SHIFT(186), - [ts_sym_var_name] = SHIFT(187), - }, - [186] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_var_name, 1), - }, - [187] = { - [ts_aux_sym_token3] = SHIFT(188), - }, - [188] = { - [ts_sym_expression] = SHIFT(189), - [ts_sym_number] = SHIFT(190), - }, - [189] = { - [ts_sym__func] = REDUCE(ts_sym_var_declaration, 4), - [ts_sym__type] = REDUCE(ts_sym_var_declaration, 4), - [ts_sym__var] = REDUCE(ts_sym_var_declaration, 4), - [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 4), - }, - [190] = { - [ts_sym__func] = REDUCE(ts_sym_expression, 1), - [ts_sym__type] = REDUCE(ts_sym_expression, 1), - [ts_sym__var] = REDUCE(ts_sym_expression, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_expression, 1), - }, - [191] = { - [ts_sym__func] = SHIFT(17), - [ts_sym__type] = SHIFT(161), - [ts_sym__var] = SHIFT(185), - [ts_sym_declaration] = SHIFT(191), - [ts_sym_func_declaration] = SHIFT(192), - [ts_sym_type_declaration] = SHIFT(192), - [ts_sym_var_declaration] = SHIFT(192), - [ts_aux_sym_program_repeat2] = SHIFT(193), - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat2, 0), - }, - [192] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_declaration, 1), + [ts_sym__var] = REDUCE(ts_sym_declaration, 1), [ts_sym__func] = REDUCE(ts_sym_declaration, 1), [ts_sym__type] = REDUCE(ts_sym_declaration, 1), - [ts_sym__var] = REDUCE(ts_sym_declaration, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_declaration, 1), }, - [193] = { - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat2, 2), + [17] = { + [ts_sym_var_name] = SHIFT(18), + [ts_sym__identifier] = SHIFT(22), }, - [194] = { + [18] = { + [ts_aux_sym_token2] = SHIFT(19), + }, + [19] = { + [ts_sym_expression] = SHIFT(20), + [ts_sym_number] = SHIFT(21), + }, + [20] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 4), + [ts_sym__var] = REDUCE(ts_sym_var_declaration, 4), + [ts_sym__func] = REDUCE(ts_sym_var_declaration, 4), + [ts_sym__type] = REDUCE(ts_sym_var_declaration, 4), + }, + [21] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_expression, 1), + [ts_sym__var] = REDUCE(ts_sym_expression, 1), + [ts_sym__func] = REDUCE(ts_sym_expression, 1), + [ts_sym__type] = REDUCE(ts_sym_expression, 1), + }, + [22] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_var_name, 1), + }, + [23] = { + [ts_sym_var_name] = SHIFT(24), + [ts_sym__identifier] = SHIFT(70), + }, + [24] = { + [ts_sym__func_signature] = SHIFT(25), + [ts_aux_sym_token0] = SHIFT(29), + }, + [25] = { + [ts_sym_statement_block] = SHIFT(26), + [ts_aux_sym_token3] = SHIFT(27), + }, + [26] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_func_declaration, 4), + [ts_sym__var] = REDUCE(ts_sym_func_declaration, 4), + [ts_sym__func] = REDUCE(ts_sym_func_declaration, 4), + [ts_sym__type] = REDUCE(ts_sym_func_declaration, 4), + }, + [27] = { + [ts_aux_sym_token4] = SHIFT(28), + }, + [28] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 2), + [ts_sym__var] = REDUCE(ts_sym_statement_block, 2), + [ts_sym__func] = REDUCE(ts_sym_statement_block, 2), + [ts_sym__type] = REDUCE(ts_sym_statement_block, 2), + }, + [29] = { + [ts_sym_var_name] = SHIFT(30), + [ts_sym__identifier] = SHIFT(143), + [ts_aux_sym_token1] = SHIFT(158), + }, + [30] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym__func_signature_repeat0] = SHIFT(31), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(140), + }, + [31] = { + [ts_sym_type_expression] = SHIFT(32), + [ts_sym_pointer_type] = SHIFT(60), + [ts_sym_map_type] = SHIFT(60), + [ts_sym_slice_type] = SHIFT(60), + [ts_sym_struct_type] = SHIFT(60), + [ts_sym_interface_type] = SHIFT(60), + [ts_sym_type_name] = SHIFT(60), + [ts_sym__map] = SHIFT(61), + [ts_sym__interface] = SHIFT(66), + [ts_sym__struct] = SHIFT(88), + [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token5] = SHIFT(135), + [ts_aux_sym_token6] = SHIFT(137), + }, + [32] = { + [ts_aux_sym__func_signature_repeat2] = SHIFT(33), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), + [ts_aux_sym_token8] = SHIFT(55), + }, + [33] = { + [ts_aux_sym_token1] = SHIFT(34), + }, + [34] = { + [ts_sym_type_name] = SHIFT(35), + [ts_sym__identifier] = SHIFT(36), + [ts_aux_sym_token0] = SHIFT(37), + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 6), + }, + [35] = { + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 7), + }, + [36] = { + [ts_aux_sym_token3] = REDUCE(ts_sym_type_name, 1), + }, + [37] = { + [ts_sym_var_name] = SHIFT(38), + [ts_sym_type_name] = SHIFT(48), + [ts_sym__identifier] = SHIFT(54), + }, + [38] = { + [ts_sym_type_name] = SHIFT(39), + [ts_sym__identifier] = SHIFT(46), + }, + [39] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(40), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token8] = SHIFT(42), + }, + [40] = { + [ts_aux_sym_token1] = SHIFT(41), + }, + [41] = { + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 11), + }, + [42] = { + [ts_sym_var_name] = SHIFT(43), + [ts_sym__identifier] = SHIFT(47), + }, + [43] = { + [ts_sym_type_name] = SHIFT(44), + [ts_sym__identifier] = SHIFT(46), + }, + [44] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(45), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token8] = SHIFT(42), + }, + [45] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 4), + }, + [46] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_type_name, 1), + }, + [47] = { + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + }, + [48] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(49), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token8] = SHIFT(51), + }, + [49] = { + [ts_aux_sym_token1] = SHIFT(50), + }, + [50] = { + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 10), + }, + [51] = { + [ts_sym_type_name] = SHIFT(52), + [ts_sym__identifier] = SHIFT(46), + }, + [52] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(53), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token8] = SHIFT(51), + }, + [53] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 3), + }, + [54] = { + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_type_name, 1), + }, + [55] = { + [ts_sym_var_name] = SHIFT(56), + [ts_sym__identifier] = SHIFT(143), + }, + [56] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_aux_sym__func_signature_repeat1] = SHIFT(57), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_aux_sym_token8] = SHIFT(155), + }, + [57] = { + [ts_sym_type_expression] = SHIFT(58), + [ts_sym_pointer_type] = SHIFT(60), + [ts_sym_map_type] = SHIFT(60), + [ts_sym_slice_type] = SHIFT(60), + [ts_sym_struct_type] = SHIFT(60), + [ts_sym_interface_type] = SHIFT(60), + [ts_sym_type_name] = SHIFT(60), + [ts_sym__map] = SHIFT(61), + [ts_sym__interface] = SHIFT(66), + [ts_sym__struct] = SHIFT(88), + [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token5] = SHIFT(135), + [ts_aux_sym_token6] = SHIFT(137), + }, + [58] = { + [ts_aux_sym__func_signature_repeat2] = SHIFT(59), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), + [ts_aux_sym_token8] = SHIFT(55), + }, + [59] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 5), + }, + [60] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_type_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_type_expression, 1), + }, + [61] = { + [ts_aux_sym_token6] = SHIFT(62), + }, + [62] = { + [ts_sym_type_expression] = SHIFT(63), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [63] = { + [ts_aux_sym_token7] = SHIFT(64), + }, + [64] = { + [ts_sym_type_expression] = SHIFT(65), + [ts_sym_pointer_type] = SHIFT(60), + [ts_sym_map_type] = SHIFT(60), + [ts_sym_slice_type] = SHIFT(60), + [ts_sym_struct_type] = SHIFT(60), + [ts_sym_interface_type] = SHIFT(60), + [ts_sym_type_name] = SHIFT(60), + [ts_sym__map] = SHIFT(61), + [ts_sym__interface] = SHIFT(66), + [ts_sym__struct] = SHIFT(88), + [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token5] = SHIFT(135), + [ts_aux_sym_token6] = SHIFT(137), + }, + [65] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_map_type, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_map_type, 5), + }, + [66] = { + [ts_aux_sym_token3] = SHIFT(67), + }, + [67] = { + [ts_sym_var_name] = SHIFT(68), + [ts_sym__identifier] = SHIFT(70), + [ts_aux_sym_interface_type_repeat0] = SHIFT(153), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [68] = { + [ts_sym__func_signature] = SHIFT(69), + [ts_aux_sym_token0] = SHIFT(72), + }, + [69] = { + [ts_sym_var_name] = SHIFT(68), + [ts_sym__identifier] = SHIFT(70), + [ts_aux_sym_interface_type_repeat0] = SHIFT(71), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [70] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_var_name, 1), + }, + [71] = { + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 3), + }, + [72] = { + [ts_sym_var_name] = SHIFT(73), + [ts_sym__identifier] = SHIFT(143), + [ts_aux_sym_token1] = SHIFT(144), + }, + [73] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym__func_signature_repeat0] = SHIFT(74), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(140), + }, + [74] = { + [ts_sym_type_expression] = SHIFT(75), + [ts_sym_pointer_type] = SHIFT(60), + [ts_sym_map_type] = SHIFT(60), + [ts_sym_slice_type] = SHIFT(60), + [ts_sym_struct_type] = SHIFT(60), + [ts_sym_interface_type] = SHIFT(60), + [ts_sym_type_name] = SHIFT(60), + [ts_sym__map] = SHIFT(61), + [ts_sym__interface] = SHIFT(66), + [ts_sym__struct] = SHIFT(88), + [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token5] = SHIFT(135), + [ts_aux_sym_token6] = SHIFT(137), + }, + [75] = { + [ts_aux_sym__func_signature_repeat2] = SHIFT(76), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat2, 0), + [ts_aux_sym_token8] = SHIFT(55), + }, + [76] = { + [ts_aux_sym_token1] = SHIFT(77), + }, + [77] = { + [ts_sym_type_name] = SHIFT(78), + [ts_sym__identifier] = SHIFT(79), + [ts_aux_sym_token0] = SHIFT(80), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 6), + }, + [78] = { + [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 7), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 7), + }, + [79] = { + [ts_sym__identifier] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_type_name, 1), + }, + [80] = { + [ts_sym_var_name] = SHIFT(81), + [ts_sym_type_name] = SHIFT(85), + [ts_sym__identifier] = SHIFT(54), + }, + [81] = { + [ts_sym_type_name] = SHIFT(82), + [ts_sym__identifier] = SHIFT(46), + }, + [82] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(83), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token8] = SHIFT(42), + }, + [83] = { + [ts_aux_sym_token1] = SHIFT(84), + }, + [84] = { + [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 11), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 11), + }, + [85] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(86), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token8] = SHIFT(51), + }, + [86] = { + [ts_aux_sym_token1] = SHIFT(87), + }, + [87] = { + [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 10), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 10), + }, + [88] = { + [ts_aux_sym_token3] = SHIFT(89), + }, + [89] = { + [ts_sym_var_name] = SHIFT(90), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_struct_type_repeat0] = SHIFT(133), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), + }, + [90] = { + [ts_sym_type_expression] = SHIFT(91), + [ts_sym_pointer_type] = SHIFT(94), + [ts_sym_map_type] = SHIFT(94), + [ts_sym_slice_type] = SHIFT(94), + [ts_sym_struct_type] = SHIFT(94), + [ts_sym_interface_type] = SHIFT(94), + [ts_sym_type_name] = SHIFT(94), + [ts_sym__map] = SHIFT(95), + [ts_sym__interface] = SHIFT(100), + [ts_sym__struct] = SHIFT(104), + [ts_sym__identifier] = SHIFT(79), + [ts_aux_sym_token5] = SHIFT(108), + [ts_aux_sym_token6] = SHIFT(110), + }, + [91] = { + [ts_sym_var_name] = SHIFT(90), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_struct_type_repeat0] = SHIFT(93), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), + }, + [92] = { + [ts_sym__map] = REDUCE(ts_sym_var_name, 1), + [ts_sym__interface] = REDUCE(ts_sym_var_name, 1), + [ts_sym__struct] = REDUCE(ts_sym_var_name, 1), + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token5] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_var_name, 1), + }, + [93] = { + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 3), + }, + [94] = { + [ts_sym__identifier] = REDUCE(ts_sym_type_expression, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_type_expression, 1), + }, + [95] = { + [ts_aux_sym_token6] = SHIFT(96), + }, + [96] = { + [ts_sym_type_expression] = SHIFT(97), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [97] = { + [ts_aux_sym_token7] = SHIFT(98), + }, + [98] = { + [ts_sym_type_expression] = SHIFT(99), + [ts_sym_pointer_type] = SHIFT(94), + [ts_sym_map_type] = SHIFT(94), + [ts_sym_slice_type] = SHIFT(94), + [ts_sym_struct_type] = SHIFT(94), + [ts_sym_interface_type] = SHIFT(94), + [ts_sym_type_name] = SHIFT(94), + [ts_sym__map] = SHIFT(95), + [ts_sym__interface] = SHIFT(100), + [ts_sym__struct] = SHIFT(104), + [ts_sym__identifier] = SHIFT(79), + [ts_aux_sym_token5] = SHIFT(108), + [ts_aux_sym_token6] = SHIFT(110), + }, + [99] = { + [ts_sym__identifier] = REDUCE(ts_sym_map_type, 5), + [ts_aux_sym_token4] = REDUCE(ts_sym_map_type, 5), + }, + [100] = { + [ts_aux_sym_token3] = SHIFT(101), + }, + [101] = { + [ts_sym_var_name] = SHIFT(68), + [ts_sym__identifier] = SHIFT(70), + [ts_aux_sym_interface_type_repeat0] = SHIFT(102), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [102] = { + [ts_aux_sym_token4] = SHIFT(103), + }, + [103] = { + [ts_sym__identifier] = REDUCE(ts_sym_interface_type, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_interface_type, 4), + }, + [104] = { + [ts_aux_sym_token3] = SHIFT(105), + }, + [105] = { + [ts_sym_var_name] = SHIFT(90), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_struct_type_repeat0] = SHIFT(106), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), + }, + [106] = { + [ts_aux_sym_token4] = SHIFT(107), + }, + [107] = { + [ts_sym__identifier] = REDUCE(ts_sym_struct_type, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_struct_type, 4), + }, + [108] = { + [ts_sym_type_expression] = SHIFT(109), + [ts_sym_pointer_type] = SHIFT(94), + [ts_sym_map_type] = SHIFT(94), + [ts_sym_slice_type] = SHIFT(94), + [ts_sym_struct_type] = SHIFT(94), + [ts_sym_interface_type] = SHIFT(94), + [ts_sym_type_name] = SHIFT(94), + [ts_sym__map] = SHIFT(95), + [ts_sym__interface] = SHIFT(100), + [ts_sym__struct] = SHIFT(104), + [ts_sym__identifier] = SHIFT(79), + [ts_aux_sym_token5] = SHIFT(108), + [ts_aux_sym_token6] = SHIFT(110), + }, + [109] = { + [ts_sym__identifier] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_token4] = REDUCE(ts_sym_pointer_type, 2), + }, + [110] = { + [ts_aux_sym_token7] = SHIFT(111), + }, + [111] = { + [ts_sym_type_expression] = SHIFT(112), + [ts_sym_pointer_type] = SHIFT(94), + [ts_sym_map_type] = SHIFT(94), + [ts_sym_slice_type] = SHIFT(94), + [ts_sym_struct_type] = SHIFT(94), + [ts_sym_interface_type] = SHIFT(94), + [ts_sym_type_name] = SHIFT(94), + [ts_sym__map] = SHIFT(95), + [ts_sym__interface] = SHIFT(100), + [ts_sym__struct] = SHIFT(104), + [ts_sym__identifier] = SHIFT(79), + [ts_aux_sym_token5] = SHIFT(108), + [ts_aux_sym_token6] = SHIFT(110), + }, + [112] = { + [ts_sym__identifier] = REDUCE(ts_sym_slice_type, 3), + [ts_aux_sym_token4] = REDUCE(ts_sym_slice_type, 3), + }, + [113] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_type_expression, 1), + }, + [114] = { + [ts_aux_sym_token6] = SHIFT(115), + }, + [115] = { + [ts_sym_type_expression] = SHIFT(116), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [116] = { + [ts_aux_sym_token7] = SHIFT(117), + }, + [117] = { + [ts_sym_type_expression] = SHIFT(118), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [118] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_map_type, 5), + }, + [119] = { + [ts_aux_sym_token3] = SHIFT(120), + }, + [120] = { + [ts_sym_var_name] = SHIFT(68), + [ts_sym__identifier] = SHIFT(70), + [ts_aux_sym_interface_type_repeat0] = SHIFT(121), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [121] = { + [ts_aux_sym_token4] = SHIFT(122), + }, + [122] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_interface_type, 4), + }, + [123] = { + [ts_aux_sym_token3] = SHIFT(124), + }, + [124] = { + [ts_sym_var_name] = SHIFT(90), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_struct_type_repeat0] = SHIFT(125), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), + }, + [125] = { + [ts_aux_sym_token4] = SHIFT(126), + }, + [126] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_struct_type, 4), + }, + [127] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_type_name, 1), + }, + [128] = { + [ts_sym_type_expression] = SHIFT(129), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [129] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_pointer_type, 2), + }, + [130] = { + [ts_aux_sym_token7] = SHIFT(131), + }, + [131] = { + [ts_sym_type_expression] = SHIFT(132), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [132] = { + [ts_aux_sym_token7] = REDUCE(ts_sym_slice_type, 3), + }, + [133] = { + [ts_aux_sym_token4] = SHIFT(134), + }, + [134] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_struct_type, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_struct_type, 4), + }, + [135] = { + [ts_sym_type_expression] = SHIFT(136), + [ts_sym_pointer_type] = SHIFT(60), + [ts_sym_map_type] = SHIFT(60), + [ts_sym_slice_type] = SHIFT(60), + [ts_sym_struct_type] = SHIFT(60), + [ts_sym_interface_type] = SHIFT(60), + [ts_sym_type_name] = SHIFT(60), + [ts_sym__map] = SHIFT(61), + [ts_sym__interface] = SHIFT(66), + [ts_sym__struct] = SHIFT(88), + [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token5] = SHIFT(135), + [ts_aux_sym_token6] = SHIFT(137), + }, + [136] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_pointer_type, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_pointer_type, 2), + }, + [137] = { + [ts_aux_sym_token7] = SHIFT(138), + }, + [138] = { + [ts_sym_type_expression] = SHIFT(139), + [ts_sym_pointer_type] = SHIFT(60), + [ts_sym_map_type] = SHIFT(60), + [ts_sym_slice_type] = SHIFT(60), + [ts_sym_struct_type] = SHIFT(60), + [ts_sym_interface_type] = SHIFT(60), + [ts_sym_type_name] = SHIFT(60), + [ts_sym__map] = SHIFT(61), + [ts_sym__interface] = SHIFT(66), + [ts_sym__struct] = SHIFT(88), + [ts_sym__identifier] = SHIFT(46), + [ts_aux_sym_token5] = SHIFT(135), + [ts_aux_sym_token6] = SHIFT(137), + }, + [139] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_slice_type, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_slice_type, 3), + }, + [140] = { + [ts_sym_var_name] = SHIFT(141), + [ts_sym__identifier] = SHIFT(143), + }, + [141] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym__func_signature_repeat0] = SHIFT(142), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(140), + }, + [142] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat0, 3), + }, + [143] = { + [ts_sym__map] = REDUCE(ts_sym_var_name, 1), + [ts_sym__interface] = REDUCE(ts_sym_var_name, 1), + [ts_sym__struct] = REDUCE(ts_sym_var_name, 1), + [ts_sym__identifier] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token5] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_var_name, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_name, 1), + }, + [144] = { + [ts_sym_type_name] = SHIFT(145), + [ts_sym__identifier] = SHIFT(79), + [ts_aux_sym_token0] = SHIFT(146), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 2), + }, + [145] = { + [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 3), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 3), + }, + [146] = { + [ts_sym_var_name] = SHIFT(147), + [ts_sym_type_name] = SHIFT(150), + [ts_sym__identifier] = SHIFT(54), + }, + [147] = { + [ts_sym_type_name] = SHIFT(148), + [ts_sym__identifier] = SHIFT(46), + }, + [148] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(149), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token8] = SHIFT(42), + }, + [149] = { + [ts_aux_sym_token1] = SHIFT(78), + }, + [150] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(151), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token8] = SHIFT(51), + }, + [151] = { + [ts_aux_sym_token1] = SHIFT(152), + }, + [152] = { + [ts_sym__identifier] = REDUCE(ts_sym__func_signature, 6), + [ts_aux_sym_token4] = REDUCE(ts_sym__func_signature, 6), + }, + [153] = { + [ts_aux_sym_token4] = SHIFT(154), + }, + [154] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_interface_type, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_interface_type, 4), + }, + [155] = { + [ts_sym_var_name] = SHIFT(156), + [ts_sym__identifier] = SHIFT(143), + }, + [156] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_aux_sym__func_signature_repeat1] = SHIFT(157), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 0), + [ts_aux_sym_token8] = SHIFT(155), + }, + [157] = { + [ts_sym__map] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), + [ts_sym__interface] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), + [ts_sym__struct] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), + [ts_sym__identifier] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), + [ts_aux_sym_token6] = REDUCE(ts_aux_sym__func_signature_repeat1, 3), + }, + [158] = { + [ts_sym_type_name] = SHIFT(159), + [ts_sym__identifier] = SHIFT(36), + [ts_aux_sym_token0] = SHIFT(160), + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 2), + }, + [159] = { + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 3), + }, + [160] = { + [ts_sym_var_name] = SHIFT(161), + [ts_sym_type_name] = SHIFT(164), + [ts_sym__identifier] = SHIFT(54), + }, + [161] = { + [ts_sym_type_name] = SHIFT(162), + [ts_sym__identifier] = SHIFT(46), + }, + [162] = { + [ts_aux_sym__func_signature_repeat3] = SHIFT(163), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat3, 0), + [ts_aux_sym_token8] = SHIFT(42), + }, + [163] = { + [ts_aux_sym_token1] = SHIFT(35), + }, + [164] = { + [ts_aux_sym__func_signature_repeat4] = SHIFT(165), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym__func_signature_repeat4, 0), + [ts_aux_sym_token8] = SHIFT(51), + }, + [165] = { + [ts_aux_sym_token1] = SHIFT(166), + }, + [166] = { + [ts_aux_sym_token3] = REDUCE(ts_sym__func_signature, 6), + }, + [167] = { + [ts_sym_type_name] = SHIFT(168), + [ts_sym__identifier] = SHIFT(190), + }, + [168] = { + [ts_sym_type_expression] = SHIFT(169), + [ts_sym_pointer_type] = SHIFT(170), + [ts_sym_map_type] = SHIFT(170), + [ts_sym_slice_type] = SHIFT(170), + [ts_sym_struct_type] = SHIFT(170), + [ts_sym_interface_type] = SHIFT(170), + [ts_sym_type_name] = SHIFT(170), + [ts_sym__map] = SHIFT(171), + [ts_sym__interface] = SHIFT(176), + [ts_sym__struct] = SHIFT(180), + [ts_sym__identifier] = SHIFT(184), + [ts_aux_sym_token5] = SHIFT(185), + [ts_aux_sym_token6] = SHIFT(187), + }, + [169] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_type_declaration, 3), + [ts_sym__var] = REDUCE(ts_sym_type_declaration, 3), + [ts_sym__func] = REDUCE(ts_sym_type_declaration, 3), + [ts_sym__type] = REDUCE(ts_sym_type_declaration, 3), + }, + [170] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_type_expression, 1), + [ts_sym__var] = REDUCE(ts_sym_type_expression, 1), + [ts_sym__func] = REDUCE(ts_sym_type_expression, 1), + [ts_sym__type] = REDUCE(ts_sym_type_expression, 1), + }, + [171] = { + [ts_aux_sym_token6] = SHIFT(172), + }, + [172] = { + [ts_sym_type_expression] = SHIFT(173), + [ts_sym_pointer_type] = SHIFT(113), + [ts_sym_map_type] = SHIFT(113), + [ts_sym_slice_type] = SHIFT(113), + [ts_sym_struct_type] = SHIFT(113), + [ts_sym_interface_type] = SHIFT(113), + [ts_sym_type_name] = SHIFT(113), + [ts_sym__map] = SHIFT(114), + [ts_sym__interface] = SHIFT(119), + [ts_sym__struct] = SHIFT(123), + [ts_sym__identifier] = SHIFT(127), + [ts_aux_sym_token5] = SHIFT(128), + [ts_aux_sym_token6] = SHIFT(130), + }, + [173] = { + [ts_aux_sym_token7] = SHIFT(174), + }, + [174] = { + [ts_sym_type_expression] = SHIFT(175), + [ts_sym_pointer_type] = SHIFT(170), + [ts_sym_map_type] = SHIFT(170), + [ts_sym_slice_type] = SHIFT(170), + [ts_sym_struct_type] = SHIFT(170), + [ts_sym_interface_type] = SHIFT(170), + [ts_sym_type_name] = SHIFT(170), + [ts_sym__map] = SHIFT(171), + [ts_sym__interface] = SHIFT(176), + [ts_sym__struct] = SHIFT(180), + [ts_sym__identifier] = SHIFT(184), + [ts_aux_sym_token5] = SHIFT(185), + [ts_aux_sym_token6] = SHIFT(187), + }, + [175] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_map_type, 5), + [ts_sym__var] = REDUCE(ts_sym_map_type, 5), + [ts_sym__func] = REDUCE(ts_sym_map_type, 5), + [ts_sym__type] = REDUCE(ts_sym_map_type, 5), + }, + [176] = { + [ts_aux_sym_token3] = SHIFT(177), + }, + [177] = { + [ts_sym_var_name] = SHIFT(68), + [ts_sym__identifier] = SHIFT(70), + [ts_aux_sym_interface_type_repeat0] = SHIFT(178), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_interface_type_repeat0, 0), + }, + [178] = { + [ts_aux_sym_token4] = SHIFT(179), + }, + [179] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_interface_type, 4), + [ts_sym__var] = REDUCE(ts_sym_interface_type, 4), + [ts_sym__func] = REDUCE(ts_sym_interface_type, 4), + [ts_sym__type] = REDUCE(ts_sym_interface_type, 4), + }, + [180] = { + [ts_aux_sym_token3] = SHIFT(181), + }, + [181] = { + [ts_sym_var_name] = SHIFT(90), + [ts_sym__identifier] = SHIFT(92), + [ts_aux_sym_struct_type_repeat0] = SHIFT(182), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_struct_type_repeat0, 0), + }, + [182] = { + [ts_aux_sym_token4] = SHIFT(183), + }, + [183] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_struct_type, 4), + [ts_sym__var] = REDUCE(ts_sym_struct_type, 4), + [ts_sym__func] = REDUCE(ts_sym_struct_type, 4), + [ts_sym__type] = REDUCE(ts_sym_struct_type, 4), + }, + [184] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_type_name, 1), + [ts_sym__var] = REDUCE(ts_sym_type_name, 1), + [ts_sym__func] = REDUCE(ts_sym_type_name, 1), + [ts_sym__type] = REDUCE(ts_sym_type_name, 1), + }, + [185] = { + [ts_sym_type_expression] = SHIFT(186), + [ts_sym_pointer_type] = SHIFT(170), + [ts_sym_map_type] = SHIFT(170), + [ts_sym_slice_type] = SHIFT(170), + [ts_sym_struct_type] = SHIFT(170), + [ts_sym_interface_type] = SHIFT(170), + [ts_sym_type_name] = SHIFT(170), + [ts_sym__map] = SHIFT(171), + [ts_sym__interface] = SHIFT(176), + [ts_sym__struct] = SHIFT(180), + [ts_sym__identifier] = SHIFT(184), + [ts_aux_sym_token5] = SHIFT(185), + [ts_aux_sym_token6] = SHIFT(187), + }, + [186] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_pointer_type, 2), + [ts_sym__var] = REDUCE(ts_sym_pointer_type, 2), + [ts_sym__func] = REDUCE(ts_sym_pointer_type, 2), + [ts_sym__type] = REDUCE(ts_sym_pointer_type, 2), + }, + [187] = { + [ts_aux_sym_token7] = SHIFT(188), + }, + [188] = { + [ts_sym_type_expression] = SHIFT(189), + [ts_sym_pointer_type] = SHIFT(170), + [ts_sym_map_type] = SHIFT(170), + [ts_sym_slice_type] = SHIFT(170), + [ts_sym_struct_type] = SHIFT(170), + [ts_sym_interface_type] = SHIFT(170), + [ts_sym_type_name] = SHIFT(170), + [ts_sym__map] = SHIFT(171), + [ts_sym__interface] = SHIFT(176), + [ts_sym__struct] = SHIFT(180), + [ts_sym__identifier] = SHIFT(184), + [ts_aux_sym_token5] = SHIFT(185), + [ts_aux_sym_token6] = SHIFT(187), + }, + [189] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_slice_type, 3), + [ts_sym__var] = REDUCE(ts_sym_slice_type, 3), + [ts_sym__func] = REDUCE(ts_sym_slice_type, 3), + [ts_sym__type] = REDUCE(ts_sym_slice_type, 3), + }, + [190] = { + [ts_sym__map] = REDUCE(ts_sym_type_name, 1), + [ts_sym__interface] = REDUCE(ts_sym_type_name, 1), + [ts_sym__struct] = REDUCE(ts_sym_type_name, 1), + [ts_sym__identifier] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token5] = REDUCE(ts_sym_type_name, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_type_name, 1), + }, + [191] = { + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 2), + }, + [192] = { [ts_builtin_sym_end] = REDUCE(ts_sym_program, 3), }, + [193] = { + [ts_sym_package_name] = SHIFT(194), + [ts_sym__identifier] = SHIFT(195), + }, + [194] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_package_directive, 2), + [ts_sym__import] = REDUCE(ts_sym_package_directive, 2), + [ts_sym__var] = REDUCE(ts_sym_package_directive, 2), + [ts_sym__func] = REDUCE(ts_sym_package_directive, 2), + [ts_sym__type] = REDUCE(ts_sym_package_directive, 2), + }, [195] = { - [ts_builtin_sym_end] = ACCEPT_INPUT(), + [ts_builtin_sym_end] = REDUCE(ts_sym_package_name, 1), + [ts_sym__import] = REDUCE(ts_sym_package_name, 1), + [ts_sym__var] = REDUCE(ts_sym_package_name, 1), + [ts_sym__func] = REDUCE(ts_sym_package_name, 1), + [ts_sym__type] = REDUCE(ts_sym_package_name, 1), }, }; diff --git a/examples/parsers/javascript.c b/examples/parsers/javascript.c index da4e2ddb..a12ef0db 100644 --- a/examples/parsers/javascript.c +++ b/examples/parsers/javascript.c @@ -4,51 +4,51 @@ #define SYMBOL_COUNT 55 enum { - ts_sym__break = 2, - ts_sym__case = 3, - ts_sym__default = 4, - ts_sym__else = 5, - ts_sym__for = 6, - ts_sym__function = 7, - ts_sym__if = 8, - ts_sym__switch = 9, - ts_sym__terminator = 10, - ts_sym__var = 11, - ts_sym_array = 12, + ts_sym_program = 2, + ts_sym_statement = 3, + ts_sym_statement_block = 4, + ts_sym_for_statement = 5, + ts_sym_if_statement = 6, + ts_sym_switch_statement = 7, + ts_sym_switch_case = 8, + ts_sym_break_statement = 9, + ts_sym_var_declaration = 10, + ts_sym_expression_statement = 11, + ts_sym_expression = 12, ts_sym_assignment = 13, - ts_sym_break_statement = 14, - ts_sym_expression = 15, - ts_sym_expression_statement = 16, - ts_sym_false = 17, - ts_sym_for_statement = 18, - ts_sym_formal_parameters = 19, - ts_sym_function_call = 20, - ts_sym_function_expression = 21, - ts_sym_identifier = 22, - ts_sym_if_statement = 23, - ts_sym_literal = 24, - ts_sym_null = 25, - ts_sym_number = 26, - ts_sym_object = 27, - ts_sym_program = 28, - ts_sym_property_access = 29, - ts_sym_statement = 30, - ts_sym_statement_block = 31, - ts_sym_string = 32, - ts_sym_switch_case = 33, - ts_sym_switch_statement = 34, - ts_sym_true = 35, - ts_sym_var_declaration = 36, - ts_aux_sym_array_repeat1 = 37, - ts_aux_sym_formal_parameters_repeat1 = 38, - ts_aux_sym_function_call_repeat1 = 39, - ts_aux_sym_object_repeat1 = 40, - ts_aux_sym_program_repeat1 = 41, - ts_aux_sym_statement_block_repeat1 = 42, - ts_aux_sym_switch_case_repeat1 = 43, - ts_aux_sym_switch_statement_repeat1 = 44, - ts_aux_sym_token1 = 45, - ts_aux_sym_token10 = 46, + ts_sym_function_expression = 14, + ts_sym_function_call = 15, + ts_sym_property_access = 16, + ts_sym_formal_parameters = 17, + ts_sym_literal = 18, + ts_sym_object = 19, + ts_sym_array = 20, + ts_sym__break = 21, + ts_sym__case = 22, + ts_sym__default = 23, + ts_sym__else = 24, + ts_sym__for = 25, + ts_sym__function = 26, + ts_sym__if = 27, + ts_sym__switch = 28, + ts_sym__var = 29, + ts_sym_null = 30, + ts_sym_true = 31, + ts_sym_false = 32, + ts_sym__terminator = 33, + ts_sym_string = 34, + ts_sym_identifier = 35, + ts_sym_number = 36, + ts_aux_sym_program_repeat0 = 37, + ts_aux_sym_statement_block_repeat0 = 38, + ts_aux_sym_switch_statement_repeat0 = 39, + ts_aux_sym_switch_case_repeat0 = 40, + ts_aux_sym_function_call_repeat0 = 41, + ts_aux_sym_formal_parameters_repeat0 = 42, + ts_aux_sym_object_repeat0 = 43, + ts_aux_sym_array_repeat0 = 44, + ts_aux_sym_token0 = 45, + ts_aux_sym_token1 = 46, ts_aux_sym_token2 = 47, ts_aux_sym_token3 = 48, ts_aux_sym_token4 = 49, @@ -60,6 +60,27 @@ enum { }; SYMBOL_NAMES = { + [ts_sym_program] = "program", + [ts_sym_statement] = "statement", + [ts_sym_statement_block] = "statement_block", + [ts_sym_for_statement] = "for_statement", + [ts_sym_if_statement] = "if_statement", + [ts_sym_switch_statement] = "switch_statement", + [ts_sym_switch_case] = "switch_case", + [ts_sym_break_statement] = "break_statement", + [ts_sym_var_declaration] = "var_declaration", + [ts_sym_expression_statement] = "expression_statement", + [ts_sym_expression] = "expression", + [ts_sym_assignment] = "assignment", + [ts_sym_function_expression] = "function_expression", + [ts_sym_function_call] = "function_call", + [ts_sym_property_access] = "property_access", + [ts_sym_formal_parameters] = "formal_parameters", + [ts_sym_literal] = "literal", + [ts_sym_object] = "object", + [ts_sym_array] = "array", + [ts_builtin_sym_error] = "error", + [ts_builtin_sym_end] = "end", [ts_sym__break] = "_break", [ts_sym__case] = "_case", [ts_sym__default] = "_default", @@ -68,53 +89,32 @@ SYMBOL_NAMES = { [ts_sym__function] = "_function", [ts_sym__if] = "_if", [ts_sym__switch] = "_switch", - [ts_sym__terminator] = "_terminator", [ts_sym__var] = "_var", - [ts_sym_array] = "array", - [ts_sym_assignment] = "assignment", - [ts_sym_break_statement] = "break_statement", - [ts_sym_expression] = "expression", - [ts_sym_expression_statement] = "expression_statement", - [ts_sym_false] = "false", - [ts_sym_for_statement] = "for_statement", - [ts_sym_formal_parameters] = "formal_parameters", - [ts_sym_function_call] = "function_call", - [ts_sym_function_expression] = "function_expression", - [ts_sym_identifier] = "identifier", - [ts_sym_if_statement] = "if_statement", - [ts_sym_literal] = "literal", [ts_sym_null] = "null", - [ts_sym_number] = "number", - [ts_sym_object] = "object", - [ts_sym_program] = "program", - [ts_sym_property_access] = "property_access", - [ts_sym_statement] = "statement", - [ts_sym_statement_block] = "statement_block", - [ts_sym_string] = "string", - [ts_sym_switch_case] = "switch_case", - [ts_sym_switch_statement] = "switch_statement", [ts_sym_true] = "true", - [ts_sym_var_declaration] = "var_declaration", - [ts_aux_sym_array_repeat1] = "array_repeat1", - [ts_aux_sym_formal_parameters_repeat1] = "formal_parameters_repeat1", - [ts_aux_sym_function_call_repeat1] = "function_call_repeat1", - [ts_aux_sym_object_repeat1] = "object_repeat1", - [ts_aux_sym_program_repeat1] = "program_repeat1", - [ts_aux_sym_statement_block_repeat1] = "statement_block_repeat1", - [ts_aux_sym_switch_case_repeat1] = "switch_case_repeat1", - [ts_aux_sym_switch_statement_repeat1] = "switch_statement_repeat1", - [ts_aux_sym_token1] = "'{'", - [ts_aux_sym_token10] = "']'", - [ts_aux_sym_token2] = "'}'", - [ts_aux_sym_token3] = "'('", - [ts_aux_sym_token4] = "')'", - [ts_aux_sym_token5] = "':'", - [ts_aux_sym_token6] = "'='", - [ts_aux_sym_token7] = "','", - [ts_aux_sym_token8] = "'.'", - [ts_aux_sym_token9] = "'['", - [ts_builtin_sym_end] = "EOF", - [ts_builtin_sym_error] = "ERROR", + [ts_sym_false] = "false", + [ts_sym__terminator] = "_terminator", + [ts_sym_string] = "string", + [ts_sym_identifier] = "identifier", + [ts_sym_number] = "number", + [ts_aux_sym_program_repeat0] = "program_repeat0", + [ts_aux_sym_statement_block_repeat0] = "statement_block_repeat0", + [ts_aux_sym_switch_statement_repeat0] = "switch_statement_repeat0", + [ts_aux_sym_switch_case_repeat0] = "switch_case_repeat0", + [ts_aux_sym_function_call_repeat0] = "function_call_repeat0", + [ts_aux_sym_formal_parameters_repeat0] = "formal_parameters_repeat0", + [ts_aux_sym_object_repeat0] = "object_repeat0", + [ts_aux_sym_array_repeat0] = "array_repeat0", + [ts_aux_sym_token0] = "'{'", + [ts_aux_sym_token1] = "'}'", + [ts_aux_sym_token2] = "'('", + [ts_aux_sym_token3] = "')'", + [ts_aux_sym_token4] = "':'", + [ts_aux_sym_token5] = "'='", + [ts_aux_sym_token6] = "','", + [ts_aux_sym_token7] = "'.'", + [ts_aux_sym_token8] = "'['", + [ts_aux_sym_token9] = "']'", }; HIDDEN_SYMBOLS = { @@ -126,18 +126,18 @@ HIDDEN_SYMBOLS = { [ts_sym__function] = 1, [ts_sym__if] = 1, [ts_sym__switch] = 1, - [ts_sym__terminator] = 1, [ts_sym__var] = 1, - [ts_aux_sym_array_repeat1] = 1, - [ts_aux_sym_formal_parameters_repeat1] = 1, - [ts_aux_sym_function_call_repeat1] = 1, - [ts_aux_sym_object_repeat1] = 1, - [ts_aux_sym_program_repeat1] = 1, - [ts_aux_sym_statement_block_repeat1] = 1, - [ts_aux_sym_switch_case_repeat1] = 1, - [ts_aux_sym_switch_statement_repeat1] = 1, + [ts_sym__terminator] = 1, + [ts_aux_sym_program_repeat0] = 1, + [ts_aux_sym_statement_block_repeat0] = 1, + [ts_aux_sym_switch_statement_repeat0] = 1, + [ts_aux_sym_switch_case_repeat0] = 1, + [ts_aux_sym_function_call_repeat0] = 1, + [ts_aux_sym_formal_parameters_repeat0] = 1, + [ts_aux_sym_object_repeat0] = 1, + [ts_aux_sym_array_repeat0] = 1, + [ts_aux_sym_token0] = 1, [ts_aux_sym_token1] = 1, - [ts_aux_sym_token10] = 1, [ts_aux_sym_token2] = 1, [ts_aux_sym_token3] = 1, [ts_aux_sym_token4] = 1, @@ -155,14 +155,26 @@ LEX_FN() { START_TOKEN(); if (lookahead == '\0') ADVANCE(1); - if (('\t' <= lookahead && lookahead <= '\n') || + if ((lookahead == '\t') || + (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(0); - if (lookahead == '\"') + LEX_ERROR(); + case 1: + ACCEPT_TOKEN(ts_builtin_sym_end); + case 2: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(2); + if (lookahead == '\"') + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('c' <= lookahead && lookahead <= 'e') || @@ -171,108 +183,95 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); - LEX_ERROR(); - case 1: - ACCEPT_TOKEN(ts_builtin_sym_end); - case 2: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(3); - if (lookahead == '\\') - ADVANCE(5); + ADVANCE(51); LEX_ERROR(); case 3: if (!((lookahead == '\"') || (lookahead == '\\'))) - ADVANCE(3); - if (lookahead == '\"') ADVANCE(4); if (lookahead == '\\') - ADVANCE(5); + ADVANCE(6); LEX_ERROR(); case 4: - ACCEPT_TOKEN(ts_sym_string); - case 5: if (!((lookahead == '\"') || (lookahead == '\\'))) - ADVANCE(3); + ADVANCE(4); if (lookahead == '\"') - ADVANCE(6); - if (lookahead == '\\') ADVANCE(5); + if (lookahead == '\\') + ADVANCE(6); LEX_ERROR(); + case 5: + ACCEPT_TOKEN(ts_sym_string); case 6: if (!((lookahead == '\"') || (lookahead == '\\'))) - ADVANCE(3); - if (lookahead == '\"') ADVANCE(4); - if (lookahead == '\\') - ADVANCE(5); - ACCEPT_TOKEN(ts_sym_string); - case 7: - if (lookahead == '.') - ADVANCE(8); - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == '\"') ADVANCE(7); - ACCEPT_TOKEN(ts_sym_number); - case 8: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(9); + if (lookahead == '\\') + ADVANCE(6); LEX_ERROR(); + case 7: + if (!((lookahead == '\"') || + (lookahead == '\\'))) + ADVANCE(4); + if (lookahead == '\"') + ADVANCE(5); + if (lookahead == '\\') + ADVANCE(6); + ACCEPT_TOKEN(ts_sym_string); + case 8: + if (lookahead == '.') + ADVANCE(9); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(8); + ACCEPT_TOKEN(ts_sym_number); case 9: if ('0' <= lookahead && lookahead <= '9') - ADVANCE(9); - ACCEPT_TOKEN(ts_sym_number); + ADVANCE(10); + LEX_ERROR(); case 10: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(10); + ACCEPT_TOKEN(ts_sym_number); + case 11: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); ACCEPT_TOKEN(ts_sym_identifier); - case 11: - ACCEPT_TOKEN(ts_aux_sym_token9); case 12: + ACCEPT_TOKEN(ts_aux_sym_token8); + case 13: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'r') - ADVANCE(13); - ACCEPT_TOKEN(ts_sym_identifier); - case 13: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'e') ADVANCE(14); ACCEPT_TOKEN(ts_sym_identifier); case 14: @@ -280,9 +279,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'a') + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'e') ADVANCE(15); ACCEPT_TOKEN(ts_sym_identifier); case 15: @@ -290,10 +290,9 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'j') || - ('l' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'k') + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'a') ADVANCE(16); ACCEPT_TOKEN(ts_sym_identifier); case 16: @@ -301,10 +300,21 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym__break); + ('a' <= lookahead && lookahead <= 'j') || + ('l' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'k') + ADVANCE(17); + ACCEPT_TOKEN(ts_sym_identifier); case 17: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym__break); + case 18: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || @@ -312,34 +322,23 @@ LEX_FN() { ('b' <= lookahead && lookahead <= 'n') || ('p' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'a') - ADVANCE(18); - if (lookahead == 'o') - ADVANCE(22); - if (lookahead == 'u') - ADVANCE(24); - ACCEPT_TOKEN(ts_sym_identifier); - case 18: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'k') || - ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'l') ADVANCE(19); + if (lookahead == 'o') + ADVANCE(23); + if (lookahead == 'u') + ADVANCE(25); ACCEPT_TOKEN(ts_sym_identifier); case 19: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'r') || - ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 's') + ('a' <= lookahead && lookahead <= 'k') || + ('m' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'l') ADVANCE(20); ACCEPT_TOKEN(ts_sym_identifier); case 20: @@ -347,10 +346,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'e') + ('a' <= lookahead && lookahead <= 'r') || + ('t' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 's') ADVANCE(21); ACCEPT_TOKEN(ts_sym_identifier); case 21: @@ -358,48 +357,48 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym_false); + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'e') + ADVANCE(22); + ACCEPT_TOKEN(ts_sym_identifier); case 22: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym_false); + case 23: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'r') - ADVANCE(23); + ADVANCE(24); ACCEPT_TOKEN(ts_sym_identifier); - case 23: + case 24: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); ACCEPT_TOKEN(ts_sym__for); - case 24: + case 25: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'n') - ADVANCE(25); - ACCEPT_TOKEN(ts_sym_identifier); - case 25: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'c') ADVANCE(26); ACCEPT_TOKEN(ts_sym_identifier); case 26: @@ -407,10 +406,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 't') + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'c') ADVANCE(27); ACCEPT_TOKEN(ts_sym_identifier); case 27: @@ -418,10 +417,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'h') || - ('j' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'i') + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 't') ADVANCE(28); ACCEPT_TOKEN(ts_sym_identifier); case 28: @@ -429,10 +428,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'n') || - ('p' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'o') + ('a' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'i') ADVANCE(29); ACCEPT_TOKEN(ts_sym_identifier); case 29: @@ -440,10 +439,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'n') + ('a' <= lookahead && lookahead <= 'n') || + ('p' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'o') ADVANCE(30); ACCEPT_TOKEN(ts_sym_identifier); case 30: @@ -451,48 +450,48 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym__function); + ('a' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'n') + ADVANCE(31); + ACCEPT_TOKEN(ts_sym_identifier); case 31: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym__function); + case 32: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'f') - ADVANCE(32); + ADVANCE(33); ACCEPT_TOKEN(ts_sym_identifier); - case 32: + case 33: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); ACCEPT_TOKEN(ts_sym__if); - case 33: + case 34: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'u') - ADVANCE(34); - ACCEPT_TOKEN(ts_sym_identifier); - case 34: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'k') || - ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'l') ADVANCE(35); ACCEPT_TOKEN(ts_sym_identifier); case 35: @@ -502,7 +501,7 @@ LEX_FN() { (lookahead == '_') || ('a' <= lookahead && lookahead <= 'k') || ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'l') ADVANCE(36); ACCEPT_TOKEN(ts_sym_identifier); @@ -511,29 +510,29 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym_null); + ('a' <= lookahead && lookahead <= 'k') || + ('m' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'l') + ADVANCE(37); + ACCEPT_TOKEN(ts_sym_identifier); case 37: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym_null); + case 38: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'v') || ('x' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'w') - ADVANCE(38); - ACCEPT_TOKEN(ts_sym_identifier); - case 38: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'h') || - ('j' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'i') ADVANCE(39); ACCEPT_TOKEN(ts_sym_identifier); case 39: @@ -541,10 +540,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 't') + ('a' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'i') ADVANCE(40); ACCEPT_TOKEN(ts_sym_identifier); case 40: @@ -552,10 +551,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'c') + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 't') ADVANCE(41); ACCEPT_TOKEN(ts_sym_identifier); case 41: @@ -563,10 +562,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'g') || - ('i' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'h') + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'c') ADVANCE(42); ACCEPT_TOKEN(ts_sym_identifier); case 42: @@ -574,29 +573,29 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym__switch); + ('a' <= lookahead && lookahead <= 'g') || + ('i' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'h') + ADVANCE(43); + ACCEPT_TOKEN(ts_sym_identifier); case 43: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym__switch); + case 44: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'r') - ADVANCE(44); - ACCEPT_TOKEN(ts_sym_identifier); - case 44: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 't') || - ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'u') ADVANCE(45); ACCEPT_TOKEN(ts_sym_identifier); case 45: @@ -604,10 +603,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'e') + ('a' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'u') ADVANCE(46); ACCEPT_TOKEN(ts_sym_identifier); case 46: @@ -615,28 +614,28 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym_true); + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'e') + ADVANCE(47); + ACCEPT_TOKEN(ts_sym_identifier); case 47: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'a') - ADVANCE(48); - ACCEPT_TOKEN(ts_sym_identifier); + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym_true); case 48: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'r') + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'a') ADVANCE(49); ACCEPT_TOKEN(ts_sym_identifier); case 49: @@ -644,82 +643,152 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym__var); + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'r') + ADVANCE(50); + ACCEPT_TOKEN(ts_sym_identifier); case 50: - ACCEPT_TOKEN(ts_aux_sym_token1); + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym__var); case 51: + ACCEPT_TOKEN(ts_aux_sym_token0); + case 52: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(51); - if (lookahead == '\n') ADVANCE(52); - if (lookahead == ';') + if (lookahead == '\n') ADVANCE(53); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '[') + ADVANCE(12); LEX_ERROR(); - case 52: + case 53: + START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(51); - if (lookahead == '\n') ADVANCE(52); - if (lookahead == ';') + if (lookahead == '\n') ADVANCE(53); - ACCEPT_TOKEN(ts_sym__terminator); - case 53: + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '[') + ADVANCE(12); ACCEPT_TOKEN(ts_sym__terminator); case 54: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(54); - if (lookahead == '\n') - ADVANCE(55); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token2); case 55: + ACCEPT_TOKEN(ts_aux_sym_token7); + case 56: + ACCEPT_TOKEN(ts_sym__terminator); + case 57: START_TOKEN(); if ((lookahead == '\t') || + (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(54); - if (lookahead == '\n') - ADVANCE(55); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') ADVANCE(57); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '[') - ADVANCE(11); - ACCEPT_TOKEN(ts_sym__terminator); - case 56: - ACCEPT_TOKEN(ts_aux_sym_token3); - case 57: - ACCEPT_TOKEN(ts_aux_sym_token8); + if (lookahead == ')') + ADVANCE(58); + LEX_ERROR(); case 58: + ACCEPT_TOKEN(ts_aux_sym_token3); + case 59: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) + ADVANCE(59); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == ')') ADVANCE(58); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '[') + ADVANCE(12); + LEX_ERROR(); + case 60: + ACCEPT_TOKEN(ts_aux_sym_token6); + case 61: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(61); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == ')') + ADVANCE(58); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); + LEX_ERROR(); + case 62: + ACCEPT_TOKEN(ts_aux_sym_token5); + case 63: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(63); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + LEX_ERROR(); + case 64: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(64); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); + LEX_ERROR(); + case 65: + ACCEPT_TOKEN(ts_aux_sym_token9); + case 66: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(66); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('c' <= lookahead && lookahead <= 'e') || @@ -728,262 +797,168 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); if (lookahead == '}') - ADVANCE(59); - LEX_ERROR(); - case 59: - ACCEPT_TOKEN(ts_aux_sym_token2); - case 60: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(60); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 61: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(61); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == ')') - ADVANCE(62); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 62: - ACCEPT_TOKEN(ts_aux_sym_token4); - case 63: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(63); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == ')') - ADVANCE(62); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 64: - ACCEPT_TOKEN(ts_aux_sym_token7); - case 65: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(65); - if (lookahead == ')') - ADVANCE(62); - LEX_ERROR(); - case 66: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(66); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == ')') - ADVANCE(62); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '=') ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); LEX_ERROR(); case 67: - ACCEPT_TOKEN(ts_aux_sym_token6); + ACCEPT_TOKEN(ts_aux_sym_token1); case 68: START_TOKEN(); if ((lookahead == '\t') || - (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(68); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + if (lookahead == '\n') + ADVANCE(69); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); LEX_ERROR(); case 69: START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || + if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) + ADVANCE(68); + if (lookahead == '\n') ADVANCE(69); if (lookahead == '(') - ADVANCE(56); + ADVANCE(54); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '=') + ADVANCE(62); if (lookahead == '[') - ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - LEX_ERROR(); + ADVANCE(12); + ACCEPT_TOKEN(ts_sym__terminator); case 70: - ACCEPT_TOKEN(ts_aux_sym_token10); - case 71: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(71); + ADVANCE(70); if (lookahead == '(') - ADVANCE(56); - if (lookahead == ',') - ADVANCE(64); + ADVANCE(54); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); + if (lookahead == '=') + ADVANCE(62); if (lookahead == '[') - ADVANCE(11); + ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); + LEX_ERROR(); + case 71: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(71); + if (lookahead == '\n') + ADVANCE(72); + if (lookahead == ';') + ADVANCE(56); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); case 72: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(72); + ADVANCE(71); if (lookahead == '\n') - ADVANCE(73); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); + ADVANCE(72); if (lookahead == ';') - ADVANCE(53); - if (lookahead == '=') + ADVANCE(56); + if (lookahead == '}') ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); + ACCEPT_TOKEN(ts_sym__terminator); case 73: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(72); - if (lookahead == '\n') ADVANCE(73); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); + if (lookahead == '\n') + ADVANCE(74); if (lookahead == ';') - ADVANCE(53); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - ACCEPT_TOKEN(ts_sym__terminator); + ADVANCE(56); + LEX_ERROR(); case 74: + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(73); + if (lookahead == '\n') + ADVANCE(74); + if (lookahead == ';') + ADVANCE(56); + ACCEPT_TOKEN(ts_sym__terminator); + case 75: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(74); + ADVANCE(75); if (lookahead == '(') - ADVANCE(56); - if (lookahead == ',') - ADVANCE(64); + ADVANCE(54); + if (lookahead == ')') + ADVANCE(58); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); if (lookahead == '[') - ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); + ADVANCE(12); LEX_ERROR(); - case 75: + case 76: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(75); + ADVANCE(76); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); - case 76: + case 77: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(76); - if (lookahead == '\"') - ADVANCE(2); - if (lookahead == ')') - ADVANCE(62); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'e') || - ('g' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') - ADVANCE(11); - if (lookahead == 'f') ADVANCE(77); - if (lookahead == 'n') - ADVANCE(33); - if (lookahead == 't') - ADVANCE(43); - if (lookahead == '{') - ADVANCE(50); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == '}') + ADVANCE(67); LEX_ERROR(); - case 77: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 't') || - ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'a') - ADVANCE(18); - if (lookahead == 'u') - ADVANCE(24); - ACCEPT_TOKEN(ts_sym_identifier); case 78: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || @@ -991,44 +966,42 @@ LEX_FN() { (lookahead == ' ')) ADVANCE(78); if (lookahead == '(') - ADVANCE(56); + ADVANCE(54); if (lookahead == ',') - ADVANCE(64); + ADVANCE(60); if (lookahead == '.') - ADVANCE(57); - if (lookahead == '=') - ADVANCE(67); + ADVANCE(55); if (lookahead == '[') - ADVANCE(11); + ADVANCE(12); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); case 79: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(79); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - LEX_ERROR(); - case 80: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(80); + ADVANCE(79); if (lookahead == ']') - ADVANCE(70); + ADVANCE(65); + LEX_ERROR(); + case 80: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(80); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); LEX_ERROR(); case 81: START_TOKEN(); @@ -1036,366 +1009,107 @@ LEX_FN() { (lookahead == '\r') || (lookahead == ' ')) ADVANCE(81); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - LEX_ERROR(); - case 82: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(82); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); + if (lookahead == ')') + ADVANCE(58); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 's') || ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); + if (lookahead == '[') + ADVANCE(12); if (lookahead == 'f') - ADVANCE(77); + ADVANCE(82); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); LEX_ERROR(); + case 82: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'a') + ADVANCE(19); + if (lookahead == 'u') + ADVANCE(25); + ACCEPT_TOKEN(ts_sym_identifier); case 83: START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || + if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(83); - if (lookahead == ':') - ADVANCE(84); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); LEX_ERROR(); case 84: - ACCEPT_TOKEN(ts_aux_sym_token5); + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(84); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == '}') + ADVANCE(67); + LEX_ERROR(); case 85: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(85); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == '}') - ADVANCE(59); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ':') + ADVANCE(86); + if (lookahead == '[') + ADVANCE(12); LEX_ERROR(); case 86: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(86); - if (lookahead == '\"') - ADVANCE(2); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '}') - ADVANCE(59); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token4); case 87: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(87); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == ']') - ADVANCE(70); - LEX_ERROR(); - case 88: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(88); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'e') || - ('g' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') - ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - if (lookahead == 'f') - ADVANCE(77); - if (lookahead == 'n') - ADVANCE(33); - if (lookahead == 't') - ADVANCE(43); - if (lookahead == '{') - ADVANCE(50); - LEX_ERROR(); - case 89: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(89); - if (lookahead == '\"') - ADVANCE(2); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - LEX_ERROR(); - case 90: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(90); - if (lookahead == '\n') - ADVANCE(91); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == ':') - ADVANCE(84); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 91: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(90); - if (lookahead == '\n') - ADVANCE(91); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == ':') - ADVANCE(84); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - ACCEPT_TOKEN(ts_sym__terminator); - case 92: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(92); - if (lookahead == '\n') - ADVANCE(93); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == ':') - ADVANCE(84); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 93: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(92); - if (lookahead == '\n') - ADVANCE(93); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == ':') - ADVANCE(84); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '[') - ADVANCE(11); - ACCEPT_TOKEN(ts_sym__terminator); - case 94: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(94); - if (lookahead == '\n') - ADVANCE(95); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '}') - ADVANCE(59); - LEX_ERROR(); - case 95: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(94); - if (lookahead == '\n') - ADVANCE(95); - if (lookahead == ',') - ADVANCE(64); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '}') - ADVANCE(59); - ACCEPT_TOKEN(ts_sym__terminator); - case 96: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(96); - if (lookahead == '\n') - ADVANCE(97); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '}') - ADVANCE(59); - LEX_ERROR(); - case 97: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(96); - if (lookahead == '\n') - ADVANCE(97); - if (lookahead == ';') - ADVANCE(53); - if (lookahead == '}') - ADVANCE(59); - ACCEPT_TOKEN(ts_sym__terminator); - case 98: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(98); - if (lookahead == '{') - ADVANCE(50); - LEX_ERROR(); - case 99: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(99); - if (lookahead == ')') - ADVANCE(62); - if (lookahead == ',') - ADVANCE(64); - LEX_ERROR(); - case 100: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(100); - if (lookahead == ')') - ADVANCE(62); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - LEX_ERROR(); - case 101: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(101); - if (lookahead == '(') - ADVANCE(56); - LEX_ERROR(); - case 102: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(102); - if (lookahead == '(') - ADVANCE(56); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - LEX_ERROR(); - case 103: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(103); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 104: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(104); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == ':') - ADVANCE(84); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 105: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(105); - if (lookahead == '\"') - ADVANCE(2); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || (lookahead == 'e') || @@ -1404,311 +1118,509 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'c') - ADVANCE(106); + ADVANCE(88); if (lookahead == 'd') - ADVANCE(110); + ADVANCE(92); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); - case 106: + case 88: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'a') - ADVANCE(107); + ADVANCE(89); ACCEPT_TOKEN(ts_sym_identifier); - case 107: + case 89: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 's') - ADVANCE(108); + ADVANCE(90); ACCEPT_TOKEN(ts_sym_identifier); - case 108: + case 90: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'd') || ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'e') - ADVANCE(109); + ADVANCE(91); ACCEPT_TOKEN(ts_sym_identifier); - case 109: + case 91: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); ACCEPT_TOKEN(ts_sym__case); - case 110: + case 92: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'd') || ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'e') - ADVANCE(111); + ADVANCE(93); ACCEPT_TOKEN(ts_sym_identifier); - case 111: + case 93: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'f') - ADVANCE(112); + ADVANCE(94); ACCEPT_TOKEN(ts_sym_identifier); - case 112: + case 94: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'a') - ADVANCE(113); + ADVANCE(95); ACCEPT_TOKEN(ts_sym_identifier); - case 113: + case 95: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'u') - ADVANCE(114); + ADVANCE(96); ACCEPT_TOKEN(ts_sym_identifier); - case 114: + case 96: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'k') || ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 'l') - ADVANCE(115); + ADVANCE(97); ACCEPT_TOKEN(ts_sym_identifier); - case 115: + case 97: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 's') || ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); if (lookahead == 't') - ADVANCE(116); + ADVANCE(98); ACCEPT_TOKEN(ts_sym_identifier); - case 116: + case 98: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); + ADVANCE(11); ACCEPT_TOKEN(ts_sym__default); + case 99: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(99); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '[') + ADVANCE(12); + LEX_ERROR(); + case 100: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(100); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); + LEX_ERROR(); + case 101: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(101); + if (lookahead == '\"') + ADVANCE(3); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(8); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == 'f') + ADVANCE(82); + if (lookahead == 'n') + ADVANCE(34); + if (lookahead == 't') + ADVANCE(44); + if (lookahead == '{') + ADVANCE(51); + LEX_ERROR(); + case 102: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(102); + if (lookahead == '\n') + ADVANCE(103); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '}') + ADVANCE(67); + LEX_ERROR(); + case 103: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(102); + if (lookahead == '\n') + ADVANCE(103); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '}') + ADVANCE(67); + ACCEPT_TOKEN(ts_sym__terminator); + case 104: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(104); + if (lookahead == ',') + ADVANCE(60); + if (lookahead == ']') + ADVANCE(65); + LEX_ERROR(); + case 105: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(105); + if (lookahead == ':') + ADVANCE(86); + LEX_ERROR(); + case 106: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(106); + if (lookahead == '\"') + ADVANCE(3); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == '}') + ADVANCE(67); + LEX_ERROR(); + case 107: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(107); + if (lookahead == '\"') + ADVANCE(3); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(8); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); + if (lookahead == 'f') + ADVANCE(82); + if (lookahead == 'n') + ADVANCE(34); + if (lookahead == 't') + ADVANCE(44); + if (lookahead == '{') + ADVANCE(51); + LEX_ERROR(); + case 108: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(108); + if (lookahead == '\n') + ADVANCE(109); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ':') + ADVANCE(86); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '[') + ADVANCE(12); + LEX_ERROR(); + case 109: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(108); + if (lookahead == '\n') + ADVANCE(109); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ':') + ADVANCE(86); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '[') + ADVANCE(12); + ACCEPT_TOKEN(ts_sym__terminator); + case 110: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(110); + if (lookahead == '\n') + ADVANCE(111); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ':') + ADVANCE(86); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); + LEX_ERROR(); + case 111: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(110); + if (lookahead == '\n') + ADVANCE(111); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == ':') + ADVANCE(86); + if (lookahead == ';') + ADVANCE(56); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); + ACCEPT_TOKEN(ts_sym__terminator); + case 112: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(112); + if (lookahead == '{') + ADVANCE(51); + LEX_ERROR(); + case 113: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(113); + if (lookahead == ')') + ADVANCE(58); + if (lookahead == ',') + ADVANCE(60); + LEX_ERROR(); + case 114: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(114); + if (lookahead == ')') + ADVANCE(58); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + LEX_ERROR(); + case 115: + START_TOKEN(); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(115); + if (lookahead == '(') + ADVANCE(54); + LEX_ERROR(); + case 116: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(116); + if (lookahead == '(') + ADVANCE(54); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + LEX_ERROR(); case 117: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(117); - if (lookahead == '\"') - ADVANCE(2); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); - if (('A' <= lookahead && lookahead <= 'Z') || - (lookahead == 'a') || - ('g' <= lookahead && lookahead <= 'h') || - ('j' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 'r') || - (lookahead == 'u') || - ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') - ADVANCE(11); - if (lookahead == 'b') - ADVANCE(12); if (lookahead == 'c') - ADVANCE(106); - if (lookahead == 'd') - ADVANCE(110); - if (lookahead == 'e') ADVANCE(118); - if (lookahead == 'f') - ADVANCE(17); - if (lookahead == 'i') - ADVANCE(31); - if (lookahead == 'n') - ADVANCE(33); - if (lookahead == 's') - ADVANCE(37); - if (lookahead == 't') - ADVANCE(43); - if (lookahead == 'v') - ADVANCE(47); - if (lookahead == '{') - ADVANCE(50); + if (lookahead == 'd') + ADVANCE(122); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); case 118: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'k') || - ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == 'l') + if (lookahead == 'a') ADVANCE(119); - ACCEPT_TOKEN(ts_sym_identifier); + LEX_ERROR(); case 119: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'r') || - ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(10); if (lookahead == 's') ADVANCE(120); - ACCEPT_TOKEN(ts_sym_identifier); + LEX_ERROR(); case 120: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(10); if (lookahead == 'e') ADVANCE(121); - ACCEPT_TOKEN(ts_sym_identifier); + LEX_ERROR(); case 121: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - ACCEPT_TOKEN(ts_sym__else); + ACCEPT_TOKEN(ts_sym__case); case 122: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(122); - if (lookahead == 'c') + if (lookahead == 'e') ADVANCE(123); - if (lookahead == 'd') - ADVANCE(127); - if (lookahead == '}') - ADVANCE(59); LEX_ERROR(); case 123: - if (lookahead == 'a') + if (lookahead == 'f') ADVANCE(124); LEX_ERROR(); case 124: - if (lookahead == 's') + if (lookahead == 'a') ADVANCE(125); LEX_ERROR(); case 125: - if (lookahead == 'e') + if (lookahead == 'u') ADVANCE(126); LEX_ERROR(); case 126: - ACCEPT_TOKEN(ts_sym__case); + if (lookahead == 'l') + ADVANCE(127); + LEX_ERROR(); case 127: - if (lookahead == 'e') + if (lookahead == 't') ADVANCE(128); LEX_ERROR(); case 128: - if (lookahead == 'f') - ADVANCE(129); - LEX_ERROR(); + ACCEPT_TOKEN(ts_sym__default); case 129: - if (lookahead == 'a') - ADVANCE(130); + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(129); + if (lookahead == '(') + ADVANCE(54); + if (lookahead == ')') + ADVANCE(58); + if (lookahead == '.') + ADVANCE(55); + if (lookahead == '=') + ADVANCE(62); + if (lookahead == '[') + ADVANCE(12); LEX_ERROR(); case 130: - if (lookahead == 'u') - ADVANCE(131); - LEX_ERROR(); - case 131: - if (lookahead == 'l') - ADVANCE(132); - LEX_ERROR(); - case 132: - if (lookahead == 't') - ADVANCE(133); - LEX_ERROR(); - case 133: - ACCEPT_TOKEN(ts_sym__default); - case 134: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(134); - if (lookahead == '(') - ADVANCE(56); - if (lookahead == ')') - ADVANCE(62); - if (lookahead == '.') - ADVANCE(57); - if (lookahead == '=') - ADVANCE(67); - if (lookahead == '[') - ADVANCE(11); - LEX_ERROR(); - case 135: - START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(135); + ADVANCE(130); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('c' <= lookahead && lookahead <= 'e') || @@ -1717,26 +1629,112 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); LEX_ERROR(); + case 131: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(131); + if (lookahead == '\"') + ADVANCE(3); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(8); + if (('A' <= lookahead && lookahead <= 'Z') || + (lookahead == 'a') || + ('g' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'r') || + (lookahead == 'u') || + ('w' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == '[') + ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); + if (lookahead == 'c') + ADVANCE(88); + if (lookahead == 'd') + ADVANCE(92); + if (lookahead == 'e') + ADVANCE(132); + if (lookahead == 'f') + ADVANCE(18); + if (lookahead == 'i') + ADVANCE(32); + if (lookahead == 'n') + ADVANCE(34); + if (lookahead == 's') + ADVANCE(38); + if (lookahead == 't') + ADVANCE(44); + if (lookahead == 'v') + ADVANCE(48); + if (lookahead == '{') + ADVANCE(51); + if (lookahead == '}') + ADVANCE(67); + LEX_ERROR(); + case 132: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'k') || + ('m' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'l') + ADVANCE(133); + ACCEPT_TOKEN(ts_sym_identifier); + case 133: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'r') || + ('t' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 's') + ADVANCE(134); + ACCEPT_TOKEN(ts_sym_identifier); + case 134: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + if (lookahead == 'e') + ADVANCE(135); + ACCEPT_TOKEN(ts_sym_identifier); + case 135: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + ACCEPT_TOKEN(ts_sym__else); case 136: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || @@ -1744,28 +1742,28 @@ LEX_FN() { (lookahead == ' ')) ADVANCE(136); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 's') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); + if (lookahead == '[') + ADVANCE(12); if (lookahead == 'f') - ADVANCE(77); + ADVANCE(82); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); LEX_ERROR(); case 137: START_TOKEN(); @@ -1774,15 +1772,15 @@ LEX_FN() { (lookahead == ' ')) ADVANCE(137); if (lookahead == '(') - ADVANCE(56); + ADVANCE(54); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); if (lookahead == ':') - ADVANCE(84); + ADVANCE(86); if (lookahead == '=') - ADVANCE(67); + ADVANCE(62); if (lookahead == '[') - ADVANCE(11); + ADVANCE(12); LEX_ERROR(); case 138: START_TOKEN(); @@ -1791,9 +1789,9 @@ LEX_FN() { (lookahead == ' ')) ADVANCE(138); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('c' <= lookahead && lookahead <= 'd') || @@ -1802,42 +1800,54 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'e') - ADVANCE(118); + ADVANCE(132); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); case 139: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(139); + if (lookahead == '\"') + ADVANCE(3); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(11); + LEX_ERROR(); + case 140: START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(139); + ADVANCE(140); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('c' <= lookahead && lookahead <= 'd') || @@ -1846,37 +1856,27 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'e') - ADVANCE(118); + ADVANCE(132); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); - LEX_ERROR(); - case 140: - START_TOKEN(); - if (lookahead == '\0') - ADVANCE(1); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(140); + ADVANCE(51); LEX_ERROR(); case 141: START_TOKEN(); @@ -1889,23 +1889,23 @@ LEX_FN() { if (lookahead == '\n') ADVANCE(142); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if (lookahead == '(') - ADVANCE(56); + ADVANCE(54); if (lookahead == ')') - ADVANCE(62); + ADVANCE(58); if (lookahead == ',') - ADVANCE(64); + ADVANCE(60); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (lookahead == ':') - ADVANCE(84); + ADVANCE(86); if (lookahead == ';') - ADVANCE(53); + ADVANCE(56); if (lookahead == '=') - ADVANCE(67); + ADVANCE(62); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('g' <= lookahead && lookahead <= 'h') || @@ -1913,35 +1913,35 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'c') - ADVANCE(106); + ADVANCE(88); if (lookahead == 'd') - ADVANCE(110); + ADVANCE(92); if (lookahead == 'e') - ADVANCE(118); + ADVANCE(132); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); case 142: START_TOKEN(); @@ -1954,23 +1954,23 @@ LEX_FN() { if (lookahead == '\n') ADVANCE(142); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if (lookahead == '(') - ADVANCE(56); + ADVANCE(54); if (lookahead == ')') - ADVANCE(62); + ADVANCE(58); if (lookahead == ',') - ADVANCE(64); + ADVANCE(60); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (lookahead == ':') - ADVANCE(84); + ADVANCE(86); if (lookahead == ';') - ADVANCE(53); + ADVANCE(56); if (lookahead == '=') - ADVANCE(67); + ADVANCE(62); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('g' <= lookahead && lookahead <= 'h') || @@ -1978,38 +1978,37 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'c') - ADVANCE(106); + ADVANCE(88); if (lookahead == 'd') - ADVANCE(110); + ADVANCE(92); if (lookahead == 'e') - ADVANCE(118); + ADVANCE(132); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); ACCEPT_TOKEN(ts_sym__terminator); case ts_lex_state_error: - START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if ((lookahead == '\t') || @@ -2019,23 +2018,23 @@ LEX_FN() { if (lookahead == '\n') ADVANCE(142); if (lookahead == '\"') - ADVANCE(2); + ADVANCE(3); if (lookahead == '(') - ADVANCE(56); + ADVANCE(54); if (lookahead == ')') - ADVANCE(62); + ADVANCE(58); if (lookahead == ',') - ADVANCE(64); + ADVANCE(60); if (lookahead == '.') - ADVANCE(57); + ADVANCE(55); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(7); + ADVANCE(8); if (lookahead == ':') - ADVANCE(84); + ADVANCE(86); if (lookahead == ';') - ADVANCE(53); + ADVANCE(56); if (lookahead == '=') - ADVANCE(67); + ADVANCE(62); if (('A' <= lookahead && lookahead <= 'Z') || (lookahead == 'a') || ('g' <= lookahead && lookahead <= 'h') || @@ -2043,35 +2042,35 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(10); - if (lookahead == '[') ADVANCE(11); - if (lookahead == ']') - ADVANCE(70); - if (lookahead == 'b') + if (lookahead == '[') ADVANCE(12); + if (lookahead == ']') + ADVANCE(65); + if (lookahead == 'b') + ADVANCE(13); if (lookahead == 'c') - ADVANCE(106); + ADVANCE(88); if (lookahead == 'd') - ADVANCE(110); + ADVANCE(92); if (lookahead == 'e') - ADVANCE(118); + ADVANCE(132); if (lookahead == 'f') - ADVANCE(17); + ADVANCE(18); if (lookahead == 'i') - ADVANCE(31); + ADVANCE(32); if (lookahead == 'n') - ADVANCE(33); + ADVANCE(34); if (lookahead == 's') - ADVANCE(37); + ADVANCE(38); if (lookahead == 't') - ADVANCE(43); + ADVANCE(44); if (lookahead == 'v') - ADVANCE(47); + ADVANCE(48); if (lookahead == '{') - ADVANCE(50); + ADVANCE(51); if (lookahead == '}') - ADVANCE(59); + ADVANCE(67); LEX_ERROR(); default: LEX_PANIC(); @@ -2079,610 +2078,610 @@ LEX_FN() { } LEX_STATES = { - [0] = 0, - [1] = 51, - [2] = 0, - [3] = 101, - [4] = 136, - [5] = 102, - [6] = 98, - [7] = 54, - [8] = 58, - [9] = 51, - [10] = 58, - [11] = 101, - [12] = 136, - [13] = 82, - [14] = 102, - [15] = 98, - [16] = 60, - [17] = 58, - [18] = 101, - [19] = 82, - [20] = 102, - [21] = 98, - [22] = 61, - [23] = 58, - [24] = 101, - [25] = 82, + [0] = 2, + [1] = 0, + [2] = 2, + [3] = 2, + [4] = 52, + [5] = 2, + [6] = 81, + [7] = 59, + [8] = 57, + [9] = 52, + [10] = 81, + [11] = 59, + [12] = 57, + [13] = 59, + [14] = 101, + [15] = 59, + [16] = 57, + [17] = 63, + [18] = 61, + [19] = 101, + [20] = 64, + [21] = 81, + [22] = 59, + [23] = 57, + [24] = 64, + [25] = 59, [26] = 61, - [27] = 61, - [28] = 61, - [29] = 76, - [30] = 102, - [31] = 98, - [32] = 63, - [33] = 58, - [34] = 82, - [35] = 60, - [36] = 54, - [37] = 58, - [38] = 60, - [39] = 76, - [40] = 63, - [41] = 63, + [27] = 101, + [28] = 59, + [29] = 59, + [30] = 116, + [31] = 112, + [32] = 59, + [33] = 66, + [34] = 66, + [35] = 66, + [36] = 52, + [37] = 66, + [38] = 63, + [39] = 68, + [40] = 101, + [41] = 64, [42] = 63, - [43] = 65, - [44] = 60, - [45] = 76, - [46] = 63, - [47] = 65, - [48] = 63, - [49] = 82, - [50] = 63, - [51] = 65, - [52] = 68, - [53] = 66, - [54] = 82, - [55] = 102, - [56] = 98, - [57] = 69, - [58] = 58, - [59] = 54, - [60] = 54, - [61] = 58, - [62] = 54, - [63] = 58, - [64] = 76, - [65] = 63, - [66] = 65, - [67] = 54, + [43] = 70, + [44] = 101, + [45] = 64, + [46] = 70, + [47] = 64, + [48] = 70, + [49] = 101, + [50] = 64, + [51] = 64, + [52] = 116, + [53] = 112, + [54] = 64, + [55] = 66, + [56] = 52, + [57] = 68, + [58] = 101, + [59] = 52, + [60] = 52, + [61] = 116, + [62] = 112, + [63] = 52, + [64] = 66, + [65] = 71, + [66] = 52, + [67] = 73, [68] = 66, - [69] = 82, - [70] = 63, - [71] = 86, - [72] = 83, - [73] = 82, - [74] = 102, - [75] = 98, - [76] = 71, - [77] = 58, - [78] = 72, - [79] = 82, - [80] = 54, - [81] = 68, - [82] = 72, - [83] = 82, - [84] = 69, - [85] = 69, - [86] = 69, - [87] = 72, + [69] = 115, + [70] = 136, + [71] = 101, + [72] = 101, + [73] = 75, + [74] = 81, + [75] = 59, + [76] = 57, + [77] = 75, + [78] = 106, + [79] = 77, + [80] = 76, + [81] = 59, + [82] = 139, + [83] = 77, + [84] = 76, + [85] = 105, + [86] = 101, + [87] = 78, [88] = 76, - [89] = 63, - [90] = 65, - [91] = 69, - [92] = 69, - [93] = 88, - [94] = 102, - [95] = 98, - [96] = 74, - [97] = 58, - [98] = 58, - [99] = 75, - [100] = 58, - [101] = 90, - [102] = 82, - [103] = 71, - [104] = 71, - [105] = 71, - [106] = 75, - [107] = 54, - [108] = 76, - [109] = 63, - [110] = 65, - [111] = 71, - [112] = 71, - [113] = 89, - [114] = 83, - [115] = 82, - [116] = 71, - [117] = 75, - [118] = 68, - [119] = 78, - [120] = 82, - [121] = 69, - [122] = 78, - [123] = 68, - [124] = 79, - [125] = 82, - [126] = 69, + [89] = 81, + [90] = 59, + [91] = 57, + [92] = 78, + [93] = 78, + [94] = 107, + [95] = 80, + [96] = 79, + [97] = 59, + [98] = 81, + [99] = 59, + [100] = 57, + [101] = 80, + [102] = 80, + [103] = 101, + [104] = 80, + [105] = 79, + [106] = 63, + [107] = 83, + [108] = 101, + [109] = 64, + [110] = 83, + [111] = 106, + [112] = 77, + [113] = 76, + [114] = 64, + [115] = 105, + [116] = 101, + [117] = 78, + [118] = 76, + [119] = 64, + [120] = 63, + [121] = 84, + [122] = 101, + [123] = 64, + [124] = 84, + [125] = 107, + [126] = 80, [127] = 79, - [128] = 79, - [129] = 82, - [130] = 69, - [131] = 86, - [132] = 83, - [133] = 82, - [134] = 71, - [135] = 75, - [136] = 69, - [137] = 78, - [138] = 82, - [139] = 71, - [140] = 86, - [141] = 83, - [142] = 82, - [143] = 71, - [144] = 75, - [145] = 71, - [146] = 88, - [147] = 74, - [148] = 74, - [149] = 74, - [150] = 80, - [151] = 71, - [152] = 76, - [153] = 63, - [154] = 65, - [155] = 74, - [156] = 74, - [157] = 82, - [158] = 74, - [159] = 80, - [160] = 68, - [161] = 81, - [162] = 82, - [163] = 69, - [164] = 81, - [165] = 88, - [166] = 74, - [167] = 80, - [168] = 69, - [169] = 81, - [170] = 82, - [171] = 74, - [172] = 86, - [173] = 83, - [174] = 82, - [175] = 71, - [176] = 75, - [177] = 74, - [178] = 74, - [179] = 85, - [180] = 75, - [181] = 74, - [182] = 88, - [183] = 74, - [184] = 80, - [185] = 74, - [186] = 74, - [187] = 87, - [188] = 69, + [128] = 64, + [129] = 80, + [130] = 83, + [131] = 101, + [132] = 80, + [133] = 80, + [134] = 116, + [135] = 112, + [136] = 80, + [137] = 66, + [138] = 71, + [139] = 80, + [140] = 115, + [141] = 101, + [142] = 75, + [143] = 130, + [144] = 138, + [145] = 130, + [146] = 66, + [147] = 73, + [148] = 115, + [149] = 101, + [150] = 75, + [151] = 112, + [152] = 117, + [153] = 117, + [154] = 101, + [155] = 85, + [156] = 81, + [157] = 59, + [158] = 57, + [159] = 85, + [160] = 85, + [161] = 87, + [162] = 87, + [163] = 87, + [164] = 52, + [165] = 87, + [166] = 73, + [167] = 73, + [168] = 87, + [169] = 115, + [170] = 136, + [171] = 101, + [172] = 101, + [173] = 75, + [174] = 130, + [175] = 87, + [176] = 115, + [177] = 101, + [178] = 75, + [179] = 130, + [180] = 131, + [181] = 130, + [182] = 87, + [183] = 115, + [184] = 101, + [185] = 75, + [186] = 112, + [187] = 117, + [188] = 105, [189] = 87, - [190] = 87, - [191] = 71, - [192] = 87, - [193] = 71, - [194] = 85, - [195] = 75, - [196] = 71, - [197] = 69, - [198] = 85, - [199] = 75, - [200] = 69, - [201] = 85, - [202] = 75, - [203] = 92, - [204] = 75, - [205] = 58, - [206] = 54, - [207] = 88, - [208] = 74, - [209] = 80, - [210] = 54, - [211] = 54, - [212] = 87, - [213] = 94, - [214] = 75, - [215] = 54, - [216] = 51, - [217] = 75, - [218] = 74, - [219] = 96, - [220] = 101, - [221] = 98, - [222] = 74, - [223] = 100, - [224] = 99, - [225] = 65, - [226] = 98, - [227] = 68, - [228] = 99, - [229] = 65, - [230] = 98, - [231] = 74, - [232] = 80, - [233] = 63, - [234] = 63, - [235] = 87, - [236] = 86, - [237] = 83, - [238] = 85, - [239] = 75, - [240] = 71, - [241] = 96, - [242] = 101, - [243] = 98, - [244] = 71, - [245] = 71, - [246] = 75, - [247] = 63, - [248] = 63, - [249] = 85, - [250] = 75, - [251] = 63, - [252] = 54, - [253] = 75, - [254] = 69, - [255] = 96, - [256] = 101, - [257] = 98, - [258] = 69, - [259] = 69, - [260] = 66, - [261] = 63, - [262] = 60, - [263] = 68, - [264] = 103, - [265] = 82, - [266] = 69, - [267] = 103, - [268] = 60, - [269] = 72, - [270] = 103, - [271] = 86, - [272] = 83, - [273] = 82, - [274] = 71, - [275] = 75, - [276] = 60, - [277] = 60, - [278] = 85, - [279] = 75, - [280] = 60, - [281] = 88, - [282] = 74, - [283] = 80, - [284] = 60, - [285] = 60, - [286] = 87, - [287] = 75, - [288] = 63, - [289] = 96, - [290] = 101, - [291] = 98, - [292] = 63, - [293] = 63, - [294] = 65, - [295] = 61, - [296] = 61, - [297] = 98, - [298] = 122, - [299] = 82, - [300] = 102, - [301] = 98, - [302] = 104, - [303] = 58, - [304] = 75, + [190] = 101, + [191] = 99, + [192] = 81, + [193] = 59, + [194] = 57, + [195] = 99, + [196] = 99, + [197] = 63, + [198] = 100, + [199] = 101, + [200] = 64, + [201] = 100, + [202] = 52, + [203] = 87, + [204] = 99, + [205] = 100, + [206] = 99, + [207] = 116, + [208] = 112, + [209] = 99, + [210] = 66, + [211] = 71, + [212] = 99, + [213] = 101, + [214] = 52, + [215] = 66, + [216] = 68, + [217] = 106, + [218] = 77, + [219] = 76, + [220] = 99, + [221] = 105, + [222] = 101, + [223] = 78, + [224] = 76, + [225] = 99, + [226] = 78, + [227] = 84, + [228] = 101, + [229] = 78, + [230] = 78, + [231] = 116, + [232] = 112, + [233] = 78, + [234] = 66, + [235] = 71, + [236] = 78, + [237] = 76, + [238] = 66, + [239] = 102, + [240] = 76, + [241] = 52, + [242] = 66, + [243] = 108, + [244] = 101, + [245] = 78, + [246] = 76, + [247] = 52, + [248] = 106, + [249] = 77, + [250] = 76, + [251] = 78, + [252] = 105, + [253] = 101, + [254] = 78, + [255] = 76, + [256] = 78, + [257] = 107, + [258] = 80, + [259] = 79, + [260] = 78, + [261] = 104, + [262] = 106, + [263] = 77, + [264] = 76, + [265] = 80, + [266] = 105, + [267] = 101, + [268] = 78, + [269] = 76, + [270] = 80, + [271] = 80, + [272] = 107, + [273] = 80, + [274] = 79, + [275] = 80, + [276] = 104, + [277] = 80, + [278] = 78, + [279] = 78, + [280] = 110, + [281] = 76, + [282] = 52, + [283] = 107, + [284] = 80, + [285] = 79, + [286] = 52, + [287] = 104, + [288] = 52, + [289] = 115, + [290] = 112, + [291] = 78, + [292] = 114, + [293] = 113, + [294] = 57, + [295] = 112, + [296] = 63, + [297] = 113, + [298] = 57, + [299] = 112, + [300] = 99, + [301] = 107, + [302] = 80, + [303] = 79, + [304] = 99, [305] = 104, - [306] = 96, - [307] = 101, - [308] = 98, - [309] = 104, - [310] = 104, - [311] = 104, - [312] = 104, - [313] = 76, - [314] = 63, - [315] = 65, - [316] = 104, - [317] = 104, - [318] = 105, - [319] = 51, - [320] = 105, + [306] = 99, + [307] = 76, + [308] = 115, + [309] = 112, + [310] = 99, + [311] = 68, + [312] = 117, + [313] = 66, + [314] = 102, + [315] = 87, + [316] = 76, + [317] = 76, + [318] = 87, + [319] = 63, + [320] = 129, [321] = 101, - [322] = 136, - [323] = 54, - [324] = 82, - [325] = 82, - [326] = 82, - [327] = 61, - [328] = 135, - [329] = 101, - [330] = 82, - [331] = 61, - [332] = 135, - [333] = 51, - [334] = 117, - [335] = 101, - [336] = 136, - [337] = 82, - [338] = 82, - [339] = 61, - [340] = 135, - [341] = 101, - [342] = 82, - [343] = 61, - [344] = 135, - [345] = 101, - [346] = 82, - [347] = 61, - [348] = 98, - [349] = 122, - [350] = 83, - [351] = 105, - [352] = 101, - [353] = 82, - [354] = 61, - [355] = 98, - [356] = 122, - [357] = 122, - [358] = 75, - [359] = 75, - [360] = 105, - [361] = 68, - [362] = 134, - [363] = 82, - [364] = 69, - [365] = 134, - [366] = 134, - [367] = 82, - [368] = 61, - [369] = 86, - [370] = 83, - [371] = 82, - [372] = 71, - [373] = 75, - [374] = 61, - [375] = 61, - [376] = 85, - [377] = 75, - [378] = 61, - [379] = 88, - [380] = 74, - [381] = 80, - [382] = 61, - [383] = 61, - [384] = 87, - [385] = 65, - [386] = 82, - [387] = 54, - [388] = 105, - [389] = 72, - [390] = 105, - [391] = 54, - [392] = 105, - [393] = 105, - [394] = 122, - [395] = 58, - [396] = 75, - [397] = 105, - [398] = 94, - [399] = 51, - [400] = 122, - [401] = 75, - [402] = 117, - [403] = 65, - [404] = 82, - [405] = 54, + [322] = 64, + [323] = 129, + [324] = 75, + [325] = 129, + [326] = 101, + [327] = 75, + [328] = 75, + [329] = 116, + [330] = 112, + [331] = 75, + [332] = 66, + [333] = 71, + [334] = 75, + [335] = 76, + [336] = 115, + [337] = 112, + [338] = 75, + [339] = 106, + [340] = 77, + [341] = 76, + [342] = 75, + [343] = 105, + [344] = 101, + [345] = 78, + [346] = 76, + [347] = 75, + [348] = 75, + [349] = 107, + [350] = 80, + [351] = 79, + [352] = 75, + [353] = 104, + [354] = 75, + [355] = 57, + [356] = 131, + [357] = 52, + [358] = 131, + [359] = 73, + [360] = 73, + [361] = 131, + [362] = 115, + [363] = 136, + [364] = 101, + [365] = 101, + [366] = 75, + [367] = 130, + [368] = 131, + [369] = 115, + [370] = 101, + [371] = 75, + [372] = 130, + [373] = 131, + [374] = 130, + [375] = 131, + [376] = 115, + [377] = 101, + [378] = 75, + [379] = 112, + [380] = 117, + [381] = 76, + [382] = 131, + [383] = 57, + [384] = 101, + [385] = 52, + [386] = 131, + [387] = 68, + [388] = 66, + [389] = 102, + [390] = 131, + [391] = 76, + [392] = 57, + [393] = 57, + [394] = 52, + [395] = 101, + [396] = 73, + [397] = 106, + [398] = 77, + [399] = 105, + [400] = 101, + [401] = 52, + [402] = 101, + [403] = 68, + [404] = 57, + [405] = 57, [406] = 117, - [407] = 72, - [408] = 117, - [409] = 54, - [410] = 117, - [411] = 117, - [412] = 135, - [413] = 117, - [414] = 58, - [415] = 75, - [416] = 117, - [417] = 94, - [418] = 51, - [419] = 65, - [420] = 117, - [421] = 65, - [422] = 51, - [423] = 117, - [424] = 135, - [425] = 105, - [426] = 65, - [427] = 105, - [428] = 65, - [429] = 122, - [430] = 68, - [431] = 137, - [432] = 82, - [433] = 69, - [434] = 137, - [435] = 137, - [436] = 82, - [437] = 104, - [438] = 86, - [439] = 83, - [440] = 82, - [441] = 71, - [442] = 75, - [443] = 104, - [444] = 104, - [445] = 85, - [446] = 75, - [447] = 104, - [448] = 88, - [449] = 74, - [450] = 80, - [451] = 104, - [452] = 104, - [453] = 87, - [454] = 75, - [455] = 58, - [456] = 65, - [457] = 75, - [458] = 61, - [459] = 96, - [460] = 101, - [461] = 98, - [462] = 61, - [463] = 61, - [464] = 135, - [465] = 51, - [466] = 138, - [467] = 101, - [468] = 136, - [469] = 82, - [470] = 82, - [471] = 61, - [472] = 135, - [473] = 101, - [474] = 82, - [475] = 61, - [476] = 135, - [477] = 101, - [478] = 82, - [479] = 61, - [480] = 98, - [481] = 122, - [482] = 75, - [483] = 138, - [484] = 65, - [485] = 82, - [486] = 54, - [487] = 138, - [488] = 72, - [489] = 138, - [490] = 54, - [491] = 138, - [492] = 138, - [493] = 135, - [494] = 138, - [495] = 58, - [496] = 75, - [497] = 138, - [498] = 94, - [499] = 51, - [500] = 65, - [501] = 138, - [502] = 65, - [503] = 138, - [504] = 135, - [505] = 58, - [506] = 65, - [507] = 75, - [508] = 60, - [509] = 96, - [510] = 101, - [511] = 98, - [512] = 60, - [513] = 54, - [514] = 82, - [515] = 72, - [516] = 82, - [517] = 82, - [518] = 61, - [519] = 135, - [520] = 58, - [521] = 65, - [522] = 75, - [523] = 54, - [524] = 96, - [525] = 101, - [526] = 98, - [527] = 54, - [528] = 82, - [529] = 82, - [530] = 61, - [531] = 135, - [532] = 101, - [533] = 82, - [534] = 61, - [535] = 135, - [536] = 51, - [537] = 139, - [538] = 101, - [539] = 136, - [540] = 82, - [541] = 82, - [542] = 61, - [543] = 135, - [544] = 101, - [545] = 82, - [546] = 61, - [547] = 135, - [548] = 101, - [549] = 82, - [550] = 61, - [551] = 98, - [552] = 122, - [553] = 75, - [554] = 139, - [555] = 65, - [556] = 82, - [557] = 54, - [558] = 139, - [559] = 72, - [560] = 139, - [561] = 54, - [562] = 139, - [563] = 139, - [564] = 135, - [565] = 139, - [566] = 58, - [567] = 75, - [568] = 139, - [569] = 94, - [570] = 51, - [571] = 65, - [572] = 139, - [573] = 65, - [574] = 139, - [575] = 135, + [407] = 117, + [408] = 63, + [409] = 137, + [410] = 101, + [411] = 64, + [412] = 137, + [413] = 85, + [414] = 137, + [415] = 101, + [416] = 85, + [417] = 85, + [418] = 116, + [419] = 112, + [420] = 85, + [421] = 66, + [422] = 71, + [423] = 85, + [424] = 76, + [425] = 115, + [426] = 112, + [427] = 85, + [428] = 106, + [429] = 77, + [430] = 76, + [431] = 85, + [432] = 105, + [433] = 101, + [434] = 78, + [435] = 76, + [436] = 85, + [437] = 85, + [438] = 107, + [439] = 80, + [440] = 79, + [441] = 85, + [442] = 104, + [443] = 85, + [444] = 76, + [445] = 76, + [446] = 66, + [447] = 57, + [448] = 138, + [449] = 52, + [450] = 138, + [451] = 73, + [452] = 73, + [453] = 138, + [454] = 115, + [455] = 136, + [456] = 101, + [457] = 101, + [458] = 75, + [459] = 130, + [460] = 138, + [461] = 115, + [462] = 101, + [463] = 75, + [464] = 130, + [465] = 138, + [466] = 130, + [467] = 138, + [468] = 115, + [469] = 101, + [470] = 75, + [471] = 112, + [472] = 117, + [473] = 76, + [474] = 138, + [475] = 57, + [476] = 101, + [477] = 52, + [478] = 138, + [479] = 68, + [480] = 66, + [481] = 102, + [482] = 138, + [483] = 76, + [484] = 57, + [485] = 57, + [486] = 57, + [487] = 76, + [488] = 115, + [489] = 112, + [490] = 80, + [491] = 104, + [492] = 64, + [493] = 64, + [494] = 104, + [495] = 104, + [496] = 59, + [497] = 105, + [498] = 101, + [499] = 78, + [500] = 76, + [501] = 59, + [502] = 59, + [503] = 75, + [504] = 130, + [505] = 66, + [506] = 57, + [507] = 76, + [508] = 115, + [509] = 112, + [510] = 52, + [511] = 71, + [512] = 64, + [513] = 76, + [514] = 115, + [515] = 112, + [516] = 64, + [517] = 68, + [518] = 76, + [519] = 71, + [520] = 59, + [521] = 76, + [522] = 115, + [523] = 112, + [524] = 59, + [525] = 64, + [526] = 61, + [527] = 59, + [528] = 52, + [529] = 73, + [530] = 73, + [531] = 2, + [532] = 115, + [533] = 136, + [534] = 101, + [535] = 101, + [536] = 75, + [537] = 130, + [538] = 2, + [539] = 115, + [540] = 101, + [541] = 75, + [542] = 130, + [543] = 140, + [544] = 130, + [545] = 2, + [546] = 115, + [547] = 101, + [548] = 75, + [549] = 112, + [550] = 117, + [551] = 76, + [552] = 2, + [553] = 57, + [554] = 101, + [555] = 52, + [556] = 2, + [557] = 68, + [558] = 66, + [559] = 102, + [560] = 2, + [561] = 76, + [562] = 140, + [563] = 52, + [564] = 140, + [565] = 73, + [566] = 73, + [567] = 140, + [568] = 115, + [569] = 136, + [570] = 101, + [571] = 101, + [572] = 75, + [573] = 130, + [574] = 140, + [575] = 115, [576] = 101, - [577] = 82, - [578] = 61, - [579] = 98, - [580] = 122, - [581] = 75, - [582] = 0, - [583] = 65, - [584] = 82, - [585] = 54, - [586] = 0, - [587] = 72, - [588] = 0, - [589] = 54, - [590] = 0, - [591] = 0, - [592] = 58, - [593] = 75, - [594] = 0, - [595] = 94, - [596] = 51, - [597] = 65, - [598] = 0, - [599] = 65, - [600] = 140, - [601] = 0, - [602] = 140, - [603] = 140, + [577] = 75, + [578] = 130, + [579] = 140, + [580] = 130, + [581] = 140, + [582] = 115, + [583] = 101, + [584] = 75, + [585] = 112, + [586] = 117, + [587] = 76, + [588] = 140, + [589] = 57, + [590] = 101, + [591] = 52, + [592] = 140, + [593] = 68, + [594] = 66, + [595] = 102, + [596] = 140, + [597] = 76, + [598] = 57, + [599] = 57, + [600] = 57, + [601] = 57, + [602] = 0, + [603] = 0, }; #pragma GCC diagnostic push @@ -2690,3516 +2689,2252 @@ LEX_STATES = { PARSE_TABLE = { [0] = { - [ts_sym__break] = SHIFT(1), - [ts_sym__for] = SHIFT(3), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(532), - [ts_sym__switch] = SHIFT(576), - [ts_sym__var] = SHIFT(584), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(588), - [ts_sym_expression] = SHIFT(589), - [ts_sym_expression_statement] = SHIFT(588), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(588), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(588), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_program] = SHIFT(600), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(601), - [ts_sym_statement_block] = SHIFT(588), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(588), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(588), - [ts_aux_sym_program_repeat1] = SHIFT(603), - [ts_aux_sym_token1] = SHIFT(592), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_builtin_sym_error] = SHIFT(596), + [ts_sym_program] = SHIFT(1), + [ts_sym_statement] = SHIFT(2), + [ts_sym_statement_block] = SHIFT(3), + [ts_sym_for_statement] = SHIFT(3), + [ts_sym_if_statement] = SHIFT(3), + [ts_sym_switch_statement] = SHIFT(3), + [ts_sym_break_statement] = SHIFT(3), + [ts_sym_var_declaration] = SHIFT(3), + [ts_sym_expression_statement] = SHIFT(3), + [ts_sym_expression] = SHIFT(4), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(529), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__break] = SHIFT(530), + [ts_sym__for] = SHIFT(532), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(539), + [ts_sym__switch] = SHIFT(546), + [ts_sym__var] = SHIFT(554), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_program_repeat0] = SHIFT(603), + [ts_aux_sym_token0] = SHIFT(558), + [ts_aux_sym_token8] = SHIFT(283), }, [1] = { - [ts_sym__terminator] = SHIFT(2), + [ts_builtin_sym_end] = ACCEPT_INPUT(), }, [2] = { - [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_statement] = SHIFT(2), + [ts_sym_statement_block] = SHIFT(3), + [ts_sym_for_statement] = SHIFT(3), + [ts_sym_if_statement] = SHIFT(3), + [ts_sym_switch_statement] = SHIFT(3), + [ts_sym_break_statement] = SHIFT(3), + [ts_sym_var_declaration] = SHIFT(3), + [ts_sym_expression_statement] = SHIFT(3), + [ts_sym_expression] = SHIFT(4), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(529), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat0, 0), + [ts_sym__break] = SHIFT(530), + [ts_sym__for] = SHIFT(532), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(539), + [ts_sym__switch] = SHIFT(546), + [ts_sym__var] = SHIFT(554), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_program_repeat0] = SHIFT(602), + [ts_aux_sym_token0] = SHIFT(558), + [ts_aux_sym_token8] = SHIFT(283), }, [3] = { - [ts_aux_sym_token3] = SHIFT(4), - }, - [4] = { - [ts_sym__function] = SHIFT(5), - [ts_sym__var] = SHIFT(13), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(528), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(528), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [5] = { - [ts_sym_formal_parameters] = SHIFT(6), - [ts_sym_identifier] = SHIFT(525), - [ts_aux_sym_token3] = SHIFT(223), - }, - [6] = { - [ts_sym_statement_block] = SHIFT(7), - [ts_aux_sym_token1] = SHIFT(8), - }, - [7] = { - [ts_sym__terminator] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [8] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(522), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(524), - }, - [9] = { - [ts_sym__terminator] = SHIFT(10), - }, - [10] = { - [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), - }, - [11] = { - [ts_aux_sym_token3] = SHIFT(12), - }, - [12] = { - [ts_sym__function] = SHIFT(5), - [ts_sym__var] = SHIFT(13), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(516), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(516), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [13] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(513), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(515), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), - }, - [14] = { - [ts_sym_formal_parameters] = SHIFT(15), - [ts_sym_identifier] = SHIFT(510), - [ts_aux_sym_token3] = SHIFT(223), - }, - [15] = { - [ts_sym_statement_block] = SHIFT(16), - [ts_aux_sym_token1] = SHIFT(17), - }, - [16] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [17] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(507), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(509), - }, - [18] = { - [ts_aux_sym_token3] = SHIFT(19), - }, - [19] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(463), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(506), - }, - [20] = { - [ts_sym_formal_parameters] = SHIFT(21), - [ts_sym_identifier] = SHIFT(460), - [ts_aux_sym_token3] = SHIFT(223), - }, - [21] = { - [ts_sym_statement_block] = SHIFT(22), - [ts_aux_sym_token1] = SHIFT(23), - }, - [22] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [23] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(457), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(459), - }, - [24] = { - [ts_aux_sym_token3] = SHIFT(25), - }, - [25] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(28), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(456), - }, - [26] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [27] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [28] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(297), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [29] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(293), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(296), - [ts_aux_sym_token9] = SHIFT(93), - }, - [30] = { - [ts_sym_formal_parameters] = SHIFT(31), - [ts_sym_identifier] = SHIFT(290), - [ts_aux_sym_token3] = SHIFT(223), - }, - [31] = { - [ts_sym_statement_block] = SHIFT(32), - [ts_aux_sym_token1] = SHIFT(33), - }, - [32] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [33] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(287), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(289), - }, - [34] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(36), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(269), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), - }, - [35] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [36] = { - [ts_sym__terminator] = SHIFT(37), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [37] = { - [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), - }, - [38] = { - [ts_aux_sym_token3] = SHIFT(39), - [ts_aux_sym_token8] = SHIFT(263), - [ts_aux_sym_token9] = SHIFT(265), - }, - [39] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(42), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(262), - [ts_aux_sym_token9] = SHIFT(93), - }, - [40] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [41] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [42] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(43), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [43] = { - [ts_aux_sym_token4] = SHIFT(44), - }, - [44] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), - }, - [45] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(46), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(261), - [ts_aux_sym_token9] = SHIFT(93), - }, - [46] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(47), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [47] = { - [ts_aux_sym_token4] = SHIFT(48), - }, - [48] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), - }, - [49] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(50), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token9] = SHIFT(93), - }, - [50] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(51), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [51] = { - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 3), - }, - [52] = { - [ts_sym_identifier] = SHIFT(53), - }, - [53] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), - }, - [54] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(259), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), - }, - [55] = { - [ts_sym_formal_parameters] = SHIFT(56), - [ts_sym_identifier] = SHIFT(256), - [ts_aux_sym_token3] = SHIFT(223), - }, - [56] = { - [ts_sym_statement_block] = SHIFT(57), - [ts_aux_sym_token1] = SHIFT(58), - }, - [57] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [58] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(253), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(255), - }, - [59] = { - [ts_sym__terminator] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [60] = { - [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [61] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_builtin_sym_end] = REDUCE(ts_sym_statement, 1), [ts_sym__break] = REDUCE(ts_sym_statement, 1), [ts_sym__for] = REDUCE(ts_sym_statement, 1), [ts_sym__function] = REDUCE(ts_sym_statement, 1), [ts_sym__if] = REDUCE(ts_sym_statement, 1), [ts_sym__switch] = REDUCE(ts_sym_statement, 1), [ts_sym__var] = REDUCE(ts_sym_statement, 1), - [ts_sym_false] = REDUCE(ts_sym_statement, 1), - [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), [ts_sym_null] = REDUCE(ts_sym_statement, 1), - [ts_sym_number] = REDUCE(ts_sym_statement, 1), - [ts_sym_string] = REDUCE(ts_sym_statement, 1), [ts_sym_true] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_sym_false] = REDUCE(ts_sym_statement, 1), + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement, 1), }, - [62] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), + [4] = { + [ts_sym__terminator] = SHIFT(5), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), }, - [63] = { + [5] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_builtin_sym_end] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), }, - [64] = { + [6] = { + [ts_sym_expression] = SHIFT(7), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(65), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(252), - [ts_aux_sym_token9] = SHIFT(93), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(528), + [ts_aux_sym_token8] = SHIFT(94), }, - [65] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(66), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), + [7] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(8), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), }, - [66] = { - [ts_aux_sym_token4] = SHIFT(67), + [8] = { + [ts_aux_sym_token3] = SHIFT(9), }, - [67] = { + [9] = { [ts_sym__terminator] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), + }, + [10] = { + [ts_sym_expression] = SHIFT(11), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(527), + [ts_aux_sym_token8] = SHIFT(94), + }, + [11] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(12), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), + }, + [12] = { + [ts_aux_sym_token3] = SHIFT(13), + }, + [13] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), + }, + [14] = { + [ts_sym_expression] = SHIFT(15), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token8] = SHIFT(94), + }, + [15] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(16), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), + }, + [16] = { + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 3), + }, + [17] = { + [ts_sym_identifier] = SHIFT(18), + }, + [18] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), + }, + [19] = { + [ts_sym_expression] = SHIFT(20), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), + }, + [20] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(526), + }, + [21] = { + [ts_sym_expression] = SHIFT(22), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(525), + [ts_aux_sym_token8] = SHIFT(94), + }, + [22] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(23), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), + }, + [23] = { + [ts_aux_sym_token3] = SHIFT(24), + }, + [24] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), }, - [68] = { + [25] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(69), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [26] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(27), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [27] = { + [ts_sym_expression] = SHIFT(28), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token8] = SHIFT(94), + }, + [28] = { + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), + }, + [29] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + }, + [30] = { + [ts_sym_formal_parameters] = SHIFT(31), + [ts_sym_identifier] = SHIFT(522), + [ts_aux_sym_token2] = SHIFT(292), + }, + [31] = { + [ts_sym_statement_block] = SHIFT(32), + [ts_aux_sym_token0] = SHIFT(33), + }, + [32] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + }, + [33] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(519), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(521), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [34] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(147), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(518), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [35] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_sym__break] = REDUCE(ts_sym_statement, 1), + [ts_sym__for] = REDUCE(ts_sym_statement, 1), + [ts_sym__function] = REDUCE(ts_sym_statement, 1), + [ts_sym__if] = REDUCE(ts_sym_statement, 1), + [ts_sym__switch] = REDUCE(ts_sym_statement, 1), + [ts_sym__var] = REDUCE(ts_sym_statement, 1), + [ts_sym_null] = REDUCE(ts_sym_statement, 1), + [ts_sym_true] = REDUCE(ts_sym_statement, 1), + [ts_sym_false] = REDUCE(ts_sym_statement, 1), + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement, 1), + }, + [36] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), + }, + [37] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), + }, + [38] = { + [ts_sym_identifier] = SHIFT(39), + }, + [39] = { + [ts_sym__terminator] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), + }, + [40] = { + [ts_sym_expression] = SHIFT(41), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), + }, + [41] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(517), + }, + [42] = { + [ts_sym_identifier] = SHIFT(43), + }, + [43] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), + }, + [44] = { + [ts_sym_expression] = SHIFT(45), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), + }, + [45] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(46), + }, + [46] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), + }, + [47] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [69] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(70), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token9] = SHIFT(93), - }, - [70] = { - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [71] = { - [ts_sym_identifier] = SHIFT(72), - [ts_sym_string] = SHIFT(72), - [ts_aux_sym_token2] = SHIFT(248), - [ts_builtin_sym_error] = SHIFT(249), - }, - [72] = { - [ts_aux_sym_token5] = SHIFT(73), - }, - [73] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(245), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [74] = { - [ts_sym_formal_parameters] = SHIFT(75), - [ts_sym_identifier] = SHIFT(242), - [ts_aux_sym_token3] = SHIFT(223), - }, - [75] = { - [ts_sym_statement_block] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(77), - }, - [76] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [77] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(239), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(241), - }, - [78] = { - [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), + [48] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(49), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [79] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(80), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), + [49] = { + [ts_sym_expression] = SHIFT(50), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), }, - [80] = { - [ts_sym__terminator] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), + [50] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = REDUCE(ts_sym_assignment, 3), }, - [81] = { - [ts_sym_identifier] = SHIFT(82), - }, - [82] = { - [ts_sym__terminator] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), - }, - [83] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(86), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), - }, - [84] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [85] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [86] = { - [ts_aux_sym_token10] = SHIFT(87), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), - }, - [87] = { - [ts_sym__terminator] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), - }, - [88] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(89), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(92), - [ts_aux_sym_token9] = SHIFT(93), - }, - [89] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(90), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [90] = { - [ts_aux_sym_token4] = SHIFT(91), - }, - [91] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), - }, - [92] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), - }, - [93] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(231), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(234), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(235), - }, - [94] = { - [ts_sym_formal_parameters] = SHIFT(95), - [ts_sym_identifier] = SHIFT(220), - [ts_aux_sym_token3] = SHIFT(223), - }, - [95] = { - [ts_sym_statement_block] = SHIFT(96), - [ts_aux_sym_token1] = SHIFT(97), - }, - [96] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [97] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(217), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(219), - }, - [98] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(99), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(216), - }, - [99] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 2), - }, - [100] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(101), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(203), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(204), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(213), - }, - [101] = { - [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(102), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [102] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(105), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [103] = { + [51] = { [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), }, - [104] = { + [52] = { + [ts_sym_formal_parameters] = SHIFT(53), + [ts_sym_identifier] = SHIFT(514), + [ts_aux_sym_token2] = SHIFT(292), + }, + [53] = { + [ts_sym_statement_block] = SHIFT(54), + [ts_aux_sym_token0] = SHIFT(55), + }, + [54] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), + }, + [55] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(511), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(513), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [56] = { + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [105] = { - [ts_aux_sym_object_repeat1] = SHIFT(106), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), + [57] = { + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), }, - [106] = { - [ts_aux_sym_token2] = SHIFT(107), + [58] = { + [ts_sym_expression] = SHIFT(59), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, - [107] = { - [ts_sym__terminator] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), + [59] = { + [ts_sym__terminator] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), }, - [108] = { + [60] = { + [ts_sym__terminator] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + }, + [61] = { + [ts_sym_formal_parameters] = SHIFT(62), + [ts_sym_identifier] = SHIFT(508), + [ts_aux_sym_token2] = SHIFT(292), + }, + [62] = { + [ts_sym_statement_block] = SHIFT(63), + [ts_aux_sym_token0] = SHIFT(64), + }, + [63] = { + [ts_sym__terminator] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + }, + [64] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(65), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(507), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [65] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(66), + }, + [66] = { + [ts_sym__terminator] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [67] = { + [ts_sym__terminator] = SHIFT(68), + }, + [68] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_break_statement, 2), + }, + [69] = { + [ts_aux_sym_token2] = SHIFT(70), + }, + [70] = { + [ts_sym_var_declaration] = SHIFT(71), + [ts_sym_expression_statement] = SHIFT(71), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym__var] = SHIFT(400), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), + }, + [71] = { + [ts_sym_expression_statement] = SHIFT(72), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), + }, + [72] = { + [ts_sym_expression] = SHIFT(73), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(506), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [73] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(504), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [74] = { + [ts_sym_expression] = SHIFT(75), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(109), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(112), - [ts_aux_sym_token9] = SHIFT(93), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(503), + [ts_aux_sym_token8] = SHIFT(94), }, - [109] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(110), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), + [75] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(76), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), }, - [110] = { - [ts_aux_sym_token4] = SHIFT(111), + [76] = { + [ts_aux_sym_token3] = SHIFT(77), }, - [111] = { + [77] = { [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), }, - [112] = { + [78] = { + [ts_builtin_sym_error] = SHIFT(79), + [ts_sym_string] = SHIFT(497), + [ts_sym_identifier] = SHIFT(497), + [ts_aux_sym_token1] = SHIFT(502), + }, + [79] = { + [ts_aux_sym_object_repeat0] = SHIFT(80), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [80] = { + [ts_aux_sym_token1] = SHIFT(81), + }, + [81] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + }, + [82] = { + [ts_builtin_sym_error] = SHIFT(83), + [ts_sym_string] = SHIFT(85), + [ts_sym_identifier] = SHIFT(85), + }, + [83] = { + [ts_aux_sym_object_repeat0] = SHIFT(84), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [84] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 3), + }, + [85] = { + [ts_aux_sym_token4] = SHIFT(86), + }, + [86] = { + [ts_sym_expression] = SHIFT(87), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [87] = { + [ts_aux_sym_object_repeat0] = SHIFT(88), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [88] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 5), + }, + [89] = { + [ts_sym_expression] = SHIFT(90), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(93), + [ts_aux_sym_token8] = SHIFT(94), + }, + [90] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(91), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), + }, + [91] = { + [ts_aux_sym_token3] = SHIFT(92), + }, + [92] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), + }, + [93] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), }, - [113] = { - [ts_sym_identifier] = SHIFT(114), - [ts_sym_string] = SHIFT(114), - [ts_builtin_sym_error] = SHIFT(201), + [94] = { + [ts_sym_expression] = SHIFT(95), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(495), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(496), }, - [114] = { - [ts_aux_sym_token5] = SHIFT(115), + [95] = { + [ts_aux_sym_array_repeat0] = SHIFT(96), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, - [115] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(116), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [96] = { + [ts_aux_sym_token9] = SHIFT(97), }, - [116] = { - [ts_aux_sym_object_repeat1] = SHIFT(117), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [117] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 5), - }, - [118] = { - [ts_sym_identifier] = SHIFT(119), - }, - [119] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), - }, - [120] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(121), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), - }, - [121] = { - [ts_aux_sym_token10] = SHIFT(122), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), - }, - [122] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), - }, - [123] = { - [ts_sym_identifier] = SHIFT(124), - }, - [124] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), - }, - [125] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(126), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), - }, - [126] = { - [ts_aux_sym_token10] = SHIFT(127), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), - }, - [127] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), - }, - [128] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(129), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [129] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(130), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), - }, - [130] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), - }, - [131] = { - [ts_sym_identifier] = SHIFT(132), - [ts_sym_string] = SHIFT(132), - [ts_aux_sym_token2] = SHIFT(197), - [ts_builtin_sym_error] = SHIFT(198), - }, - [132] = { - [ts_aux_sym_token5] = SHIFT(133), - }, - [133] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(134), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [134] = { - [ts_aux_sym_object_repeat1] = SHIFT(135), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [135] = { - [ts_aux_sym_token2] = SHIFT(136), - }, - [136] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), - }, - [137] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(138), - [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [138] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(139), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [139] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [140] = { - [ts_sym_identifier] = SHIFT(141), - [ts_sym_string] = SHIFT(141), - [ts_aux_sym_token2] = SHIFT(193), - [ts_builtin_sym_error] = SHIFT(194), - }, - [141] = { - [ts_aux_sym_token5] = SHIFT(142), - }, - [142] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(143), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [143] = { - [ts_aux_sym_object_repeat1] = SHIFT(144), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [144] = { - [ts_aux_sym_token2] = SHIFT(145), - }, - [145] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), - }, - [146] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(149), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(191), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(192), - }, - [147] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [148] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [149] = { - [ts_aux_sym_array_repeat1] = SHIFT(150), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), - }, - [150] = { - [ts_aux_sym_token10] = SHIFT(151), - }, - [151] = { + [97] = { [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), }, - [152] = { + [98] = { + [ts_sym_expression] = SHIFT(99), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(153), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(156), - [ts_aux_sym_token9] = SHIFT(93), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(102), + [ts_aux_sym_token8] = SHIFT(94), }, - [153] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(154), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), + [99] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(100), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), }, - [154] = { - [ts_aux_sym_token4] = SHIFT(155), + [100] = { + [ts_aux_sym_token3] = SHIFT(101), }, - [155] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), + [101] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), }, - [156] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), + [102] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), }, - [157] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(158), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(190), + [103] = { + [ts_sym_expression] = SHIFT(104), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(494), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), }, - [158] = { - [ts_aux_sym_array_repeat1] = SHIFT(159), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), + [104] = { + [ts_aux_sym_array_repeat0] = SHIFT(105), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, - [159] = { - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 3), + [105] = { + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 3), }, - [160] = { - [ts_sym_identifier] = SHIFT(161), + [106] = { + [ts_sym_identifier] = SHIFT(107), }, - [161] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), + [107] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), }, - [162] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(163), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), + [108] = { + [ts_sym_expression] = SHIFT(109), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), }, - [163] = { - [ts_aux_sym_token10] = SHIFT(164), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), + [109] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(110), }, - [164] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), + [110] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), }, - [165] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(166), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(188), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(189), + [111] = { + [ts_builtin_sym_error] = SHIFT(112), + [ts_sym_string] = SHIFT(115), + [ts_sym_identifier] = SHIFT(115), + [ts_aux_sym_token1] = SHIFT(493), }, - [166] = { - [ts_aux_sym_array_repeat1] = SHIFT(167), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), + [112] = { + [ts_aux_sym_object_repeat0] = SHIFT(113), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), }, - [167] = { - [ts_aux_sym_token10] = SHIFT(168), + [113] = { + [ts_aux_sym_token1] = SHIFT(114), }, - [168] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), + [114] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), + }, + [115] = { + [ts_aux_sym_token4] = SHIFT(116), + }, + [116] = { + [ts_sym_expression] = SHIFT(117), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [117] = { + [ts_aux_sym_object_repeat0] = SHIFT(118), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [118] = { + [ts_aux_sym_token1] = SHIFT(119), + }, + [119] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), + }, + [120] = { + [ts_sym_identifier] = SHIFT(121), + }, + [121] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), + }, + [122] = { + [ts_sym_expression] = SHIFT(123), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), + }, + [123] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(124), + }, + [124] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), + }, + [125] = { + [ts_sym_expression] = SHIFT(126), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(491), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(492), + }, + [126] = { + [ts_aux_sym_array_repeat0] = SHIFT(127), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [127] = { + [ts_aux_sym_token9] = SHIFT(128), + }, + [128] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), }, - [169] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(170), + [129] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, + [130] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(131), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), + }, + [131] = { + [ts_sym_expression] = SHIFT(132), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + }, + [132] = { + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_sym_assignment, 3), + }, + [133] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), + }, + [134] = { + [ts_sym_formal_parameters] = SHIFT(135), + [ts_sym_identifier] = SHIFT(488), + [ts_aux_sym_token2] = SHIFT(292), + }, + [135] = { + [ts_sym_statement_block] = SHIFT(136), + [ts_aux_sym_token0] = SHIFT(137), + }, + [136] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), + }, + [137] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(138), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(487), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [138] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(139), + }, + [139] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), + }, + [140] = { + [ts_aux_sym_token2] = SHIFT(141), + }, + [141] = { + [ts_sym_expression] = SHIFT(142), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(486), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [142] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(143), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [143] = { + [ts_sym_statement] = SHIFT(144), + [ts_sym_statement_block] = SHIFT(448), + [ts_sym_for_statement] = SHIFT(448), + [ts_sym_if_statement] = SHIFT(448), + [ts_sym_switch_statement] = SHIFT(448), + [ts_sym_break_statement] = SHIFT(448), + [ts_sym_var_declaration] = SHIFT(448), + [ts_sym_expression_statement] = SHIFT(448), + [ts_sym_expression] = SHIFT(449), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(451), + [ts_sym__break] = SHIFT(452), + [ts_sym__for] = SHIFT(454), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(461), + [ts_sym__switch] = SHIFT(468), + [ts_sym__var] = SHIFT(476), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(480), + [ts_aux_sym_token8] = SHIFT(283), + }, + [144] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__else] = SHIFT(145), + [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 5), + }, + [145] = { + [ts_sym_statement] = SHIFT(146), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(147), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token8] = SHIFT(283), + }, + [146] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 7), + }, + [147] = { + [ts_sym__terminator] = SHIFT(37), + }, + [148] = { + [ts_aux_sym_token2] = SHIFT(149), + }, + [149] = { + [ts_sym_expression] = SHIFT(150), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(447), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [150] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(151), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [151] = { + [ts_aux_sym_token0] = SHIFT(152), + }, + [152] = { + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(445), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), + }, + [153] = { + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(444), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), + }, + [154] = { + [ts_sym_expression] = SHIFT(155), + [ts_sym_assignment] = SHIFT(413), + [ts_sym_function_expression] = SHIFT(413), + [ts_sym_function_call] = SHIFT(413), + [ts_sym_property_access] = SHIFT(414), + [ts_sym_literal] = SHIFT(413), + [ts_sym_object] = SHIFT(417), + [ts_sym_array] = SHIFT(417), + [ts_sym__function] = SHIFT(418), + [ts_sym_null] = SHIFT(417), + [ts_sym_true] = SHIFT(417), + [ts_sym_false] = SHIFT(417), + [ts_sym_string] = SHIFT(417), + [ts_sym_identifier] = SHIFT(414), + [ts_sym_number] = SHIFT(417), + [ts_aux_sym_token0] = SHIFT(428), + [ts_aux_sym_token8] = SHIFT(438), + }, + [155] = { + [ts_aux_sym_token2] = SHIFT(156), + [ts_aux_sym_token4] = SHIFT(161), + [ts_aux_sym_token7] = SHIFT(408), + [ts_aux_sym_token8] = SHIFT(410), + }, + [156] = { + [ts_sym_expression] = SHIFT(157), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(160), + [ts_aux_sym_token8] = SHIFT(94), + }, + [157] = { + [ts_aux_sym_function_call_repeat0] = SHIFT(158), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), + }, + [158] = { + [ts_aux_sym_token3] = SHIFT(159), + }, + [159] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), + }, + [160] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), + }, + [161] = { + [ts_sym_statement] = SHIFT(162), + [ts_sym_statement_block] = SHIFT(163), + [ts_sym_for_statement] = SHIFT(163), + [ts_sym_if_statement] = SHIFT(163), + [ts_sym_switch_statement] = SHIFT(163), + [ts_sym_break_statement] = SHIFT(163), + [ts_sym_var_declaration] = SHIFT(163), + [ts_sym_expression_statement] = SHIFT(163), + [ts_sym_expression] = SHIFT(164), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(166), + [ts_sym__break] = SHIFT(167), + [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_sym__for] = SHIFT(169), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(176), + [ts_sym__switch] = SHIFT(183), + [ts_sym__var] = SHIFT(190), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_switch_case_repeat0] = SHIFT(407), + [ts_aux_sym_token0] = SHIFT(313), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [162] = { + [ts_sym_statement] = SHIFT(162), + [ts_sym_statement_block] = SHIFT(163), + [ts_sym_for_statement] = SHIFT(163), + [ts_sym_if_statement] = SHIFT(163), + [ts_sym_switch_statement] = SHIFT(163), + [ts_sym_break_statement] = SHIFT(163), + [ts_sym_var_declaration] = SHIFT(163), + [ts_sym_expression_statement] = SHIFT(163), + [ts_sym_expression] = SHIFT(164), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(166), + [ts_sym__break] = SHIFT(167), + [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_sym__for] = SHIFT(169), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(176), + [ts_sym__switch] = SHIFT(183), + [ts_sym__var] = SHIFT(190), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_switch_case_repeat0] = SHIFT(406), + [ts_aux_sym_token0] = SHIFT(313), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [163] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_sym__break] = REDUCE(ts_sym_statement, 1), + [ts_sym__case] = REDUCE(ts_sym_statement, 1), + [ts_sym__default] = REDUCE(ts_sym_statement, 1), + [ts_sym__for] = REDUCE(ts_sym_statement, 1), + [ts_sym__function] = REDUCE(ts_sym_statement, 1), + [ts_sym__if] = REDUCE(ts_sym_statement, 1), + [ts_sym__switch] = REDUCE(ts_sym_statement, 1), + [ts_sym__var] = REDUCE(ts_sym_statement, 1), + [ts_sym_null] = REDUCE(ts_sym_statement, 1), + [ts_sym_true] = REDUCE(ts_sym_statement, 1), + [ts_sym_false] = REDUCE(ts_sym_statement, 1), + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement, 1), + }, + [164] = { + [ts_sym__terminator] = SHIFT(165), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), + }, + [165] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__case] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__default] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), + }, + [166] = { + [ts_sym__terminator] = SHIFT(165), + }, + [167] = { + [ts_sym__terminator] = SHIFT(168), + }, + [168] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__case] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__default] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_break_statement, 2), + }, + [169] = { + [ts_aux_sym_token2] = SHIFT(170), + }, [170] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(171), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token9] = SHIFT(182), + [ts_sym_var_declaration] = SHIFT(171), + [ts_sym_expression_statement] = SHIFT(171), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym__var] = SHIFT(400), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, [171] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), + [ts_sym_expression_statement] = SHIFT(172), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, [172] = { - [ts_sym_identifier] = SHIFT(173), - [ts_sym_string] = SHIFT(173), - [ts_aux_sym_token2] = SHIFT(178), - [ts_builtin_sym_error] = SHIFT(179), + [ts_sym_expression] = SHIFT(173), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(405), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [173] = { - [ts_aux_sym_token5] = SHIFT(174), + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(174), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, [174] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(175), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [ts_sym_statement] = SHIFT(175), + [ts_sym_statement_block] = SHIFT(163), + [ts_sym_for_statement] = SHIFT(163), + [ts_sym_if_statement] = SHIFT(163), + [ts_sym_switch_statement] = SHIFT(163), + [ts_sym_break_statement] = SHIFT(163), + [ts_sym_var_declaration] = SHIFT(163), + [ts_sym_expression_statement] = SHIFT(163), + [ts_sym_expression] = SHIFT(164), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(166), + [ts_sym__break] = SHIFT(167), + [ts_sym__for] = SHIFT(169), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(176), + [ts_sym__switch] = SHIFT(183), + [ts_sym__var] = SHIFT(190), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(313), + [ts_aux_sym_token8] = SHIFT(283), }, [175] = { - [ts_aux_sym_object_repeat1] = SHIFT(176), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), + [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__case] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__default] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_for_statement, 7), }, [176] = { [ts_aux_sym_token2] = SHIFT(177), }, [177] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), + [ts_sym_expression] = SHIFT(178), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(404), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [178] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(179), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, [179] = { - [ts_aux_sym_object_repeat1] = SHIFT(180), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), + [ts_sym_statement] = SHIFT(180), + [ts_sym_statement_block] = SHIFT(356), + [ts_sym_for_statement] = SHIFT(356), + [ts_sym_if_statement] = SHIFT(356), + [ts_sym_switch_statement] = SHIFT(356), + [ts_sym_break_statement] = SHIFT(356), + [ts_sym_var_declaration] = SHIFT(356), + [ts_sym_expression_statement] = SHIFT(356), + [ts_sym_expression] = SHIFT(357), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(359), + [ts_sym__break] = SHIFT(360), + [ts_sym__for] = SHIFT(362), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(369), + [ts_sym__switch] = SHIFT(376), + [ts_sym__var] = SHIFT(384), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(388), + [ts_aux_sym_token8] = SHIFT(283), }, [180] = { - [ts_aux_sym_token2] = SHIFT(181), + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__case] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__default] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__else] = SHIFT(181), + [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 5), }, [181] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), + [ts_sym_statement] = SHIFT(182), + [ts_sym_statement_block] = SHIFT(163), + [ts_sym_for_statement] = SHIFT(163), + [ts_sym_if_statement] = SHIFT(163), + [ts_sym_switch_statement] = SHIFT(163), + [ts_sym_break_statement] = SHIFT(163), + [ts_sym_var_declaration] = SHIFT(163), + [ts_sym_expression_statement] = SHIFT(163), + [ts_sym_expression] = SHIFT(164), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(166), + [ts_sym__break] = SHIFT(167), + [ts_sym__for] = SHIFT(169), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(176), + [ts_sym__switch] = SHIFT(183), + [ts_sym__var] = SHIFT(190), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(313), + [ts_aux_sym_token8] = SHIFT(283), }, [182] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(183), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(186), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(187), + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__case] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__default] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 7), }, [183] = { - [ts_aux_sym_array_repeat1] = SHIFT(184), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), + [ts_aux_sym_token2] = SHIFT(184), }, [184] = { - [ts_aux_sym_token10] = SHIFT(185), + [ts_sym_expression] = SHIFT(185), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(355), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [185] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(186), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, [186] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token0] = SHIFT(187), }, [187] = { - [ts_aux_sym_array_repeat1] = SHIFT(184), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(317), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), }, [188] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token4] = SHIFT(189), }, [189] = { - [ts_aux_sym_array_repeat1] = SHIFT(167), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), + [ts_sym_statement] = SHIFT(162), + [ts_sym_statement_block] = SHIFT(163), + [ts_sym_for_statement] = SHIFT(163), + [ts_sym_if_statement] = SHIFT(163), + [ts_sym_switch_statement] = SHIFT(163), + [ts_sym_break_statement] = SHIFT(163), + [ts_sym_var_declaration] = SHIFT(163), + [ts_sym_expression_statement] = SHIFT(163), + [ts_sym_expression] = SHIFT(164), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(166), + [ts_sym__break] = SHIFT(167), + [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_sym__for] = SHIFT(169), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(176), + [ts_sym__switch] = SHIFT(183), + [ts_sym__var] = SHIFT(190), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_switch_case_repeat0] = SHIFT(312), + [ts_aux_sym_token0] = SHIFT(313), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_case_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), }, [190] = { - [ts_aux_sym_array_repeat1] = SHIFT(159), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(202), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(311), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), }, [191] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token2] = SHIFT(192), + [ts_aux_sym_token7] = SHIFT(197), + [ts_aux_sym_token8] = SHIFT(199), }, [192] = { - [ts_aux_sym_array_repeat1] = SHIFT(150), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), + [ts_sym_expression] = SHIFT(193), + [ts_sym_assignment] = SHIFT(25), + [ts_sym_function_expression] = SHIFT(25), + [ts_sym_function_call] = SHIFT(25), + [ts_sym_property_access] = SHIFT(26), + [ts_sym_literal] = SHIFT(25), + [ts_sym_object] = SHIFT(29), + [ts_sym_array] = SHIFT(29), + [ts_sym__function] = SHIFT(30), + [ts_sym_null] = SHIFT(29), + [ts_sym_true] = SHIFT(29), + [ts_sym_false] = SHIFT(29), + [ts_sym_string] = SHIFT(29), + [ts_sym_identifier] = SHIFT(26), + [ts_sym_number] = SHIFT(29), + [ts_aux_sym_token0] = SHIFT(78), + [ts_aux_sym_token3] = SHIFT(196), + [ts_aux_sym_token8] = SHIFT(94), }, [193] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_function_call_repeat0] = SHIFT(194), + [ts_aux_sym_token2] = SHIFT(10), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_function_call_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(14), + [ts_aux_sym_token7] = SHIFT(17), + [ts_aux_sym_token8] = SHIFT(19), }, [194] = { - [ts_aux_sym_object_repeat1] = SHIFT(195), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), + [ts_aux_sym_token3] = SHIFT(195), }, [195] = { - [ts_aux_sym_token2] = SHIFT(196), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), }, [196] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), - }, - [197] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), - }, - [198] = { - [ts_aux_sym_object_repeat1] = SHIFT(199), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), - }, - [199] = { - [ts_aux_sym_token2] = SHIFT(200), - }, - [200] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), - }, - [201] = { - [ts_aux_sym_object_repeat1] = SHIFT(202), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), - }, - [202] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 3), - }, - [203] = { - [ts_sym__terminator] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token5] = SHIFT(102), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [204] = { - [ts_aux_sym_token2] = SHIFT(205), - }, - [205] = { - [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), - }, - [206] = { - [ts_sym__terminator] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), - }, - [207] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(208), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(211), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(212), - }, - [208] = { - [ts_aux_sym_array_repeat1] = SHIFT(209), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), - }, - [209] = { - [ts_aux_sym_token10] = SHIFT(210), - }, - [210] = { - [ts_sym__terminator] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), - }, - [211] = { - [ts_sym__terminator] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), - }, - [212] = { - [ts_aux_sym_array_repeat1] = SHIFT(209), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), - }, - [213] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = SHIFT(205), - [ts_aux_sym_token7] = SHIFT(113), - }, - [214] = { - [ts_aux_sym_token2] = SHIFT(215), - }, - [215] = { - [ts_sym__terminator] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), - }, - [216] = { - [ts_sym__terminator] = SHIFT(63), - }, - [217] = { - [ts_aux_sym_token2] = SHIFT(218), - }, - [218] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - }, - [219] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(218), - }, - [220] = { - [ts_sym_formal_parameters] = SHIFT(221), - [ts_aux_sym_token3] = SHIFT(223), - }, - [221] = { - [ts_sym_statement_block] = SHIFT(222), - [ts_aux_sym_token1] = SHIFT(97), - }, - [222] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), - }, - [223] = { - [ts_sym_identifier] = SHIFT(224), - [ts_aux_sym_token4] = SHIFT(230), - }, - [224] = { - [ts_aux_sym_formal_parameters_repeat1] = SHIFT(225), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_formal_parameters_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(227), - }, - [225] = { - [ts_aux_sym_token4] = SHIFT(226), - }, - [226] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_formal_parameters, 4), - }, - [227] = { - [ts_sym_identifier] = SHIFT(228), - }, - [228] = { - [ts_aux_sym_formal_parameters_repeat1] = SHIFT(229), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_formal_parameters_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(227), - }, - [229] = { - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_formal_parameters_repeat1, 3), - }, - [230] = { - [ts_aux_sym_token1] = REDUCE(ts_sym_formal_parameters, 2), - }, - [231] = { - [ts_aux_sym_array_repeat1] = SHIFT(232), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), - }, - [232] = { - [ts_aux_sym_token10] = SHIFT(233), - }, - [233] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), - }, - [234] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), - }, - [235] = { - [ts_aux_sym_array_repeat1] = SHIFT(232), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), - }, - [236] = { - [ts_sym_identifier] = SHIFT(237), - [ts_sym_string] = SHIFT(237), - [ts_aux_sym_token2] = SHIFT(206), - [ts_builtin_sym_error] = SHIFT(238), - }, - [237] = { - [ts_aux_sym_token5] = SHIFT(102), - }, - [238] = { - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), - }, - [239] = { - [ts_aux_sym_token2] = SHIFT(240), - }, - [240] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - }, - [241] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(240), - }, - [242] = { - [ts_sym_formal_parameters] = SHIFT(243), - [ts_aux_sym_token3] = SHIFT(223), - }, - [243] = { - [ts_sym_statement_block] = SHIFT(244), - [ts_aux_sym_token1] = SHIFT(77), - }, - [244] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), - }, - [245] = { - [ts_aux_sym_object_repeat1] = SHIFT(246), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [246] = { - [ts_aux_sym_token2] = SHIFT(247), - }, - [247] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), - }, - [248] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), - }, - [249] = { - [ts_aux_sym_object_repeat1] = SHIFT(250), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), - }, - [250] = { - [ts_aux_sym_token2] = SHIFT(251), - }, - [251] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), - }, - [252] = { - [ts_sym__terminator] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), - }, - [253] = { - [ts_aux_sym_token2] = SHIFT(254), - }, - [254] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - }, - [255] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(254), - }, - [256] = { - [ts_sym_formal_parameters] = SHIFT(257), - [ts_aux_sym_token3] = SHIFT(223), - }, - [257] = { - [ts_sym_statement_block] = SHIFT(258), - [ts_aux_sym_token1] = SHIFT(58), - }, - [258] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), - }, - [259] = { - [ts_aux_sym_token10] = SHIFT(260), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), - }, - [260] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), - }, - [261] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), }, - [262] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), + [197] = { + [ts_sym_identifier] = SHIFT(198), }, - [263] = { - [ts_sym_identifier] = SHIFT(264), - }, - [264] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), + [198] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), }, - [265] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(266), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), + [199] = { + [ts_sym_expression] = SHIFT(200), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), }, - [266] = { - [ts_aux_sym_token10] = SHIFT(267), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), + [200] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(201), }, - [267] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), + [201] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), }, - [268] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), + [202] = { + [ts_sym__terminator] = SHIFT(203), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [269] = { - [ts_sym__terminator] = SHIFT(37), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [270] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [271] = { - [ts_sym_identifier] = SHIFT(272), - [ts_sym_string] = SHIFT(272), - [ts_aux_sym_token2] = SHIFT(277), - [ts_builtin_sym_error] = SHIFT(278), - }, - [272] = { - [ts_aux_sym_token5] = SHIFT(273), - }, - [273] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(274), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [274] = { - [ts_aux_sym_object_repeat1] = SHIFT(275), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [275] = { - [ts_aux_sym_token2] = SHIFT(276), - }, - [276] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), - }, - [277] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), - }, - [278] = { - [ts_aux_sym_object_repeat1] = SHIFT(279), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), - }, - [279] = { - [ts_aux_sym_token2] = SHIFT(280), - }, - [280] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), - }, - [281] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(282), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(285), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(286), - }, - [282] = { - [ts_aux_sym_array_repeat1] = SHIFT(283), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), - }, - [283] = { - [ts_aux_sym_token10] = SHIFT(284), - }, - [284] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), - }, - [285] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), - }, - [286] = { - [ts_aux_sym_array_repeat1] = SHIFT(283), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), - }, - [287] = { - [ts_aux_sym_token2] = SHIFT(288), - }, - [288] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - }, - [289] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(288), - }, - [290] = { - [ts_sym_formal_parameters] = SHIFT(291), - [ts_aux_sym_token3] = SHIFT(223), - }, - [291] = { - [ts_sym_statement_block] = SHIFT(292), - [ts_aux_sym_token1] = SHIFT(33), - }, - [292] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), - }, - [293] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(294), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [294] = { - [ts_aux_sym_token4] = SHIFT(295), - }, - [295] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), - }, - [296] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), - }, - [297] = { - [ts_aux_sym_token1] = SHIFT(298), - }, - [298] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(454), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), - }, - [299] = { - [ts_sym__function] = SHIFT(300), - [ts_sym_array] = SHIFT(310), - [ts_sym_assignment] = SHIFT(311), - [ts_sym_expression] = SHIFT(312), - [ts_sym_false] = SHIFT(310), - [ts_sym_function_call] = SHIFT(311), - [ts_sym_function_expression] = SHIFT(311), - [ts_sym_identifier] = SHIFT(435), - [ts_sym_literal] = SHIFT(311), - [ts_sym_null] = SHIFT(310), - [ts_sym_number] = SHIFT(310), - [ts_sym_object] = SHIFT(310), - [ts_sym_property_access] = SHIFT(435), - [ts_sym_string] = SHIFT(310), - [ts_sym_true] = SHIFT(310), - [ts_aux_sym_token1] = SHIFT(438), - [ts_aux_sym_token9] = SHIFT(448), - }, - [300] = { - [ts_sym_formal_parameters] = SHIFT(301), - [ts_sym_identifier] = SHIFT(307), - [ts_aux_sym_token3] = SHIFT(223), - }, - [301] = { - [ts_sym_statement_block] = SHIFT(302), - [ts_aux_sym_token1] = SHIFT(303), - }, - [302] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 3), - }, - [303] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(304), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_statement_block_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(306), - }, - [304] = { - [ts_aux_sym_token2] = SHIFT(305), - }, - [305] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - }, - [306] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(305), - }, - [307] = { - [ts_sym_formal_parameters] = SHIFT(308), - [ts_aux_sym_token3] = SHIFT(223), - }, - [308] = { - [ts_sym_statement_block] = SHIFT(309), - [ts_aux_sym_token1] = SHIFT(303), - }, - [309] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token5] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), - }, - [310] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_literal, 1), - }, - [311] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [312] = { - [ts_aux_sym_token3] = SHIFT(313), - [ts_aux_sym_token5] = SHIFT(318), - [ts_aux_sym_token8] = SHIFT(430), - [ts_aux_sym_token9] = SHIFT(432), - }, - [313] = { - [ts_sym__function] = SHIFT(30), - [ts_sym_array] = SHIFT(40), - [ts_sym_assignment] = SHIFT(41), - [ts_sym_expression] = SHIFT(314), - [ts_sym_false] = SHIFT(40), - [ts_sym_function_call] = SHIFT(41), - [ts_sym_function_expression] = SHIFT(41), - [ts_sym_identifier] = SHIFT(68), - [ts_sym_literal] = SHIFT(41), - [ts_sym_null] = SHIFT(40), - [ts_sym_number] = SHIFT(40), - [ts_sym_object] = SHIFT(40), - [ts_sym_property_access] = SHIFT(68), - [ts_sym_string] = SHIFT(40), - [ts_sym_true] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(71), - [ts_aux_sym_token4] = SHIFT(317), - [ts_aux_sym_token9] = SHIFT(93), - }, - [314] = { - [ts_aux_sym_function_call_repeat1] = SHIFT(315), - [ts_aux_sym_token3] = SHIFT(45), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_function_call_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(49), - [ts_aux_sym_token8] = SHIFT(52), - [ts_aux_sym_token9] = SHIFT(54), - }, - [315] = { - [ts_aux_sym_token4] = SHIFT(316), - }, - [316] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token5] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 5), - }, - [317] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), - }, - [318] = { - [ts_sym__break] = SHIFT(319), - [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_sym__for] = SHIFT(321), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(329), - [ts_sym__switch] = SHIFT(352), - [ts_sym__var] = SHIFT(386), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(390), - [ts_sym_expression] = SHIFT(391), - [ts_sym_expression_statement] = SHIFT(390), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(390), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(390), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(393), - [ts_sym_statement_block] = SHIFT(390), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(390), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(390), - [ts_aux_sym_switch_case_repeat1] = SHIFT(429), - [ts_aux_sym_token1] = SHIFT(395), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(399), - }, - [319] = { - [ts_sym__terminator] = SHIFT(320), - }, - [320] = { - [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__case] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__default] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), - }, - [321] = { - [ts_aux_sym_token3] = SHIFT(322), - }, - [322] = { - [ts_sym__function] = SHIFT(5), - [ts_sym__var] = SHIFT(13), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(325), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(325), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [323] = { - [ts_sym__terminator] = SHIFT(324), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), - }, - [324] = { - [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), - }, - [325] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(326), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [326] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(327), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(428), - }, - [327] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(328), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [328] = { - [ts_sym__break] = SHIFT(319), - [ts_sym__for] = SHIFT(321), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(329), - [ts_sym__switch] = SHIFT(352), - [ts_sym__var] = SHIFT(386), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(390), - [ts_sym_expression] = SHIFT(391), - [ts_sym_expression_statement] = SHIFT(390), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(390), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(390), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(427), - [ts_sym_statement_block] = SHIFT(390), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(390), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(390), - [ts_aux_sym_token1] = SHIFT(395), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(399), - }, - [329] = { - [ts_aux_sym_token3] = SHIFT(330), - }, - [330] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(331), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(426), - }, - [331] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(332), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [332] = { - [ts_sym__break] = SHIFT(333), - [ts_sym__for] = SHIFT(335), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(341), - [ts_sym__switch] = SHIFT(345), - [ts_sym__var] = SHIFT(404), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(408), - [ts_sym_expression] = SHIFT(409), - [ts_sym_expression_statement] = SHIFT(408), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(408), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(408), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(423), - [ts_sym_statement_block] = SHIFT(408), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(408), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(408), - [ts_aux_sym_token1] = SHIFT(414), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(418), - }, - [333] = { - [ts_sym__terminator] = SHIFT(334), - }, - [334] = { - [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__case] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__default] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__else] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), - }, - [335] = { - [ts_aux_sym_token3] = SHIFT(336), - }, - [336] = { - [ts_sym__function] = SHIFT(5), - [ts_sym__var] = SHIFT(13), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(337), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(337), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [337] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(338), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [338] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(339), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(421), - }, - [339] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(340), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [340] = { - [ts_sym__break] = SHIFT(333), - [ts_sym__for] = SHIFT(335), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(341), - [ts_sym__switch] = SHIFT(345), - [ts_sym__var] = SHIFT(404), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(408), - [ts_sym_expression] = SHIFT(409), - [ts_sym_expression_statement] = SHIFT(408), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(408), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(408), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(420), - [ts_sym_statement_block] = SHIFT(408), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(408), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(408), - [ts_aux_sym_token1] = SHIFT(414), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(418), - }, - [341] = { - [ts_aux_sym_token3] = SHIFT(342), - }, - [342] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(343), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(419), - }, - [343] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(344), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [344] = { - [ts_sym__break] = SHIFT(333), - [ts_sym__for] = SHIFT(335), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(341), - [ts_sym__switch] = SHIFT(345), - [ts_sym__var] = SHIFT(404), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(408), - [ts_sym_expression] = SHIFT(409), - [ts_sym_expression_statement] = SHIFT(408), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(408), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(408), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(411), - [ts_sym_statement_block] = SHIFT(408), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(408), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(408), - [ts_aux_sym_token1] = SHIFT(414), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(418), - }, - [345] = { - [ts_aux_sym_token3] = SHIFT(346), - }, - [346] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(347), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(403), - }, - [347] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(348), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [348] = { - [ts_aux_sym_token1] = SHIFT(349), - }, - [349] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(401), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), - }, - [350] = { - [ts_aux_sym_token5] = SHIFT(351), - }, - [351] = { - [ts_sym__break] = SHIFT(319), - [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_sym__for] = SHIFT(321), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(329), - [ts_sym__switch] = SHIFT(352), - [ts_sym__var] = SHIFT(386), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(390), - [ts_sym_expression] = SHIFT(391), - [ts_sym_expression_statement] = SHIFT(390), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(390), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(390), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(393), - [ts_sym_statement_block] = SHIFT(390), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(390), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(390), - [ts_aux_sym_switch_case_repeat1] = SHIFT(400), - [ts_aux_sym_token1] = SHIFT(395), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(399), - }, - [352] = { - [ts_aux_sym_token3] = SHIFT(353), - }, - [353] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(354), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(385), - }, - [354] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(355), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [355] = { - [ts_aux_sym_token1] = SHIFT(356), - }, - [356] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(359), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), - }, - [357] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(358), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), - }, - [358] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 2), - }, - [359] = { - [ts_aux_sym_token2] = SHIFT(360), - }, - [360] = { - [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__case] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__default] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), - }, - [361] = { - [ts_sym_identifier] = SHIFT(362), - }, - [362] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), - }, - [363] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(364), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), - }, - [364] = { - [ts_aux_sym_token10] = SHIFT(365), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), - }, - [365] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), - }, - [366] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(367), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [367] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(368), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - }, - [368] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [369] = { - [ts_sym_identifier] = SHIFT(370), - [ts_sym_string] = SHIFT(370), - [ts_aux_sym_token2] = SHIFT(375), - [ts_builtin_sym_error] = SHIFT(376), - }, - [370] = { - [ts_aux_sym_token5] = SHIFT(371), - }, - [371] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(372), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [372] = { - [ts_aux_sym_object_repeat1] = SHIFT(373), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), - }, - [373] = { - [ts_aux_sym_token2] = SHIFT(374), - }, - [374] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), - }, - [375] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), - }, - [376] = { - [ts_aux_sym_object_repeat1] = SHIFT(377), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), - }, - [377] = { - [ts_aux_sym_token2] = SHIFT(378), - }, - [378] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), - }, - [379] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(380), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(383), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(384), - }, - [380] = { - [ts_aux_sym_array_repeat1] = SHIFT(381), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), - }, - [381] = { - [ts_aux_sym_token10] = SHIFT(382), - }, - [382] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), - }, - [383] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), - }, - [384] = { - [ts_aux_sym_array_repeat1] = SHIFT(381), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), - }, - [385] = { - [ts_aux_sym_token4] = SHIFT(355), - }, - [386] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(387), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(389), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), - }, - [387] = { - [ts_sym__terminator] = SHIFT(388), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [388] = { + [203] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__case] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__default] = REDUCE(ts_sym_var_declaration, 3), @@ -6208,151 +4943,892 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), }, - [389] = { - [ts_sym__terminator] = SHIFT(388), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), + [204] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [390] = { - [ts_sym__break] = REDUCE(ts_sym_statement, 1), - [ts_sym__case] = REDUCE(ts_sym_statement, 1), - [ts_sym__default] = REDUCE(ts_sym_statement, 1), - [ts_sym__for] = REDUCE(ts_sym_statement, 1), - [ts_sym__function] = REDUCE(ts_sym_statement, 1), - [ts_sym__if] = REDUCE(ts_sym_statement, 1), - [ts_sym__switch] = REDUCE(ts_sym_statement, 1), - [ts_sym__var] = REDUCE(ts_sym_statement, 1), - [ts_sym_false] = REDUCE(ts_sym_statement, 1), - [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), - [ts_sym_null] = REDUCE(ts_sym_statement, 1), - [ts_sym_number] = REDUCE(ts_sym_statement, 1), - [ts_sym_string] = REDUCE(ts_sym_statement, 1), - [ts_sym_true] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [205] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), }, - [391] = { - [ts_sym__terminator] = SHIFT(392), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), + [206] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), }, - [392] = { - [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__case] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__default] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [207] = { + [ts_sym_formal_parameters] = SHIFT(208), + [ts_sym_identifier] = SHIFT(308), + [ts_aux_sym_token2] = SHIFT(292), }, - [393] = { - [ts_sym__break] = SHIFT(319), - [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_sym__for] = SHIFT(321), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(329), - [ts_sym__switch] = SHIFT(352), - [ts_sym__var] = SHIFT(386), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(390), - [ts_sym_expression] = SHIFT(391), - [ts_sym_expression_statement] = SHIFT(390), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(390), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(390), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(393), - [ts_sym_statement_block] = SHIFT(390), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(390), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(390), - [ts_aux_sym_switch_case_repeat1] = SHIFT(394), - [ts_aux_sym_token1] = SHIFT(395), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_case_repeat1, 0), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(399), + [208] = { + [ts_sym_statement_block] = SHIFT(209), + [ts_aux_sym_token0] = SHIFT(210), }, - [394] = { - [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat1, 2), - [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat1, 2), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_case_repeat1, 2), + [209] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), }, - [395] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(101), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(203), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(396), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(398), + [210] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(211), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(307), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), }, - [396] = { - [ts_aux_sym_token2] = SHIFT(397), + [211] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(212), }, - [397] = { + [212] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [213] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(214), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(216), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), + }, + [214] = { + [ts_sym__terminator] = SHIFT(215), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [215] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), + }, + [216] = { + [ts_sym__terminator] = SHIFT(215), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [217] = { + [ts_builtin_sym_error] = SHIFT(218), + [ts_sym_string] = SHIFT(221), + [ts_sym_identifier] = SHIFT(221), + [ts_aux_sym_token1] = SHIFT(300), + }, + [218] = { + [ts_aux_sym_object_repeat0] = SHIFT(219), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [219] = { + [ts_aux_sym_token1] = SHIFT(220), + }, + [220] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + }, + [221] = { + [ts_aux_sym_token4] = SHIFT(222), + }, + [222] = { + [ts_sym_expression] = SHIFT(223), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [223] = { + [ts_aux_sym_object_repeat0] = SHIFT(224), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [224] = { + [ts_aux_sym_token1] = SHIFT(225), + }, + [225] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + }, + [226] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [227] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(228), + [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [228] = { + [ts_sym_expression] = SHIFT(229), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [229] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [230] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token6] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + }, + [231] = { + [ts_sym_formal_parameters] = SHIFT(232), + [ts_sym_identifier] = SHIFT(289), + [ts_aux_sym_token2] = SHIFT(292), + }, + [232] = { + [ts_sym_statement_block] = SHIFT(233), + [ts_aux_sym_token0] = SHIFT(234), + }, + [233] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + }, + [234] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(235), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(237), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [235] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(236), + }, + [236] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [237] = { + [ts_aux_sym_token1] = SHIFT(236), + }, + [238] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(239), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(243), + [ts_sym_identifier] = SHIFT(280), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(281), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = SHIFT(282), + [ts_aux_sym_token8] = SHIFT(283), + }, + [239] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = SHIFT(242), + [ts_aux_sym_token6] = SHIFT(82), + }, + [240] = { + [ts_aux_sym_token1] = SHIFT(241), + }, + [241] = { + [ts_sym__terminator] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + }, + [242] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [243] = { + [ts_sym__terminator] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token4] = SHIFT(244), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + }, + [244] = { + [ts_sym_expression] = SHIFT(245), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [245] = { + [ts_aux_sym_object_repeat0] = SHIFT(246), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [246] = { + [ts_aux_sym_token1] = SHIFT(247), + }, + [247] = { + [ts_sym__terminator] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + }, + [248] = { + [ts_builtin_sym_error] = SHIFT(249), + [ts_sym_string] = SHIFT(252), + [ts_sym_identifier] = SHIFT(252), + [ts_aux_sym_token1] = SHIFT(279), + }, + [249] = { + [ts_aux_sym_object_repeat0] = SHIFT(250), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [250] = { + [ts_aux_sym_token1] = SHIFT(251), + }, + [251] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + }, + [252] = { + [ts_aux_sym_token4] = SHIFT(253), + }, + [253] = { + [ts_sym_expression] = SHIFT(254), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [254] = { + [ts_aux_sym_object_repeat0] = SHIFT(255), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [255] = { + [ts_aux_sym_token1] = SHIFT(256), + }, + [256] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + }, + [257] = { + [ts_sym_expression] = SHIFT(258), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(261), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(278), + }, + [258] = { + [ts_aux_sym_array_repeat0] = SHIFT(259), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [259] = { + [ts_aux_sym_token9] = SHIFT(260), + }, + [260] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), + }, + [261] = { + [ts_aux_sym_array_repeat0] = SHIFT(259), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [262] = { + [ts_builtin_sym_error] = SHIFT(263), + [ts_sym_string] = SHIFT(266), + [ts_sym_identifier] = SHIFT(266), + [ts_aux_sym_token1] = SHIFT(271), + }, + [263] = { + [ts_aux_sym_object_repeat0] = SHIFT(264), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [264] = { + [ts_aux_sym_token1] = SHIFT(265), + }, + [265] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), + }, + [266] = { + [ts_aux_sym_token4] = SHIFT(267), + }, + [267] = { + [ts_sym_expression] = SHIFT(268), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [268] = { + [ts_aux_sym_object_repeat0] = SHIFT(269), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [269] = { + [ts_aux_sym_token1] = SHIFT(270), + }, + [270] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), + }, + [271] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), + }, + [272] = { + [ts_sym_expression] = SHIFT(273), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(276), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(277), + }, + [273] = { + [ts_aux_sym_array_repeat0] = SHIFT(274), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [274] = { + [ts_aux_sym_token9] = SHIFT(275), + }, + [275] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), + }, + [276] = { + [ts_aux_sym_array_repeat0] = SHIFT(274), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [277] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), + }, + [278] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), + }, + [279] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + }, + [280] = { + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token4] = SHIFT(244), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [281] = { + [ts_aux_sym_token1] = SHIFT(242), + }, + [282] = { + [ts_sym__terminator] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + }, + [283] = { + [ts_sym_expression] = SHIFT(284), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(287), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(288), + }, + [284] = { + [ts_aux_sym_array_repeat0] = SHIFT(285), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [285] = { + [ts_aux_sym_token9] = SHIFT(286), + }, + [286] = { + [ts_sym__terminator] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), + }, + [287] = { + [ts_aux_sym_array_repeat0] = SHIFT(285), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [288] = { + [ts_sym__terminator] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), + }, + [289] = { + [ts_sym_formal_parameters] = SHIFT(290), + [ts_aux_sym_token2] = SHIFT(292), + }, + [290] = { + [ts_sym_statement_block] = SHIFT(291), + [ts_aux_sym_token0] = SHIFT(234), + }, + [291] = { + [ts_aux_sym_token1] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), + }, + [292] = { + [ts_sym_identifier] = SHIFT(293), + [ts_aux_sym_token3] = SHIFT(299), + }, + [293] = { + [ts_aux_sym_formal_parameters_repeat0] = SHIFT(294), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_formal_parameters_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(296), + }, + [294] = { + [ts_aux_sym_token3] = SHIFT(295), + }, + [295] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_formal_parameters, 4), + }, + [296] = { + [ts_sym_identifier] = SHIFT(297), + }, + [297] = { + [ts_aux_sym_formal_parameters_repeat0] = SHIFT(298), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_formal_parameters_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(296), + }, + [298] = { + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_formal_parameters_repeat0, 3), + }, + [299] = { + [ts_aux_sym_token0] = REDUCE(ts_sym_formal_parameters, 2), + }, + [300] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + }, + [301] = { + [ts_sym_expression] = SHIFT(302), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(305), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(306), + }, + [302] = { + [ts_aux_sym_array_repeat0] = SHIFT(303), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [303] = { + [ts_aux_sym_token9] = SHIFT(304), + }, + [304] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), + }, + [305] = { + [ts_aux_sym_array_repeat0] = SHIFT(303), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [306] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), + }, + [307] = { + [ts_aux_sym_token1] = SHIFT(212), + }, + [308] = { + [ts_sym_formal_parameters] = SHIFT(309), + [ts_aux_sym_token2] = SHIFT(292), + }, + [309] = { + [ts_sym_statement_block] = SHIFT(310), + [ts_aux_sym_token0] = SHIFT(210), + }, + [310] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), + }, + [311] = { + [ts_sym__terminator] = SHIFT(203), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [312] = { + [ts_sym__case] = REDUCE(ts_sym_switch_case, 3), + [ts_sym__default] = REDUCE(ts_sym_switch_case, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_switch_case, 3), + }, + [313] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(314), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(243), + [ts_sym_identifier] = SHIFT(280), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(316), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = SHIFT(282), + [ts_aux_sym_token8] = SHIFT(283), + }, + [314] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = SHIFT(315), + [ts_aux_sym_token6] = SHIFT(82), + }, + [315] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), [ts_sym__case] = REDUCE(ts_sym_statement_block, 3), [ts_sym__default] = REDUCE(ts_sym_statement_block, 3), @@ -6361,112 +5837,324 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), }, - [398] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = SHIFT(397), - [ts_aux_sym_token7] = SHIFT(113), + [316] = { + [ts_aux_sym_token1] = SHIFT(315), }, - [399] = { - [ts_sym__terminator] = SHIFT(392), + [317] = { + [ts_aux_sym_token1] = SHIFT(318), }, - [400] = { - [ts_sym__case] = REDUCE(ts_sym_switch_case, 3), - [ts_sym__default] = REDUCE(ts_sym_switch_case, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_switch_case, 3), - }, - [401] = { - [ts_aux_sym_token2] = SHIFT(402), - }, - [402] = { + [318] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__case] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__default] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__else] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_switch_statement, 7), [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_switch_statement, 7), }, - [403] = { - [ts_aux_sym_token4] = SHIFT(348), + [319] = { + [ts_sym_identifier] = SHIFT(320), }, - [404] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(405), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(407), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), + [320] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), }, - [405] = { - [ts_sym__terminator] = SHIFT(406), + [321] = { + [ts_sym_expression] = SHIFT(322), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), + }, + [322] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(323), + }, + [323] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), + }, + [324] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [406] = { - [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__case] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__default] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), - }, - [407] = { - [ts_sym__terminator] = SHIFT(406), + [325] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), + [ts_aux_sym_token5] = SHIFT(326), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), }, - [408] = { + [326] = { + [ts_sym_expression] = SHIFT(327), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [327] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [328] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + }, + [329] = { + [ts_sym_formal_parameters] = SHIFT(330), + [ts_sym_identifier] = SHIFT(336), + [ts_aux_sym_token2] = SHIFT(292), + }, + [330] = { + [ts_sym_statement_block] = SHIFT(331), + [ts_aux_sym_token0] = SHIFT(332), + }, + [331] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + }, + [332] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(333), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(335), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [333] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(334), + }, + [334] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [335] = { + [ts_aux_sym_token1] = SHIFT(334), + }, + [336] = { + [ts_sym_formal_parameters] = SHIFT(337), + [ts_aux_sym_token2] = SHIFT(292), + }, + [337] = { + [ts_sym_statement_block] = SHIFT(338), + [ts_aux_sym_token0] = SHIFT(332), + }, + [338] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), + }, + [339] = { + [ts_builtin_sym_error] = SHIFT(340), + [ts_sym_string] = SHIFT(343), + [ts_sym_identifier] = SHIFT(343), + [ts_aux_sym_token1] = SHIFT(348), + }, + [340] = { + [ts_aux_sym_object_repeat0] = SHIFT(341), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [341] = { + [ts_aux_sym_token1] = SHIFT(342), + }, + [342] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), + }, + [343] = { + [ts_aux_sym_token4] = SHIFT(344), + }, + [344] = { + [ts_sym_expression] = SHIFT(345), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [345] = { + [ts_aux_sym_object_repeat0] = SHIFT(346), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [346] = { + [ts_aux_sym_token1] = SHIFT(347), + }, + [347] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + }, + [348] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + }, + [349] = { + [ts_sym_expression] = SHIFT(350), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(353), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(354), + }, + [350] = { + [ts_aux_sym_array_repeat0] = SHIFT(351), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [351] = { + [ts_aux_sym_token9] = SHIFT(352), + }, + [352] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), + }, + [353] = { + [ts_aux_sym_array_repeat0] = SHIFT(351), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [354] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), + }, + [355] = { + [ts_aux_sym_token3] = SHIFT(186), + }, + [356] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), [ts_sym__break] = REDUCE(ts_sym_statement, 1), [ts_sym__case] = REDUCE(ts_sym_statement, 1), [ts_sym__default] = REDUCE(ts_sym_statement, 1), @@ -6476,24 +6164,24 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_statement, 1), [ts_sym__switch] = REDUCE(ts_sym_statement, 1), [ts_sym__var] = REDUCE(ts_sym_statement, 1), - [ts_sym_false] = REDUCE(ts_sym_statement, 1), - [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), [ts_sym_null] = REDUCE(ts_sym_statement, 1), - [ts_sym_number] = REDUCE(ts_sym_statement, 1), - [ts_sym_string] = REDUCE(ts_sym_statement, 1), [ts_sym_true] = REDUCE(ts_sym_statement, 1), + [ts_sym_false] = REDUCE(ts_sym_statement, 1), + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement, 1), [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement, 1), }, - [409] = { - [ts_sym__terminator] = SHIFT(410), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), + [357] = { + [ts_sym__terminator] = SHIFT(358), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), }, - [410] = { + [358] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__case] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__default] = REDUCE(ts_sym_expression_statement, 2), @@ -6503,164 +6191,151 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), }, - [411] = { - [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__case] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__default] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__else] = SHIFT(412), - [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [359] = { + [ts_sym__terminator] = SHIFT(358), }, - [412] = { - [ts_sym__break] = SHIFT(333), - [ts_sym__for] = SHIFT(335), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(341), - [ts_sym__switch] = SHIFT(345), - [ts_sym__var] = SHIFT(404), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(408), - [ts_sym_expression] = SHIFT(409), - [ts_sym_expression_statement] = SHIFT(408), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(408), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(408), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(413), - [ts_sym_statement_block] = SHIFT(408), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(408), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(408), - [ts_aux_sym_token1] = SHIFT(414), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(418), + [360] = { + [ts_sym__terminator] = SHIFT(361), }, - [413] = { - [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__case] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__default] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [361] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__case] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__default] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__else] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_break_statement, 2), }, - [414] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(101), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(203), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(415), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(417), + [362] = { + [ts_aux_sym_token2] = SHIFT(363), }, - [415] = { - [ts_aux_sym_token2] = SHIFT(416), + [363] = { + [ts_sym_var_declaration] = SHIFT(364), + [ts_sym_expression_statement] = SHIFT(364), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym__var] = SHIFT(400), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, - [416] = { - [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__case] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__default] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [364] = { + [ts_sym_expression_statement] = SHIFT(365), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, - [417] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = SHIFT(416), - [ts_aux_sym_token7] = SHIFT(113), + [365] = { + [ts_sym_expression] = SHIFT(366), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(393), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, - [418] = { - [ts_sym__terminator] = SHIFT(410), + [366] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(367), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, - [419] = { - [ts_aux_sym_token4] = SHIFT(344), + [367] = { + [ts_sym_statement] = SHIFT(368), + [ts_sym_statement_block] = SHIFT(356), + [ts_sym_for_statement] = SHIFT(356), + [ts_sym_if_statement] = SHIFT(356), + [ts_sym_switch_statement] = SHIFT(356), + [ts_sym_break_statement] = SHIFT(356), + [ts_sym_var_declaration] = SHIFT(356), + [ts_sym_expression_statement] = SHIFT(356), + [ts_sym_expression] = SHIFT(357), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(359), + [ts_sym__break] = SHIFT(360), + [ts_sym__for] = SHIFT(362), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(369), + [ts_sym__switch] = SHIFT(376), + [ts_sym__var] = SHIFT(384), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(388), + [ts_aux_sym_token8] = SHIFT(283), }, - [420] = { + [368] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), [ts_sym__case] = REDUCE(ts_sym_for_statement, 7), [ts_sym__default] = REDUCE(ts_sym_for_statement, 7), @@ -6670,896 +6345,919 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_for_statement, 7), [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_for_statement, 7), }, - [421] = { - [ts_aux_sym_token4] = SHIFT(340), + [369] = { + [ts_aux_sym_token2] = SHIFT(370), }, - [422] = { - [ts_sym__terminator] = SHIFT(324), + [370] = { + [ts_sym_expression] = SHIFT(371), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(392), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, - [423] = { + [371] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(372), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [372] = { + [ts_sym_statement] = SHIFT(373), + [ts_sym_statement_block] = SHIFT(356), + [ts_sym_for_statement] = SHIFT(356), + [ts_sym_if_statement] = SHIFT(356), + [ts_sym_switch_statement] = SHIFT(356), + [ts_sym_break_statement] = SHIFT(356), + [ts_sym_var_declaration] = SHIFT(356), + [ts_sym_expression_statement] = SHIFT(356), + [ts_sym_expression] = SHIFT(357), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(359), + [ts_sym__break] = SHIFT(360), + [ts_sym__for] = SHIFT(362), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(369), + [ts_sym__switch] = SHIFT(376), + [ts_sym__var] = SHIFT(384), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(388), + [ts_aux_sym_token8] = SHIFT(283), + }, + [373] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), [ts_sym__case] = REDUCE(ts_sym_if_statement, 5), [ts_sym__default] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__else] = SHIFT(424), + [ts_sym__else] = SHIFT(374), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 5), [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 5), }, - [424] = { - [ts_sym__break] = SHIFT(319), - [ts_sym__for] = SHIFT(321), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(329), - [ts_sym__switch] = SHIFT(352), - [ts_sym__var] = SHIFT(386), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(390), - [ts_sym_expression] = SHIFT(391), - [ts_sym_expression_statement] = SHIFT(390), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(390), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(390), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(425), - [ts_sym_statement_block] = SHIFT(390), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(390), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(390), - [ts_aux_sym_token1] = SHIFT(395), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(399), + [374] = { + [ts_sym_statement] = SHIFT(375), + [ts_sym_statement_block] = SHIFT(356), + [ts_sym_for_statement] = SHIFT(356), + [ts_sym_if_statement] = SHIFT(356), + [ts_sym_switch_statement] = SHIFT(356), + [ts_sym_break_statement] = SHIFT(356), + [ts_sym_var_declaration] = SHIFT(356), + [ts_sym_expression_statement] = SHIFT(356), + [ts_sym_expression] = SHIFT(357), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(359), + [ts_sym__break] = SHIFT(360), + [ts_sym__for] = SHIFT(362), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(369), + [ts_sym__switch] = SHIFT(376), + [ts_sym__var] = SHIFT(384), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(388), + [ts_aux_sym_token8] = SHIFT(283), }, - [425] = { + [375] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), [ts_sym__case] = REDUCE(ts_sym_if_statement, 7), [ts_sym__default] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 7), [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 7), }, - [426] = { - [ts_aux_sym_token4] = SHIFT(332), + [376] = { + [ts_aux_sym_token2] = SHIFT(377), }, - [427] = { - [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__case] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__default] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [377] = { + [ts_sym_expression] = SHIFT(378), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(383), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, - [428] = { - [ts_aux_sym_token4] = SHIFT(328), + [378] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(379), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, - [429] = { + [379] = { + [ts_aux_sym_token0] = SHIFT(380), + }, + [380] = { + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(381), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), + }, + [381] = { + [ts_aux_sym_token1] = SHIFT(382), + }, + [382] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__case] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__default] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__else] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_switch_statement, 7), + }, + [383] = { + [ts_aux_sym_token3] = SHIFT(379), + }, + [384] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(385), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(387), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), + }, + [385] = { + [ts_sym__terminator] = SHIFT(386), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [386] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__case] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__default] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), + }, + [387] = { + [ts_sym__terminator] = SHIFT(386), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [388] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(389), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(243), + [ts_sym_identifier] = SHIFT(280), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(391), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = SHIFT(282), + [ts_aux_sym_token8] = SHIFT(283), + }, + [389] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = SHIFT(390), + [ts_aux_sym_token6] = SHIFT(82), + }, + [390] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__case] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__default] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [391] = { + [ts_aux_sym_token1] = SHIFT(390), + }, + [392] = { + [ts_aux_sym_token3] = SHIFT(372), + }, + [393] = { + [ts_aux_sym_token3] = SHIFT(367), + }, + [394] = { + [ts_sym__terminator] = SHIFT(395), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), + }, + [395] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), + }, + [396] = { + [ts_sym__terminator] = SHIFT(395), + }, + [397] = { + [ts_builtin_sym_error] = SHIFT(398), + [ts_sym_string] = SHIFT(399), + [ts_sym_identifier] = SHIFT(399), + [ts_aux_sym_token1] = SHIFT(282), + }, + [398] = { + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), + }, + [399] = { + [ts_aux_sym_token4] = SHIFT(244), + }, + [400] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(401), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(403), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), + }, + [401] = { + [ts_sym__terminator] = SHIFT(402), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [402] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), + }, + [403] = { + [ts_sym__terminator] = SHIFT(402), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [404] = { + [ts_aux_sym_token3] = SHIFT(179), + }, + [405] = { + [ts_aux_sym_token3] = SHIFT(174), + }, + [406] = { + [ts_sym__case] = REDUCE(ts_aux_sym_switch_case_repeat0, 2), + [ts_sym__default] = REDUCE(ts_aux_sym_switch_case_repeat0, 2), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_case_repeat0, 2), + }, + [407] = { [ts_sym__case] = REDUCE(ts_sym_switch_case, 4), [ts_sym__default] = REDUCE(ts_sym_switch_case, 4), - [ts_aux_sym_token2] = REDUCE(ts_sym_switch_case, 4), + [ts_aux_sym_token1] = REDUCE(ts_sym_switch_case, 4), + }, + [408] = { + [ts_sym_identifier] = SHIFT(409), + }, + [409] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), + }, + [410] = { + [ts_sym_expression] = SHIFT(411), + [ts_sym_assignment] = SHIFT(47), + [ts_sym_function_expression] = SHIFT(47), + [ts_sym_function_call] = SHIFT(47), + [ts_sym_property_access] = SHIFT(48), + [ts_sym_literal] = SHIFT(47), + [ts_sym_object] = SHIFT(51), + [ts_sym_array] = SHIFT(51), + [ts_sym__function] = SHIFT(52), + [ts_sym_null] = SHIFT(51), + [ts_sym_true] = SHIFT(51), + [ts_sym_false] = SHIFT(51), + [ts_sym_string] = SHIFT(51), + [ts_sym_identifier] = SHIFT(48), + [ts_sym_number] = SHIFT(51), + [ts_aux_sym_token0] = SHIFT(111), + [ts_aux_sym_token8] = SHIFT(125), + }, + [411] = { + [ts_aux_sym_token2] = SHIFT(21), + [ts_aux_sym_token7] = SHIFT(42), + [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token9] = SHIFT(412), + }, + [412] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), + }, + [413] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [414] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(415), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [415] = { + [ts_sym_expression] = SHIFT(416), + [ts_sym_assignment] = SHIFT(413), + [ts_sym_function_expression] = SHIFT(413), + [ts_sym_function_call] = SHIFT(413), + [ts_sym_property_access] = SHIFT(414), + [ts_sym_literal] = SHIFT(413), + [ts_sym_object] = SHIFT(417), + [ts_sym_array] = SHIFT(417), + [ts_sym__function] = SHIFT(418), + [ts_sym_null] = SHIFT(417), + [ts_sym_true] = SHIFT(417), + [ts_sym_false] = SHIFT(417), + [ts_sym_string] = SHIFT(417), + [ts_sym_identifier] = SHIFT(414), + [ts_sym_number] = SHIFT(417), + [ts_aux_sym_token0] = SHIFT(428), + [ts_aux_sym_token8] = SHIFT(438), + }, + [416] = { + [ts_aux_sym_token2] = SHIFT(156), + [ts_aux_sym_token4] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(408), + [ts_aux_sym_token8] = SHIFT(410), + }, + [417] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_literal, 1), + }, + [418] = { + [ts_sym_formal_parameters] = SHIFT(419), + [ts_sym_identifier] = SHIFT(425), + [ts_aux_sym_token2] = SHIFT(292), + }, + [419] = { + [ts_sym_statement_block] = SHIFT(420), + [ts_aux_sym_token0] = SHIFT(421), + }, + [420] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 3), + }, + [421] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(422), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(424), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 0), + [ts_aux_sym_token8] = SHIFT(283), + }, + [422] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(423), + }, + [423] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token4] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [424] = { + [ts_aux_sym_token1] = SHIFT(423), + }, + [425] = { + [ts_sym_formal_parameters] = SHIFT(426), + [ts_aux_sym_token2] = SHIFT(292), + }, + [426] = { + [ts_sym_statement_block] = SHIFT(427), + [ts_aux_sym_token0] = SHIFT(421), + }, + [427] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), + }, + [428] = { + [ts_builtin_sym_error] = SHIFT(429), + [ts_sym_string] = SHIFT(432), + [ts_sym_identifier] = SHIFT(432), + [ts_aux_sym_token1] = SHIFT(437), + }, + [429] = { + [ts_aux_sym_object_repeat0] = SHIFT(430), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token6] = SHIFT(82), }, [430] = { - [ts_sym_identifier] = SHIFT(431), + [ts_aux_sym_token1] = SHIFT(431), }, [431] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), }, [432] = { - [ts_sym__function] = SHIFT(55), - [ts_sym_array] = SHIFT(84), - [ts_sym_assignment] = SHIFT(85), - [ts_sym_expression] = SHIFT(433), - [ts_sym_false] = SHIFT(84), - [ts_sym_function_call] = SHIFT(85), - [ts_sym_function_expression] = SHIFT(85), - [ts_sym_identifier] = SHIFT(128), - [ts_sym_literal] = SHIFT(85), - [ts_sym_null] = SHIFT(84), - [ts_sym_number] = SHIFT(84), - [ts_sym_object] = SHIFT(84), - [ts_sym_property_access] = SHIFT(128), - [ts_sym_string] = SHIFT(84), - [ts_sym_true] = SHIFT(84), - [ts_aux_sym_token1] = SHIFT(131), - [ts_aux_sym_token9] = SHIFT(165), + [ts_aux_sym_token4] = SHIFT(433), }, [433] = { - [ts_aux_sym_token10] = SHIFT(434), - [ts_aux_sym_token3] = SHIFT(88), - [ts_aux_sym_token8] = SHIFT(123), - [ts_aux_sym_token9] = SHIFT(125), + [ts_sym_expression] = SHIFT(434), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), }, [434] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_object_repeat0] = SHIFT(435), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), }, [435] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(436), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token1] = SHIFT(436), }, [436] = { - [ts_sym__function] = SHIFT(300), - [ts_sym_array] = SHIFT(310), - [ts_sym_assignment] = SHIFT(311), - [ts_sym_expression] = SHIFT(437), - [ts_sym_false] = SHIFT(310), - [ts_sym_function_call] = SHIFT(311), - [ts_sym_function_expression] = SHIFT(311), - [ts_sym_identifier] = SHIFT(435), - [ts_sym_literal] = SHIFT(311), - [ts_sym_null] = SHIFT(310), - [ts_sym_number] = SHIFT(310), - [ts_sym_object] = SHIFT(310), - [ts_sym_property_access] = SHIFT(435), - [ts_sym_string] = SHIFT(310), - [ts_sym_true] = SHIFT(310), - [ts_aux_sym_token1] = SHIFT(438), - [ts_aux_sym_token9] = SHIFT(448), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token4] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), }, [437] = { - [ts_aux_sym_token3] = SHIFT(313), - [ts_aux_sym_token5] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token8] = SHIFT(430), - [ts_aux_sym_token9] = SHIFT(432), + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token4] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), }, [438] = { - [ts_sym_identifier] = SHIFT(439), - [ts_sym_string] = SHIFT(439), - [ts_aux_sym_token2] = SHIFT(444), - [ts_builtin_sym_error] = SHIFT(445), + [ts_sym_expression] = SHIFT(439), + [ts_sym_assignment] = SHIFT(129), + [ts_sym_function_expression] = SHIFT(129), + [ts_sym_function_call] = SHIFT(129), + [ts_sym_property_access] = SHIFT(130), + [ts_sym_literal] = SHIFT(129), + [ts_sym_object] = SHIFT(133), + [ts_sym_array] = SHIFT(133), + [ts_builtin_sym_error] = SHIFT(442), + [ts_sym__function] = SHIFT(134), + [ts_sym_null] = SHIFT(133), + [ts_sym_true] = SHIFT(133), + [ts_sym_false] = SHIFT(133), + [ts_sym_string] = SHIFT(133), + [ts_sym_identifier] = SHIFT(130), + [ts_sym_number] = SHIFT(133), + [ts_aux_sym_token0] = SHIFT(262), + [ts_aux_sym_token8] = SHIFT(272), + [ts_aux_sym_token9] = SHIFT(443), }, [439] = { - [ts_aux_sym_token5] = SHIFT(440), + [ts_aux_sym_array_repeat0] = SHIFT(440), + [ts_aux_sym_token2] = SHIFT(98), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token7] = SHIFT(106), + [ts_aux_sym_token8] = SHIFT(108), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, [440] = { - [ts_sym__function] = SHIFT(74), - [ts_sym_array] = SHIFT(103), - [ts_sym_assignment] = SHIFT(104), - [ts_sym_expression] = SHIFT(441), - [ts_sym_false] = SHIFT(103), - [ts_sym_function_call] = SHIFT(104), - [ts_sym_function_expression] = SHIFT(104), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(104), - [ts_sym_null] = SHIFT(103), - [ts_sym_number] = SHIFT(103), - [ts_sym_object] = SHIFT(103), - [ts_sym_property_access] = SHIFT(137), - [ts_sym_string] = SHIFT(103), - [ts_sym_true] = SHIFT(103), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [ts_aux_sym_token9] = SHIFT(441), }, [441] = { - [ts_aux_sym_object_repeat1] = SHIFT(442), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(108), - [ts_aux_sym_token7] = SHIFT(113), - [ts_aux_sym_token8] = SHIFT(118), - [ts_aux_sym_token9] = SHIFT(120), + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token4] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), }, [442] = { - [ts_aux_sym_token2] = SHIFT(443), + [ts_aux_sym_array_repeat0] = SHIFT(440), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, [443] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token5] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token4] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), }, [444] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token5] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 2), }, [445] = { - [ts_aux_sym_object_repeat1] = SHIFT(446), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_object_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(113), + [ts_aux_sym_token1] = SHIFT(446), }, [446] = { - [ts_aux_sym_token2] = SHIFT(447), + [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_switch_statement, 7), }, [447] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token5] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token3] = SHIFT(151), }, [448] = { - [ts_sym__function] = SHIFT(94), - [ts_sym_array] = SHIFT(147), - [ts_sym_assignment] = SHIFT(148), - [ts_sym_expression] = SHIFT(449), - [ts_sym_false] = SHIFT(147), - [ts_sym_function_call] = SHIFT(148), - [ts_sym_function_expression] = SHIFT(148), - [ts_sym_identifier] = SHIFT(169), - [ts_sym_literal] = SHIFT(148), - [ts_sym_null] = SHIFT(147), - [ts_sym_number] = SHIFT(147), - [ts_sym_object] = SHIFT(147), - [ts_sym_property_access] = SHIFT(169), - [ts_sym_string] = SHIFT(147), - [ts_sym_true] = SHIFT(147), - [ts_aux_sym_token1] = SHIFT(172), - [ts_aux_sym_token10] = SHIFT(452), - [ts_aux_sym_token9] = SHIFT(182), - [ts_builtin_sym_error] = SHIFT(453), + [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_sym__break] = REDUCE(ts_sym_statement, 1), + [ts_sym__else] = REDUCE(ts_sym_statement, 1), + [ts_sym__for] = REDUCE(ts_sym_statement, 1), + [ts_sym__function] = REDUCE(ts_sym_statement, 1), + [ts_sym__if] = REDUCE(ts_sym_statement, 1), + [ts_sym__switch] = REDUCE(ts_sym_statement, 1), + [ts_sym__var] = REDUCE(ts_sym_statement, 1), + [ts_sym_null] = REDUCE(ts_sym_statement, 1), + [ts_sym_true] = REDUCE(ts_sym_statement, 1), + [ts_sym_false] = REDUCE(ts_sym_statement, 1), + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement, 1), }, [449] = { - [ts_aux_sym_array_repeat1] = SHIFT(450), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token3] = SHIFT(152), - [ts_aux_sym_token7] = SHIFT(157), - [ts_aux_sym_token8] = SHIFT(160), - [ts_aux_sym_token9] = SHIFT(162), + [ts_sym__terminator] = SHIFT(450), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), }, [450] = { - [ts_aux_sym_token10] = SHIFT(451), + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__else] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), }, [451] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token5] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 4), + [ts_sym__terminator] = SHIFT(450), }, [452] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token5] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), + [ts_sym__terminator] = SHIFT(453), }, [453] = { - [ts_aux_sym_array_repeat1] = SHIFT(450), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_array_repeat1, 0), - [ts_aux_sym_token7] = SHIFT(157), + [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__else] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_break_statement, 2), }, [454] = { [ts_aux_sym_token2] = SHIFT(455), }, [455] = { - [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_var_declaration] = SHIFT(456), + [ts_sym_expression_statement] = SHIFT(456), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym__var] = SHIFT(400), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, [456] = { - [ts_aux_sym_token4] = SHIFT(297), + [ts_sym_expression_statement] = SHIFT(457), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, [457] = { - [ts_aux_sym_token2] = SHIFT(458), + [ts_sym_expression] = SHIFT(458), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(485), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [458] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token4] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(459), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, [459] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(458), + [ts_sym_statement] = SHIFT(460), + [ts_sym_statement_block] = SHIFT(448), + [ts_sym_for_statement] = SHIFT(448), + [ts_sym_if_statement] = SHIFT(448), + [ts_sym_switch_statement] = SHIFT(448), + [ts_sym_break_statement] = SHIFT(448), + [ts_sym_var_declaration] = SHIFT(448), + [ts_sym_expression_statement] = SHIFT(448), + [ts_sym_expression] = SHIFT(449), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(451), + [ts_sym__break] = SHIFT(452), + [ts_sym__for] = SHIFT(454), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(461), + [ts_sym__switch] = SHIFT(468), + [ts_sym__var] = SHIFT(476), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(480), + [ts_aux_sym_token8] = SHIFT(283), }, [460] = { - [ts_sym_formal_parameters] = SHIFT(461), - [ts_aux_sym_token3] = SHIFT(223), - }, - [461] = { - [ts_sym_statement_block] = SHIFT(462), - [ts_aux_sym_token1] = SHIFT(23), - }, - [462] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), - }, - [463] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(464), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [464] = { - [ts_sym__break] = SHIFT(465), - [ts_sym__for] = SHIFT(467), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(473), - [ts_sym__switch] = SHIFT(477), - [ts_sym__var] = SHIFT(485), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(489), - [ts_sym_expression] = SHIFT(490), - [ts_sym_expression_statement] = SHIFT(489), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(489), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(489), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(503), - [ts_sym_statement_block] = SHIFT(489), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(489), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(489), - [ts_aux_sym_token1] = SHIFT(495), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(499), - }, - [465] = { - [ts_sym__terminator] = SHIFT(466), - }, - [466] = { - [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__else] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), - }, - [467] = { - [ts_aux_sym_token3] = SHIFT(468), - }, - [468] = { - [ts_sym__function] = SHIFT(5), - [ts_sym__var] = SHIFT(13), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(469), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(469), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [469] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(470), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), - }, - [470] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(471), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(502), - }, - [471] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(472), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [472] = { - [ts_sym__break] = SHIFT(465), - [ts_sym__for] = SHIFT(467), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(473), - [ts_sym__switch] = SHIFT(477), - [ts_sym__var] = SHIFT(485), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(489), - [ts_sym_expression] = SHIFT(490), - [ts_sym_expression_statement] = SHIFT(489), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(489), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(489), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(501), - [ts_sym_statement_block] = SHIFT(489), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(489), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(489), - [ts_aux_sym_token1] = SHIFT(495), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(499), - }, - [473] = { - [ts_aux_sym_token3] = SHIFT(474), - }, - [474] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(475), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(500), - }, - [475] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(476), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [476] = { - [ts_sym__break] = SHIFT(465), - [ts_sym__for] = SHIFT(467), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(473), - [ts_sym__switch] = SHIFT(477), - [ts_sym__var] = SHIFT(485), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(489), - [ts_sym_expression] = SHIFT(490), - [ts_sym_expression_statement] = SHIFT(489), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(489), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(489), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(492), - [ts_sym_statement_block] = SHIFT(489), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(489), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(489), - [ts_aux_sym_token1] = SHIFT(495), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(499), - }, - [477] = { - [ts_aux_sym_token3] = SHIFT(478), - }, - [478] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(479), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(484), - }, - [479] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(480), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [480] = { - [ts_aux_sym_token1] = SHIFT(481), - }, - [481] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(482), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), - }, - [482] = { - [ts_aux_sym_token2] = SHIFT(483), - }, - [483] = { - [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__else] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), - }, - [484] = { - [ts_aux_sym_token4] = SHIFT(480), - }, - [485] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(486), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(488), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), - }, - [486] = { - [ts_sym__terminator] = SHIFT(487), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [487] = { - [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), - }, - [488] = { - [ts_sym__terminator] = SHIFT(487), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [489] = { - [ts_sym__break] = REDUCE(ts_sym_statement, 1), - [ts_sym__else] = REDUCE(ts_sym_statement, 1), - [ts_sym__for] = REDUCE(ts_sym_statement, 1), - [ts_sym__function] = REDUCE(ts_sym_statement, 1), - [ts_sym__if] = REDUCE(ts_sym_statement, 1), - [ts_sym__switch] = REDUCE(ts_sym_statement, 1), - [ts_sym__var] = REDUCE(ts_sym_statement, 1), - [ts_sym_false] = REDUCE(ts_sym_statement, 1), - [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), - [ts_sym_null] = REDUCE(ts_sym_statement, 1), - [ts_sym_number] = REDUCE(ts_sym_statement, 1), - [ts_sym_string] = REDUCE(ts_sym_statement, 1), - [ts_sym_true] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), - }, - [490] = { - [ts_sym__terminator] = SHIFT(491), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), - }, - [491] = { - [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__else] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token2] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), - }, - [492] = { - [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__else] = SHIFT(493), - [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), - }, - [493] = { - [ts_sym__break] = SHIFT(465), - [ts_sym__for] = SHIFT(467), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(473), - [ts_sym__switch] = SHIFT(477), - [ts_sym__var] = SHIFT(485), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(489), - [ts_sym_expression] = SHIFT(490), - [ts_sym_expression_statement] = SHIFT(489), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(489), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(489), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(494), - [ts_sym_statement_block] = SHIFT(489), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(489), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(489), - [ts_aux_sym_token1] = SHIFT(495), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(499), - }, - [494] = { - [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), - }, - [495] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(101), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(203), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(496), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(498), - }, - [496] = { - [ts_aux_sym_token2] = SHIFT(497), - }, - [497] = { - [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), - }, - [498] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = SHIFT(497), - [ts_aux_sym_token7] = SHIFT(113), - }, - [499] = { - [ts_sym__terminator] = SHIFT(491), - }, - [500] = { - [ts_aux_sym_token4] = SHIFT(476), - }, - [501] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), [ts_sym__else] = REDUCE(ts_sym_for_statement, 7), [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), @@ -7567,719 +7265,1063 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_for_statement, 7), [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_for_statement, 7), }, - [502] = { - [ts_aux_sym_token4] = SHIFT(472), + [461] = { + [ts_aux_sym_token2] = SHIFT(462), }, - [503] = { + [462] = { + [ts_sym_expression] = SHIFT(463), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(484), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [463] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(464), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [464] = { + [ts_sym_statement] = SHIFT(465), + [ts_sym_statement_block] = SHIFT(448), + [ts_sym_for_statement] = SHIFT(448), + [ts_sym_if_statement] = SHIFT(448), + [ts_sym_switch_statement] = SHIFT(448), + [ts_sym_break_statement] = SHIFT(448), + [ts_sym_var_declaration] = SHIFT(448), + [ts_sym_expression_statement] = SHIFT(448), + [ts_sym_expression] = SHIFT(449), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(451), + [ts_sym__break] = SHIFT(452), + [ts_sym__for] = SHIFT(454), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(461), + [ts_sym__switch] = SHIFT(468), + [ts_sym__var] = SHIFT(476), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(480), + [ts_aux_sym_token8] = SHIFT(283), + }, + [465] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__else] = SHIFT(504), + [ts_sym__else] = SHIFT(466), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 5), [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 5), }, - [504] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(505), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(216), + [466] = { + [ts_sym_statement] = SHIFT(467), + [ts_sym_statement_block] = SHIFT(448), + [ts_sym_for_statement] = SHIFT(448), + [ts_sym_if_statement] = SHIFT(448), + [ts_sym_switch_statement] = SHIFT(448), + [ts_sym_break_statement] = SHIFT(448), + [ts_sym_var_declaration] = SHIFT(448), + [ts_sym_expression_statement] = SHIFT(448), + [ts_sym_expression] = SHIFT(449), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(451), + [ts_sym__break] = SHIFT(452), + [ts_sym__for] = SHIFT(454), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(461), + [ts_sym__switch] = SHIFT(468), + [ts_sym__var] = SHIFT(476), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(480), + [ts_aux_sym_token8] = SHIFT(283), }, - [505] = { + [467] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 7), [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 7), }, - [506] = { - [ts_aux_sym_token4] = SHIFT(464), + [468] = { + [ts_aux_sym_token2] = SHIFT(469), }, - [507] = { - [ts_aux_sym_token2] = SHIFT(508), + [469] = { + [ts_sym_expression] = SHIFT(470), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(475), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, - [508] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), + [470] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(471), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [471] = { + [ts_aux_sym_token0] = SHIFT(472), + }, + [472] = { + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(473), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), + }, + [473] = { + [ts_aux_sym_token1] = SHIFT(474), + }, + [474] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__else] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_switch_statement, 7), + }, + [475] = { + [ts_aux_sym_token3] = SHIFT(471), + }, + [476] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(477), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(479), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), + }, + [477] = { + [ts_sym__terminator] = SHIFT(478), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [478] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), + }, + [479] = { + [ts_sym__terminator] = SHIFT(478), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [480] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(481), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(243), + [ts_sym_identifier] = SHIFT(280), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(483), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = SHIFT(282), + [ts_aux_sym_token8] = SHIFT(283), + }, + [481] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = SHIFT(482), + [ts_aux_sym_token6] = SHIFT(82), + }, + [482] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), }, - [509] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(508), + [483] = { + [ts_aux_sym_token1] = SHIFT(482), }, - [510] = { - [ts_sym_formal_parameters] = SHIFT(511), - [ts_aux_sym_token3] = SHIFT(223), + [484] = { + [ts_aux_sym_token3] = SHIFT(464), }, - [511] = { - [ts_sym_statement_block] = SHIFT(512), - [ts_aux_sym_token1] = SHIFT(17), + [485] = { + [ts_aux_sym_token3] = SHIFT(459), }, - [512] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), + [486] = { + [ts_aux_sym_token3] = SHIFT(143), + }, + [487] = { + [ts_aux_sym_token1] = SHIFT(139), + }, + [488] = { + [ts_sym_formal_parameters] = SHIFT(489), + [ts_aux_sym_token2] = SHIFT(292), + }, + [489] = { + [ts_sym_statement_block] = SHIFT(490), + [ts_aux_sym_token0] = SHIFT(137), + }, + [490] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), }, - [513] = { - [ts_sym__terminator] = SHIFT(514), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), + [491] = { + [ts_aux_sym_array_repeat0] = SHIFT(127), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, - [514] = { - [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [492] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token9] = REDUCE(ts_sym_array, 2), }, - [515] = { - [ts_sym__terminator] = SHIFT(514), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), + [493] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token9] = REDUCE(ts_sym_object, 2), }, - [516] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(517), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), + [494] = { + [ts_aux_sym_array_repeat0] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, - [517] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(518), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(521), + [495] = { + [ts_aux_sym_array_repeat0] = SHIFT(96), + [ts_aux_sym_token6] = SHIFT(103), + [ts_aux_sym_token9] = REDUCE(ts_aux_sym_array_repeat0, 0), }, - [518] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(519), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), + [496] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_array, 2), }, - [519] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(520), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(216), + [497] = { + [ts_aux_sym_token4] = SHIFT(498), }, - [520] = { + [498] = { + [ts_sym_expression] = SHIFT(499), + [ts_sym_assignment] = SHIFT(226), + [ts_sym_function_expression] = SHIFT(226), + [ts_sym_function_call] = SHIFT(226), + [ts_sym_property_access] = SHIFT(227), + [ts_sym_literal] = SHIFT(226), + [ts_sym_object] = SHIFT(230), + [ts_sym_array] = SHIFT(230), + [ts_sym__function] = SHIFT(231), + [ts_sym_null] = SHIFT(230), + [ts_sym_true] = SHIFT(230), + [ts_sym_false] = SHIFT(230), + [ts_sym_string] = SHIFT(230), + [ts_sym_identifier] = SHIFT(227), + [ts_sym_number] = SHIFT(230), + [ts_aux_sym_token0] = SHIFT(248), + [ts_aux_sym_token8] = SHIFT(257), + }, + [499] = { + [ts_aux_sym_object_repeat0] = SHIFT(500), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_object_repeat0, 0), + [ts_aux_sym_token2] = SHIFT(89), + [ts_aux_sym_token6] = SHIFT(82), + [ts_aux_sym_token7] = SHIFT(120), + [ts_aux_sym_token8] = SHIFT(122), + }, + [500] = { + [ts_aux_sym_token1] = SHIFT(501), + }, + [501] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 6), + }, + [502] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_object, 2), + }, + [503] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), + }, + [504] = { + [ts_sym_statement] = SHIFT(505), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(147), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token8] = SHIFT(283), + }, + [505] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_for_statement, 7), [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token2] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_for_statement, 7), }, - [521] = { - [ts_aux_sym_token4] = SHIFT(519), + [506] = { + [ts_aux_sym_token3] = SHIFT(504), }, - [522] = { - [ts_aux_sym_token2] = SHIFT(523), + [507] = { + [ts_aux_sym_token1] = SHIFT(66), }, - [523] = { - [ts_sym__terminator] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), + [508] = { + [ts_sym_formal_parameters] = SHIFT(509), + [ts_aux_sym_token2] = SHIFT(292), + }, + [509] = { + [ts_sym_statement_block] = SHIFT(510), + [ts_aux_sym_token0] = SHIFT(64), + }, + [510] = { + [ts_sym__terminator] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), + }, + [511] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(512), + }, + [512] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), }, - [524] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_token2] = SHIFT(523), + [513] = { + [ts_aux_sym_token1] = SHIFT(512), }, - [525] = { - [ts_sym_formal_parameters] = SHIFT(526), - [ts_aux_sym_token3] = SHIFT(223), + [514] = { + [ts_sym_formal_parameters] = SHIFT(515), + [ts_aux_sym_token2] = SHIFT(292), }, - [526] = { - [ts_sym_statement_block] = SHIFT(527), - [ts_aux_sym_token1] = SHIFT(8), + [515] = { + [ts_sym_statement_block] = SHIFT(516), + [ts_aux_sym_token0] = SHIFT(55), }, - [527] = { - [ts_sym__terminator] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), + [516] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token9] = REDUCE(ts_sym_function_expression, 4), }, + [517] = { + [ts_sym__terminator] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), + }, + [518] = { + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_statement_block_repeat0, 2), + }, + [519] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_token1] = SHIFT(520), + }, + [520] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [521] = { + [ts_aux_sym_token1] = SHIFT(520), + }, + [522] = { + [ts_sym_formal_parameters] = SHIFT(523), + [ts_aux_sym_token2] = SHIFT(292), + }, + [523] = { + [ts_sym_statement_block] = SHIFT(524), + [ts_aux_sym_token0] = SHIFT(33), + }, + [524] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_expression, 4), + }, + [525] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token9] = REDUCE(ts_sym_function_call, 3), + }, + [526] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 4), + [ts_aux_sym_token8] = REDUCE(ts_sym_property_access, 4), + }, + [527] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), + }, [528] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(529), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), + [ts_sym__terminator] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_function_call, 3), }, [529] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(530), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(599), + [ts_sym__terminator] = SHIFT(5), }, [530] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(531), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), + [ts_sym__terminator] = SHIFT(531), }, [531] = { - [ts_sym__break] = SHIFT(1), - [ts_sym__for] = SHIFT(3), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(532), - [ts_sym__switch] = SHIFT(576), - [ts_sym__var] = SHIFT(584), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(588), - [ts_sym_expression] = SHIFT(589), - [ts_sym_expression_statement] = SHIFT(588), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(588), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(588), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(598), - [ts_sym_statement_block] = SHIFT(588), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(588), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(588), - [ts_aux_sym_token1] = SHIFT(592), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(596), - }, - [532] = { - [ts_aux_sym_token3] = SHIFT(533), - }, - [533] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(534), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(597), - }, - [534] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(535), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [535] = { - [ts_sym__break] = SHIFT(536), - [ts_sym__for] = SHIFT(538), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(544), - [ts_sym__switch] = SHIFT(548), - [ts_sym__var] = SHIFT(556), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(560), - [ts_sym_expression] = SHIFT(561), - [ts_sym_expression_statement] = SHIFT(560), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(560), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(560), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(574), - [ts_sym_statement_block] = SHIFT(560), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(560), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(560), - [ts_aux_sym_token1] = SHIFT(566), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(570), - }, - [536] = { - [ts_sym__terminator] = SHIFT(537), - }, - [537] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_builtin_sym_end] = REDUCE(ts_sym_break_statement, 2), [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), - [ts_sym__else] = REDUCE(ts_sym_break_statement, 2), [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_break_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_break_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_break_statement, 2), + }, + [532] = { + [ts_aux_sym_token2] = SHIFT(533), + }, + [533] = { + [ts_sym_var_declaration] = SHIFT(534), + [ts_sym_expression_statement] = SHIFT(534), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym__var] = SHIFT(400), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), + }, + [534] = { + [ts_sym_expression_statement] = SHIFT(535), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), + }, + [535] = { + [ts_sym_expression] = SHIFT(536), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(601), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [536] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(537), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [537] = { + [ts_sym_statement] = SHIFT(538), + [ts_sym_statement_block] = SHIFT(3), + [ts_sym_for_statement] = SHIFT(3), + [ts_sym_if_statement] = SHIFT(3), + [ts_sym_switch_statement] = SHIFT(3), + [ts_sym_break_statement] = SHIFT(3), + [ts_sym_var_declaration] = SHIFT(3), + [ts_sym_expression_statement] = SHIFT(3), + [ts_sym_expression] = SHIFT(4), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(529), + [ts_sym__break] = SHIFT(530), + [ts_sym__for] = SHIFT(532), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(539), + [ts_sym__switch] = SHIFT(546), + [ts_sym__var] = SHIFT(554), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(558), + [ts_aux_sym_token8] = SHIFT(283), }, [538] = { - [ts_aux_sym_token3] = SHIFT(539), + [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_builtin_sym_end] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_for_statement, 7), }, [539] = { - [ts_sym__function] = SHIFT(5), - [ts_sym__var] = SHIFT(13), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(540), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(540), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), + [ts_aux_sym_token2] = SHIFT(540), }, [540] = { - [ts_sym__function] = SHIFT(5), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_expression] = SHIFT(323), - [ts_sym_expression_statement] = SHIFT(541), - [ts_sym_false] = SHIFT(59), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_string] = SHIFT(59), - [ts_sym_true] = SHIFT(59), - [ts_aux_sym_token1] = SHIFT(236), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(422), + [ts_sym_expression] = SHIFT(541), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(600), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [541] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(542), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(573), + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(542), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, [542] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(543), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), + [ts_sym_statement] = SHIFT(543), + [ts_sym_statement_block] = SHIFT(562), + [ts_sym_for_statement] = SHIFT(562), + [ts_sym_if_statement] = SHIFT(562), + [ts_sym_switch_statement] = SHIFT(562), + [ts_sym_break_statement] = SHIFT(562), + [ts_sym_var_declaration] = SHIFT(562), + [ts_sym_expression_statement] = SHIFT(562), + [ts_sym_expression] = SHIFT(563), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(565), + [ts_sym__break] = SHIFT(566), + [ts_sym__for] = SHIFT(568), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(575), + [ts_sym__switch] = SHIFT(582), + [ts_sym__var] = SHIFT(590), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(594), + [ts_aux_sym_token8] = SHIFT(283), }, [543] = { - [ts_sym__break] = SHIFT(536), - [ts_sym__for] = SHIFT(538), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(544), - [ts_sym__switch] = SHIFT(548), - [ts_sym__var] = SHIFT(556), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(560), - [ts_sym_expression] = SHIFT(561), - [ts_sym_expression_statement] = SHIFT(560), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(560), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(560), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(572), - [ts_sym_statement_block] = SHIFT(560), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(560), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(560), - [ts_aux_sym_token1] = SHIFT(566), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(570), + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__else] = SHIFT(544), + [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), + [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 5), }, [544] = { - [ts_aux_sym_token3] = SHIFT(545), + [ts_sym_statement] = SHIFT(545), + [ts_sym_statement_block] = SHIFT(3), + [ts_sym_for_statement] = SHIFT(3), + [ts_sym_if_statement] = SHIFT(3), + [ts_sym_switch_statement] = SHIFT(3), + [ts_sym_break_statement] = SHIFT(3), + [ts_sym_var_declaration] = SHIFT(3), + [ts_sym_expression_statement] = SHIFT(3), + [ts_sym_expression] = SHIFT(4), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(529), + [ts_sym__break] = SHIFT(530), + [ts_sym__for] = SHIFT(532), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(539), + [ts_sym__switch] = SHIFT(546), + [ts_sym__var] = SHIFT(554), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(558), + [ts_aux_sym_token8] = SHIFT(283), }, [545] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(546), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(571), + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 7), }, [546] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(547), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), + [ts_aux_sym_token2] = SHIFT(547), }, [547] = { - [ts_sym__break] = SHIFT(536), - [ts_sym__for] = SHIFT(538), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(544), - [ts_sym__switch] = SHIFT(548), - [ts_sym__var] = SHIFT(556), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(560), - [ts_sym_expression] = SHIFT(561), - [ts_sym_expression_statement] = SHIFT(560), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(560), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(560), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(563), - [ts_sym_statement_block] = SHIFT(560), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(560), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(560), - [ts_aux_sym_token1] = SHIFT(566), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(570), + [ts_sym_expression] = SHIFT(548), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(553), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [548] = { + [ts_aux_sym_token2] = SHIFT(74), [ts_aux_sym_token3] = SHIFT(549), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), }, [549] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(550), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(555), + [ts_aux_sym_token0] = SHIFT(550), }, [550] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(551), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(551), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), }, [551] = { [ts_aux_sym_token1] = SHIFT(552), }, [552] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(553), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), - }, - [553] = { - [ts_aux_sym_token2] = SHIFT(554), - }, - [554] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_builtin_sym_end] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__else] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_end] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_switch_statement, 7), + }, + [553] = { + [ts_aux_sym_token3] = SHIFT(549), + }, + [554] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(555), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(557), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), }, [555] = { - [ts_aux_sym_token4] = SHIFT(551), + [ts_sym__terminator] = SHIFT(556), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), }, [556] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(557), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(559), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), - }, - [557] = { - [ts_sym__terminator] = SHIFT(558), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [558] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), + }, + [557] = { + [ts_sym__terminator] = SHIFT(556), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), + }, + [558] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(559), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(243), + [ts_sym_identifier] = SHIFT(280), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(561), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = SHIFT(282), + [ts_aux_sym_token8] = SHIFT(283), }, [559] = { - [ts_sym__terminator] = SHIFT(558), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = SHIFT(560), + [ts_aux_sym_token6] = SHIFT(82), }, [560] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), + }, + [561] = { + [ts_aux_sym_token1] = SHIFT(560), + }, + [562] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_builtin_sym_end] = REDUCE(ts_sym_statement, 1), [ts_sym__break] = REDUCE(ts_sym_statement, 1), [ts_sym__else] = REDUCE(ts_sym_statement, 1), [ts_sym__for] = REDUCE(ts_sym_statement, 1), @@ -8287,24 +8329,24 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_statement, 1), [ts_sym__switch] = REDUCE(ts_sym_statement, 1), [ts_sym__var] = REDUCE(ts_sym_statement, 1), - [ts_sym_false] = REDUCE(ts_sym_statement, 1), - [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), [ts_sym_null] = REDUCE(ts_sym_statement, 1), - [ts_sym_number] = REDUCE(ts_sym_statement, 1), - [ts_sym_string] = REDUCE(ts_sym_statement, 1), [ts_sym_true] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), + [ts_sym_false] = REDUCE(ts_sym_statement, 1), + [ts_sym_string] = REDUCE(ts_sym_statement, 1), + [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), + [ts_sym_number] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement, 1), }, - [561] = { - [ts_sym__terminator] = SHIFT(562), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), + [563] = { + [ts_sym__terminator] = SHIFT(564), + [ts_aux_sym_token2] = SHIFT(6), + [ts_aux_sym_token7] = SHIFT(38), + [ts_aux_sym_token8] = SHIFT(40), }, - [562] = { + [564] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), + [ts_builtin_sym_end] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__else] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), @@ -8312,158 +8354,149 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), - }, - [563] = { - [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__else] = SHIFT(564), - [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), - }, - [564] = { - [ts_sym__break] = SHIFT(536), - [ts_sym__for] = SHIFT(538), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(544), - [ts_sym__switch] = SHIFT(548), - [ts_sym__var] = SHIFT(556), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(560), - [ts_sym_expression] = SHIFT(561), - [ts_sym_expression_statement] = SHIFT(560), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(560), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(560), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(565), - [ts_sym_statement_block] = SHIFT(560), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(560), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(560), - [ts_aux_sym_token1] = SHIFT(566), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(570), + [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_expression_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression_statement, 2), }, [565] = { - [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__terminator] = SHIFT(564), }, [566] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(101), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(203), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(567), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(569), + [ts_sym__terminator] = SHIFT(567), }, [567] = { - [ts_aux_sym_token2] = SHIFT(568), + [ts_builtin_sym_error] = REDUCE(ts_sym_break_statement, 2), + [ts_builtin_sym_end] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__break] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__else] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__for] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__function] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__if] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__switch] = REDUCE(ts_sym_break_statement, 2), + [ts_sym__var] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_null] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_true] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_false] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_string] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_identifier] = REDUCE(ts_sym_break_statement, 2), + [ts_sym_number] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token0] = REDUCE(ts_sym_break_statement, 2), + [ts_aux_sym_token8] = REDUCE(ts_sym_break_statement, 2), }, [568] = { - [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), - [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token2] = SHIFT(569), }, [569] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = SHIFT(568), - [ts_aux_sym_token7] = SHIFT(113), + [ts_sym_var_declaration] = SHIFT(570), + [ts_sym_expression_statement] = SHIFT(570), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym__var] = SHIFT(400), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, [570] = { - [ts_sym__terminator] = SHIFT(562), + [ts_sym_expression_statement] = SHIFT(571), + [ts_sym_expression] = SHIFT(394), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(396), + [ts_sym__function] = SHIFT(61), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(397), + [ts_aux_sym_token8] = SHIFT(283), }, [571] = { - [ts_aux_sym_token4] = SHIFT(547), + [ts_sym_expression] = SHIFT(572), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(599), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), }, [572] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(573), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [573] = { + [ts_sym_statement] = SHIFT(574), + [ts_sym_statement_block] = SHIFT(562), + [ts_sym_for_statement] = SHIFT(562), + [ts_sym_if_statement] = SHIFT(562), + [ts_sym_switch_statement] = SHIFT(562), + [ts_sym_break_statement] = SHIFT(562), + [ts_sym_var_declaration] = SHIFT(562), + [ts_sym_expression_statement] = SHIFT(562), + [ts_sym_expression] = SHIFT(563), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(565), + [ts_sym__break] = SHIFT(566), + [ts_sym__for] = SHIFT(568), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(575), + [ts_sym__switch] = SHIFT(582), + [ts_sym__var] = SHIFT(590), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(594), + [ts_aux_sym_token8] = SHIFT(283), + }, + [574] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_builtin_sym_end] = REDUCE(ts_sym_for_statement, 7), [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), [ts_sym__else] = REDUCE(ts_sym_for_statement, 7), [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), @@ -8471,374 +8504,340 @@ PARSE_TABLE = { [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_end] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_for_statement, 7), }, - [573] = { - [ts_aux_sym_token4] = SHIFT(543), + [575] = { + [ts_aux_sym_token2] = SHIFT(576), }, - [574] = { + [576] = { + [ts_sym_expression] = SHIFT(577), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(598), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [577] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(578), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [578] = { + [ts_sym_statement] = SHIFT(579), + [ts_sym_statement_block] = SHIFT(562), + [ts_sym_for_statement] = SHIFT(562), + [ts_sym_if_statement] = SHIFT(562), + [ts_sym_switch_statement] = SHIFT(562), + [ts_sym_break_statement] = SHIFT(562), + [ts_sym_var_declaration] = SHIFT(562), + [ts_sym_expression_statement] = SHIFT(562), + [ts_sym_expression] = SHIFT(563), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(565), + [ts_sym__break] = SHIFT(566), + [ts_sym__for] = SHIFT(568), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(575), + [ts_sym__switch] = SHIFT(582), + [ts_sym__var] = SHIFT(590), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(594), + [ts_aux_sym_token8] = SHIFT(283), + }, + [579] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), + [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 5), [ts_sym__break] = REDUCE(ts_sym_if_statement, 5), - [ts_sym__else] = SHIFT(575), + [ts_sym__else] = SHIFT(580), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), [ts_sym__switch] = REDUCE(ts_sym_if_statement, 5), [ts_sym__var] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), [ts_sym_null] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), [ts_sym_true] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 5), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 5), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), - }, - [575] = { - [ts_sym__break] = SHIFT(1), - [ts_sym__for] = SHIFT(3), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(532), - [ts_sym__switch] = SHIFT(576), - [ts_sym__var] = SHIFT(584), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(588), - [ts_sym_expression] = SHIFT(589), - [ts_sym_expression_statement] = SHIFT(588), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(588), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(588), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(591), - [ts_sym_statement_block] = SHIFT(588), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(588), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(588), - [ts_aux_sym_token1] = SHIFT(592), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(596), - }, - [576] = { - [ts_aux_sym_token3] = SHIFT(577), - }, - [577] = { - [ts_sym__function] = SHIFT(20), - [ts_sym_array] = SHIFT(26), - [ts_sym_assignment] = SHIFT(27), - [ts_sym_expression] = SHIFT(578), - [ts_sym_false] = SHIFT(26), - [ts_sym_function_call] = SHIFT(27), - [ts_sym_function_expression] = SHIFT(27), - [ts_sym_identifier] = SHIFT(366), - [ts_sym_literal] = SHIFT(27), - [ts_sym_null] = SHIFT(26), - [ts_sym_number] = SHIFT(26), - [ts_sym_object] = SHIFT(26), - [ts_sym_property_access] = SHIFT(366), - [ts_sym_string] = SHIFT(26), - [ts_sym_true] = SHIFT(26), - [ts_aux_sym_token1] = SHIFT(369), - [ts_aux_sym_token9] = SHIFT(379), - [ts_builtin_sym_error] = SHIFT(583), - }, - [578] = { - [ts_aux_sym_token3] = SHIFT(29), - [ts_aux_sym_token4] = SHIFT(579), - [ts_aux_sym_token8] = SHIFT(361), - [ts_aux_sym_token9] = SHIFT(363), - }, - [579] = { - [ts_aux_sym_token1] = SHIFT(580), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 5), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 5), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 5), }, [580] = { - [ts_sym__case] = SHIFT(299), - [ts_sym__default] = SHIFT(350), - [ts_sym_switch_case] = SHIFT(357), - [ts_aux_sym_switch_statement_repeat1] = SHIFT(581), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_switch_statement_repeat1, 0), + [ts_sym_statement] = SHIFT(581), + [ts_sym_statement_block] = SHIFT(562), + [ts_sym_for_statement] = SHIFT(562), + [ts_sym_if_statement] = SHIFT(562), + [ts_sym_switch_statement] = SHIFT(562), + [ts_sym_break_statement] = SHIFT(562), + [ts_sym_var_declaration] = SHIFT(562), + [ts_sym_expression_statement] = SHIFT(562), + [ts_sym_expression] = SHIFT(563), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(565), + [ts_sym__break] = SHIFT(566), + [ts_sym__for] = SHIFT(568), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(575), + [ts_sym__switch] = SHIFT(582), + [ts_sym__var] = SHIFT(590), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(60), + [ts_sym_identifier] = SHIFT(57), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_token0] = SHIFT(594), + [ts_aux_sym_token8] = SHIFT(283), }, [581] = { - [ts_aux_sym_token2] = SHIFT(582), - }, - [582] = { - [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_switch_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_end] = REDUCE(ts_sym_switch_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), - }, - [583] = { - [ts_aux_sym_token4] = SHIFT(579), - }, - [584] = { - [ts_sym__function] = SHIFT(14), - [ts_sym_array] = SHIFT(35), - [ts_sym_assignment] = SHIFT(585), - [ts_sym_expression] = SHIFT(38), - [ts_sym_false] = SHIFT(35), - [ts_sym_function_call] = SHIFT(268), - [ts_sym_function_expression] = SHIFT(268), - [ts_sym_identifier] = SHIFT(587), - [ts_sym_literal] = SHIFT(268), - [ts_sym_null] = SHIFT(35), - [ts_sym_number] = SHIFT(35), - [ts_sym_object] = SHIFT(35), - [ts_sym_property_access] = SHIFT(270), - [ts_sym_string] = SHIFT(35), - [ts_sym_true] = SHIFT(35), - [ts_aux_sym_token1] = SHIFT(271), - [ts_aux_sym_token9] = SHIFT(281), - }, - [585] = { - [ts_sym__terminator] = SHIFT(586), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [586] = { - [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), - [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_var_declaration, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), - }, - [587] = { - [ts_sym__terminator] = SHIFT(586), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token6] = SHIFT(79), - [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression, 1), - }, - [588] = { - [ts_sym__break] = REDUCE(ts_sym_statement, 1), - [ts_sym__for] = REDUCE(ts_sym_statement, 1), - [ts_sym__function] = REDUCE(ts_sym_statement, 1), - [ts_sym__if] = REDUCE(ts_sym_statement, 1), - [ts_sym__switch] = REDUCE(ts_sym_statement, 1), - [ts_sym__var] = REDUCE(ts_sym_statement, 1), - [ts_sym_false] = REDUCE(ts_sym_statement, 1), - [ts_sym_identifier] = REDUCE(ts_sym_statement, 1), - [ts_sym_null] = REDUCE(ts_sym_statement, 1), - [ts_sym_number] = REDUCE(ts_sym_statement, 1), - [ts_sym_string] = REDUCE(ts_sym_statement, 1), - [ts_sym_true] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym_statement, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), - }, - [589] = { - [ts_sym__terminator] = SHIFT(590), - [ts_aux_sym_token3] = SHIFT(64), - [ts_aux_sym_token8] = SHIFT(81), - [ts_aux_sym_token9] = SHIFT(83), - }, - [590] = { - [ts_sym__break] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__switch] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym__var] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_null] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_number] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_string] = REDUCE(ts_sym_expression_statement, 2), - [ts_sym_true] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token1] = REDUCE(ts_sym_expression_statement, 2), - [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_end] = REDUCE(ts_sym_expression_statement, 2), - [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), - }, - [591] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 7), [ts_sym__break] = REDUCE(ts_sym_if_statement, 7), + [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), [ts_sym__switch] = REDUCE(ts_sym_if_statement, 7), [ts_sym__var] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), [ts_sym_null] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), [ts_sym_true] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_if_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_if_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_if_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_if_statement, 7), + }, + [582] = { + [ts_aux_sym_token2] = SHIFT(583), + }, + [583] = { + [ts_sym_expression] = SHIFT(584), + [ts_sym_assignment] = SHIFT(324), + [ts_sym_function_expression] = SHIFT(324), + [ts_sym_function_call] = SHIFT(324), + [ts_sym_property_access] = SHIFT(325), + [ts_sym_literal] = SHIFT(324), + [ts_sym_object] = SHIFT(328), + [ts_sym_array] = SHIFT(328), + [ts_builtin_sym_error] = SHIFT(589), + [ts_sym__function] = SHIFT(329), + [ts_sym_null] = SHIFT(328), + [ts_sym_true] = SHIFT(328), + [ts_sym_false] = SHIFT(328), + [ts_sym_string] = SHIFT(328), + [ts_sym_identifier] = SHIFT(325), + [ts_sym_number] = SHIFT(328), + [ts_aux_sym_token0] = SHIFT(339), + [ts_aux_sym_token8] = SHIFT(349), + }, + [584] = { + [ts_aux_sym_token2] = SHIFT(74), + [ts_aux_sym_token3] = SHIFT(585), + [ts_aux_sym_token7] = SHIFT(319), + [ts_aux_sym_token8] = SHIFT(321), + }, + [585] = { + [ts_aux_sym_token0] = SHIFT(586), + }, + [586] = { + [ts_sym_switch_case] = SHIFT(153), + [ts_sym__case] = SHIFT(154), + [ts_sym__default] = SHIFT(188), + [ts_aux_sym_switch_statement_repeat0] = SHIFT(587), + [ts_aux_sym_token1] = REDUCE(ts_aux_sym_switch_statement_repeat0, 0), + }, + [587] = { + [ts_aux_sym_token1] = SHIFT(588), + }, + [588] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_switch_statement, 7), + [ts_builtin_sym_end] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__break] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__else] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__for] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__function] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__if] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__switch] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym__var] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_null] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_true] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_false] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_string] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_identifier] = REDUCE(ts_sym_switch_statement, 7), + [ts_sym_number] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token0] = REDUCE(ts_sym_switch_statement, 7), + [ts_aux_sym_token8] = REDUCE(ts_sym_switch_statement, 7), + }, + [589] = { + [ts_aux_sym_token3] = SHIFT(585), + }, + [590] = { + [ts_sym_expression] = SHIFT(191), + [ts_sym_assignment] = SHIFT(591), + [ts_sym_function_expression] = SHIFT(204), + [ts_sym_function_call] = SHIFT(204), + [ts_sym_property_access] = SHIFT(205), + [ts_sym_literal] = SHIFT(204), + [ts_sym_object] = SHIFT(206), + [ts_sym_array] = SHIFT(206), + [ts_sym__function] = SHIFT(207), + [ts_sym_null] = SHIFT(206), + [ts_sym_true] = SHIFT(206), + [ts_sym_false] = SHIFT(206), + [ts_sym_string] = SHIFT(206), + [ts_sym_identifier] = SHIFT(593), + [ts_sym_number] = SHIFT(206), + [ts_aux_sym_token0] = SHIFT(217), + [ts_aux_sym_token8] = SHIFT(301), + }, + [591] = { + [ts_sym__terminator] = SHIFT(592), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), }, [592] = { - [ts_sym__break] = SHIFT(9), - [ts_sym__for] = SHIFT(11), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(18), - [ts_sym__switch] = SHIFT(24), - [ts_sym__var] = SHIFT(34), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(61), - [ts_sym_expression] = SHIFT(62), - [ts_sym_expression_statement] = SHIFT(61), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(61), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(101), - [ts_sym_if_statement] = SHIFT(61), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(98), - [ts_sym_statement_block] = SHIFT(61), - [ts_sym_string] = SHIFT(203), - [ts_sym_switch_statement] = SHIFT(61), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(61), - [ts_aux_sym_statement_block_repeat1] = SHIFT(593), - [ts_aux_sym_token1] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_error] = SHIFT(595), + [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), + [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__break] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__switch] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym__var] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_null] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_true] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_false] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_string] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_identifier] = REDUCE(ts_sym_var_declaration, 3), + [ts_sym_number] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_var_declaration, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_var_declaration, 3), }, [593] = { - [ts_aux_sym_token2] = SHIFT(594), + [ts_sym__terminator] = SHIFT(592), + [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(58), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = REDUCE(ts_sym_expression, 1), }, [594] = { + [ts_sym_statement] = SHIFT(34), + [ts_sym_statement_block] = SHIFT(35), + [ts_sym_for_statement] = SHIFT(35), + [ts_sym_if_statement] = SHIFT(35), + [ts_sym_switch_statement] = SHIFT(35), + [ts_sym_break_statement] = SHIFT(35), + [ts_sym_var_declaration] = SHIFT(35), + [ts_sym_expression_statement] = SHIFT(35), + [ts_sym_expression] = SHIFT(36), + [ts_sym_assignment] = SHIFT(56), + [ts_sym_function_expression] = SHIFT(56), + [ts_sym_function_call] = SHIFT(56), + [ts_sym_property_access] = SHIFT(57), + [ts_sym_literal] = SHIFT(56), + [ts_sym_object] = SHIFT(60), + [ts_sym_array] = SHIFT(60), + [ts_builtin_sym_error] = SHIFT(595), + [ts_sym__break] = SHIFT(67), + [ts_sym__for] = SHIFT(69), + [ts_sym__function] = SHIFT(61), + [ts_sym__if] = SHIFT(140), + [ts_sym__switch] = SHIFT(148), + [ts_sym__var] = SHIFT(213), + [ts_sym_null] = SHIFT(60), + [ts_sym_true] = SHIFT(60), + [ts_sym_false] = SHIFT(60), + [ts_sym_string] = SHIFT(243), + [ts_sym_identifier] = SHIFT(280), + [ts_sym_number] = SHIFT(60), + [ts_aux_sym_statement_block_repeat0] = SHIFT(597), + [ts_aux_sym_token0] = SHIFT(238), + [ts_aux_sym_token1] = SHIFT(282), + [ts_aux_sym_token8] = SHIFT(283), + }, + [595] = { + [ts_sym__terminator] = SHIFT(37), + [ts_aux_sym_object_repeat0] = SHIFT(240), + [ts_aux_sym_token1] = SHIFT(596), + [ts_aux_sym_token6] = SHIFT(82), + }, + [596] = { + [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), + [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 3), [ts_sym__break] = REDUCE(ts_sym_statement_block, 3), + [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), [ts_sym__switch] = REDUCE(ts_sym_statement_block, 3), [ts_sym__var] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), [ts_sym_null] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), - [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), [ts_sym_true] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token1] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 3), - [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), - }, - [595] = { - [ts_sym__terminator] = SHIFT(63), - [ts_aux_sym_object_repeat1] = SHIFT(214), - [ts_aux_sym_token2] = SHIFT(594), - [ts_aux_sym_token7] = SHIFT(113), - }, - [596] = { - [ts_sym__terminator] = SHIFT(590), + [ts_sym_false] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_string] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_identifier] = REDUCE(ts_sym_statement_block, 3), + [ts_sym_number] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token0] = REDUCE(ts_sym_statement_block, 3), + [ts_aux_sym_token8] = REDUCE(ts_sym_statement_block, 3), }, [597] = { - [ts_aux_sym_token4] = SHIFT(535), + [ts_aux_sym_token1] = SHIFT(596), }, [598] = { - [ts_sym__break] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__switch] = REDUCE(ts_sym_for_statement, 7), - [ts_sym__var] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_false] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_identifier] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_null] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_number] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_string] = REDUCE(ts_sym_for_statement, 7), - [ts_sym_true] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token1] = REDUCE(ts_sym_for_statement, 7), - [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_end] = REDUCE(ts_sym_for_statement, 7), - [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), + [ts_aux_sym_token3] = SHIFT(578), }, [599] = { - [ts_aux_sym_token4] = SHIFT(531), + [ts_aux_sym_token3] = SHIFT(573), }, [600] = { - [ts_builtin_sym_end] = ACCEPT_INPUT(), + [ts_aux_sym_token3] = SHIFT(542), }, [601] = { - [ts_sym__break] = SHIFT(1), - [ts_sym__for] = SHIFT(3), - [ts_sym__function] = SHIFT(5), - [ts_sym__if] = SHIFT(532), - [ts_sym__switch] = SHIFT(576), - [ts_sym__var] = SHIFT(584), - [ts_sym_array] = SHIFT(59), - [ts_sym_assignment] = SHIFT(60), - [ts_sym_break_statement] = SHIFT(588), - [ts_sym_expression] = SHIFT(589), - [ts_sym_expression_statement] = SHIFT(588), - [ts_sym_false] = SHIFT(59), - [ts_sym_for_statement] = SHIFT(588), - [ts_sym_function_call] = SHIFT(60), - [ts_sym_function_expression] = SHIFT(60), - [ts_sym_identifier] = SHIFT(78), - [ts_sym_if_statement] = SHIFT(588), - [ts_sym_literal] = SHIFT(60), - [ts_sym_null] = SHIFT(59), - [ts_sym_number] = SHIFT(59), - [ts_sym_object] = SHIFT(59), - [ts_sym_property_access] = SHIFT(78), - [ts_sym_statement] = SHIFT(601), - [ts_sym_statement_block] = SHIFT(588), - [ts_sym_string] = SHIFT(59), - [ts_sym_switch_statement] = SHIFT(588), - [ts_sym_true] = SHIFT(59), - [ts_sym_var_declaration] = SHIFT(588), - [ts_aux_sym_program_repeat1] = SHIFT(602), - [ts_aux_sym_token1] = SHIFT(592), - [ts_aux_sym_token9] = SHIFT(207), - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 0), - [ts_builtin_sym_error] = SHIFT(596), + [ts_aux_sym_token3] = SHIFT(537), }, [602] = { - [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat1, 2), + [ts_builtin_sym_end] = REDUCE(ts_aux_sym_program_repeat0, 2), }, [603] = { [ts_builtin_sym_end] = REDUCE(ts_sym_program, 1), diff --git a/examples/parsers/json.c b/examples/parsers/json.c index 61ee7adf..13eb4fee 100644 --- a/examples/parsers/json.c +++ b/examples/parsers/json.c @@ -4,54 +4,54 @@ #define SYMBOL_COUNT 18 enum { - ts_sym_array = 2, - ts_sym_false = 3, - ts_sym_null = 4, - ts_sym_number = 5, - ts_sym_object = 6, - ts_sym_string = 7, + ts_sym_value = 2, + ts_sym_object = 3, + ts_sym_array = 4, + ts_sym_string = 5, + ts_sym_number = 6, + ts_sym_null = 7, ts_sym_true = 8, - ts_sym_value = 9, - ts_aux_sym_array_repeat1 = 10, - ts_aux_sym_object_repeat1 = 11, - ts_aux_sym_token1 = 12, - ts_aux_sym_token2 = 13, - ts_aux_sym_token3 = 14, - ts_aux_sym_token4 = 15, - ts_aux_sym_token5 = 16, - ts_aux_sym_token6 = 17, + ts_sym_false = 9, + ts_aux_sym_object_repeat0 = 10, + ts_aux_sym_array_repeat0 = 11, + ts_aux_sym_token0 = 12, + ts_aux_sym_token1 = 13, + ts_aux_sym_token2 = 14, + ts_aux_sym_token3 = 15, + ts_aux_sym_token4 = 16, + ts_aux_sym_token5 = 17, }; SYMBOL_NAMES = { - [ts_sym_array] = "array", - [ts_sym_false] = "false", - [ts_sym_null] = "null", - [ts_sym_number] = "number", - [ts_sym_object] = "object", - [ts_sym_string] = "string", - [ts_sym_true] = "true", [ts_sym_value] = "value", - [ts_aux_sym_array_repeat1] = "array_repeat1", - [ts_aux_sym_object_repeat1] = "object_repeat1", - [ts_aux_sym_token1] = "'{'", - [ts_aux_sym_token2] = "':'", - [ts_aux_sym_token3] = "','", - [ts_aux_sym_token4] = "'}'", - [ts_aux_sym_token5] = "'['", - [ts_aux_sym_token6] = "']'", - [ts_builtin_sym_end] = "EOF", - [ts_builtin_sym_error] = "ERROR", + [ts_sym_object] = "object", + [ts_sym_array] = "array", + [ts_builtin_sym_error] = "error", + [ts_builtin_sym_end] = "end", + [ts_sym_string] = "string", + [ts_sym_number] = "number", + [ts_sym_null] = "null", + [ts_sym_true] = "true", + [ts_sym_false] = "false", + [ts_aux_sym_object_repeat0] = "object_repeat0", + [ts_aux_sym_array_repeat0] = "array_repeat0", + [ts_aux_sym_token0] = "'{'", + [ts_aux_sym_token1] = "':'", + [ts_aux_sym_token2] = "','", + [ts_aux_sym_token3] = "'}'", + [ts_aux_sym_token4] = "'['", + [ts_aux_sym_token5] = "']'", }; HIDDEN_SYMBOLS = { - [ts_aux_sym_array_repeat1] = 1, - [ts_aux_sym_object_repeat1] = 1, + [ts_aux_sym_object_repeat0] = 1, + [ts_aux_sym_array_repeat0] = 1, + [ts_aux_sym_token0] = 1, [ts_aux_sym_token1] = 1, [ts_aux_sym_token2] = 1, [ts_aux_sym_token3] = 1, [ts_aux_sym_token4] = 1, [ts_aux_sym_token5] = 1, - [ts_aux_sym_token6] = 1, }; LEX_FN() { @@ -71,49 +71,49 @@ LEX_FN() { ACCEPT_TOKEN(ts_builtin_sym_end); case 2: START_TOKEN(); - if (('\t' <= lookahead && lookahead <= '\n') || + if ((lookahead == '\t') || + (lookahead == '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(2); - if (lookahead == ',') - ADVANCE(3); if (lookahead == '}') - ADVANCE(4); + ADVANCE(3); LEX_ERROR(); case 3: ACCEPT_TOKEN(ts_aux_sym_token3); case 4: - ACCEPT_TOKEN(ts_aux_sym_token4); - case 5: - START_TOKEN(); - if ((lookahead == '\t') || - (lookahead == '\n') || - (lookahead == '\r') || - (lookahead == ' ')) - ADVANCE(5); - if (lookahead == '}') - ADVANCE(4); - LEX_ERROR(); - case 6: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) - ADVANCE(6); + ADVANCE(4); if (lookahead == ',') + ADVANCE(5); + if (lookahead == '}') ADVANCE(3); - if (lookahead == ']') - ADVANCE(7); LEX_ERROR(); - case 7: - ACCEPT_TOKEN(ts_aux_sym_token6); - case 8: + case 5: + ACCEPT_TOKEN(ts_aux_sym_token2); + case 6: START_TOKEN(); if ((lookahead == '\t') || (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(6); + if (lookahead == ']') + ADVANCE(7); + LEX_ERROR(); + case 7: + ACCEPT_TOKEN(ts_aux_sym_token5); + case 8: + START_TOKEN(); + if (('\t' <= lookahead && lookahead <= '\n') || (lookahead == '\r') || (lookahead == ' ')) ADVANCE(8); + if (lookahead == ',') + ADVANCE(5); if (lookahead == ']') ADVANCE(7); LEX_ERROR(); @@ -189,7 +189,7 @@ LEX_FN() { ADVANCE(17); ACCEPT_TOKEN(ts_sym_number); case 18: - ACCEPT_TOKEN(ts_aux_sym_token5); + ACCEPT_TOKEN(ts_aux_sym_token4); case 19: if (lookahead == 'a') ADVANCE(20); @@ -237,7 +237,7 @@ LEX_FN() { case 31: ACCEPT_TOKEN(ts_sym_true); case 32: - ACCEPT_TOKEN(ts_aux_sym_token1); + ACCEPT_TOKEN(ts_aux_sym_token0); case 33: START_TOKEN(); if ((lookahead == '\t') || @@ -249,7 +249,7 @@ LEX_FN() { ADVANCE(34); LEX_ERROR(); case 34: - ACCEPT_TOKEN(ts_aux_sym_token2); + ACCEPT_TOKEN(ts_aux_sym_token1); case 35: START_TOKEN(); if (('\t' <= lookahead && lookahead <= '\n') || @@ -259,7 +259,7 @@ LEX_FN() { if (lookahead == '\"') ADVANCE(10); if (lookahead == '}') - ADVANCE(4); + ADVANCE(3); LEX_ERROR(); case 36: START_TOKEN(); @@ -305,7 +305,7 @@ LEX_FN() { if (lookahead == '\"') ADVANCE(10); if (lookahead == ',') - ADVANCE(3); + ADVANCE(5); if ('0' <= lookahead && lookahead <= '9') ADVANCE(15); if (lookahead == ':') @@ -323,10 +323,9 @@ LEX_FN() { if (lookahead == '{') ADVANCE(32); if (lookahead == '}') - ADVANCE(4); + ADVANCE(3); LEX_ERROR(); case ts_lex_state_error: - START_TOKEN(); if (lookahead == '\0') ADVANCE(1); if (('\t' <= lookahead && lookahead <= '\n') || @@ -336,7 +335,7 @@ LEX_FN() { if (lookahead == '\"') ADVANCE(10); if (lookahead == ',') - ADVANCE(3); + ADVANCE(5); if ('0' <= lookahead && lookahead <= '9') ADVANCE(15); if (lookahead == ':') @@ -354,7 +353,7 @@ LEX_FN() { if (lookahead == '{') ADVANCE(32); if (lookahead == '}') - ADVANCE(4); + ADVANCE(3); LEX_ERROR(); default: LEX_PANIC(); @@ -366,60 +365,60 @@ LEX_STATES = { [1] = 0, [2] = 0, [3] = 35, - [4] = 33, - [5] = 9, - [6] = 2, - [7] = 2, - [8] = 5, - [9] = 0, - [10] = 37, - [11] = 33, - [12] = 9, + [4] = 4, + [5] = 2, + [6] = 0, + [7] = 37, + [8] = 4, + [9] = 2, + [10] = 33, + [11] = 9, + [12] = 4, [13] = 2, - [14] = 5, + [14] = 4, [15] = 35, - [16] = 33, - [17] = 9, - [18] = 2, - [19] = 5, - [20] = 2, - [21] = 36, - [22] = 6, - [23] = 6, - [24] = 8, - [25] = 2, - [26] = 9, - [27] = 6, - [28] = 8, - [29] = 35, - [30] = 33, - [31] = 9, - [32] = 2, - [33] = 5, - [34] = 6, - [35] = 6, - [36] = 2, - [37] = 5, - [38] = 6, - [39] = 36, - [40] = 6, + [16] = 4, + [17] = 2, + [18] = 4, + [19] = 33, + [20] = 9, + [21] = 4, + [22] = 2, + [23] = 4, + [24] = 36, + [25] = 8, + [26] = 6, + [27] = 4, + [28] = 9, + [29] = 8, + [30] = 6, + [31] = 8, + [32] = 35, + [33] = 4, + [34] = 2, + [35] = 8, + [36] = 33, + [37] = 9, + [38] = 4, + [39] = 2, + [40] = 8, [41] = 8, - [42] = 6, - [43] = 6, - [44] = 2, - [45] = 2, - [46] = 2, - [47] = 5, - [48] = 2, - [49] = 2, - [50] = 5, - [51] = 0, + [42] = 36, + [43] = 8, + [44] = 6, + [45] = 8, + [46] = 8, + [47] = 4, + [48] = 4, + [49] = 33, + [50] = 9, + [51] = 4, [52] = 2, - [53] = 5, + [53] = 0, [54] = 0, [55] = 36, - [56] = 6, - [57] = 8, + [56] = 8, + [57] = 6, [58] = 0, [59] = 0, }; @@ -429,309 +428,309 @@ LEX_STATES = { PARSE_TABLE = { [0] = { - [ts_sym_array] = SHIFT(1), - [ts_sym_false] = SHIFT(1), - [ts_sym_null] = SHIFT(1), - [ts_sym_number] = SHIFT(1), - [ts_sym_object] = SHIFT(1), - [ts_sym_string] = SHIFT(1), - [ts_sym_true] = SHIFT(1), - [ts_sym_value] = SHIFT(2), - [ts_aux_sym_token1] = SHIFT(3), - [ts_aux_sym_token5] = SHIFT(55), + [ts_sym_value] = SHIFT(1), + [ts_sym_object] = SHIFT(2), + [ts_sym_array] = SHIFT(2), + [ts_sym_string] = SHIFT(2), + [ts_sym_number] = SHIFT(2), + [ts_sym_null] = SHIFT(2), + [ts_sym_true] = SHIFT(2), + [ts_sym_false] = SHIFT(2), + [ts_aux_sym_token0] = SHIFT(3), + [ts_aux_sym_token4] = SHIFT(55), }, [1] = { - [ts_builtin_sym_end] = REDUCE(ts_sym_value, 1), - }, - [2] = { [ts_builtin_sym_end] = ACCEPT_INPUT(), }, + [2] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_value, 1), + }, [3] = { - [ts_sym_string] = SHIFT(4), - [ts_aux_sym_token4] = SHIFT(51), - [ts_builtin_sym_error] = SHIFT(52), + [ts_builtin_sym_error] = SHIFT(4), + [ts_sym_string] = SHIFT(49), + [ts_aux_sym_token3] = SHIFT(54), }, [4] = { - [ts_aux_sym_token2] = SHIFT(5), + [ts_aux_sym_object_repeat0] = SHIFT(5), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), }, [5] = { - [ts_sym_array] = SHIFT(6), - [ts_sym_false] = SHIFT(6), - [ts_sym_null] = SHIFT(6), - [ts_sym_number] = SHIFT(6), - [ts_sym_object] = SHIFT(6), - [ts_sym_string] = SHIFT(6), - [ts_sym_true] = SHIFT(6), - [ts_sym_value] = SHIFT(7), - [ts_aux_sym_token1] = SHIFT(15), - [ts_aux_sym_token5] = SHIFT(21), + [ts_aux_sym_token3] = SHIFT(6), }, [6] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_value, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_value, 1), - }, - [7] = { - [ts_aux_sym_object_repeat1] = SHIFT(8), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [8] = { - [ts_aux_sym_token4] = SHIFT(9), - }, - [9] = { - [ts_builtin_sym_end] = REDUCE(ts_sym_object, 6), - }, - [10] = { - [ts_sym_string] = SHIFT(11), - [ts_builtin_sym_error] = SHIFT(49), - }, - [11] = { - [ts_aux_sym_token2] = SHIFT(12), - }, - [12] = { - [ts_sym_array] = SHIFT(6), - [ts_sym_false] = SHIFT(6), - [ts_sym_null] = SHIFT(6), - [ts_sym_number] = SHIFT(6), - [ts_sym_object] = SHIFT(6), - [ts_sym_string] = SHIFT(6), - [ts_sym_true] = SHIFT(6), - [ts_sym_value] = SHIFT(13), - [ts_aux_sym_token1] = SHIFT(15), - [ts_aux_sym_token5] = SHIFT(21), - }, - [13] = { - [ts_aux_sym_object_repeat1] = SHIFT(14), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [14] = { - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 5), - }, - [15] = { - [ts_sym_string] = SHIFT(16), - [ts_aux_sym_token4] = SHIFT(45), - [ts_builtin_sym_error] = SHIFT(46), - }, - [16] = { - [ts_aux_sym_token2] = SHIFT(17), - }, - [17] = { - [ts_sym_array] = SHIFT(6), - [ts_sym_false] = SHIFT(6), - [ts_sym_null] = SHIFT(6), - [ts_sym_number] = SHIFT(6), - [ts_sym_object] = SHIFT(6), - [ts_sym_string] = SHIFT(6), - [ts_sym_true] = SHIFT(6), - [ts_sym_value] = SHIFT(18), - [ts_aux_sym_token1] = SHIFT(15), - [ts_aux_sym_token5] = SHIFT(21), - }, - [18] = { - [ts_aux_sym_object_repeat1] = SHIFT(19), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [19] = { - [ts_aux_sym_token4] = SHIFT(20), - }, - [20] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 6), - }, - [21] = { - [ts_sym_array] = SHIFT(22), - [ts_sym_false] = SHIFT(22), - [ts_sym_null] = SHIFT(22), - [ts_sym_number] = SHIFT(22), - [ts_sym_object] = SHIFT(22), - [ts_sym_string] = SHIFT(22), - [ts_sym_true] = SHIFT(22), - [ts_sym_value] = SHIFT(23), - [ts_aux_sym_token1] = SHIFT(29), - [ts_aux_sym_token5] = SHIFT(39), - [ts_aux_sym_token6] = SHIFT(44), - [ts_builtin_sym_error] = SHIFT(23), - }, - [22] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_value, 1), - [ts_aux_sym_token6] = REDUCE(ts_sym_value, 1), - }, - [23] = { - [ts_aux_sym_array_repeat1] = SHIFT(24), - [ts_aux_sym_token3] = SHIFT(26), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym_array_repeat1, 0), - }, - [24] = { - [ts_aux_sym_token6] = SHIFT(25), - }, - [25] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_array, 4), - }, - [26] = { - [ts_sym_array] = SHIFT(22), - [ts_sym_false] = SHIFT(22), - [ts_sym_null] = SHIFT(22), - [ts_sym_number] = SHIFT(22), - [ts_sym_object] = SHIFT(22), - [ts_sym_string] = SHIFT(22), - [ts_sym_true] = SHIFT(22), - [ts_sym_value] = SHIFT(27), - [ts_aux_sym_token1] = SHIFT(29), - [ts_aux_sym_token5] = SHIFT(39), - [ts_builtin_sym_error] = SHIFT(27), - }, - [27] = { - [ts_aux_sym_array_repeat1] = SHIFT(28), - [ts_aux_sym_token3] = SHIFT(26), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym_array_repeat1, 0), - }, - [28] = { - [ts_aux_sym_token6] = REDUCE(ts_aux_sym_array_repeat1, 3), - }, - [29] = { - [ts_sym_string] = SHIFT(30), - [ts_aux_sym_token4] = SHIFT(35), - [ts_builtin_sym_error] = SHIFT(36), - }, - [30] = { - [ts_aux_sym_token2] = SHIFT(31), - }, - [31] = { - [ts_sym_array] = SHIFT(6), - [ts_sym_false] = SHIFT(6), - [ts_sym_null] = SHIFT(6), - [ts_sym_number] = SHIFT(6), - [ts_sym_object] = SHIFT(6), - [ts_sym_string] = SHIFT(6), - [ts_sym_true] = SHIFT(6), - [ts_sym_value] = SHIFT(32), - [ts_aux_sym_token1] = SHIFT(15), - [ts_aux_sym_token5] = SHIFT(21), - }, - [32] = { - [ts_aux_sym_object_repeat1] = SHIFT(33), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [33] = { - [ts_aux_sym_token4] = SHIFT(34), - }, - [34] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), - }, - [35] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), - }, - [36] = { - [ts_aux_sym_object_repeat1] = SHIFT(37), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [37] = { - [ts_aux_sym_token4] = SHIFT(38), - }, - [38] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), - }, - [39] = { - [ts_sym_array] = SHIFT(22), - [ts_sym_false] = SHIFT(22), - [ts_sym_null] = SHIFT(22), - [ts_sym_number] = SHIFT(22), - [ts_sym_object] = SHIFT(22), - [ts_sym_string] = SHIFT(22), - [ts_sym_true] = SHIFT(22), - [ts_sym_value] = SHIFT(40), - [ts_aux_sym_token1] = SHIFT(29), - [ts_aux_sym_token5] = SHIFT(39), - [ts_aux_sym_token6] = SHIFT(43), - [ts_builtin_sym_error] = SHIFT(40), - }, - [40] = { - [ts_aux_sym_array_repeat1] = SHIFT(41), - [ts_aux_sym_token3] = SHIFT(26), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym_array_repeat1, 0), - }, - [41] = { - [ts_aux_sym_token6] = SHIFT(42), - }, - [42] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), - }, - [43] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), - }, - [44] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_array, 2), - }, - [45] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 2), - }, - [46] = { - [ts_aux_sym_object_repeat1] = SHIFT(47), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [47] = { - [ts_aux_sym_token4] = SHIFT(48), - }, - [48] = { - [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token4] = REDUCE(ts_sym_object, 4), - }, - [49] = { - [ts_aux_sym_object_repeat1] = SHIFT(50), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [50] = { - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 3), - }, - [51] = { - [ts_builtin_sym_end] = REDUCE(ts_sym_object, 2), - }, - [52] = { - [ts_aux_sym_object_repeat1] = SHIFT(53), - [ts_aux_sym_token3] = SHIFT(10), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_object_repeat1, 0), - }, - [53] = { - [ts_aux_sym_token4] = SHIFT(54), - }, - [54] = { [ts_builtin_sym_end] = REDUCE(ts_sym_object, 4), }, + [7] = { + [ts_builtin_sym_error] = SHIFT(8), + [ts_sym_string] = SHIFT(10), + }, + [8] = { + [ts_aux_sym_object_repeat0] = SHIFT(9), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [9] = { + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 3), + }, + [10] = { + [ts_aux_sym_token1] = SHIFT(11), + }, + [11] = { + [ts_sym_value] = SHIFT(12), + [ts_sym_object] = SHIFT(14), + [ts_sym_array] = SHIFT(14), + [ts_sym_string] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_null] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_false] = SHIFT(14), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token4] = SHIFT(24), + }, + [12] = { + [ts_aux_sym_object_repeat0] = SHIFT(13), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [13] = { + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 5), + }, + [14] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_value, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_value, 1), + }, + [15] = { + [ts_builtin_sym_error] = SHIFT(16), + [ts_sym_string] = SHIFT(19), + [ts_aux_sym_token3] = SHIFT(48), + }, + [16] = { + [ts_aux_sym_object_repeat0] = SHIFT(17), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [17] = { + [ts_aux_sym_token3] = SHIFT(18), + }, + [18] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), + }, + [19] = { + [ts_aux_sym_token1] = SHIFT(20), + }, + [20] = { + [ts_sym_value] = SHIFT(21), + [ts_sym_object] = SHIFT(14), + [ts_sym_array] = SHIFT(14), + [ts_sym_string] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_null] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_false] = SHIFT(14), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token4] = SHIFT(24), + }, + [21] = { + [ts_aux_sym_object_repeat0] = SHIFT(22), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [22] = { + [ts_aux_sym_token3] = SHIFT(23), + }, + [23] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), + }, + [24] = { + [ts_sym_value] = SHIFT(25), + [ts_sym_object] = SHIFT(31), + [ts_sym_array] = SHIFT(31), + [ts_builtin_sym_error] = SHIFT(25), + [ts_sym_string] = SHIFT(31), + [ts_sym_number] = SHIFT(31), + [ts_sym_null] = SHIFT(31), + [ts_sym_true] = SHIFT(31), + [ts_sym_false] = SHIFT(31), + [ts_aux_sym_token0] = SHIFT(32), + [ts_aux_sym_token4] = SHIFT(42), + [ts_aux_sym_token5] = SHIFT(47), + }, + [25] = { + [ts_aux_sym_array_repeat0] = SHIFT(26), + [ts_aux_sym_token2] = SHIFT(28), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [26] = { + [ts_aux_sym_token5] = SHIFT(27), + }, + [27] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), + }, + [28] = { + [ts_sym_value] = SHIFT(29), + [ts_sym_object] = SHIFT(31), + [ts_sym_array] = SHIFT(31), + [ts_builtin_sym_error] = SHIFT(29), + [ts_sym_string] = SHIFT(31), + [ts_sym_number] = SHIFT(31), + [ts_sym_null] = SHIFT(31), + [ts_sym_true] = SHIFT(31), + [ts_sym_false] = SHIFT(31), + [ts_aux_sym_token0] = SHIFT(32), + [ts_aux_sym_token4] = SHIFT(42), + }, + [29] = { + [ts_aux_sym_array_repeat0] = SHIFT(30), + [ts_aux_sym_token2] = SHIFT(28), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [30] = { + [ts_aux_sym_token5] = REDUCE(ts_aux_sym_array_repeat0, 3), + }, + [31] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_value, 1), + [ts_aux_sym_token5] = REDUCE(ts_sym_value, 1), + }, + [32] = { + [ts_builtin_sym_error] = SHIFT(33), + [ts_sym_string] = SHIFT(36), + [ts_aux_sym_token3] = SHIFT(41), + }, + [33] = { + [ts_aux_sym_object_repeat0] = SHIFT(34), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [34] = { + [ts_aux_sym_token3] = SHIFT(35), + }, + [35] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_object, 4), + }, + [36] = { + [ts_aux_sym_token1] = SHIFT(37), + }, + [37] = { + [ts_sym_value] = SHIFT(38), + [ts_sym_object] = SHIFT(14), + [ts_sym_array] = SHIFT(14), + [ts_sym_string] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_null] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_false] = SHIFT(14), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token4] = SHIFT(24), + }, + [38] = { + [ts_aux_sym_object_repeat0] = SHIFT(39), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [39] = { + [ts_aux_sym_token3] = SHIFT(40), + }, + [40] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), + [ts_aux_sym_token5] = REDUCE(ts_sym_object, 6), + }, + [41] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token5] = REDUCE(ts_sym_object, 2), + }, + [42] = { + [ts_sym_value] = SHIFT(43), + [ts_sym_object] = SHIFT(31), + [ts_sym_array] = SHIFT(31), + [ts_builtin_sym_error] = SHIFT(43), + [ts_sym_string] = SHIFT(31), + [ts_sym_number] = SHIFT(31), + [ts_sym_null] = SHIFT(31), + [ts_sym_true] = SHIFT(31), + [ts_sym_false] = SHIFT(31), + [ts_aux_sym_token0] = SHIFT(32), + [ts_aux_sym_token4] = SHIFT(42), + [ts_aux_sym_token5] = SHIFT(46), + }, + [43] = { + [ts_aux_sym_array_repeat0] = SHIFT(44), + [ts_aux_sym_token2] = SHIFT(28), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym_array_repeat0, 0), + }, + [44] = { + [ts_aux_sym_token5] = SHIFT(45), + }, + [45] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), + [ts_aux_sym_token5] = REDUCE(ts_sym_array, 4), + }, + [46] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token5] = REDUCE(ts_sym_array, 2), + }, + [47] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), + [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), + }, + [48] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), + [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), + }, + [49] = { + [ts_aux_sym_token1] = SHIFT(50), + }, + [50] = { + [ts_sym_value] = SHIFT(51), + [ts_sym_object] = SHIFT(14), + [ts_sym_array] = SHIFT(14), + [ts_sym_string] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_null] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_false] = SHIFT(14), + [ts_aux_sym_token0] = SHIFT(15), + [ts_aux_sym_token4] = SHIFT(24), + }, + [51] = { + [ts_aux_sym_object_repeat0] = SHIFT(52), + [ts_aux_sym_token2] = SHIFT(7), + [ts_aux_sym_token3] = REDUCE(ts_aux_sym_object_repeat0, 0), + }, + [52] = { + [ts_aux_sym_token3] = SHIFT(53), + }, + [53] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_object, 6), + }, + [54] = { + [ts_builtin_sym_end] = REDUCE(ts_sym_object, 2), + }, [55] = { - [ts_sym_array] = SHIFT(22), - [ts_sym_false] = SHIFT(22), - [ts_sym_null] = SHIFT(22), - [ts_sym_number] = SHIFT(22), - [ts_sym_object] = SHIFT(22), - [ts_sym_string] = SHIFT(22), - [ts_sym_true] = SHIFT(22), [ts_sym_value] = SHIFT(56), - [ts_aux_sym_token1] = SHIFT(29), - [ts_aux_sym_token5] = SHIFT(39), - [ts_aux_sym_token6] = SHIFT(59), + [ts_sym_object] = SHIFT(31), + [ts_sym_array] = SHIFT(31), [ts_builtin_sym_error] = SHIFT(56), + [ts_sym_string] = SHIFT(31), + [ts_sym_number] = SHIFT(31), + [ts_sym_null] = SHIFT(31), + [ts_sym_true] = SHIFT(31), + [ts_sym_false] = SHIFT(31), + [ts_aux_sym_token0] = SHIFT(32), + [ts_aux_sym_token4] = SHIFT(42), + [ts_aux_sym_token5] = SHIFT(59), }, [56] = { - [ts_aux_sym_array_repeat1] = SHIFT(57), - [ts_aux_sym_token3] = SHIFT(26), - [ts_aux_sym_token6] = REDUCE(ts_aux_sym_array_repeat1, 0), + [ts_aux_sym_array_repeat0] = SHIFT(57), + [ts_aux_sym_token2] = SHIFT(28), + [ts_aux_sym_token5] = REDUCE(ts_aux_sym_array_repeat0, 0), }, [57] = { - [ts_aux_sym_token6] = SHIFT(58), + [ts_aux_sym_token5] = SHIFT(58), }, [58] = { [ts_builtin_sym_end] = REDUCE(ts_sym_array, 4), diff --git a/spec/compiler/build_tables/conflict_manager_spec.cc b/spec/compiler/build_tables/conflict_manager_spec.cc index a5370288..46e71530 100644 --- a/spec/compiler/build_tables/conflict_manager_spec.cc +++ b/spec/compiler/build_tables/conflict_manager_spec.cc @@ -21,12 +21,7 @@ describe("resolving parse conflicts", []() { }, {}); before_each([&]() { - manager = new ConflictManager(parse_grammar, lex_grammar, { - { Symbol("rule1"), "rule1" }, - { Symbol("rule2"), "rule2" }, - { Symbol("token1"), "token1" }, - { Symbol("token2"), "token2" }, - }); + manager = new ConflictManager(parse_grammar, lex_grammar); }); after_each([&]() { @@ -34,8 +29,8 @@ describe("resolving parse conflicts", []() { }); describe("lexical conflicts", [&]() { - Symbol sym1("token1"); - Symbol sym2("token2"); + ISymbol sym1(1, SymbolOptionToken); + ISymbol sym2(2, SymbolOptionToken); it("favors non-errors over lexical errors", [&]() { should_update = manager->resolve_lex_action(LexAction::Error(), LexAction::Advance(2)); @@ -55,8 +50,8 @@ describe("resolving parse conflicts", []() { }); describe("syntactic conflicts", [&]() { - Symbol sym1("rule1"); - Symbol sym2("rule2"); + ISymbol sym1(0); + ISymbol sym2(1); it("favors non-errors over parse errors", [&]() { should_update = manager->resolve_parse_action(sym1, ParseAction::Error(), ParseAction::Shift(2, { 0 })); diff --git a/spec/compiler/build_tables/first_set_spec.cc b/spec/compiler/build_tables/first_set_spec.cc index cc95112c..931f185e 100644 --- a/spec/compiler/build_tables/first_set_spec.cc +++ b/spec/compiler/build_tables/first_set_spec.cc @@ -14,58 +14,60 @@ describe("computing FIRST sets", []() { describe("for a sequence AB", [&]() { it("ignores B when A cannot be blank", [&]() { - auto rule = seq({ sym("x"), sym("y") }); + auto rule = seq({ i_token(0), i_token(1) }); - AssertThat(first_set(rule, null_grammar), Equals(set({ - Symbol("x"), + AssertThat(first_set(rule, null_grammar), Equals(set({ + ISymbol(0, SymbolOptionToken), }))); }); it("includes FIRST(B) when A can be blank", [&]() { auto rule = seq({ choice({ - sym("x"), + i_token(0), blank() }), - sym("y") }); + i_token(1) }); - AssertThat(first_set(rule, null_grammar), Equals(set({ - Symbol("x"), - Symbol("y") + AssertThat(first_set(rule, null_grammar), Equals(set({ + ISymbol(0, SymbolOptionToken), + ISymbol(1, SymbolOptionToken) }))); }); it("includes FIRST(A's right hand side) when A is a non-terminal", [&]() { auto rule = choice({ seq({ - sym("A"), - sym("x"), - sym("A") }), - sym("A") }); - + i_token(0), + i_token(1) }), + i_sym(0) }); + Grammar grammar({ - { "A", choice({ - seq({ - sym("y"), - sym("z"), - sym("y") }), - sym("y") }) } + { "rule0", seq({ + i_token(2), + i_token(3), + i_token(4) }) } }); - - AssertThat(first_set(rule, grammar), Equals(set({ - Symbol("y") + + AssertThat(first_set(rule, grammar), Equals(set({ + ISymbol(0, SymbolOptionToken), + ISymbol(2, SymbolOptionToken), }))); }); it("includes FIRST(B) when A is a non-terminal and its expansion can be blank", [&]() { - Grammar grammar({{ "A", choice({ sym("x"), blank() }) }}); - auto rule = seq({ - sym("A"), - sym("y") }); + i_sym(0), + i_token(1) }); + + Grammar grammar({ + { "rule0", choice({ + i_token(0), + blank() }) } + }); - AssertThat(first_set(rule, grammar), Equals(set({ - Symbol("x"), - Symbol("y") + AssertThat(first_set(rule, grammar), Equals(set({ + ISymbol(0, SymbolOptionToken), + ISymbol(1, SymbolOptionToken), }))); }); }); @@ -73,23 +75,25 @@ describe("computing FIRST sets", []() { describe("when there are left-recursive rules", [&]() { it("terminates", [&]() { Grammar grammar({ - { "expression", choice({ - seq({ sym("expression"), sym("x") }), - sym("y"), + { "rule0", choice({ + seq({ i_sym(0), i_token(10) }), + i_token(11), }) }, }); + + auto rule = i_sym(0); - AssertThat(first_set(sym("expression"), grammar), Equals(set({ - Symbol("y") + AssertThat(first_set(rule, grammar), Equals(set({ + ISymbol(11, SymbolOptionToken) }))); }); }); it("ignores metadata rules", [&]() { - auto rule = make_shared(sym("x"), map()); + auto rule = make_shared(i_token(3), map()); - AssertThat(first_set(rule, null_grammar), Equals(set({ - Symbol("x"), + AssertThat(first_set(rule, null_grammar), Equals(set({ + ISymbol(3, SymbolOptionToken), }))); }); }); diff --git a/spec/compiler/build_tables/follow_sets_spec.cc b/spec/compiler/build_tables/follow_sets_spec.cc index 11375d69..3d34a078 100644 --- a/spec/compiler/build_tables/follow_sets_spec.cc +++ b/spec/compiler/build_tables/follow_sets_spec.cc @@ -12,38 +12,46 @@ describe("computing FOLLOW sets", []() { const PreparedGrammar grammar({ { "A", sym("a") }, { "B", sym("b") }, + { "C", choice({ i_sym(0), i_sym(1) }) }, }, {}); it("includes all of the starting non-terminals for the item, and their following terminals", [&]() { - ParseItem item(Symbol("C"), choice({ - seq({ sym("A"), choice({ sym("x"), sym("y") }) }), - seq({ sym("B"), sym("z") }), - }), {}, Symbol("w")); + ParseItem item(ISymbol(2), choice({ + seq({ i_sym(0), choice({ i_token(0), i_token(1) }) }), + seq({ i_sym(1), i_token(2) }), + }), 0, ISymbol(10, SymbolOptionToken)); - AssertThat(follow_sets(item, grammar), Equals(map>({ - { Symbol("A"), set({ Symbol("x"), Symbol("y") }) }, - { Symbol("B"), set({ Symbol("z") }) }, + AssertThat(follow_sets(item, grammar), Equals(map>({ + { ISymbol(0), set({ + ISymbol(0, SymbolOptionToken), + ISymbol(1, SymbolOptionToken) }) }, + { ISymbol(1), set({ + ISymbol(2, SymbolOptionToken) }) }, }))); }); it("does not include terminals at the beginning of the item", [&]() { - ParseItem item(Symbol("C"), choice({ - seq({ sym("A"), choice({ sym("x"), sym("y") }) }), - seq({ sym("x"), sym("y") }), - }), {}, Symbol("w")); + ParseItem item(ISymbol(2), choice({ + seq({ i_sym(0), choice({ i_token(0), i_token(1) }) }), + seq({ i_token(2), i_token(3) }), + }), 0, ISymbol(10, SymbolOptionToken)); - AssertThat(follow_sets(item, grammar), Equals(map>({ - { Symbol("A"), set({ Symbol("x"), Symbol("y") }) }, + AssertThat(follow_sets(item, grammar), Equals(map>({ + { ISymbol(0), set({ + ISymbol(0, SymbolOptionToken), + ISymbol(1, SymbolOptionToken) }) }, }))); }); it("includes the item's lookahead terminal if the rule after the non-terminal might be blank", [&]() { - ParseItem item(Symbol("C"), choice({ - seq({ sym("A"), choice({ sym("x"), blank() }) }), - }), {}, Symbol("w")); + ParseItem item(ISymbol(2), choice({ + seq({ i_sym(0), choice({ i_token(0), blank() }) }), + }), 0, ISymbol(10, SymbolOptionToken)); - AssertThat(follow_sets(item, grammar), Equals(map>({ - { Symbol("A"), set({ Symbol("x"), Symbol("w") }) }, + AssertThat(follow_sets(item, grammar), Equals(map>({ + { ISymbol(0), set({ + ISymbol(0, SymbolOptionToken), + ISymbol(10, SymbolOptionToken) }) }, }))); }); }); diff --git a/spec/compiler/build_tables/item_set_closure_spec.cc b/spec/compiler/build_tables/item_set_closure_spec.cc index 759d5d40..0f6afc9a 100644 --- a/spec/compiler/build_tables/item_set_closure_spec.cc +++ b/spec/compiler/build_tables/item_set_closure_spec.cc @@ -10,42 +10,22 @@ START_TEST describe("computing closures of item sets", []() { PreparedGrammar grammar({ - { "E", choice({ - seq({ - sym("T"), - sym("+"), - sym("T") }), - sym("T") }) }, - { "T", choice({ - seq({ - sym("F"), - sym("*"), - sym("F") }), - sym("F") }) }, - { "F", choice({ - sym("v"), - sym("n") }) } + { "E", seq({ + i_sym(1), + i_token(11) }) }, + { "T", seq({ + i_token(12), + i_token(13) }) }, }, {}); - it("computes the item set closure", [&]() { + it("adds items at the beginnings of referenced rules", [&]() { ParseItemSet item_set = item_set_closure(ParseItemSet({ - ParseItem(Symbol("E"), grammar.rule(Symbol("E")), 0, Symbol("__END__")) + ParseItem(ISymbol(0), grammar.rule(ISymbol(0)), 0, ISymbol(10, SymbolOptionToken)) }), grammar); AssertThat(item_set, Equals(ParseItemSet({ - ParseItem(Symbol("F"), grammar.rule(Symbol("F")), 0, Symbol("__END__")), - ParseItem(Symbol("F"), grammar.rule(Symbol("F")), 0, Symbol("+")), - ParseItem(Symbol("F"), grammar.rule(Symbol("F")), 0, Symbol("*")), - ParseItem(Symbol("T"), grammar.rule(Symbol("T")), 0, Symbol("__END__")), - ParseItem(Symbol("T"), grammar.rule(Symbol("T")), 0, Symbol("+")), - ParseItem(Symbol("E"), grammar.rule(Symbol("E")), 0, Symbol("__END__")), - }))); - - ParseItemSet next_item_set = sym_transitions(item_set, grammar)[Symbol("v")]; - AssertThat(next_item_set, Equals(ParseItemSet({ - ParseItem(Symbol("F"), rules::blank(), 1, Symbol("__END__")), - ParseItem(Symbol("F"), rules::blank(), 1, Symbol("*")), - ParseItem(Symbol("F"), rules::blank(), 1, Symbol("+")), + ParseItem(ISymbol(1), grammar.rule(ISymbol(1)), 0, ISymbol(11, SymbolOptionToken)), + ParseItem(ISymbol(0), grammar.rule(ISymbol(0)), 0, ISymbol(10, SymbolOptionToken)), }))); }); }); diff --git a/spec/compiler/build_tables/item_set_transitions_spec.cc b/spec/compiler/build_tables/item_set_transitions_spec.cc index bfa13a26..3313a54e 100644 --- a/spec/compiler/build_tables/item_set_transitions_spec.cc +++ b/spec/compiler/build_tables/item_set_transitions_spec.cc @@ -13,17 +13,17 @@ describe("item set transitions", []() { describe("when two items in the set have transitions on the same character", [&]() { it("merges the transitions by computing the union of the two item sets", [&]() { LexItemSet set1({ - LexItem(Symbol("A"), pattern("[a-f]")), - LexItem(Symbol("B"), pattern("[e-x]")) }); + LexItem(ISymbol(1), pattern("[a-f]")), + LexItem(ISymbol(2), pattern("[e-x]")) }); AssertThat(char_transitions(set1, grammar), Equals(map({ { CharacterSet({ {'a', 'd'} }), LexItemSet({ - LexItem(Symbol("A"), blank()) }) }, + LexItem(ISymbol(1), blank()) }) }, { CharacterSet({ {'e', 'f'} }), LexItemSet({ - LexItem(Symbol("A"), blank()), - LexItem(Symbol("B"), blank()) }) }, + LexItem(ISymbol(1), blank()), + LexItem(ISymbol(2), blank()) }) }, { CharacterSet({ {'g', 'x'} }), LexItemSet({ - LexItem(Symbol("B"), blank()) }) }, + LexItem(ISymbol(2), blank()) }) }, }))); }); }); diff --git a/spec/compiler/build_tables/lex_item_spec.cc b/spec/compiler/build_tables/lex_item_spec.cc index 28c1dcff..af846e65 100644 --- a/spec/compiler/build_tables/lex_item_spec.cc +++ b/spec/compiler/build_tables/lex_item_spec.cc @@ -9,7 +9,7 @@ START_TEST describe("lex items", []() { describe("determining if an item is the start of a token", [&]() { - Symbol sym("x"); + ISymbol sym(1); rule_ptr token_start = make_shared(str("a"), map({ { START_TOKEN, 1 } })); diff --git a/spec/compiler/build_tables/rule_can_be_blank_spec.cc b/spec/compiler/build_tables/rule_can_be_blank_spec.cc index 6a2d92a8..bff7ae26 100644 --- a/spec/compiler/build_tables/rule_can_be_blank_spec.cc +++ b/spec/compiler/build_tables/rule_can_be_blank_spec.cc @@ -12,7 +12,7 @@ describe("checking if rules can be blank", [&]() { rule_ptr rule; it("returns false for basic rules", [&]() { - AssertThat(rule_can_be_blank(sym("x")), IsFalse()); + AssertThat(rule_can_be_blank(i_sym(3)), IsFalse()); AssertThat(rule_can_be_blank(str("x")), IsFalse()); AssertThat(rule_can_be_blank(pattern("x")), IsFalse()); }); @@ -58,20 +58,20 @@ describe("checking if rules can be blank", [&]() { describe("checking recursively (by expanding non-terminals)", [&]() { PreparedGrammar grammar({ { "A", choice({ - seq({ sym("A"), sym("x") }), + seq({ i_sym(0), i_token(11) }), blank() }) }, { "B", choice({ - seq({ sym("B"), sym("y") }), - sym("z") }) }, + seq({ i_sym(1), i_token(12) }), + i_token(13) }) }, }, {}); it("terminates for left-recursive rules that can be blank", [&]() { - rule = sym("A"); + rule = i_sym(0); AssertThat(rule_can_be_blank(rule, grammar), IsTrue()); }); it("terminates for left-recursive rules that can't be blank", [&]() { - rule = sym("B"); + rule = i_sym(1); AssertThat(rule_can_be_blank(rule, grammar), IsFalse()); }); }); diff --git a/spec/compiler/build_tables/rule_transitions_spec.cc b/spec/compiler/build_tables/rule_transitions_spec.cc index 479ac610..c7ca7448 100644 --- a/spec/compiler/build_tables/rule_transitions_spec.cc +++ b/spec/compiler/build_tables/rule_transitions_spec.cc @@ -26,39 +26,39 @@ START_TEST describe("rule transitions", []() { it("handles symbols", [&]() { AssertThat( - sym_transitions(sym("1")), - Equals(rule_map({ - { Symbol("1"), blank() } + sym_transitions(i_sym(1)), + Equals(rule_map({ + { ISymbol(1), blank() } }))); }); it("handles choices", [&]() { AssertThat( - sym_transitions(choice({ sym("1"), sym("2") })), - Equals(rule_map({ - { Symbol("1"), blank() }, - { Symbol("2"), blank() } + sym_transitions(choice({ i_sym(1), i_sym(2) })), + Equals(rule_map({ + { ISymbol(1), blank() }, + { ISymbol(2), blank() } }))); }); it("handles sequences", [&]() { AssertThat( - sym_transitions(seq({ sym("1"), sym("2") })), - Equals(rule_map({ - { Symbol("1"), sym("2") } + sym_transitions(seq({ i_sym(1), i_sym(2) })), + Equals(rule_map({ + { ISymbol(1), i_sym(2) } }))); }); it("handles long sequences", [&]() { AssertThat( sym_transitions(seq({ - sym("1"), - sym("2"), - sym("3"), - sym("4") + i_sym(1), + i_sym(2), + i_sym(3), + i_sym(4) })), - Equals(rule_map({ - { Symbol("1"), seq({ sym("2"), sym("3"), sym("4") }) } + Equals(rule_map({ + { ISymbol(1), seq({ i_sym(2), i_sym(3), i_sym(4) }) } }))); }); @@ -66,15 +66,15 @@ describe("rule transitions", []() { AssertThat( sym_transitions(seq({ choice({ - sym("1"), + i_sym(1), blank(), }), seq({ - sym("1"), - sym("2") + i_sym(1), + i_sym(2) }) - })), Equals(rule_map({ - { Symbol("1"), choice({ seq({ sym("1"), sym("2") }), sym("2"), }) } + })), Equals(rule_map({ + { ISymbol(1), choice({ seq({ i_sym(1), i_sym(2) }), i_sym(2), }) } }))); }); @@ -82,10 +82,10 @@ describe("rule transitions", []() { AssertThat( sym_transitions( choice({ - seq({ sym("1"), sym("2") }), - seq({ sym("1"), sym("3") }) })), - Equals(rule_map({ - { Symbol("1"), choice({ sym("2"), sym("3") }) } + seq({ i_sym(1), i_sym(2) }), + seq({ i_sym(1), i_sym(3) }) })), + Equals(rule_map({ + { ISymbol(1), choice({ i_sym(2), i_sym(3) }) } }))); }); @@ -189,11 +189,11 @@ describe("rule transitions", []() { { PRECEDENCE, 5 } }); - rule_ptr rule = make_shared(seq({ sym("x"), sym("y") }), metadata_value); + rule_ptr rule = make_shared(seq({ i_sym(1), i_sym(2) }), metadata_value); AssertThat( sym_transitions(rule), - Equals(rule_map({ - { Symbol("x"), make_shared(sym("y"), metadata_value)}, + Equals(rule_map({ + { ISymbol(1), make_shared(i_sym(2), metadata_value)}, }))); }); diff --git a/spec/compiler/compiler_spec_helper.h b/spec/compiler/compiler_spec_helper.h index 7a4e45be..39b4be1f 100644 --- a/spec/compiler/compiler_spec_helper.h +++ b/spec/compiler/compiler_spec_helper.h @@ -4,7 +4,7 @@ #include "bandit/bandit.h" #include "helpers/stream_methods.h" #include "helpers/equals_pointer.h" -#include "helpers/character_set_helpers.h" +#include "helpers/rule_helpers.h" #include "tree_sitter/compiler.h" using namespace tree_sitter; diff --git a/spec/compiler/helpers/character_set_helpers.cc b/spec/compiler/helpers/character_set_helpers.cc deleted file mode 100644 index b72592a0..00000000 --- a/spec/compiler/helpers/character_set_helpers.cc +++ /dev/null @@ -1,20 +0,0 @@ -#include "character_set_helpers.h" -#include - -namespace tree_sitter { - using std::make_shared; - using std::set; - - namespace rules { - rule_ptr character(const set &ranges) { - return make_shared(ranges); - } - - rule_ptr character(const set &ranges, bool sign) { - if (sign) - return character(ranges); - else - return CharacterSet(ranges).complement().copy(); - } - } -} diff --git a/spec/compiler/helpers/rule_helpers.cc b/spec/compiler/helpers/rule_helpers.cc new file mode 100644 index 00000000..c1000b05 --- /dev/null +++ b/spec/compiler/helpers/rule_helpers.cc @@ -0,0 +1,37 @@ +#include "rule_helpers.h" +#include +#include "compiler/rules/interned_symbol.h" + +namespace tree_sitter { + using std::make_shared; + using std::set; + + namespace rules { + rule_ptr character(const set &ranges) { + return make_shared(ranges); + } + + rule_ptr character(const set &ranges, bool sign) { + if (sign) + return character(ranges); + else + return CharacterSet(ranges).complement().copy(); + } + + rule_ptr i_sym(size_t index) { + return make_shared(index); + } + + rule_ptr i_aux_sym(size_t index) { + return make_shared(index, SymbolOptionAuxiliary); + } + + rule_ptr i_token(size_t index) { + return make_shared(index, SymbolOptionToken); + } + + rule_ptr i_aux_token(size_t index) { + return make_shared(index, SymbolOption(SymbolOptionAuxiliary|SymbolOptionToken)); + } + } +} diff --git a/spec/compiler/helpers/character_set_helpers.h b/spec/compiler/helpers/rule_helpers.h similarity index 69% rename from spec/compiler/helpers/character_set_helpers.h rename to spec/compiler/helpers/rule_helpers.h index b41f5a14..3b18229a 100644 --- a/spec/compiler/helpers/character_set_helpers.h +++ b/spec/compiler/helpers/rule_helpers.h @@ -8,6 +8,10 @@ namespace tree_sitter { namespace rules { rule_ptr character(const std::set &ranges); rule_ptr character(const std::set &ranges, bool sign); + rule_ptr i_sym(size_t index); + rule_ptr i_aux_sym(size_t index); + rule_ptr i_token(size_t index); + rule_ptr i_aux_token(size_t index); } } diff --git a/spec/compiler/name_symbols/name_symbols_spec.cc b/spec/compiler/name_symbols/name_symbols_spec.cc deleted file mode 100644 index 3bc9b3b4..00000000 --- a/spec/compiler/name_symbols/name_symbols_spec.cc +++ /dev/null @@ -1,58 +0,0 @@ -#include "compiler_spec_helper.h" -#include "compiler/name_symbols/name_symbols.h" -#include "compiler/prepared_grammar.h" -#include "compiler/rules/built_in_symbols.h" - -using namespace rules; -using name_symbols::name_symbols; - -START_TEST - -describe("assigning user-visible names to symbols", [&]() { - PreparedGrammar syntactic_grammar({ - { "some_syntactic_symbol", seq({ - make_shared("some_given_name", SymbolTypeNormal), - make_shared("some_generated_string_name", SymbolTypeAuxiliary), - make_shared("some_generated_pattern_name", SymbolTypeAuxiliary), }) }, - }, {}); - - PreparedGrammar lexical_grammar({ - { "some_given_name", str("the-string") }, - }, { - { "some_generated_string_name", str("the-string") }, - { "some_generated_pattern_name", pattern("the-pattern") }, - }); - - map result = name_symbols::name_symbols(syntactic_grammar, lexical_grammar); - - describe("for symbols that are not in the lexical grammar (syntactic rules)", [&]() { - it("uses the symbol's normal name", [&]() { - auto symbol = Symbol("some_syntactic_symbol"); - AssertThat(result[symbol], Equals("some_syntactic_symbol")); - }); - }); - - describe("for symbols that are in the lexical grammar", [&]() { - it("uses symbols' normal names when they are given by the user", [&]() { - auto symbol = Symbol("some_given_name"); - AssertThat(result[symbol], Equals("some_given_name")); - }); - - it("assigns names to string rules based on their string value", [&]() { - auto symbol = Symbol("some_generated_string_name", rules::SymbolTypeAuxiliary); - AssertThat(result[symbol], Equals("'the-string'")); - }); - - it("assigns names to pattern rules based on their pattern value", [&]() { - auto symbol = Symbol("some_generated_pattern_name", rules::SymbolTypeAuxiliary); - AssertThat(result[symbol], Equals("/the-pattern/")); - }); - }); - - it("assigns names to the built-in symbols", [&]() { - AssertThat(result[rules::END_OF_INPUT()], Equals("EOF")); - AssertThat(result[rules::ERROR()], Equals("ERROR")); - }); -}); - -END_TEST \ No newline at end of file diff --git a/spec/compiler/prepare_grammar/expand_repeats_spec.cc b/spec/compiler/prepare_grammar/expand_repeats_spec.cc new file mode 100644 index 00000000..d39066ac --- /dev/null +++ b/spec/compiler/prepare_grammar/expand_repeats_spec.cc @@ -0,0 +1,97 @@ +#include "compiler_spec_helper.h" +#include "compiler/prepared_grammar.h" +#include "compiler/prepare_grammar/expand_repeats.h" +#include "compiler/rules/symbol.h" + +START_TEST + +using namespace rules; +using prepare_grammar::expand_repeats; + +describe("expanding repeat rules in a grammar", []() { + it("replaces repeat rules with pairs of recursive rules", [&]() { + PreparedGrammar grammar({ + { "rule0", repeat(i_token(0)) }, + }, {}); + + AssertThat(expand_repeats(grammar), Equals(PreparedGrammar({ + { "rule0", i_aux_sym(0) }, + }, { + { "rule0_repeat0", choice({ + seq({ + i_token(0), + i_aux_sym(0) }), + blank() }) }, + }))); + }); + + it("replaces repeats inside of sequences", [&]() { + PreparedGrammar grammar({ + { "rule0", seq({ i_token(10), repeat(i_token(11)) }) }, + }, {}); + + AssertThat(expand_repeats(grammar), Equals(PreparedGrammar({ + { "rule0", seq({ i_token(10), i_aux_sym(0) }) }, + }, { + { "rule0_repeat0", choice({ + seq({ i_token(11), i_aux_sym(0) }), + blank() }) }, + }))); + }); + + it("replaces repeats inside of choices", [&]() { + PreparedGrammar grammar({ + { "rule0", choice({ i_token(10), repeat(i_token(11)) }) }, + }, {}); + + AssertThat(expand_repeats(grammar), Equals(PreparedGrammar({ + { "rule0", choice({ i_token(10), i_aux_sym(0) }) }, + }, { + { "rule0_repeat0", choice({ + seq({ i_token(11), i_aux_sym(0) }), + blank() }) }, + }))); + }); + + it("can replace multiple repeats in the same rule", [&]() { + PreparedGrammar grammar({ + { "rule0", seq({ repeat(i_token(10)), repeat(i_token(11)) }) }, + }, {}); + + AssertThat(expand_repeats(grammar), Equals(PreparedGrammar({ + { "rule0", seq({ i_aux_sym(0), i_aux_sym(1) }) }, + }, { + { "rule0_repeat0", choice({ + seq({ + i_token(10), + i_aux_sym(0) }), + blank() }) }, + { "rule0_repeat1", choice({ + seq({ + i_token(11), + i_aux_sym(1) }), + blank() }) }, + }))); + }); + + it("can replace repeats in multiple rules", [&]() { + PreparedGrammar grammar({ + { "rule0", repeat(i_token(10)) }, + { "rule1", repeat(i_token(11)) }, + }, {}); + + AssertThat(expand_repeats(grammar), Equals(PreparedGrammar({ + { "rule0", i_aux_sym(0) }, + { "rule1", i_aux_sym(1) }, + }, { + { "rule0_repeat0", choice({ + seq({ i_token(10), i_aux_sym(0) }), + blank() }) }, + { "rule1_repeat0", choice({ + seq({ i_token(11), i_aux_sym(1) }), + blank() }) }, + }))); + }); +}); + +END_TEST \ No newline at end of file diff --git a/spec/compiler/prepare_grammar/extract_tokens_spec.cc b/spec/compiler/prepare_grammar/extract_tokens_spec.cc new file mode 100644 index 00000000..059f8ca1 --- /dev/null +++ b/spec/compiler/prepare_grammar/extract_tokens_spec.cc @@ -0,0 +1,99 @@ +#include "compiler_spec_helper.h" +#include "compiler/prepared_grammar.h" +#include "compiler/prepare_grammar/extract_tokens.h" +#include "compiler/rules/symbol.h" + +START_TEST + +using namespace rules; +using prepare_grammar::extract_tokens; + +describe("extracting tokens from a grammar", []() { + it("moves strings into the lexical grammar", [&]() { + pair result = extract_tokens(PreparedGrammar({ + { "rule0", seq({ str("ab"), i_sym(0) }) } + }, {})); + + AssertThat(result.first, Equals(PreparedGrammar({ + { "rule0", seq({ i_aux_token(0), i_sym(0) }) } + }, {}))); + + AssertThat(result.second, Equals(PreparedGrammar({}, { + { "token0", str("ab") }, + }))); + }); + + it("moves patterns into the lexical grammar", [&]() { + pair result = extract_tokens(PreparedGrammar({ + { "rule0", seq({ pattern("a+"), i_sym(0) }) } + }, {})); + + AssertThat(result.first, Equals(PreparedGrammar({ + { "rule0", seq({ i_aux_token(0), i_sym(0) }) } + }, {}))); + + AssertThat(result.second, Equals(PreparedGrammar({}, { + { "token0", pattern("a+") }, + }))); + }); + + it("does not extract blanks into tokens", [&]() { + pair result = extract_tokens(Grammar({ + { "rule1", choice({ i_sym(0), blank() }) }, + })); + + AssertThat(result.first, Equals(PreparedGrammar({ + { "rule1", choice({ i_sym(0), blank() }) }, + }, {}))); + + AssertThat(result.second, Equals(PreparedGrammar({}, {}))); + }); + + it("does not create duplicate tokens in the lexical grammar", [&]() { + pair result = extract_tokens(PreparedGrammar({ + { "rule0", seq({ str("ab"), i_sym(0), str("ab") }) }, + }, {})); + + AssertThat(result.first, Equals(PreparedGrammar({ + { "rule0", seq({ i_aux_token(0), i_sym(0), i_aux_token(0) }) } + }, {}))); + + AssertThat(result.second, Equals(PreparedGrammar({}, { + { "token0", str("ab") }, + }))); + }); + + it("moves entire rules into the lexical grammar when possible, updating referencing symbols", [&]() { + auto result = extract_tokens(PreparedGrammar({ + { "rule0", i_sym(1) }, + { "rule1", pattern("a|b") }, + }, {})); + + AssertThat(result.first, Equals(PreparedGrammar({ + { "rule0", i_token(0) } + }, {}))); + + AssertThat(result.second, Equals(PreparedGrammar({ + { "rule1", pattern("a|b") }, + }, {}))); + }); + + it("updates symbols whose indices need to change due to deleted rules", [&]() { + auto result = extract_tokens(PreparedGrammar({ + { "rule0", str("ab") }, + { "rule1", i_sym(0) }, + { "rule2", i_sym(1) }, + }, {})); + + AssertThat(result.first, Equals(PreparedGrammar({ + { "rule1", i_token(0) }, + { "rule2", i_sym(0) }, + }, {}))); + + AssertThat(result.second, Equals(PreparedGrammar({ + { "rule0", str("ab") }, + }, {}))); + }); +}); + +END_TEST \ No newline at end of file diff --git a/spec/compiler/prepare_grammar/intern_symbols_spec.cc b/spec/compiler/prepare_grammar/intern_symbols_spec.cc new file mode 100644 index 00000000..6fd1164a --- /dev/null +++ b/spec/compiler/prepare_grammar/intern_symbols_spec.cc @@ -0,0 +1,43 @@ +#include "compiler_spec_helper.h" +#include "compiler/prepared_grammar.h" +#include "compiler/prepare_grammar/intern_symbols.h" +#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" + +START_TEST + +using namespace rules; +using prepare_grammar::intern_symbols; + +describe("interning symbols in a grammar", []() { + it("replaces named symbols with numerically-indexed symbols", [&]() { + Grammar grammar({ + { "x", choice({ sym("y"), sym("z") }) }, + { "y", sym("z") }, + { "z", str("stuff") } + }); + + auto result = intern_symbols(grammar); + + AssertThat((bool)result.second, IsFalse()); + AssertThat(result.first, Equals(PreparedGrammar({ + { "x", choice({ i_sym(1), i_sym(2) }) }, + { "y", i_sym(2) }, + { "z", str("stuff") }, + }, {}))); + }); + + describe("when there are symbols that reference undefined rules", [&]() { + it("returns an error", []() { + Grammar grammar({ + { "x", sym("y") }, + }); + + auto result = intern_symbols(grammar); + + AssertThat(result.second->message(), Equals("Undefined rule 'y'")); + }); + }); +}); + +END_TEST \ No newline at end of file diff --git a/spec/compiler/prepare_grammar_spec.cc b/spec/compiler/prepare_grammar_spec.cc deleted file mode 100644 index ce76c77d..00000000 --- a/spec/compiler/prepare_grammar_spec.cc +++ /dev/null @@ -1,106 +0,0 @@ -#include "compiler_spec_helper.h" -#include "compiler/prepared_grammar.h" -#include "compiler/prepare_grammar/prepare_grammar.h" -#include "compiler/rules/symbol.h" - -START_TEST - -using namespace rules; -using prepare_grammar::prepare_grammar; - -describe("preparing a grammar", []() { - describe("extracting tokens", []() { - it("moves strings and patterns into a separate 'lexical' grammar", [&]() { - pair result = prepare_grammar(Grammar({ - { "rule1", seq({ - str("ab"), - seq({ - sym("rule2"), - sym("rule3") }), - str("ab") }) } - })); - - AssertThat(result.first, Equals(PreparedGrammar({ - { "rule1", seq({ - make_shared("token1", SymbolTypeAuxiliary), - seq({ - sym("rule2"), - sym("rule3") }), - make_shared("token1", SymbolTypeAuxiliary) }) } - }, {}))); - - AssertThat(result.second, Equals(PreparedGrammar({}, { - { "token1", str("ab") }, - }))); - }); - - it("moves entire rules into the lexical grammar when possible, preserving their names", [&]() { - auto result = prepare_grammar(Grammar({ - { "rule1", sym("rule2") }, - { "rule2", pattern("a|b") } - })); - - AssertThat(result.first, Equals(PreparedGrammar({ - { "rule1", sym("rule2") } - }, {}))); - - AssertThat(result.second, Equals(PreparedGrammar({ - { "rule2", pattern("a|b") }, - }, {}))); - }); - - it("does not extract blanks into tokens", [&]() { - pair result = prepare_grammar(Grammar({ - { "rule1", choice({ sym("rule2"), blank() }) }, - })); - - AssertThat(result.first, Equals(PreparedGrammar({ - { "rule1", choice({ sym("rule2"), blank() }) }, - }, {}))); - - AssertThat(result.second, Equals(PreparedGrammar({}, {}))); - }); - }); - - describe("expanding repeats", []() { - it("replaces repeat rules with pairs of recursive rules", [&]() { - PreparedGrammar result = prepare_grammar(Grammar({ - { "rule1", seq({ - sym("x"), - repeat(seq({ sym("a"), sym("b") })), - repeat(sym("a")), - sym("y") - }) }, - { "rule2", repeat(sym("b")) }, - })).first; - - AssertThat(result, Equals(PreparedGrammar({ - { "rule1", seq({ - sym("x"), - make_shared("rule1_repeat1", SymbolTypeAuxiliary), - make_shared("rule1_repeat2", SymbolTypeAuxiliary), - sym("y") }) }, - { "rule2", make_shared("rule2_repeat1", SymbolTypeAuxiliary) }, - }, { - { "rule1_repeat1", choice({ - seq({ - seq({ sym("a"), sym("b") }), - make_shared("rule1_repeat1", SymbolTypeAuxiliary), - }), - blank() }) }, - { "rule1_repeat2", choice({ - seq({ - sym("a"), - make_shared("rule1_repeat2", SymbolTypeAuxiliary) }), - blank() }) }, - { "rule2_repeat1", choice({ - seq({ - sym("b"), - make_shared("rule2_repeat1", SymbolTypeAuxiliary) }), - blank() }) } - }))); - }); - }); -}); - -END_TEST \ No newline at end of file diff --git a/src/compiler/build_tables/build_tables.cc b/src/compiler/build_tables/build_tables.cc index d16b27dd..93b7970d 100644 --- a/src/compiler/build_tables/build_tables.cc +++ b/src/compiler/build_tables/build_tables.cc @@ -10,6 +10,7 @@ #include "compiler/rules/repeat.h" #include "compiler/rules/blank.h" #include "compiler/rules/seq.h" +#include "compiler/rules/interned_symbol.h" #include "compiler/build_tables/conflict_manager.h" #include "compiler/build_tables/item.h" #include "compiler/build_tables/item_set_closure.h" @@ -24,7 +25,7 @@ namespace tree_sitter { using std::set; using std::unordered_map; using std::make_shared; - using rules::Symbol; + using rules::ISymbol; using rules::CharacterSet; namespace build_tables { @@ -45,7 +46,7 @@ namespace tree_sitter { void add_shift_actions(const ParseItemSet &item_set, ParseStateId state_id) { for (auto &transition : sym_transitions(item_set, grammar)) { - const Symbol &symbol = transition.first; + const ISymbol &symbol = transition.first; const ParseItemSet &item_set = transition.second; set precedence_values = precedence_values_for_item_set(item_set); @@ -117,7 +118,7 @@ namespace tree_sitter { LexItemSet lex_item_set_for_parse_state(const ParseState &state) { LexItemSet result; for (auto &symbol : state.expected_inputs()) { - if (lex_grammar.has_definition(symbol)) + if (symbol.is_token() && !symbol.is_built_in()) result.insert(LexItem(symbol, after_separators(lex_grammar.rule(symbol)))); if (symbol == rules::END_OF_INPUT()) result.insert(LexItem(symbol, after_separators(CharacterSet({ 0 }).copy()))); @@ -160,12 +161,12 @@ namespace tree_sitter { void add_error_lex_state() { LexItemSet error_item_set; - for (auto &pair : lex_grammar.rules) { - LexItem item(Symbol(pair.first, rules::SymbolTypeNormal), after_separators(pair.second)); + for (size_t i = 0; i < lex_grammar.rules.size(); i++) { + LexItem item(ISymbol(i, rules::SymbolOptionToken), after_separators(lex_grammar.rules[i].second)); error_item_set.insert(item); } - for (auto &pair : lex_grammar.aux_rules) { - LexItem item(Symbol(pair.first, rules::SymbolTypeAuxiliary), after_separators(pair.second)); + for (size_t i = 0; i < lex_grammar.aux_rules.size(); i++) { + LexItem item(ISymbol(i, rules::SymbolOption(rules::SymbolOptionToken|rules::SymbolOptionAuxiliary)), after_separators(lex_grammar.aux_rules[i].second)); error_item_set.insert(item); } error_item_set.insert(LexItem(rules::END_OF_INPUT(), after_separators(CharacterSet({ 0 }).copy()))); @@ -175,15 +176,14 @@ namespace tree_sitter { public: TableBuilder(const PreparedGrammar &grammar, - const PreparedGrammar &lex_grammar, - const map &rule_names) : + const PreparedGrammar &lex_grammar) : grammar(grammar), lex_grammar(lex_grammar), - conflict_manager(ConflictManager(grammar, lex_grammar, rule_names)) + conflict_manager(ConflictManager(grammar, lex_grammar)) {} void build() { - auto start_symbol = make_shared(grammar.start_rule_name()); + auto start_symbol = make_shared(0); ParseItem item(rules::START(), start_symbol, {}, rules::END_OF_INPUT()); ParseItemSet item_set = item_set_closure(ParseItemSet({ item }), grammar); add_parse_state(item_set); @@ -200,9 +200,8 @@ namespace tree_sitter { pair, vector> build_tables(const PreparedGrammar &grammar, - const PreparedGrammar &lex_grammar, - const map &rule_names) { - TableBuilder builder(grammar, lex_grammar, rule_names); + const PreparedGrammar &lex_grammar) { + TableBuilder builder(grammar, lex_grammar); builder.build(); return { { builder.parse_table, builder.lex_table }, builder.conflicts() }; } diff --git a/src/compiler/build_tables/build_tables.h b/src/compiler/build_tables/build_tables.h index 7abe85dd..36856d8e 100644 --- a/src/compiler/build_tables/build_tables.h +++ b/src/compiler/build_tables/build_tables.h @@ -15,8 +15,7 @@ namespace tree_sitter { namespace build_tables { std::pair, std::vector> build_tables(const PreparedGrammar &grammar, - const PreparedGrammar &lex_grammar, - const std::map &rule_names); + const PreparedGrammar &lex_grammar); } } diff --git a/src/compiler/build_tables/conflict_manager.cc b/src/compiler/build_tables/conflict_manager.cc index f79e0b7f..547a0813 100644 --- a/src/compiler/build_tables/conflict_manager.cc +++ b/src/compiler/build_tables/conflict_manager.cc @@ -15,14 +15,11 @@ namespace tree_sitter { using std::vector; ConflictManager::ConflictManager(const PreparedGrammar &parse_grammar, - const PreparedGrammar &lex_grammar, - const map &rule_names) : + const PreparedGrammar &lex_grammar) : parse_grammar(parse_grammar), - lex_grammar(lex_grammar), - rule_names(rule_names) - {} + lex_grammar(lex_grammar) {} - bool ConflictManager::resolve_parse_action(const rules::Symbol &symbol, + bool ConflictManager::resolve_parse_action(const rules::ISymbol &symbol, const ParseAction &old_action, const ParseAction &new_action) { if (new_action.type < old_action.type) @@ -63,9 +60,7 @@ namespace tree_sitter { return false; } else { record_conflict(symbol, old_action, new_action); - size_t old_index = parse_grammar.index_of(old_action.symbol); - size_t new_index = parse_grammar.index_of(new_action.symbol); - return new_index < old_index; + return new_action.symbol.index < old_action.symbol.index; } } default: @@ -83,9 +78,7 @@ namespace tree_sitter { return true; case LexActionTypeAccept: if (new_action.type == LexActionTypeAccept) { - size_t old_index = lex_grammar.index_of(old_action.symbol); - size_t new_index = lex_grammar.index_of(new_action.symbol); - return (new_index < old_index); + return new_action.symbol.index < old_action.symbol.index; } default: return false; @@ -109,16 +102,16 @@ namespace tree_sitter { return precedences + ")"; } - string message_for_action(const ParseAction &action, const map &rule_names) { + string message_for_action(const ParseAction &action, const PreparedGrammar &parse_grammar) { switch (action.type) { case ParseActionTypeShift: return "shift " + precedence_string(action); case ParseActionTypeReduce: { - auto pair = rule_names.find(action.symbol); - if (pair == rule_names.end()) - return "ERROR " + action.symbol.name; + string name = parse_grammar.rule_name(action.symbol); + if (name == "") + return "ERROR" + to_string(action.symbol.index); else - return "reduce " + pair->second + " " + precedence_string(action); + return "reduce " + name + " " + precedence_string(action); } case ParseActionTypeAccept: return "accept"; @@ -127,12 +120,15 @@ namespace tree_sitter { } } - void ConflictManager::record_conflict(const rules::Symbol &symbol, + void ConflictManager::record_conflict(const rules::ISymbol &symbol, const ParseAction &left, const ParseAction &right) { - conflicts_.insert(Conflict(rule_names.find(symbol)->second + ": " + - message_for_action(left, rule_names) + " / " + - message_for_action(right, rule_names))); + string name = symbol.is_token() ? + lex_grammar.rule_name(symbol) : + parse_grammar.rule_name(symbol); + conflicts_.insert(Conflict(name + ": " + + message_for_action(left, parse_grammar) + " / " + + message_for_action(right, parse_grammar))); } } } \ No newline at end of file diff --git a/src/compiler/build_tables/conflict_manager.h b/src/compiler/build_tables/conflict_manager.h index 479245f0..7f8b0da8 100644 --- a/src/compiler/build_tables/conflict_manager.h +++ b/src/compiler/build_tables/conflict_manager.h @@ -7,6 +7,7 @@ #include #include "tree_sitter/compiler.h" #include "compiler/parse_table.h" +#include "compiler/rules/interned_symbol.h" #include "compiler/prepared_grammar.h" namespace tree_sitter { @@ -14,21 +15,19 @@ namespace tree_sitter { class ConflictManager { const PreparedGrammar parse_grammar; const PreparedGrammar lex_grammar; - const std::map rule_names; std::set conflicts_; public: ConflictManager(const PreparedGrammar &parse_grammar, - const PreparedGrammar &lex_grammar, - const std::map &rule_names); + const PreparedGrammar &lex_grammar); bool resolve_lex_action(const LexAction &old_action, const LexAction &new_action); - bool resolve_parse_action(const rules::Symbol &symbol, + bool resolve_parse_action(const rules::ISymbol &symbol, const ParseAction &old_action, const ParseAction &new_action); - void record_conflict(const rules::Symbol &symbol, const ParseAction &left, const ParseAction &right); + void record_conflict(const rules::ISymbol &symbol, const ParseAction &left, const ParseAction &right); const std::vector conflicts() const; }; } diff --git a/src/compiler/build_tables/first_set.cc b/src/compiler/build_tables/first_set.cc index 3befcb26..da4ac721 100644 --- a/src/compiler/build_tables/first_set.cc +++ b/src/compiler/build_tables/first_set.cc @@ -6,47 +6,48 @@ #include "compiler/rules/visitor.h" #include "compiler/rules/seq.h" #include "compiler/rules/choice.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { using std::set; - using rules::Symbol; + using rules::ISymbol; namespace build_tables { - set set_union(const set &left, const set &right) { - set result = left; + set set_union(const set &left, const set &right) { + set result = left; result.insert(right.begin(), right.end()); return result; } - class FirstSet : public rules::RuleFn> { + class FirstSet : public rules::RuleFn> { const PreparedGrammar grammar; - set visited_symbols; + set visited_symbols; public: explicit FirstSet(const PreparedGrammar &grammar) : grammar(grammar) {} - set apply_to(const Symbol *rule) { + set apply_to(const ISymbol *rule) { if (visited_symbols.find(*rule) == visited_symbols.end()) { visited_symbols.insert(*rule); - if (grammar.has_definition(*rule)) { - return apply(grammar.rule(*rule)); + if (rule->is_token()) { + return set({ *rule }); } else { - return set({ *rule }); + return apply(grammar.rule(*rule)); } } else { - return set(); + return set(); } } - set apply_to(const rules::Metadata *rule) { + set apply_to(const rules::Metadata *rule) { return apply(rule->rule); } - set apply_to(const rules::Choice *rule) { + set apply_to(const rules::Choice *rule) { return set_union(apply(rule->left), apply(rule->right)); } - set apply_to(const rules::Seq *rule) { + set apply_to(const rules::Seq *rule) { auto result = apply(rule->left); if (rule_can_be_blank(rule->left, grammar)) { return set_union(result, apply(rule->right)); @@ -56,12 +57,12 @@ namespace tree_sitter { } }; - set first_set(const rules::rule_ptr &rule, const PreparedGrammar &grammar) { + set first_set(const rules::rule_ptr &rule, const PreparedGrammar &grammar) { return FirstSet(grammar).apply(rule); } - set first_set(const ParseItemSet &item_set, const PreparedGrammar &grammar) { - set result; + set first_set(const ParseItemSet &item_set, const PreparedGrammar &grammar) { + set result; for (auto &item : item_set) { result = set_union(result, first_set(item.rule, grammar)); if (rule_can_be_blank(item.rule, grammar)) diff --git a/src/compiler/build_tables/first_set.h b/src/compiler/build_tables/first_set.h index b816e8d8..77a83476 100644 --- a/src/compiler/build_tables/first_set.h +++ b/src/compiler/build_tables/first_set.h @@ -15,14 +15,14 @@ namespace tree_sitter { * the beginning of a string derivable from a given rule, * in a given gramamr. */ - std::set + std::set first_set(const rules::rule_ptr &rule, const PreparedGrammar &grammar); /* * Returns the set of terminal symbols that can appear at * the beginning of any item in the given set. */ - std::set + std::set first_set(const ParseItemSet &item_set, const PreparedGrammar &grammar); } } diff --git a/src/compiler/build_tables/follow_sets.cc b/src/compiler/build_tables/follow_sets.cc index 77aa03c2..75ad9135 100644 --- a/src/compiler/build_tables/follow_sets.cc +++ b/src/compiler/build_tables/follow_sets.cc @@ -7,19 +7,19 @@ namespace tree_sitter { using std::set; using std::map; - using rules::Symbol; + using rules::ISymbol; using rules::rule_ptr; namespace build_tables { - map> follow_sets(const ParseItem &item, + map> follow_sets(const ParseItem &item, const PreparedGrammar &grammar) { - map> result; + map> result; for (auto &pair : sym_transitions(item.rule)) { - Symbol symbol = pair.first; + ISymbol symbol = pair.first; rule_ptr next_rule = pair.second; - if (grammar.has_definition(symbol)) { - set following_terminals = first_set(next_rule, grammar); + if (!symbol.is_token() && !symbol.is_built_in()) { + set following_terminals = first_set(next_rule, grammar); if (rule_can_be_blank(next_rule, grammar)) following_terminals.insert(item.lookahead_sym); result.insert({ symbol, following_terminals }); diff --git a/src/compiler/build_tables/follow_sets.h b/src/compiler/build_tables/follow_sets.h index 772b16f8..2090eaea 100644 --- a/src/compiler/build_tables/follow_sets.h +++ b/src/compiler/build_tables/follow_sets.h @@ -17,7 +17,7 @@ namespace tree_sitter { * item. The values are the sets of terminals which can appear immediately * after the corresponding non-terminals. */ - std::map> + std::map> follow_sets(const ParseItem &item, const PreparedGrammar &grammar); } diff --git a/src/compiler/build_tables/item.cc b/src/compiler/build_tables/item.cc index a421290b..27a56be0 100644 --- a/src/compiler/build_tables/item.cc +++ b/src/compiler/build_tables/item.cc @@ -4,7 +4,7 @@ namespace tree_sitter { namespace build_tables { - Item::Item(const rules::Symbol &lhs, const rules::rule_ptr rule) : + Item::Item(const rules::ISymbol &lhs, const rules::rule_ptr rule) : lhs(lhs), rule(rule) {} diff --git a/src/compiler/build_tables/item.h b/src/compiler/build_tables/item.h index b533b7e2..3b8f4873 100644 --- a/src/compiler/build_tables/item.h +++ b/src/compiler/build_tables/item.h @@ -2,16 +2,16 @@ #define COMPILER_BUILD_TABLES_ITEM_H_ #include -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { namespace build_tables { class Item { public: - Item(const rules::Symbol &lhs, rules::rule_ptr rule); + Item(const rules::ISymbol &lhs, rules::rule_ptr rule); bool is_done() const; - rules::Symbol lhs; + rules::ISymbol lhs; rules::rule_ptr rule; }; } diff --git a/src/compiler/build_tables/item_set_closure.cc b/src/compiler/build_tables/item_set_closure.cc index 0077253b..f423a030 100644 --- a/src/compiler/build_tables/item_set_closure.cc +++ b/src/compiler/build_tables/item_set_closure.cc @@ -8,7 +8,7 @@ namespace tree_sitter { using std::set; - using rules::Symbol; + using rules::ISymbol; namespace build_tables { static bool contains(const ParseItemSet *items, const ParseItem &item) { @@ -22,8 +22,8 @@ namespace tree_sitter { if (!contains(item_set, item)) { item_set->insert(item); for (const auto &pair : follow_sets(item, grammar)) { - const Symbol &non_terminal = pair.first; - const set &terminals = pair.second; + const ISymbol &non_terminal = pair.first; + const set &terminals = pair.second; for (const auto &terminal : terminals) { ParseItem next_item(non_terminal, grammar.rule(non_terminal), 0, terminal); add_item(item_set, next_item, grammar); diff --git a/src/compiler/build_tables/item_set_transitions.cc b/src/compiler/build_tables/item_set_transitions.cc index 320525d4..2f611443 100644 --- a/src/compiler/build_tables/item_set_transitions.cc +++ b/src/compiler/build_tables/item_set_transitions.cc @@ -3,12 +3,13 @@ #include "compiler/build_tables/item_set_closure.h" #include "compiler/build_tables/rule_transitions.h" #include "compiler/build_tables/merge_transitions.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { using std::map; using std::unordered_set; using rules::CharacterSet; - using rules::Symbol; + using rules::ISymbol; namespace build_tables { map @@ -21,11 +22,11 @@ namespace tree_sitter { return result; } - map + map sym_transitions(const ParseItem &item, const PreparedGrammar &grammar) { - map result; + map result; for (auto transition : sym_transitions(item.rule)) { - Symbol rule = transition.first; + ISymbol rule = transition.first; ParseItem new_item(item.lhs, transition.second, item.consumed_symbol_count + 1, item.lookahead_sym); result.insert({ rule, item_set_closure(ParseItemSet({ new_item }), grammar) }); } @@ -53,11 +54,11 @@ namespace tree_sitter { return result; } - map + map sym_transitions(const ParseItemSet &item_set, const PreparedGrammar &grammar) { - map result; + map result; for (const ParseItem &item : item_set) { - map item_transitions = sym_transitions(item, grammar); + map item_transitions = sym_transitions(item, grammar); result = merge_sym_transitions(result, item_transitions, [&](ParseItemSet left, ParseItemSet right) { diff --git a/src/compiler/build_tables/item_set_transitions.h b/src/compiler/build_tables/item_set_transitions.h index 8eea288c..1a9379d2 100644 --- a/src/compiler/build_tables/item_set_transitions.h +++ b/src/compiler/build_tables/item_set_transitions.h @@ -16,7 +16,7 @@ namespace tree_sitter { std::map char_transitions(const LexItemSet &item_set, const PreparedGrammar &grammar); - std::map + std::map sym_transitions(const ParseItemSet &item_set, const PreparedGrammar &grammar); } } diff --git a/src/compiler/build_tables/lex_item.cc b/src/compiler/build_tables/lex_item.cc index 6d30c8d8..a6de7df5 100644 --- a/src/compiler/build_tables/lex_item.cc +++ b/src/compiler/build_tables/lex_item.cc @@ -11,7 +11,7 @@ namespace tree_sitter { using std::vector; namespace build_tables { - LexItem::LexItem(const rules::Symbol &lhs, const rules::rule_ptr rule) : + LexItem::LexItem(const rules::ISymbol &lhs, const rules::rule_ptr rule) : Item(lhs, rule) {} bool LexItem::operator==(const LexItem &other) const { diff --git a/src/compiler/build_tables/lex_item.h b/src/compiler/build_tables/lex_item.h index 7ee51993..7761d199 100644 --- a/src/compiler/build_tables/lex_item.h +++ b/src/compiler/build_tables/lex_item.h @@ -9,7 +9,7 @@ namespace tree_sitter { namespace build_tables { class LexItem : public Item { public: - LexItem(const rules::Symbol &lhs, rules::rule_ptr rule); + LexItem(const rules::ISymbol &lhs, rules::rule_ptr rule); bool operator==(const LexItem &other) const; bool is_token_start() const; }; @@ -25,7 +25,7 @@ namespace std { struct hash { size_t operator()(const tree_sitter::build_tables::Item &item) const { return - hash()(item.lhs) ^ + hash()(item.lhs) ^ hash()(item.rule); } }; diff --git a/src/compiler/build_tables/merge_transitions.h b/src/compiler/build_tables/merge_transitions.h index fe30fefc..223c385b 100644 --- a/src/compiler/build_tables/merge_transitions.h +++ b/src/compiler/build_tables/merge_transitions.h @@ -3,7 +3,7 @@ #include #include "compiler/rules/character_set.h" -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { namespace build_tables { @@ -15,11 +15,11 @@ namespace tree_sitter { * using the given function. */ template - std::map - merge_sym_transitions(const std::map &left, - const std::map &right, + std::map + merge_sym_transitions(const std::map &left, + const std::map &right, std::function merge_fn) { - std::map result(left); + std::map result(left); for (auto &pair : right) { auto rule = pair.first; bool merged = false; diff --git a/src/compiler/build_tables/parse_item.cc b/src/compiler/build_tables/parse_item.cc index 54c88e91..b851bb05 100644 --- a/src/compiler/build_tables/parse_item.cc +++ b/src/compiler/build_tables/parse_item.cc @@ -8,10 +8,10 @@ namespace tree_sitter { using std::ostream; namespace build_tables { - ParseItem::ParseItem(const rules::Symbol &lhs, + ParseItem::ParseItem(const rules::ISymbol &lhs, const rules::rule_ptr rule, size_t consumed_symbol_count, - const rules::Symbol &lookahead_sym) : + const rules::ISymbol &lookahead_sym) : Item(lhs, rule), consumed_symbol_count(consumed_symbol_count), lookahead_sym(lookahead_sym) {} diff --git a/src/compiler/build_tables/parse_item.h b/src/compiler/build_tables/parse_item.h index 6b13caa5..39e6b20b 100644 --- a/src/compiler/build_tables/parse_item.h +++ b/src/compiler/build_tables/parse_item.h @@ -3,7 +3,7 @@ #include #include -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" #include "compiler/build_tables/item.h" #include "compiler/rules/metadata.h" @@ -11,15 +11,15 @@ namespace tree_sitter { namespace build_tables { class ParseItem : public Item { public: - ParseItem(const rules::Symbol &lhs, + ParseItem(const rules::ISymbol &lhs, rules::rule_ptr rule, const size_t consumed_symbol_count, - const rules::Symbol &lookahead_sym); + const rules::ISymbol &lookahead_sym); bool operator==(const ParseItem &other) const; int precedence() const; const size_t consumed_symbol_count; - const rules::Symbol lookahead_sym; + const rules::ISymbol lookahead_sym; }; std::ostream& operator<<(std::ostream &stream, const ParseItem &item); @@ -33,10 +33,10 @@ namespace std { struct hash { size_t operator()(const tree_sitter::build_tables::ParseItem &item) const { return - hash()(item.lhs.name) ^ + hash()(item.lhs) ^ hash()(item.rule) ^ hash()(item.consumed_symbol_count) ^ - hash()(item.lookahead_sym.name); + hash()(item.lookahead_sym); } }; diff --git a/src/compiler/build_tables/rule_can_be_blank.cc b/src/compiler/build_tables/rule_can_be_blank.cc index b5f02172..505f0bdc 100644 --- a/src/compiler/build_tables/rule_can_be_blank.cc +++ b/src/compiler/build_tables/rule_can_be_blank.cc @@ -38,17 +38,17 @@ namespace tree_sitter { class CanBeBlankRecursive : public CanBeBlank { const PreparedGrammar grammar; - set visited_symbols; + set visited_symbols; using CanBeBlank::visit; public: using CanBeBlank::apply_to; explicit CanBeBlankRecursive(const PreparedGrammar &grammar) : grammar(grammar) {} - bool apply_to(const rules::Symbol *rule) { + bool apply_to(const rules::ISymbol *rule) { if (visited_symbols.find(*rule) == visited_symbols.end()) { visited_symbols.insert(*rule); - return grammar.has_definition(*rule) && apply(grammar.rule(*rule)); + return !rule->is_token() && apply(grammar.rule(*rule)); } else { return false; } diff --git a/src/compiler/build_tables/rule_transitions.cc b/src/compiler/build_tables/rule_transitions.cc index a9cfe33a..afa790a2 100644 --- a/src/compiler/build_tables/rule_transitions.cc +++ b/src/compiler/build_tables/rule_transitions.cc @@ -8,6 +8,7 @@ #include "compiler/rules/string.h" #include "compiler/rules/repeat.h" #include "compiler/rules/metadata.h" +#include "compiler/rules/interned_symbol.h" #include "compiler/rules/pattern.h" #include "compiler/rules/character_set.h" #include "compiler/rules/visitor.h" @@ -17,7 +18,7 @@ namespace tree_sitter { using std::set; using std::make_shared; using rules::rule_ptr; - using rules::Symbol; + using rules::ISymbol; using rules::CharacterSet; using rules::Metadata; @@ -35,8 +36,8 @@ namespace tree_sitter { } template<> - map - merge_transitions(const map &left, const map &right) { + map + merge_transitions(const map &left, const map &right) { return merge_sym_transitions(left, right, [](rule_ptr left, rule_ptr right) { return make_shared(left, right); }); @@ -65,7 +66,7 @@ namespace tree_sitter { return apply_to_atom(rule); } - map apply_to(const Symbol *rule) { + map apply_to(const ISymbol *rule) { return apply_to_atom(rule); } @@ -117,8 +118,8 @@ namespace tree_sitter { return RuleTransitions().apply(rule); } - map sym_transitions(const rule_ptr &rule) { - return RuleTransitions().apply(rule); + map sym_transitions(const rule_ptr &rule) { + return RuleTransitions().apply(rule); } } } diff --git a/src/compiler/build_tables/rule_transitions.h b/src/compiler/build_tables/rule_transitions.h index 29e43fdc..0aefa2a5 100644 --- a/src/compiler/build_tables/rule_transitions.h +++ b/src/compiler/build_tables/rule_transitions.h @@ -3,14 +3,14 @@ #include #include "compiler/rules/character_set.h" -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { namespace build_tables { std::map char_transitions(const rules::rule_ptr &rule); - std::map + std::map sym_transitions(const rules::rule_ptr &rule); } } diff --git a/src/compiler/compile.cc b/src/compiler/compile.cc index 1d6a6031..6194e8bf 100644 --- a/src/compiler/compile.cc +++ b/src/compiler/compile.cc @@ -3,7 +3,6 @@ #include "compiler/build_tables/build_tables.h" #include "compiler/generate_code/c_code.h" #include "compiler/prepared_grammar.h" -#include "compiler/name_symbols/name_symbols.h" namespace tree_sitter { using std::pair; @@ -15,15 +14,13 @@ namespace tree_sitter { PreparedGrammar &syntax_grammar = grammars.first; PreparedGrammar &lexical_grammar = grammars.second; - auto symbol_names = name_symbols::name_symbols(syntax_grammar, lexical_grammar); - - auto table_build_result = build_tables::build_tables(syntax_grammar, lexical_grammar, symbol_names); + auto table_build_result = build_tables::build_tables(syntax_grammar, lexical_grammar); auto tables = table_build_result.first; auto conflicts = table_build_result.second; ParseTable &parse_table = tables.first; LexTable &lex_table = tables.second; - return { generate_code::c_code(name, parse_table, lex_table, symbol_names), conflicts }; + return { generate_code::c_code(name, parse_table, lex_table, syntax_grammar, lexical_grammar), conflicts }; } } diff --git a/src/compiler/generate_code/c_code.cc b/src/compiler/generate_code/c_code.cc index afbb7c0c..108a6ccd 100644 --- a/src/compiler/generate_code/c_code.cc +++ b/src/compiler/generate_code/c_code.cc @@ -6,6 +6,8 @@ #include "compiler/generate_code/c_code.h" #include "compiler/util/string_helpers.h" #include "compiler/rules/built_in_symbols.h" +#include "compiler/prepared_grammar.h" +#include "compiler/generate_code/token_description.h" namespace tree_sitter { using std::string; @@ -52,17 +54,19 @@ namespace tree_sitter { const string name; const ParseTable parse_table; const LexTable lex_table; - const map symbol_names; + const PreparedGrammar syntax_grammar; + const PreparedGrammar lexical_grammar; public: CCodeGenerator(string name, const ParseTable &parse_table, const LexTable &lex_table, - const map &symbol_names) : + const PreparedGrammar &syntax_grammar, + const PreparedGrammar &lexical_grammar) : name(name), parse_table(parse_table), lex_table(lex_table), - symbol_names(symbol_names) - {} + syntax_grammar(syntax_grammar), + lexical_grammar(lexical_grammar) {} string code() { return join({ @@ -79,15 +83,33 @@ namespace tree_sitter { } private: - string symbol_id(rules::Symbol symbol) { + + const PreparedGrammar & grammar_for_symbol(const rules::ISymbol &symbol) { + return symbol.is_token() ? lexical_grammar : syntax_grammar; + } + + string symbol_id(const rules::ISymbol &symbol) { if (symbol.is_built_in()) { return (symbol == rules::ERROR()) ? "ts_builtin_sym_error" : "ts_builtin_sym_end"; - } else if (symbol.is_auxiliary()) { - return "ts_aux_sym_" + symbol.name; } else { - return "ts_sym_" + symbol.name; + string name = grammar_for_symbol(symbol).rule_name(symbol); + if (symbol.is_auxiliary()) + return "ts_aux_sym_" + name; + else + return "ts_sym_" + name; + } + } + + string symbol_name(const rules::ISymbol &symbol) { + if (symbol.is_built_in()) { + return (symbol == rules::ERROR()) ? "error" : "end"; + } else if (symbol.is_token() && symbol.is_auxiliary()) { + return token_description(grammar_for_symbol(symbol).rule(symbol)); + } else { + string name = grammar_for_symbol(symbol).rule_name(symbol); + return name; } } @@ -189,20 +211,20 @@ namespace tree_sitter { } string symbol_names_list() { - set symbols(parse_table.symbols); + set symbols(parse_table.symbols); symbols.insert(rules::END_OF_INPUT()); symbols.insert(rules::ERROR()); string result = "SYMBOL_NAMES = {\n"; for (auto symbol : parse_table.symbols) - result += indent("[" + symbol_id(symbol) + "] = \"" + symbol_names.find(symbol)->second) + "\",\n"; + result += indent("[" + symbol_id(symbol) + "] = \"" + symbol_name(symbol)) + "\",\n"; return result + "};"; } string hidden_symbols_list() { string result = "HIDDEN_SYMBOLS = {\n"; for (auto &symbol : parse_table.symbols) - if (symbol.is_hidden()) + if (!symbol.is_built_in() && (symbol.is_auxiliary() || grammar_for_symbol(symbol).rule_name(symbol)[0] == '_')) result += indent("[" + symbol_id(symbol) + "] = 1,") + "\n"; return result + "};"; } @@ -266,8 +288,9 @@ namespace tree_sitter { string c_code(string name, const ParseTable &parse_table, const LexTable &lex_table, - const map &symbol_names) { - return CCodeGenerator(name, parse_table, lex_table, symbol_names).code(); + const PreparedGrammar &syntax_grammar, + const PreparedGrammar &lexical_grammar) { + return CCodeGenerator(name, parse_table, lex_table, syntax_grammar, lexical_grammar).code(); } } } \ No newline at end of file diff --git a/src/compiler/generate_code/c_code.h b/src/compiler/generate_code/c_code.h index a5ad0f97..30e27b58 100644 --- a/src/compiler/generate_code/c_code.h +++ b/src/compiler/generate_code/c_code.h @@ -7,11 +7,14 @@ #include "compiler/lex_table.h" namespace tree_sitter { + class PreparedGrammar; + namespace generate_code { std::string c_code(std::string name, const ParseTable &parse_table, const LexTable &lex_table, - const std::map &symbol_names); + const PreparedGrammar &syntax_grammar, + const PreparedGrammar &lexical_grammar); } } diff --git a/src/compiler/generate_code/token_description.cc b/src/compiler/generate_code/token_description.cc new file mode 100644 index 00000000..3dea4ebc --- /dev/null +++ b/src/compiler/generate_code/token_description.cc @@ -0,0 +1,25 @@ +#include "compiler/generate_code/token_description.h" +#include "tree_sitter/compiler.h" +#include "compiler/rules/visitor.h" +#include "compiler/rules/pattern.h" +#include "compiler/rules/string.h" + +namespace tree_sitter { + using std::string; + + namespace generate_code { + class TokenDescription : public rules::RuleFn { + string apply_to(const rules::Pattern *rule) { + return "/" + rule->value + "/"; + } + + string apply_to(const rules::String *rule) { + return "'" + rule->value + "'"; + } + }; + + std::string token_description(const rules::rule_ptr &rule) { + return TokenDescription().apply(rule); + } + } +} diff --git a/src/compiler/generate_code/token_description.h b/src/compiler/generate_code/token_description.h new file mode 100644 index 00000000..38eff77d --- /dev/null +++ b/src/compiler/generate_code/token_description.h @@ -0,0 +1,13 @@ +#ifndef COMPILER_GENERATE_CODE_TOKEN_DESCRIPTION_H_ +#define COMPILER_GENERATE_CODE_TOKEN_DESCRIPTION_H_ + +#include +#include "tree_sitter/compiler.h" + +namespace tree_sitter { + namespace generate_code { + std::string token_description(const rules::rule_ptr &); + } +} + +#endif // COMPILER_GENERATE_CODE_TOKEN_DESCRIPTION_H_ \ No newline at end of file diff --git a/src/compiler/lex_table.cc b/src/compiler/lex_table.cc index 056f1ff6..0651e853 100644 --- a/src/compiler/lex_table.cc +++ b/src/compiler/lex_table.cc @@ -1,32 +1,33 @@ #include "compiler/lex_table.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { using std::string; using std::to_string; using std::map; using std::set; - using rules::Symbol; + using rules::ISymbol; using rules::CharacterSet; LexAction::LexAction() : type(LexActionTypeError), - symbol(Symbol("")), + symbol(ISymbol(-1)), state_index(-1) {} - LexAction::LexAction(LexActionType type, size_t state_index, Symbol symbol) : + LexAction::LexAction(LexActionType type, size_t state_index, ISymbol symbol) : type(type), symbol(symbol), state_index(state_index) {} LexAction LexAction::Error() { - return LexAction(LexActionTypeError, -1, Symbol("")); + return LexAction(LexActionTypeError, -1, ISymbol(-1)); } LexAction LexAction::Advance(size_t state_index) { - return LexAction(LexActionTypeAdvance, state_index, Symbol("")); + return LexAction(LexActionTypeAdvance, state_index, ISymbol(-1)); } - LexAction LexAction::Accept(Symbol symbol) { + LexAction LexAction::Accept(ISymbol symbol) { return LexAction(LexActionTypeAccept, -1, symbol); } @@ -42,7 +43,7 @@ namespace tree_sitter { case LexActionTypeError: return stream << string("#"); case LexActionTypeAccept: - return stream << string("#"; + return stream << string("#"; case LexActionTypeAdvance: return stream << string("#"; default: diff --git a/src/compiler/lex_table.h b/src/compiler/lex_table.h index 15808ead..f8c74d88 100644 --- a/src/compiler/lex_table.h +++ b/src/compiler/lex_table.h @@ -5,7 +5,7 @@ #include #include #include -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" #include "compiler/rules/character_set.h" namespace tree_sitter { @@ -16,16 +16,16 @@ namespace tree_sitter { } LexActionType; class LexAction { - LexAction(LexActionType type, size_t state_index, rules::Symbol symbol); + LexAction(LexActionType type, size_t state_index, rules::ISymbol symbol); public: LexAction(); - static LexAction Accept(rules::Symbol symbol); + static LexAction Accept(rules::ISymbol symbol); static LexAction Error(); static LexAction Advance(size_t state_index); bool operator==(const LexAction &action) const; LexActionType type; - rules::Symbol symbol; + rules::ISymbol symbol; size_t state_index; }; @@ -37,7 +37,7 @@ namespace std { struct hash { size_t operator()(const tree_sitter::LexAction &action) const { return (hash()(action.type) ^ - hash()(action.symbol) ^ + hash()(action.symbol) ^ hash()(action.state_index)); } }; diff --git a/src/compiler/name_symbols/name_symbols.cc b/src/compiler/name_symbols/name_symbols.cc deleted file mode 100644 index 9d4032dd..00000000 --- a/src/compiler/name_symbols/name_symbols.cc +++ /dev/null @@ -1,52 +0,0 @@ -#include "compiler/name_symbols/name_symbols.h" -#include "compiler/prepared_grammar.h" -#include "compiler/rules/rule.h" -#include "compiler/rules/visitor.h" -#include "compiler/rules/pattern.h" -#include "compiler/rules/string.h" -#include "compiler/util/string_helpers.h" -#include "compiler/rules/built_in_symbols.h" - -namespace tree_sitter { - namespace name_symbols { - using std::map; - using std::set; - using std::string; - using rules::Symbol; - using rules::SymbolTypeNormal; - using rules::SymbolTypeAuxiliary; - - class TokenName : public rules::RuleFn { - protected: - string apply_to(const rules::Pattern *rule) { - return "/" + util::escape_string(rule->value) + "/"; - } - - string apply_to(const rules::String *rule) { - return "'" + util::escape_string(rule->value) + "'"; - } - }; - - map name_symbols(const PreparedGrammar &syntactic_grammar, - const PreparedGrammar &lexical_grammar) { - map result; - - for (const auto &pair : syntactic_grammar.rules) - result.insert({ Symbol(pair.first, SymbolTypeNormal), pair.first }); - for (const auto &pair : lexical_grammar.rules) - result.insert({ Symbol(pair.first, SymbolTypeNormal), pair.first }); - for (const auto &pair : syntactic_grammar.aux_rules) - result.insert({ Symbol(pair.first, SymbolTypeAuxiliary), pair.first }); - for (const auto &pair : lexical_grammar.aux_rules) - result.insert({ - Symbol(pair.first, SymbolTypeAuxiliary), - TokenName().apply(pair.second) - }); - - result.insert({ rules::END_OF_INPUT(), "EOF" }); - result.insert({ rules::ERROR(), "ERROR" }); - - return result; - } - } -} diff --git a/src/compiler/name_symbols/name_symbols.h b/src/compiler/name_symbols/name_symbols.h deleted file mode 100644 index 8577a149..00000000 --- a/src/compiler/name_symbols/name_symbols.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef COMPILER_NAME_SYMBOLS_NAME_SYMBOLS_H_ -#define COMPILER_NAME_SYMBOLS_NAME_SYMBOLS_H_ - -#include -#include -#include -#include "compiler/rules/symbol.h" - -namespace tree_sitter { - class PreparedGrammar; - - namespace name_symbols { - std::map name_symbols(const PreparedGrammar &syntactic_grammar, - const PreparedGrammar &lexical_grammar); - } -} - -#endif // COMPILER_NAME_SYMBOLS_NAME_SYMBOLS_H_ diff --git a/src/compiler/parse_table.cc b/src/compiler/parse_table.cc index b5282261..d6281abf 100644 --- a/src/compiler/parse_table.cc +++ b/src/compiler/parse_table.cc @@ -7,11 +7,11 @@ namespace tree_sitter { using std::to_string; using std::set; using std::vector; - using rules::Symbol; + using rules::ISymbol; ParseAction::ParseAction(ParseActionType type, size_t state_index, - Symbol symbol, + ISymbol symbol, size_t consumed_symbol_count, set precedence_values) : type(type), @@ -22,23 +22,23 @@ namespace tree_sitter { ParseAction::ParseAction() : type(ParseActionTypeError), - symbol(Symbol("")), + symbol(ISymbol(-1)), state_index(-1), consumed_symbol_count(0) {} ParseAction ParseAction::Error() { - return ParseAction(ParseActionTypeError, -1, Symbol(""), 0, { 0 }); + return ParseAction(ParseActionTypeError, -1, ISymbol(-1), 0, { 0 }); } ParseAction ParseAction::Accept() { - return ParseAction(ParseActionTypeAccept, -1, Symbol(""), 0, { 0 }); + return ParseAction(ParseActionTypeAccept, -1, ISymbol(-1), 0, { 0 }); } ParseAction ParseAction::Shift(size_t state_index, set precedence_values) { - return ParseAction(ParseActionTypeShift, state_index, Symbol(""), 0, precedence_values); + return ParseAction(ParseActionTypeShift, state_index, ISymbol(-1), 0, precedence_values); } - ParseAction ParseAction::Reduce(Symbol symbol, size_t consumed_symbol_count, int precedence) { + ParseAction ParseAction::Reduce(ISymbol symbol, size_t consumed_symbol_count, int precedence) { return ParseAction(ParseActionTypeReduce, -1, symbol, consumed_symbol_count, { precedence }); } @@ -58,7 +58,7 @@ namespace tree_sitter { case ParseActionTypeShift: return stream << (string("#"); case ParseActionTypeReduce: - return stream << (string("#"); + return stream << (string("#"); default: return stream; } @@ -66,8 +66,8 @@ namespace tree_sitter { ParseState::ParseState() : lex_state_id(-1) {} - set ParseState::expected_inputs() const { - set result; + set ParseState::expected_inputs() const { + set result; for (auto &pair : actions) result.insert(pair.first); return result; @@ -90,7 +90,7 @@ namespace tree_sitter { return states.size() - 1; } - void ParseTable::add_action(ParseStateId id, Symbol symbol, ParseAction action) { + void ParseTable::add_action(ParseStateId id, ISymbol symbol, ParseAction action) { symbols.insert(symbol); states[id].actions[symbol] = action; } diff --git a/src/compiler/parse_table.h b/src/compiler/parse_table.h index 409594ec..0b93cf71 100644 --- a/src/compiler/parse_table.h +++ b/src/compiler/parse_table.h @@ -6,7 +6,7 @@ #include #include #include "compiler/lex_table.h" -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { typedef enum { @@ -19,7 +19,7 @@ namespace tree_sitter { class ParseAction { ParseAction(ParseActionType type, size_t state_index, - rules::Symbol symbol, + rules::ISymbol symbol, size_t consumed_symbol_count, std::set precedence_values); public: @@ -27,11 +27,11 @@ namespace tree_sitter { static ParseAction Accept(); static ParseAction Error(); static ParseAction Shift(size_t state_index, std::set precedence_values); - static ParseAction Reduce(rules::Symbol symbol, size_t consumed_symbol_count, int precedence); + static ParseAction Reduce(rules::ISymbol symbol, size_t consumed_symbol_count, int precedence); bool operator==(const ParseAction &action) const; ParseActionType type; - rules::Symbol symbol; + rules::ISymbol symbol; size_t state_index; size_t consumed_symbol_count; std::set precedence_values; @@ -46,7 +46,7 @@ namespace std { size_t operator()(const tree_sitter::ParseAction &action) const { return ( hash()(action.type) ^ - hash()(action.symbol) ^ + hash()(action.symbol) ^ hash()(action.state_index) ^ hash()(action.consumed_symbol_count)); } @@ -57,8 +57,8 @@ namespace tree_sitter { class ParseState { public: ParseState(); - std::map actions; - std::set expected_inputs() const; + std::map actions; + std::set expected_inputs() const; LexStateId lex_state_id; }; @@ -69,10 +69,10 @@ namespace tree_sitter { class ParseTable { public: uint64_t add_state(); - void add_action(ParseStateId state_id, rules::Symbol symbol, ParseAction action); + void add_action(ParseStateId state_id, rules::ISymbol symbol, ParseAction action); std::vector states; - std::set symbols; + std::set symbols; }; } diff --git a/src/compiler/prepare_grammar/expand_repeats.cc b/src/compiler/prepare_grammar/expand_repeats.cc index 694e4971..86f00961 100644 --- a/src/compiler/prepare_grammar/expand_repeats.cc +++ b/src/compiler/prepare_grammar/expand_repeats.cc @@ -22,7 +22,7 @@ namespace tree_sitter { using rules::Repeat; using rules::Rule; using rules::Seq; - using rules::Symbol; + using rules::ISymbol; namespace prepare_grammar { class ExpandRepeats : public rules::IdentityRuleFn { @@ -30,8 +30,9 @@ namespace tree_sitter { rule_ptr apply_to(const Repeat *rule) { rule_ptr inner_rule = apply(rule->content); - string helper_rule_name = rule_name + string("_repeat") + to_string(aux_rules.size() + 1); - rule_ptr repeat_symbol = make_shared(helper_rule_name, rules::SymbolTypeAuxiliary); + size_t index = aux_rules.size(); + string helper_rule_name = rule_name + string("_repeat") + to_string(index); + rule_ptr repeat_symbol = make_shared(offset + index, rules::SymbolOptionAuxiliary); aux_rules.push_back({ helper_rule_name, Choice::Build({ @@ -43,8 +44,9 @@ namespace tree_sitter { } public: - ExpandRepeats(string rule_name) : rule_name(rule_name) {} + ExpandRepeats(string rule_name, size_t offset) : rule_name(rule_name), offset(offset) {} + size_t offset; vector> aux_rules; }; @@ -52,7 +54,7 @@ namespace tree_sitter { vector> rules, aux_rules(grammar.aux_rules); for (auto &pair : grammar.rules) { - ExpandRepeats expander(pair.first); + ExpandRepeats expander(pair.first, aux_rules.size()); rules.push_back({ pair.first, expander.apply(pair.second) }); aux_rules.insert(aux_rules.end(), expander.aux_rules.begin(), expander.aux_rules.end()); } diff --git a/src/compiler/prepare_grammar/extract_tokens.cc b/src/compiler/prepare_grammar/extract_tokens.cc index a85be0fe..97578491 100644 --- a/src/compiler/prepare_grammar/extract_tokens.cc +++ b/src/compiler/prepare_grammar/extract_tokens.cc @@ -1,4 +1,5 @@ #include "compiler/prepare_grammar/extract_tokens.h" +#include #include #include #include "tree_sitter/compiler.h" @@ -15,69 +16,112 @@ namespace tree_sitter { using std::pair; using std::string; + using std::map; using std::to_string; using std::vector; using std::make_shared; using rules::rule_ptr; + using rules::ISymbol; + using std::dynamic_pointer_cast; namespace prepare_grammar { class IsToken : public rules::RuleFn { - bool apply_to(const rules::String *rule) { - return true; + bool apply_to(const rules::String *rule) { return true; } + bool apply_to(const rules::Pattern *rule) { return true; } + }; + + class SymbolInliner : public rules::IdentityRuleFn { + map replacements; + using rules::IdentityRuleFn::apply_to; + + int new_index_for_symbol(const ISymbol &symbol) { + int result = symbol.index; + for (const auto &pair : replacements) + if (pair.first.index < symbol.index && + pair.first.is_auxiliary() == symbol.is_auxiliary()) + result--; + return result; } - - bool apply_to(const rules::Pattern *rule) { - return true; + + rule_ptr apply_to(const ISymbol *rule) { + auto replacement_pair = replacements.find(*rule); + if (replacement_pair != replacements.end()) + return replacement_pair->second.copy(); + else if (rule->is_built_in()) + return rule->copy(); + else + return make_shared(new_index_for_symbol(*rule), rule->options); } + + public: + SymbolInliner(const map &replacements, size_t rule_count, size_t aux_rule_count) : + replacements(replacements) + {} }; class TokenExtractor : public rules::IdentityRuleFn { - string add_token(rule_ptr rule) { - for (auto pair : tokens) - if (*pair.second == *rule) - return pair.first; - string name = "token" + to_string(tokens.size() + 1); - tokens.push_back({ name, rule }); - return name; + size_t add_token(rule_ptr rule) { + for (size_t i = 0; i < tokens.size(); i++) + if (tokens[i].second->operator==(*rule)) + return i; + size_t index = tokens.size(); + tokens.push_back({ "token" + to_string(index), rule }); + return index; } rule_ptr default_apply(const rules::Rule *rule) { auto result = rule->copy(); if (IsToken().apply(result)) { - return make_shared(add_token(result), rules::SymbolTypeAuxiliary); + size_t index = add_token(result); + return make_shared(index, rules::SymbolOption(rules::SymbolOptionToken|rules::SymbolOptionAuxiliary)); } else { return result; } } - + public: - vector> tokens; + vector> tokens; }; pair extract_tokens(const PreparedGrammar &input_grammar) { - vector> rules, tokens, aux_rules, aux_tokens; + vector> rules, tokens, aux_rules, aux_tokens; TokenExtractor extractor; + map symbol_replacements; - for (auto &pair : input_grammar.rules) { - string name = pair.first; - rule_ptr rule = pair.second; - if (IsToken().apply(rule)) - tokens.push_back({ name, rule }); - else - rules.push_back({ name, extractor.apply(rule) }); + for (size_t i = 0; i < input_grammar.rules.size(); i++) { + auto pair = input_grammar.rules[i]; + if (IsToken().apply(pair.second)) { + tokens.push_back(pair); + symbol_replacements.insert({ + ISymbol(i), + ISymbol(tokens.size() - 1, rules::SymbolOption(rules::SymbolOptionToken)) + }); + } else { + rules.push_back({ pair.first, extractor.apply(pair.second) }); + } } - for (auto &pair : input_grammar.aux_rules) { - string name = pair.first; - rule_ptr rule = pair.second; - if (IsToken().apply(rule)) - aux_tokens.push_back({ name, rule }); - else - aux_rules.push_back({ name, extractor.apply(rule) }); + for (size_t i = 0; i < input_grammar.aux_rules.size(); i++) { + auto pair = input_grammar.aux_rules[i]; + if (IsToken().apply(pair.second)) { + aux_tokens.push_back(pair); + symbol_replacements.insert({ + ISymbol(i, rules::SymbolOptionAuxiliary), + ISymbol(aux_tokens.size() - 1, rules::SymbolOption(rules::SymbolOptionAuxiliary|rules::SymbolOptionToken)) + }); + } else { + aux_rules.push_back({ pair.first, extractor.apply(pair.second) }); + } } aux_tokens.insert(aux_tokens.end(), extractor.tokens.begin(), extractor.tokens.end()); + SymbolInliner inliner(symbol_replacements, input_grammar.rules.size(), input_grammar.aux_rules.size()); + for (auto &pair : rules) + pair.second = inliner.apply(pair.second); + for (auto &pair : aux_rules) + pair.second = inliner.apply(pair.second); + return { PreparedGrammar(rules, aux_rules), PreparedGrammar(tokens, aux_tokens) diff --git a/src/compiler/prepare_grammar/intern_symbols.cc b/src/compiler/prepare_grammar/intern_symbols.cc new file mode 100644 index 00000000..43eef891 --- /dev/null +++ b/src/compiler/prepare_grammar/intern_symbols.cc @@ -0,0 +1,65 @@ +#include "compiler/prepare_grammar/intern_symbols.h" +#include +#include "tree_sitter/compiler.h" +#include "compiler/prepared_grammar.h" +#include "compiler/rules/visitor.h" +#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" + +namespace tree_sitter { + using std::string; + using rules::rule_ptr; + using std::vector; + using std::pair; + using std::make_shared; + using std::exception; + + GrammarError::GrammarError(string rule_name) : rule_name(rule_name) {} + + string GrammarError::message() const { + return "Undefined rule '" + rule_name + "'"; + } + + namespace prepare_grammar { + class InternSymbols : public rules::IdentityRuleFn { + const Grammar grammar; + using rules::IdentityRuleFn::apply_to; + + long index_of(string rule_name) { + for (size_t i = 0; i < grammar.rules.size(); i++) + if (grammar.rules[i].first == rule_name) + return i; + return -1; + } + + rule_ptr apply_to(const rules::Symbol *rule) { + long index = index_of(rule->name); + if (index == -1) + missing_rule_name = rule->name; + return make_shared(index); + } + + public: + InternSymbols(const Grammar &grammar) : grammar(grammar) {} + + string missing_rule_name; + }; + + pair intern_symbols(const Grammar &grammar) { + InternSymbols interner(grammar); + vector> rules; + + for (auto &pair : grammar.rules) { + auto new_rule = interner.apply(pair.second); + if (!interner.missing_rule_name.empty()) + return { + PreparedGrammar(rules), + new GrammarError(interner.missing_rule_name) + }; + rules.push_back({ pair.first, new_rule }); + } + + return { PreparedGrammar(rules), nullptr }; + } + } +} diff --git a/src/compiler/prepare_grammar/intern_symbols.h b/src/compiler/prepare_grammar/intern_symbols.h new file mode 100644 index 00000000..11c9ba03 --- /dev/null +++ b/src/compiler/prepare_grammar/intern_symbols.h @@ -0,0 +1,23 @@ +#ifndef COMPILER_PREPARE_GRAMMAR_INTERN_SYMBOLS_H_ +#define COMPILER_PREPARE_GRAMMAR_INTERN_SYMBOLS_H_ + +#include +#include + +namespace tree_sitter { + class Grammar; + class PreparedGrammar; + + class GrammarError { + std::string rule_name; + public: + GrammarError(std::string rule_name); + std::string message() const; + }; + + namespace prepare_grammar { + std::pair intern_symbols(const Grammar &); + } +} + +#endif // COMPILER_PREPARE_GRAMMAR_INTERN_SYMBOLS_H_ diff --git a/src/compiler/prepare_grammar/prepare_grammar.cc b/src/compiler/prepare_grammar/prepare_grammar.cc index 3176a810..97ef3356 100644 --- a/src/compiler/prepare_grammar/prepare_grammar.cc +++ b/src/compiler/prepare_grammar/prepare_grammar.cc @@ -2,15 +2,21 @@ #include "compiler/prepared_grammar.h" #include "compiler/prepare_grammar/extract_tokens.h" #include "compiler/prepare_grammar/expand_repeats.h" +#include "compiler/prepare_grammar/intern_symbols.h" namespace tree_sitter { using std::pair; namespace prepare_grammar { pair prepare_grammar(const Grammar &input_grammar) { - auto grammars = prepare_grammar::extract_tokens(input_grammar); - auto rule_grammar = expand_repeats(grammars.first); - auto lex_grammar = grammars.second; + auto interned = intern_symbols(input_grammar); + if (interned.second) { + printf("Error!"); + exit(1); + } + auto grammars = extract_tokens(interned.first); + const auto &rule_grammar = expand_repeats(grammars.first); + const auto &lex_grammar = grammars.second; return { rule_grammar, lex_grammar }; } } diff --git a/src/compiler/prepared_grammar.cc b/src/compiler/prepared_grammar.cc index ac9584d6..fd158536 100644 --- a/src/compiler/prepared_grammar.cc +++ b/src/compiler/prepared_grammar.cc @@ -2,14 +2,14 @@ #include #include #include -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { using std::string; using std::pair; using std::ostream; using rules::rule_ptr; - using rules::Symbol; + using rules::ISymbol; PreparedGrammar::PreparedGrammar(const std::vector> &rules, const std::vector> &aux_rules) : @@ -20,12 +20,16 @@ namespace tree_sitter { Grammar(grammar), aux_rules({}) {} - const rule_ptr PreparedGrammar::rule(const Symbol &symbol) const { - auto rule_set = symbol.is_auxiliary() ? aux_rules : rules; - for (auto &pair : rule_set) - if (pair.first == symbol.name) - return pair.second; - return rule_ptr(); + const rule_ptr PreparedGrammar::rule(const ISymbol &symbol) const { + return symbol.is_auxiliary() ? + aux_rules[symbol.index].second : + rules[symbol.index].second; + } + + string PreparedGrammar::rule_name(const ISymbol &symbol) const { + return symbol.is_auxiliary() ? + aux_rules[symbol.index].first : + rules[symbol.index].first; } bool PreparedGrammar::operator==(const PreparedGrammar &other) const { @@ -40,19 +44,6 @@ namespace tree_sitter { return true; } - bool PreparedGrammar::has_definition(const Symbol &symbol) const { - return rule(symbol).get() != nullptr; - } - - size_t PreparedGrammar::index_of(const rules::Symbol &symbol) const { - for (size_t i = 0; i < rules.size(); i++) { - if (rules[i].first == symbol.name) { - return i; - } - } - return -1; - } - ostream& operator<<(ostream &stream, const PreparedGrammar &grammar) { stream << string("# #include #include "tree_sitter/compiler.h" -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { class PreparedGrammar : public Grammar { @@ -15,9 +15,8 @@ namespace tree_sitter { PreparedGrammar(const Grammar &grammar); bool operator==(const PreparedGrammar &other) const; - bool has_definition(const rules::Symbol &symbol) const; - const rules::rule_ptr rule(const rules::Symbol &symbol) const; - size_t index_of(const rules::Symbol &symbol) const; + std::string rule_name(const rules::ISymbol &symbol) const; + const rules::rule_ptr rule(const rules::ISymbol &symbol) const; const std::vector> aux_rules; }; diff --git a/src/compiler/rules/built_in_symbols.cc b/src/compiler/rules/built_in_symbols.cc index ee7a31ee..99efb0f7 100644 --- a/src/compiler/rules/built_in_symbols.cc +++ b/src/compiler/rules/built_in_symbols.cc @@ -2,8 +2,8 @@ namespace tree_sitter { namespace rules { - Symbol ERROR() { return Symbol("error", SymbolTypeBuiltIn); } - Symbol START() { return Symbol("start", SymbolTypeBuiltIn); } - Symbol END_OF_INPUT() { return Symbol("end", SymbolTypeBuiltIn); } + ISymbol END_OF_INPUT() { return ISymbol(-1, SymbolOptionToken); } + ISymbol ERROR() { return ISymbol(-2, SymbolOptionToken); } + ISymbol START() { return ISymbol(-3); } } } diff --git a/src/compiler/rules/built_in_symbols.h b/src/compiler/rules/built_in_symbols.h index bdbec4e5..34ceda50 100644 --- a/src/compiler/rules/built_in_symbols.h +++ b/src/compiler/rules/built_in_symbols.h @@ -1,13 +1,13 @@ #ifndef COMPILER_RULES_BUILT_IN_SYMBOLS_H_ #define COMPILER_RULES_BUILT_IN_SYMBOLS_H_ -#include "compiler/rules/symbol.h" +#include "compiler/rules/interned_symbol.h" namespace tree_sitter { namespace rules { - Symbol ERROR(); - Symbol START(); - Symbol END_OF_INPUT(); + ISymbol ERROR(); + ISymbol START(); + ISymbol END_OF_INPUT(); } } diff --git a/src/compiler/rules/interned_symbol.cc b/src/compiler/rules/interned_symbol.cc new file mode 100644 index 00000000..cc2958e1 --- /dev/null +++ b/src/compiler/rules/interned_symbol.cc @@ -0,0 +1,61 @@ +#include "compiler/rules/interned_symbol.h" +#include +#include +#include "compiler/rules/visitor.h" + +namespace tree_sitter { + using std::string; + using std::to_string; + using std::hash; + + namespace rules { + ISymbol::ISymbol(int index) : + index(index), + options(SymbolOption(0)) {} + + ISymbol::ISymbol(int index, SymbolOption options) : + index(index), + options(options) {} + + bool ISymbol::operator==(const Rule &rule) const { + const ISymbol *other = dynamic_cast(&rule); + return other && (other->index == index) && (other->options == options); + } + + size_t ISymbol::hash_code() const { + return hash()(index) ^ hash()(options); + } + + rule_ptr ISymbol::copy() const { + return std::make_shared(*this); + } + + string ISymbol::to_string() const { + string name = (options & SymbolOptionAuxiliary) ? "aux_" : ""; + name += (options & SymbolOptionToken) ? "token" : "sym"; + return "#<" + name + std::to_string(index) + ">"; + } + + bool ISymbol::operator<(const ISymbol &other) const { + if (options < other.options) return true; + if (options > other.options) return false; + return (index < other.index); + } + + bool ISymbol::is_token() const { + return options & SymbolOptionToken; + } + + bool ISymbol::is_built_in() const { + return index < 0; + } + + bool ISymbol::is_auxiliary() const { + return options & SymbolOptionAuxiliary; + } + + void ISymbol::accept(Visitor *visitor) const { + visitor->visit(this); + } + } +} diff --git a/src/compiler/rules/interned_symbol.h b/src/compiler/rules/interned_symbol.h new file mode 100644 index 00000000..e1b574ba --- /dev/null +++ b/src/compiler/rules/interned_symbol.h @@ -0,0 +1,45 @@ +#ifndef COMPILER_RULES_INTERNED_SYMBOL_H_ +#define COMPILER_RULES_INTERNED_SYMBOL_H_ + +#include "compiler/rules/symbol.h" + +namespace tree_sitter { + namespace rules { + typedef enum { + SymbolOptionToken = 1 << 0, + SymbolOptionAuxiliary = 1 << 1, + } SymbolOption; + + class ISymbol : public Rule { + public: + explicit ISymbol(int index); + ISymbol(int index, SymbolOption options); + + bool operator==(const Rule& other) const; + + size_t hash_code() const; + rule_ptr copy() const; + std::string to_string() const; + void accept(Visitor *visitor) const; + bool operator<(const ISymbol &other) const; + + bool is_token() const; + bool is_built_in() const; + bool is_auxiliary() const; + + int index; + SymbolOption options; + }; + } +} + +namespace std { + template<> + struct hash { + size_t operator()(const tree_sitter::rules::ISymbol &rule) const { + return rule.hash_code(); + } + }; +} + +#endif // COMPILER_RULES_INTERNED_SYMBOL_H_ diff --git a/src/compiler/rules/symbol.cc b/src/compiler/rules/symbol.cc index 9d68c42e..bb984157 100644 --- a/src/compiler/rules/symbol.cc +++ b/src/compiler/rules/symbol.cc @@ -8,8 +8,7 @@ namespace tree_sitter { using std::hash; namespace rules { - Symbol::Symbol(const std::string &name) : name(name), type(SymbolTypeNormal) {} - Symbol::Symbol(const std::string &name, SymbolType type) : name(name), type(type) {} + Symbol::Symbol(const std::string &name) : name(name) {} bool Symbol::operator==(const Rule &rule) const { const Symbol *other = dynamic_cast(&rule); @@ -17,11 +16,11 @@ namespace tree_sitter { } bool Symbol::operator==(const Symbol &other) const { - return (other.name == name) && (other.type == type); + return other.name == name; } size_t Symbol::hash_code() const { - return hash()(name) ^ hash()(type); + return hash()(name); } rule_ptr Symbol::copy() const { @@ -29,34 +28,11 @@ namespace tree_sitter { } string Symbol::to_string() const { - switch (type) { - case SymbolTypeNormal: - return string("#"; - case SymbolTypeAuxiliary: - return string("#"; - case SymbolTypeBuiltIn: - return string("#"; - default: - return ""; - } + return string("#"; } bool Symbol::operator<(const Symbol &other) const { - if (type < other.type) return true; - if (type > other.type) return false; - return (name < other.name); - } - - bool Symbol::is_built_in() const { - return type == SymbolTypeBuiltIn; - } - - bool Symbol::is_auxiliary() const { - return type == SymbolTypeAuxiliary; - } - - bool Symbol::is_hidden() const { - return (name.front() == '_' || type == SymbolTypeAuxiliary); + return name < other.name; } void Symbol::accept(Visitor *visitor) const { diff --git a/src/compiler/rules/symbol.h b/src/compiler/rules/symbol.h index 656a0aea..19692dc4 100644 --- a/src/compiler/rules/symbol.h +++ b/src/compiler/rules/symbol.h @@ -7,16 +7,9 @@ namespace tree_sitter { namespace rules { - typedef enum { - SymbolTypeNormal, - SymbolTypeAuxiliary, - SymbolTypeBuiltIn - } SymbolType; - class Symbol : public Rule { public: explicit Symbol(const std::string &name); - Symbol(const std::string &name, SymbolType type); bool operator==(const Rule& other) const; bool operator==(const Symbol &other) const; @@ -27,12 +20,7 @@ namespace tree_sitter { void accept(Visitor *visitor) const; bool operator<(const Symbol &other) const; - bool is_built_in() const; - bool is_hidden() const; - bool is_auxiliary() const; - std::string name; - SymbolType type; }; } } diff --git a/src/compiler/rules/visitor.h b/src/compiler/rules/visitor.h index c897dc14..44a02d01 100644 --- a/src/compiler/rules/visitor.h +++ b/src/compiler/rules/visitor.h @@ -12,6 +12,7 @@ namespace tree_sitter { class Repeat; class Seq; class String; + class ISymbol; class Pattern; class Metadata; @@ -26,6 +27,7 @@ namespace tree_sitter { virtual void visit(const Seq *rule) = 0; virtual void visit(const String *rule) = 0; virtual void visit(const Symbol *rule) = 0; + virtual void visit(const ISymbol *rule) = 0; }; template @@ -48,6 +50,7 @@ namespace tree_sitter { virtual T apply_to(const Seq *rule) { return default_apply((const Rule *)rule); } virtual T apply_to(const String *rule) { return default_apply((const Rule *)rule); } virtual T apply_to(const Symbol *rule) { return default_apply((const Rule *)rule); } + virtual T apply_to(const ISymbol *rule) { return default_apply((const Rule *)rule); } void visit(const Blank *rule) { value_ = apply_to(rule); } void visit(const CharacterSet *rule) { value_ = apply_to(rule); } @@ -58,12 +61,14 @@ namespace tree_sitter { void visit(const Seq *rule) { value_ = apply_to(rule); } void visit(const String *rule) { value_ = apply_to(rule); } void visit(const Symbol *rule) { value_ = apply_to(rule); } + void visit(const ISymbol *rule) { value_ = apply_to(rule); } private: T value_; }; class IdentityRuleFn : public RuleFn { + protected: virtual rule_ptr default_apply(const Rule *rule); virtual rule_ptr apply_to(const Choice *rule); virtual rule_ptr apply_to(const Metadata *rule);