diff --git a/examples/grammars/javascript.cc b/examples/grammars/javascript.cc index 763ca0f6..d6d5e1b9 100644 --- a/examples/grammars/javascript.cc +++ b/examples/grammars/javascript.cc @@ -17,15 +17,15 @@ namespace tree_sitter { Grammar javascript() { return Grammar({ { "program", repeat(sym("statement")) }, - { "terminator", choice({ + { "_terminator", choice({ str(";"), str("\n") }) }, { "statement", choice({ sym("if_statement"), - seq({ sym("assignment"), _sym("terminator") }), - seq({ sym("expression"), _sym("terminator") }) }) }, + seq({ sym("assignment"), sym("_terminator") }), + seq({ sym("expression"), sym("_terminator") }) }) }, { "if_statement", seq({ - _sym("IF"), + sym("_IF"), str("("), sym("expression"), str(")"), @@ -35,7 +35,7 @@ namespace tree_sitter { repeat(sym("statement")), str("}") }) }, { "assignment", seq({ - _sym("VAR"), + sym("_VAR"), sym("identifier"), str("="), sym("expression") })}, @@ -61,8 +61,8 @@ namespace tree_sitter { str("["), comma_sep(err(sym("expression"))), str("]") }) }, - { "VAR", str("var") }, - { "IF", str("if") }, + { "_VAR", str("var") }, + { "_IF", str("if") }, { "string", pattern("\"([^\"]|\\\\\")+\"") }, { "identifier", pattern("[\\w_$]+") }, { "number", pattern("\\d+(.\\d+)?") }, diff --git a/examples/grammars/json.cc b/examples/grammars/json.cc index ec59deaf..39b339a4 100644 --- a/examples/grammars/json.cc +++ b/examples/grammars/json.cc @@ -8,7 +8,7 @@ namespace tree_sitter { return choice({ seq({ rule, - repeat(seq({ _sym("comma"), rule })), + repeat(seq({ str(","), rule })), }), blank(), }); @@ -25,24 +25,18 @@ namespace tree_sitter { sym("false"), sym("null"), }) }, { "object", seq({ - _sym("left_brace"), + str("{"), comma_sep(err(seq({ sym("string"), - _sym("colon"), + str(":"), sym("value") }))), - _sym("right_brace"), }) }, + str("}"), }) }, { "array", seq({ - _sym("left_bracket"), + str("["), comma_sep(err(sym("value"))), - _sym("right_bracket"), }) }, + str("]"), }) }, { "string", pattern("\"([^\"]|\\\\\")+\"") }, { "number", pattern("\\d+(.\\d+)?") }, - { "comma", str(",") }, - { "colon", str(":") }, - { "left_bracket", str("[") }, - { "right_bracket", str("]") }, - { "left_brace", str("{") }, - { "right_brace", str("}") }, { "null", str("null") }, { "true", str("true") }, { "false", str("false") }, diff --git a/examples/parsers/javascript.c b/examples/parsers/javascript.c index 010ef357..19ce245f 100644 --- a/examples/parsers/javascript.c +++ b/examples/parsers/javascript.c @@ -3,6 +3,9 @@ #define TS_SYMBOL_COUNT 35 enum { + ts_sym__IF, + ts_sym__VAR, + ts_sym__terminator, ts_sym_array, ts_sym_assignment, ts_sym_expression, @@ -18,9 +21,6 @@ enum { ts_sym_statement_block, ts_sym_string, ts_sym_true, - ts_sym_IF, - ts_sym_VAR, - ts_sym_terminator, ts_aux_sym_repeat_helper1, ts_aux_sym_repeat_helper2, ts_aux_sym_repeat_helper3, @@ -39,6 +39,9 @@ enum { }; SYMBOL_NAMES = { + "_IF", + "_VAR", + "_terminator", "array", "assignment", "expression", @@ -54,9 +57,6 @@ SYMBOL_NAMES = { "statement_block", "string", "true", - "IF", - "VAR", - "terminator", "repeat_helper1", "repeat_helper2", "repeat_helper3", @@ -78,18 +78,14 @@ LEX_FN() { START_LEXER(); switch (LEX_STATE()) { case 0: - if (LOOKAHEAD_CHAR() == '\n') + if (LOOKAHEAD_CHAR() == ')') ADVANCE(1); - if (LOOKAHEAD_CHAR() == ';') - ADVANCE(2); LEX_ERROR(); case 1: - ACCEPT_TOKEN(ts_aux_sym_token2); + ACCEPT_TOKEN(ts_aux_sym_token4); case 2: - ACCEPT_TOKEN(ts_aux_sym_token1); - case 3: if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); + ADVANCE(8); if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || @@ -99,633 +95,564 @@ LEX_FN() { ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || (LOOKAHEAD_CHAR() == 'u') || ('w' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(19); + ADVANCE(18); if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(21); + ADVANCE(20); if (LOOKAHEAD_CHAR() == '[') - ADVANCE(26); + ADVANCE(25); if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(27); + ADVANCE(26); if (LOOKAHEAD_CHAR() == 'i') - ADVANCE(32); - if ('j' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'i') - ADVANCE(35); + ADVANCE(31); if (LOOKAHEAD_CHAR() == 'n') - ADVANCE(36); + ADVANCE(34); if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') - ADVANCE(43); + ADVANCE(41); if (LOOKAHEAD_CHAR() == 't') - ADVANCE(44); + ADVANCE(42); if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') - ADVANCE(51); + ADVANCE(49); if (LOOKAHEAD_CHAR() == 'v') - ADVANCE(52); - if ('w' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'v') - ADVANCE(57); + ADVANCE(50); if (LOOKAHEAD_CHAR() == '{') - ADVANCE(58); + ADVANCE(55); + LEX_ERROR(); + case 3: + if (LOOKAHEAD_CHAR() == 'a') + ADVANCE(4); LEX_ERROR(); case 4: - if (LOOKAHEAD_CHAR() == 'a') + if (LOOKAHEAD_CHAR() == 'l') ADVANCE(5); LEX_ERROR(); case 5: - if (LOOKAHEAD_CHAR() == 'l') + if (LOOKAHEAD_CHAR() == 's') ADVANCE(6); LEX_ERROR(); case 6: - if (LOOKAHEAD_CHAR() == 's') + if (LOOKAHEAD_CHAR() == 'e') ADVANCE(7); LEX_ERROR(); case 7: - if (LOOKAHEAD_CHAR() == 'e') - ADVANCE(8); - LEX_ERROR(); - case 8: ACCEPT_TOKEN(ts_sym_false); + case 8: + if (!((LOOKAHEAD_CHAR() == '\"') || + (LOOKAHEAD_CHAR() == '\\'))) + ADVANCE(9); + if (LOOKAHEAD_CHAR() == '\\') + ADVANCE(15); + if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') + ADVANCE(17); + LEX_ERROR(); case 9: if (!((LOOKAHEAD_CHAR() == '\"') || (LOOKAHEAD_CHAR() == '\\'))) ADVANCE(10); + if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(11); if (LOOKAHEAD_CHAR() == '\\') - ADVANCE(16); + ADVANCE(12); if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(18); + ADVANCE(14); LEX_ERROR(); case 10: if (!((LOOKAHEAD_CHAR() == '\"') || (LOOKAHEAD_CHAR() == '\\'))) - ADVANCE(11); + ADVANCE(10); if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(12); + ADVANCE(11); if (LOOKAHEAD_CHAR() == '\\') - ADVANCE(13); + ADVANCE(12); if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(15); + ADVANCE(14); LEX_ERROR(); case 11: + ACCEPT_TOKEN(ts_sym_string); + case 12: if (!((LOOKAHEAD_CHAR() == '\"') || (LOOKAHEAD_CHAR() == '\\'))) - ADVANCE(11); + ADVANCE(10); if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(12); - if (LOOKAHEAD_CHAR() == '\\') ADVANCE(13); + if ('#' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\"') + ADVANCE(10); + if (LOOKAHEAD_CHAR() == '\\') + ADVANCE(12); if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(15); + ADVANCE(14); LEX_ERROR(); - case 12: - ACCEPT_TOKEN(ts_sym_string); case 13: if (!((LOOKAHEAD_CHAR() == '\"') || (LOOKAHEAD_CHAR() == '\\'))) - ADVANCE(11); + ADVANCE(10); if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(14); - if ('#' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\"') ADVANCE(11); if (LOOKAHEAD_CHAR() == '\\') - ADVANCE(13); + ADVANCE(12); if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(15); - LEX_ERROR(); + ADVANCE(14); + ACCEPT_TOKEN(ts_sym_string); case 14: + if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(10); + LEX_ERROR(); + case 15: if (!((LOOKAHEAD_CHAR() == '\"') || (LOOKAHEAD_CHAR() == '\\'))) - ADVANCE(11); + ADVANCE(10); if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(12); + ADVANCE(16); + if ('#' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\"') + ADVANCE(9); if (LOOKAHEAD_CHAR() == '\\') - ADVANCE(13); + ADVANCE(12); if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(15); - ACCEPT_TOKEN(ts_sym_string); - case 15: - if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(11); + ADVANCE(14); LEX_ERROR(); case 16: if (!((LOOKAHEAD_CHAR() == '\"') || (LOOKAHEAD_CHAR() == '\\'))) - ADVANCE(11); - if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(17); - if ('#' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\"') ADVANCE(10); - if (LOOKAHEAD_CHAR() == '\\') - ADVANCE(13); - if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(15); - LEX_ERROR(); - case 17: - if (!((LOOKAHEAD_CHAR() == '\"') || - (LOOKAHEAD_CHAR() == '\\'))) - ADVANCE(11); if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(11); + if (LOOKAHEAD_CHAR() == '\\') ADVANCE(12); - if (LOOKAHEAD_CHAR() == '\\') - ADVANCE(13); if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\') - ADVANCE(15); + ADVANCE(14); ACCEPT_TOKEN(ts_sym_string); - case 18: + case 17: if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(10); + ADVANCE(9); LEX_ERROR(); + case 18: + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); + ACCEPT_TOKEN(ts_sym_identifier); case 19: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); ACCEPT_TOKEN(ts_sym_identifier); case 20: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_identifier); - case 21: if (LOOKAHEAD_CHAR() == '.') - ADVANCE(22); - if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(25); - ACCEPT_TOKEN(ts_sym_number); - case 22: - if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(23); - LEX_ERROR(); - case 23: + ADVANCE(21); if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') ADVANCE(24); ACCEPT_TOKEN(ts_sym_number); + case 21: + if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') + ADVANCE(22); + LEX_ERROR(); + case 22: + if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') + ADVANCE(23); + ACCEPT_TOKEN(ts_sym_number); + case 23: + if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') + ADVANCE(23); + ACCEPT_TOKEN(ts_sym_number); case 24: + if (LOOKAHEAD_CHAR() == '.') + ADVANCE(21); if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') ADVANCE(24); ACCEPT_TOKEN(ts_sym_number); case 25: - if (LOOKAHEAD_CHAR() == '.') - ADVANCE(22); - if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(25); - ACCEPT_TOKEN(ts_sym_number); - case 26: ACCEPT_TOKEN(ts_aux_sym_token10); - case 27: + case 26: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('b' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'a') + ADVANCE(27); + ACCEPT_TOKEN(ts_sym_identifier); + case 27: + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'k') || + ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); + if (LOOKAHEAD_CHAR() == 'l') ADVANCE(28); ACCEPT_TOKEN(ts_sym_identifier); case 28: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'k') || - ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 'l') + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'r') || + ('t' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); + if (LOOKAHEAD_CHAR() == 's') ADVANCE(29); ACCEPT_TOKEN(ts_sym_identifier); case 29: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'r') || - ('t' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 's') + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'd') || + ('f' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); + if (LOOKAHEAD_CHAR() == 'e') ADVANCE(30); ACCEPT_TOKEN(ts_sym_identifier); case 30: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'd') || - ('f' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 'e') - ADVANCE(31); + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); ACCEPT_TOKEN(ts_sym_identifier); case 31: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_identifier); - case 32: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'f') ADVANCE(33); - if ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'f') - ADVANCE(34); ACCEPT_TOKEN(ts_sym_identifier); + case 32: + ACCEPT_TOKEN(ts_sym__IF); case 33: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_IF); + ADVANCE(19); + ACCEPT_TOKEN(ts_sym__IF); case 34: - ACCEPT_TOKEN(ts_sym_IF); - case 35: - if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(34); - LEX_ERROR(); - case 36: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') || ('v' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'u') - ADVANCE(37); + ADVANCE(35); if ('v' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'u') - ADVANCE(42); + ADVANCE(40); + ACCEPT_TOKEN(ts_sym_identifier); + case 35: + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'k') || + ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); + if (LOOKAHEAD_CHAR() == 'l') + ADVANCE(36); + if ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'l') + ADVANCE(39); + ACCEPT_TOKEN(ts_sym_identifier); + case 36: + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'k') || + ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); + if (LOOKAHEAD_CHAR() == 'l') + ADVANCE(37); + if ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'l') + ADVANCE(38); ACCEPT_TOKEN(ts_sym_identifier); case 37: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'k') || - ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 'l') - ADVANCE(38); - if ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'l') - ADVANCE(41); + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(19); ACCEPT_TOKEN(ts_sym_identifier); case 38: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'k') || - ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ACCEPT_TOKEN(ts_sym_null); + case 39: + if (LOOKAHEAD_CHAR() == 'l') + ADVANCE(38); + LEX_ERROR(); + case 40: if (LOOKAHEAD_CHAR() == 'l') ADVANCE(39); - if ('m' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'l') - ADVANCE(40); - ACCEPT_TOKEN(ts_sym_identifier); - case 39: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_identifier); - case 40: - ACCEPT_TOKEN(ts_sym_null); + LEX_ERROR(); case 41: - if (LOOKAHEAD_CHAR() == 'l') + if (LOOKAHEAD_CHAR() == 'u') ADVANCE(40); LEX_ERROR(); case 42: - if (LOOKAHEAD_CHAR() == 'l') - ADVANCE(41); - LEX_ERROR(); - case 43: - if (LOOKAHEAD_CHAR() == 'u') - ADVANCE(42); - LEX_ERROR(); - case 44: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'q') || ('s' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'r') - ADVANCE(45); + ADVANCE(43); if ('s' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'r') - ADVANCE(50); + ADVANCE(48); ACCEPT_TOKEN(ts_sym_identifier); - case 45: + case 43: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') || ('v' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'u') - ADVANCE(46); + ADVANCE(44); if ('v' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'u') - ADVANCE(49); + ADVANCE(47); ACCEPT_TOKEN(ts_sym_identifier); - case 46: + case 44: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'd') || ('f' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'e') - ADVANCE(47); + ADVANCE(45); if ('f' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') - ADVANCE(48); + ADVANCE(46); ACCEPT_TOKEN(ts_sym_identifier); - case 47: + case 45: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); ACCEPT_TOKEN(ts_sym_identifier); - case 48: + case 46: ACCEPT_TOKEN(ts_sym_true); - case 49: + case 47: if (LOOKAHEAD_CHAR() == 'e') + ADVANCE(46); + LEX_ERROR(); + case 48: + if (LOOKAHEAD_CHAR() == 'u') + ADVANCE(47); + LEX_ERROR(); + case 49: + if (LOOKAHEAD_CHAR() == 'r') ADVANCE(48); LEX_ERROR(); case 50: - if (LOOKAHEAD_CHAR() == 'u') - ADVANCE(49); - LEX_ERROR(); - case 51: - if (LOOKAHEAD_CHAR() == 'r') - ADVANCE(50); - LEX_ERROR(); - case 52: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('b' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'a') ADVANCE(53); - if ('b' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'a') - ADVANCE(56); ACCEPT_TOKEN(ts_sym_identifier); + case 51: + if (LOOKAHEAD_CHAR() == 'r') + ADVANCE(52); + LEX_ERROR(); + case 52: + ACCEPT_TOKEN(ts_sym__VAR); case 53: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'q') || ('s' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); + ADVANCE(19); if (LOOKAHEAD_CHAR() == 'r') ADVANCE(54); - if ('s' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'r') - ADVANCE(55); ACCEPT_TOKEN(ts_sym_identifier); case 54: if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_VAR); + ADVANCE(19); + ACCEPT_TOKEN(ts_sym__VAR); case 55: - ACCEPT_TOKEN(ts_sym_VAR); + ACCEPT_TOKEN(ts_aux_sym_token5); case 56: - if (LOOKAHEAD_CHAR() == 'r') + if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(8); + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || + ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'h') || + ('j' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'm') || + ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || + (LOOKAHEAD_CHAR() == 'u') || + ('w' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(18); + if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') + ADVANCE(20); + if (LOOKAHEAD_CHAR() == '[') + ADVANCE(25); + if (LOOKAHEAD_CHAR() == 'f') + ADVANCE(26); + if (LOOKAHEAD_CHAR() == 'i') + ADVANCE(31); + if (LOOKAHEAD_CHAR() == 'n') + ADVANCE(34); + if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') + ADVANCE(41); + if (LOOKAHEAD_CHAR() == 't') + ADVANCE(42); + if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') + ADVANCE(49); + if (LOOKAHEAD_CHAR() == 'v') + ADVANCE(50); + if (LOOKAHEAD_CHAR() == '{') ADVANCE(55); + if (LOOKAHEAD_CHAR() == '}') + ADVANCE(57); LEX_ERROR(); case 57: - if (LOOKAHEAD_CHAR() == 'a') - ADVANCE(56); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token6); case 58: - ACCEPT_TOKEN(ts_aux_sym_token5); + if (LOOKAHEAD_CHAR() == '\n') + ADVANCE(59); + if (LOOKAHEAD_CHAR() == ';') + ADVANCE(60); + LEX_ERROR(); case 59: - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token2); case 60: - if (LOOKAHEAD_CHAR() == ')') - ADVANCE(61); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token1); case 61: - ACCEPT_TOKEN(ts_aux_sym_token4); - case 62: - if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || - ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'h') || - ('j' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'm') || - ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || - (LOOKAHEAD_CHAR() == 'u') || - ('w' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(19); - if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(21); - if (LOOKAHEAD_CHAR() == '[') - ADVANCE(26); - if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(27); - if (LOOKAHEAD_CHAR() == 'i') - ADVANCE(32); - if ('j' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'i') - ADVANCE(35); - if (LOOKAHEAD_CHAR() == 'n') - ADVANCE(36); - if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') - ADVANCE(43); - if (LOOKAHEAD_CHAR() == 't') - ADVANCE(44); - if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') - ADVANCE(51); - if (LOOKAHEAD_CHAR() == 'v') - ADVANCE(52); - if ('w' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'v') - ADVANCE(57); - if (LOOKAHEAD_CHAR() == '{') - ADVANCE(58); - if (LOOKAHEAD_CHAR() == '}') + if (LOOKAHEAD_CHAR() == ',') + ADVANCE(62); + if (LOOKAHEAD_CHAR() == ']') ADVANCE(63); LEX_ERROR(); + case 62: + ACCEPT_TOKEN(ts_aux_sym_token9); case 63: - ACCEPT_TOKEN(ts_aux_sym_token6); + ACCEPT_TOKEN(ts_aux_sym_token11); case 64: - if (LOOKAHEAD_CHAR() == ',') - ADVANCE(65); if (LOOKAHEAD_CHAR() == ']') - ADVANCE(66); + ADVANCE(63); LEX_ERROR(); case 65: - ACCEPT_TOKEN(ts_aux_sym_token9); + if (LOOKAHEAD_CHAR() == ',') + ADVANCE(62); + if (LOOKAHEAD_CHAR() == '}') + ADVANCE(57); + LEX_ERROR(); case 66: - ACCEPT_TOKEN(ts_aux_sym_token11); + if (LOOKAHEAD_CHAR() == '}') + ADVANCE(57); + LEX_ERROR(); case 67: + if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(8); + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || + ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'm') || + ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || + ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(18); + if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') + ADVANCE(20); + if (LOOKAHEAD_CHAR() == '[') + ADVANCE(25); if (LOOKAHEAD_CHAR() == ']') - ADVANCE(66); + ADVANCE(63); + if (LOOKAHEAD_CHAR() == 'f') + ADVANCE(26); + if (LOOKAHEAD_CHAR() == 'n') + ADVANCE(34); + if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') + ADVANCE(41); + if (LOOKAHEAD_CHAR() == 't') + ADVANCE(42); + if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') + ADVANCE(49); + if (LOOKAHEAD_CHAR() == '{') + ADVANCE(55); LEX_ERROR(); case 68: - if (LOOKAHEAD_CHAR() == ',') - ADVANCE(65); - if (LOOKAHEAD_CHAR() == '}') - ADVANCE(63); + if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(8); + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || + ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'm') || + ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || + ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(18); + if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') + ADVANCE(20); + if (LOOKAHEAD_CHAR() == '[') + ADVANCE(25); + if (LOOKAHEAD_CHAR() == 'f') + ADVANCE(26); + if (LOOKAHEAD_CHAR() == 'n') + ADVANCE(34); + if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') + ADVANCE(41); + if (LOOKAHEAD_CHAR() == 't') + ADVANCE(42); + if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') + ADVANCE(49); + if (LOOKAHEAD_CHAR() == '{') + ADVANCE(55); LEX_ERROR(); case 69: - if (LOOKAHEAD_CHAR() == '}') - ADVANCE(63); + if (LOOKAHEAD_CHAR() == ':') + ADVANCE(70); LEX_ERROR(); case 70: - if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || - ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'm') || - ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || - ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(19); - if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(21); - if (LOOKAHEAD_CHAR() == '[') - ADVANCE(26); - if (LOOKAHEAD_CHAR() == ']') - ADVANCE(66); - if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(27); - if (LOOKAHEAD_CHAR() == 'n') - ADVANCE(36); - if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') - ADVANCE(43); - if (LOOKAHEAD_CHAR() == 't') - ADVANCE(44); - if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') - ADVANCE(51); - if (LOOKAHEAD_CHAR() == '{') - ADVANCE(58); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token8); case 71: if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || - ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'm') || - ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || - ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(19); - if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(21); - if (LOOKAHEAD_CHAR() == '[') - ADVANCE(26); - if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(27); - if (LOOKAHEAD_CHAR() == 'n') - ADVANCE(36); - if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') - ADVANCE(43); - if (LOOKAHEAD_CHAR() == 't') - ADVANCE(44); - if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') - ADVANCE(51); - if (LOOKAHEAD_CHAR() == '{') - ADVANCE(58); + ADVANCE(8); + if (LOOKAHEAD_CHAR() == '}') + ADVANCE(57); LEX_ERROR(); case 72: - if (LOOKAHEAD_CHAR() == ':') - ADVANCE(73); + if (LOOKAHEAD_CHAR() == '\"') + ADVANCE(8); LEX_ERROR(); case 73: - ACCEPT_TOKEN(ts_aux_sym_token8); - case 74: - if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); - if (LOOKAHEAD_CHAR() == '}') - ADVANCE(63); + if (LOOKAHEAD_CHAR() == '=') + ADVANCE(74); LEX_ERROR(); + case 74: + ACCEPT_TOKEN(ts_aux_sym_token7); case 75: - if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); + if ((LOOKAHEAD_CHAR() == '$') || + ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || + (LOOKAHEAD_CHAR() == '_') || + ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) + ADVANCE(18); LEX_ERROR(); case 76: - if (LOOKAHEAD_CHAR() == '=') - ADVANCE(77); + if (LOOKAHEAD_CHAR() == '{') + ADVANCE(55); LEX_ERROR(); case 77: - ACCEPT_TOKEN(ts_aux_sym_token7); - case 78: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(19); - LEX_ERROR(); - case 79: - if (LOOKAHEAD_CHAR() == '{') - ADVANCE(58); - LEX_ERROR(); - case 80: if (LOOKAHEAD_CHAR() == '(') - ADVANCE(81); + ADVANCE(78); LEX_ERROR(); - case 81: + case 78: ACCEPT_TOKEN(ts_aux_sym_token3); - case 82: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'e') || - ('g' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(84); - ACCEPT_TOKEN(ts_sym_identifier); - case 83: - ACCEPT_TOKEN(ts_sym_IF); - case 84: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_IF); - case 85: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('b' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 'a') - ADVANCE(88); - ACCEPT_TOKEN(ts_sym_identifier); - case 86: - if (LOOKAHEAD_CHAR() == 'r') - ADVANCE(87); + case 79: LEX_ERROR(); - case 87: - ACCEPT_TOKEN(ts_sym_VAR); - case 88: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'q') || - ('s' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - if (LOOKAHEAD_CHAR() == 'r') - ADVANCE(89); - ACCEPT_TOKEN(ts_sym_identifier); - case 89: - if ((LOOKAHEAD_CHAR() == '$') || - ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || - (LOOKAHEAD_CHAR() == '_') || - ('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_VAR); case ts_lex_state_error: if (LOOKAHEAD_CHAR() == '\n') - ADVANCE(1); + ADVANCE(59); if (LOOKAHEAD_CHAR() == '\"') - ADVANCE(9); + ADVANCE(8); if ((LOOKAHEAD_CHAR() == '$') || ('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') || (LOOKAHEAD_CHAR() == '_') || @@ -735,43 +662,43 @@ LEX_FN() { ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 's') || (LOOKAHEAD_CHAR() == 'u') || ('w' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z')) - ADVANCE(19); + ADVANCE(18); if (LOOKAHEAD_CHAR() == '(') - ADVANCE(81); + ADVANCE(78); if (LOOKAHEAD_CHAR() == ')') - ADVANCE(61); + ADVANCE(1); if (LOOKAHEAD_CHAR() == ',') - ADVANCE(65); + ADVANCE(62); if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') - ADVANCE(21); + ADVANCE(20); if (LOOKAHEAD_CHAR() == ':') - ADVANCE(73); + ADVANCE(70); if (LOOKAHEAD_CHAR() == ';') - ADVANCE(2); + ADVANCE(60); if (LOOKAHEAD_CHAR() == '=') - ADVANCE(77); + ADVANCE(74); if (LOOKAHEAD_CHAR() == '[') - ADVANCE(26); + ADVANCE(25); if (LOOKAHEAD_CHAR() == ']') - ADVANCE(66); - if (LOOKAHEAD_CHAR() == 'f') - ADVANCE(27); - if (LOOKAHEAD_CHAR() == 'i') - ADVANCE(82); - if (LOOKAHEAD_CHAR() == 'n') - ADVANCE(36); - if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') - ADVANCE(43); - if (LOOKAHEAD_CHAR() == 't') - ADVANCE(44); - if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') - ADVANCE(51); - if (LOOKAHEAD_CHAR() == 'v') - ADVANCE(85); - if (LOOKAHEAD_CHAR() == '{') - ADVANCE(58); - if (LOOKAHEAD_CHAR() == '}') ADVANCE(63); + if (LOOKAHEAD_CHAR() == 'f') + ADVANCE(26); + if (LOOKAHEAD_CHAR() == 'i') + ADVANCE(31); + if (LOOKAHEAD_CHAR() == 'n') + ADVANCE(34); + if ('o' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'n') + ADVANCE(41); + if (LOOKAHEAD_CHAR() == 't') + ADVANCE(42); + if ('u' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 't') + ADVANCE(49); + if (LOOKAHEAD_CHAR() == 'v') + ADVANCE(50); + if (LOOKAHEAD_CHAR() == '{') + ADVANCE(55); + if (LOOKAHEAD_CHAR() == '}') + ADVANCE(57); LEX_ERROR(); default: LEX_PANIC(); @@ -782,977 +709,977 @@ PARSE_TABLE() { START_TABLE(113) STATE(0); - SET_LEX_STATE(3); - SHIFT(ts_sym_array, 1) - SHIFT(ts_sym_assignment, 2) - SHIFT(ts_sym_expression, 2) - SHIFT(ts_sym_false, 1) - SHIFT(ts_sym_identifier, 5) - SHIFT(ts_sym_if_statement, 6) - SHIFT(ts_sym_literal, 5) - SHIFT(ts_sym_null, 1) - SHIFT(ts_sym_number, 1) - SHIFT(ts_sym_object, 1) - SHIFT(ts_sym_program, 7) - SHIFT(ts_sym_statement, 8) - SHIFT(ts_sym_string, 1) - SHIFT(ts_sym_true, 1) - SHIFT(ts_sym_IF, 9) - SHIFT(ts_sym_VAR, 27) + SET_LEX_STATE(2); + SHIFT(ts_sym__IF, 1) + SHIFT(ts_sym__VAR, 14) + SHIFT(ts_sym_array, 17) + SHIFT(ts_sym_assignment, 105) + SHIFT(ts_sym_expression, 105) + SHIFT(ts_sym_false, 17) + SHIFT(ts_sym_identifier, 19) + SHIFT(ts_sym_if_statement, 108) + SHIFT(ts_sym_literal, 19) + SHIFT(ts_sym_null, 17) + SHIFT(ts_sym_number, 17) + SHIFT(ts_sym_object, 17) + SHIFT(ts_sym_program, 109) + SHIFT(ts_sym_statement, 110) + SHIFT(ts_sym_string, 17) + SHIFT(ts_sym_true, 17) SHIFT(ts_aux_sym_repeat_helper1, 112) - SHIFT(ts_aux_sym_token10, 31) - SHIFT(ts_aux_sym_token5, 80) + SHIFT(ts_aux_sym_token10, 20) + SHIFT(ts_aux_sym_token5, 69) REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(1); - SET_LEX_STATE(0); - REDUCE(ts_aux_sym_token1, ts_sym_literal, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token2, ts_sym_literal, 1, COLLAPSE({0})) + SET_LEX_STATE(77); + SHIFT(ts_aux_sym_token3, 2) END_STATE(); STATE(2); - SET_LEX_STATE(0); - SHIFT(ts_sym_terminator, 3) - SHIFT(ts_aux_sym_token1, 4) - SHIFT(ts_aux_sym_token2, 4) + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 3) + SHIFT(ts_sym_expression, 4) + SHIFT(ts_sym_false, 3) + SHIFT(ts_sym_identifier, 87) + SHIFT(ts_sym_literal, 87) + SHIFT(ts_sym_null, 3) + SHIFT(ts_sym_number, 3) + SHIFT(ts_sym_object, 3) + SHIFT(ts_sym_string, 3) + SHIFT(ts_sym_true, 3) + SHIFT(ts_aux_sym_token10, 88) + SHIFT(ts_aux_sym_token5, 93) END_STATE(); STATE(3); - SET_LEX_STATE(3); - REDUCE(ts_sym_false, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_identifier, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_null, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_number, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_string, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_true, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_IF, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_VAR, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_aux_sym_token10, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_aux_sym_token5, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_builtin_sym_end, ts_sym_statement, 2, COLLAPSE({0, 1})) - END_STATE(); - - STATE(4); - SET_LEX_STATE(3); - REDUCE(ts_sym_false, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_identifier, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_null, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_number, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_string, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_true, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_IF, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_VAR, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_aux_sym_token10, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_aux_sym_token5, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_builtin_sym_end, ts_sym_terminator, 1, COLLAPSE({1})) - END_STATE(); - - STATE(5); SET_LEX_STATE(0); - REDUCE(ts_aux_sym_token1, ts_sym_expression, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token2, ts_sym_expression, 1, COLLAPSE({0})) - END_STATE(); - - STATE(6); - SET_LEX_STATE(3); - REDUCE(ts_sym_false, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_identifier, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_null, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_number, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_string, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_true, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_IF, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_VAR, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token10, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token5, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_builtin_sym_end, ts_sym_statement, 1, COLLAPSE({0})) - END_STATE(); - - STATE(7); - SET_LEX_STATE(59); - ACCEPT_INPUT(ts_builtin_sym_end) - END_STATE(); - - STATE(8); - SET_LEX_STATE(3); - SHIFT(ts_sym_array, 1) - SHIFT(ts_sym_assignment, 2) - SHIFT(ts_sym_expression, 2) - SHIFT(ts_sym_false, 1) - SHIFT(ts_sym_identifier, 5) - SHIFT(ts_sym_if_statement, 6) - SHIFT(ts_sym_literal, 5) - SHIFT(ts_sym_null, 1) - SHIFT(ts_sym_number, 1) - SHIFT(ts_sym_object, 1) - SHIFT(ts_sym_statement, 8) - SHIFT(ts_sym_string, 1) - SHIFT(ts_sym_true, 1) - SHIFT(ts_sym_IF, 9) - SHIFT(ts_sym_VAR, 27) - SHIFT(ts_aux_sym_repeat_helper1, 111) - SHIFT(ts_aux_sym_token10, 31) - SHIFT(ts_aux_sym_token5, 80) - REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - END_STATE(); - - STATE(9); - SET_LEX_STATE(80); - SHIFT(ts_aux_sym_token3, 10) - END_STATE(); - - STATE(10); - SET_LEX_STATE(71); - SHIFT(ts_sym_array, 11) - SHIFT(ts_sym_expression, 12) - SHIFT(ts_sym_false, 11) - SHIFT(ts_sym_identifier, 92) - SHIFT(ts_sym_literal, 92) - SHIFT(ts_sym_null, 11) - SHIFT(ts_sym_number, 11) - SHIFT(ts_sym_object, 11) - SHIFT(ts_sym_string, 11) - SHIFT(ts_sym_true, 11) - SHIFT(ts_aux_sym_token10, 93) - SHIFT(ts_aux_sym_token5, 98) - END_STATE(); - - STATE(11); - SET_LEX_STATE(60); REDUCE(ts_aux_sym_token4, ts_sym_literal, 1, COLLAPSE({0})) END_STATE(); - STATE(12); - SET_LEX_STATE(60); - SHIFT(ts_aux_sym_token4, 13) + STATE(4); + SET_LEX_STATE(0); + SHIFT(ts_aux_sym_token4, 5) END_STATE(); - STATE(13); - SET_LEX_STATE(79); - SHIFT(ts_sym_statement_block, 14) - SHIFT(ts_aux_sym_token5, 15) + STATE(5); + SET_LEX_STATE(76); + SHIFT(ts_sym_statement_block, 6) + SHIFT(ts_aux_sym_token5, 7) END_STATE(); - STATE(14); - SET_LEX_STATE(3); + STATE(6); + SET_LEX_STATE(2); + REDUCE(ts_sym__IF, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) + REDUCE(ts_sym__VAR, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_false, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_identifier, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_null, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_number, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_string, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_true, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) - REDUCE(ts_sym_IF, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) - REDUCE(ts_sym_VAR, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_aux_sym_token10, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_aux_sym_token5, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_builtin_sym_end, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) END_STATE(); - STATE(15); - SET_LEX_STATE(62); - SHIFT(ts_sym_array, 1) - SHIFT(ts_sym_assignment, 16) - SHIFT(ts_sym_expression, 16) - SHIFT(ts_sym_false, 1) - SHIFT(ts_sym_identifier, 5) - SHIFT(ts_sym_if_statement, 19) - SHIFT(ts_sym_literal, 5) - SHIFT(ts_sym_null, 1) - SHIFT(ts_sym_number, 1) - SHIFT(ts_sym_object, 1) - SHIFT(ts_sym_statement, 20) - SHIFT(ts_sym_string, 1) - SHIFT(ts_sym_true, 1) - SHIFT(ts_sym_IF, 21) - SHIFT(ts_sym_VAR, 27) - SHIFT(ts_aux_sym_repeat_helper2, 109) - SHIFT(ts_aux_sym_token10, 31) - SHIFT(ts_aux_sym_token5, 80) + STATE(7); + SET_LEX_STATE(56); + SHIFT(ts_sym__IF, 8) + SHIFT(ts_sym__VAR, 14) + SHIFT(ts_sym_array, 17) + SHIFT(ts_sym_assignment, 79) + SHIFT(ts_sym_expression, 79) + SHIFT(ts_sym_false, 17) + SHIFT(ts_sym_identifier, 19) + SHIFT(ts_sym_if_statement, 82) + SHIFT(ts_sym_literal, 19) + SHIFT(ts_sym_null, 17) + SHIFT(ts_sym_number, 17) + SHIFT(ts_sym_object, 17) + SHIFT(ts_sym_statement, 83) + SHIFT(ts_sym_string, 17) + SHIFT(ts_sym_true, 17) + SHIFT(ts_aux_sym_repeat_helper2, 103) + SHIFT(ts_aux_sym_token10, 20) + SHIFT(ts_aux_sym_token5, 69) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) END_STATE(); - STATE(16); + STATE(8); + SET_LEX_STATE(77); + SHIFT(ts_aux_sym_token3, 9) + END_STATE(); + + STATE(9); + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 3) + SHIFT(ts_sym_expression, 10) + SHIFT(ts_sym_false, 3) + SHIFT(ts_sym_identifier, 87) + SHIFT(ts_sym_literal, 87) + SHIFT(ts_sym_null, 3) + SHIFT(ts_sym_number, 3) + SHIFT(ts_sym_object, 3) + SHIFT(ts_sym_string, 3) + SHIFT(ts_sym_true, 3) + SHIFT(ts_aux_sym_token10, 88) + SHIFT(ts_aux_sym_token5, 93) + END_STATE(); + + STATE(10); SET_LEX_STATE(0); - SHIFT(ts_sym_terminator, 17) - SHIFT(ts_aux_sym_token1, 18) - SHIFT(ts_aux_sym_token2, 18) + SHIFT(ts_aux_sym_token4, 11) END_STATE(); - STATE(17); - SET_LEX_STATE(62); - REDUCE(ts_sym_false, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_identifier, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_null, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_number, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_string, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_true, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_IF, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_sym_VAR, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_aux_sym_token10, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_aux_sym_token5, ts_sym_statement, 2, COLLAPSE({0, 1})) - REDUCE(ts_aux_sym_token6, ts_sym_statement, 2, COLLAPSE({0, 1})) + STATE(11); + SET_LEX_STATE(76); + SHIFT(ts_sym_statement_block, 12) + SHIFT(ts_aux_sym_token5, 13) END_STATE(); - STATE(18); - SET_LEX_STATE(62); - REDUCE(ts_sym_false, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_identifier, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_null, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_number, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_string, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_true, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_IF, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_sym_VAR, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_aux_sym_token10, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_aux_sym_token5, ts_sym_terminator, 1, COLLAPSE({1})) - REDUCE(ts_aux_sym_token6, ts_sym_terminator, 1, COLLAPSE({1})) - END_STATE(); - - STATE(19); - SET_LEX_STATE(62); - REDUCE(ts_sym_false, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_identifier, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_null, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_number, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_string, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_true, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_IF, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_sym_VAR, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token10, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token5, ts_sym_statement, 1, COLLAPSE({0})) - REDUCE(ts_aux_sym_token6, ts_sym_statement, 1, COLLAPSE({0})) - END_STATE(); - - STATE(20); - SET_LEX_STATE(62); - SHIFT(ts_sym_array, 1) - SHIFT(ts_sym_assignment, 16) - SHIFT(ts_sym_expression, 16) - SHIFT(ts_sym_false, 1) - SHIFT(ts_sym_identifier, 5) - SHIFT(ts_sym_if_statement, 19) - SHIFT(ts_sym_literal, 5) - SHIFT(ts_sym_null, 1) - SHIFT(ts_sym_number, 1) - SHIFT(ts_sym_object, 1) - SHIFT(ts_sym_statement, 20) - SHIFT(ts_sym_string, 1) - SHIFT(ts_sym_true, 1) - SHIFT(ts_sym_IF, 21) - SHIFT(ts_sym_VAR, 27) - SHIFT(ts_aux_sym_repeat_helper2, 108) - SHIFT(ts_aux_sym_token10, 31) - SHIFT(ts_aux_sym_token5, 80) - REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) - END_STATE(); - - STATE(21); - SET_LEX_STATE(80); - SHIFT(ts_aux_sym_token3, 22) - END_STATE(); - - STATE(22); - SET_LEX_STATE(71); - SHIFT(ts_sym_array, 11) - SHIFT(ts_sym_expression, 23) - SHIFT(ts_sym_false, 11) - SHIFT(ts_sym_identifier, 92) - SHIFT(ts_sym_literal, 92) - SHIFT(ts_sym_null, 11) - SHIFT(ts_sym_number, 11) - SHIFT(ts_sym_object, 11) - SHIFT(ts_sym_string, 11) - SHIFT(ts_sym_true, 11) - SHIFT(ts_aux_sym_token10, 93) - SHIFT(ts_aux_sym_token5, 98) - END_STATE(); - - STATE(23); - SET_LEX_STATE(60); - SHIFT(ts_aux_sym_token4, 24) - END_STATE(); - - STATE(24); - SET_LEX_STATE(79); - SHIFT(ts_sym_statement_block, 25) - SHIFT(ts_aux_sym_token5, 26) - END_STATE(); - - STATE(25); - SET_LEX_STATE(62); + STATE(12); + SET_LEX_STATE(56); + REDUCE(ts_sym__IF, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) + REDUCE(ts_sym__VAR, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_false, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_identifier, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_null, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_number, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_string, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_sym_true, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) - REDUCE(ts_sym_IF, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) - REDUCE(ts_sym_VAR, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_aux_sym_token10, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_aux_sym_token5, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) REDUCE(ts_aux_sym_token6, ts_sym_if_statement, 5, COLLAPSE({1, 1, 0, 1, 0})) END_STATE(); - STATE(26); - SET_LEX_STATE(62); - SHIFT(ts_sym_array, 1) - SHIFT(ts_sym_assignment, 16) - SHIFT(ts_sym_expression, 16) - SHIFT(ts_sym_false, 1) - SHIFT(ts_sym_identifier, 5) - SHIFT(ts_sym_if_statement, 19) - SHIFT(ts_sym_literal, 5) - SHIFT(ts_sym_null, 1) - SHIFT(ts_sym_number, 1) - SHIFT(ts_sym_object, 1) - SHIFT(ts_sym_statement, 20) - SHIFT(ts_sym_string, 1) - SHIFT(ts_sym_true, 1) - SHIFT(ts_sym_IF, 21) - SHIFT(ts_sym_VAR, 27) - SHIFT(ts_aux_sym_repeat_helper2, 90) - SHIFT(ts_aux_sym_token10, 31) - SHIFT(ts_aux_sym_token5, 80) + STATE(13); + SET_LEX_STATE(56); + SHIFT(ts_sym__IF, 8) + SHIFT(ts_sym__VAR, 14) + SHIFT(ts_sym_array, 17) + SHIFT(ts_sym_assignment, 79) + SHIFT(ts_sym_expression, 79) + SHIFT(ts_sym_false, 17) + SHIFT(ts_sym_identifier, 19) + SHIFT(ts_sym_if_statement, 82) + SHIFT(ts_sym_literal, 19) + SHIFT(ts_sym_null, 17) + SHIFT(ts_sym_number, 17) + SHIFT(ts_sym_object, 17) + SHIFT(ts_sym_statement, 83) + SHIFT(ts_sym_string, 17) + SHIFT(ts_sym_true, 17) + SHIFT(ts_aux_sym_repeat_helper2, 85) + SHIFT(ts_aux_sym_token10, 20) + SHIFT(ts_aux_sym_token5, 69) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) END_STATE(); - STATE(27); - SET_LEX_STATE(78); - SHIFT(ts_sym_identifier, 28) + STATE(14); + SET_LEX_STATE(75); + SHIFT(ts_sym_identifier, 15) END_STATE(); - STATE(28); - SET_LEX_STATE(76); - SHIFT(ts_aux_sym_token7, 29) + STATE(15); + SET_LEX_STATE(73); + SHIFT(ts_aux_sym_token7, 16) END_STATE(); - STATE(29); - SET_LEX_STATE(71); - SHIFT(ts_sym_array, 1) - SHIFT(ts_sym_expression, 30) - SHIFT(ts_sym_false, 1) - SHIFT(ts_sym_identifier, 5) - SHIFT(ts_sym_literal, 5) - SHIFT(ts_sym_null, 1) - SHIFT(ts_sym_number, 1) - SHIFT(ts_sym_object, 1) - SHIFT(ts_sym_string, 1) - SHIFT(ts_sym_true, 1) - SHIFT(ts_aux_sym_token10, 31) - SHIFT(ts_aux_sym_token5, 80) + STATE(16); + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 17) + SHIFT(ts_sym_expression, 18) + SHIFT(ts_sym_false, 17) + SHIFT(ts_sym_identifier, 19) + SHIFT(ts_sym_literal, 19) + SHIFT(ts_sym_null, 17) + SHIFT(ts_sym_number, 17) + SHIFT(ts_sym_object, 17) + SHIFT(ts_sym_string, 17) + SHIFT(ts_sym_true, 17) + SHIFT(ts_aux_sym_token10, 20) + SHIFT(ts_aux_sym_token5, 69) END_STATE(); - STATE(30); - SET_LEX_STATE(0); + STATE(17); + SET_LEX_STATE(58); + REDUCE(ts_aux_sym_token1, ts_sym_literal, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token2, ts_sym_literal, 1, COLLAPSE({0})) + END_STATE(); + + STATE(18); + SET_LEX_STATE(58); REDUCE(ts_aux_sym_token1, ts_sym_assignment, 4, COLLAPSE({1, 0, 1, 0})) REDUCE(ts_aux_sym_token2, ts_sym_assignment, 4, COLLAPSE({1, 0, 1, 0})) END_STATE(); - STATE(31); - SET_LEX_STATE(70); - SHIFT(ts_sym_array, 32) - SHIFT(ts_sym_expression, 33) - SHIFT(ts_sym_false, 32) - SHIFT(ts_sym_identifier, 39) - SHIFT(ts_sym_literal, 39) - SHIFT(ts_sym_null, 32) - SHIFT(ts_sym_number, 32) - SHIFT(ts_sym_object, 32) - SHIFT(ts_sym_string, 32) - SHIFT(ts_sym_true, 32) - SHIFT(ts_aux_sym_token10, 40) - SHIFT(ts_aux_sym_token11, 79) - SHIFT(ts_aux_sym_token5, 45) - SHIFT(ts_builtin_sym_error, 33) + STATE(19); + SET_LEX_STATE(58); + REDUCE(ts_aux_sym_token1, ts_sym_expression, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token2, ts_sym_expression, 1, COLLAPSE({0})) END_STATE(); - STATE(32); - SET_LEX_STATE(64); + STATE(20); + SET_LEX_STATE(67); + SHIFT(ts_sym_array, 21) + SHIFT(ts_sym_expression, 22) + SHIFT(ts_sym_false, 21) + SHIFT(ts_sym_identifier, 28) + SHIFT(ts_sym_literal, 28) + SHIFT(ts_sym_null, 21) + SHIFT(ts_sym_number, 21) + SHIFT(ts_sym_object, 21) + SHIFT(ts_sym_string, 21) + SHIFT(ts_sym_true, 21) + SHIFT(ts_aux_sym_token10, 29) + SHIFT(ts_aux_sym_token11, 68) + SHIFT(ts_aux_sym_token5, 34) + SHIFT(ts_builtin_sym_error, 22) + END_STATE(); + + STATE(21); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_literal, 1, COLLAPSE({0})) REDUCE(ts_aux_sym_token9, ts_sym_literal, 1, COLLAPSE({0})) END_STATE(); - STATE(33); - SET_LEX_STATE(64); - SHIFT(ts_aux_sym_repeat_helper4, 34) + STATE(22); + SET_LEX_STATE(61); + SHIFT(ts_aux_sym_repeat_helper4, 23) REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 36) + SHIFT(ts_aux_sym_token9, 25) END_STATE(); - STATE(34); - SET_LEX_STATE(67); - SHIFT(ts_aux_sym_token11, 35) + STATE(23); + SET_LEX_STATE(64); + SHIFT(ts_aux_sym_token11, 24) END_STATE(); - STATE(35); - SET_LEX_STATE(0); + STATE(24); + SET_LEX_STATE(58); REDUCE(ts_aux_sym_token1, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) REDUCE(ts_aux_sym_token2, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(36); - SET_LEX_STATE(71); - SHIFT(ts_sym_array, 32) - SHIFT(ts_sym_expression, 37) - SHIFT(ts_sym_false, 32) - SHIFT(ts_sym_identifier, 39) - SHIFT(ts_sym_literal, 39) - SHIFT(ts_sym_null, 32) - SHIFT(ts_sym_number, 32) - SHIFT(ts_sym_object, 32) - SHIFT(ts_sym_string, 32) - SHIFT(ts_sym_true, 32) - SHIFT(ts_aux_sym_token10, 40) - SHIFT(ts_aux_sym_token5, 45) - SHIFT(ts_builtin_sym_error, 37) + STATE(25); + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 21) + SHIFT(ts_sym_expression, 26) + SHIFT(ts_sym_false, 21) + SHIFT(ts_sym_identifier, 28) + SHIFT(ts_sym_literal, 28) + SHIFT(ts_sym_null, 21) + SHIFT(ts_sym_number, 21) + SHIFT(ts_sym_object, 21) + SHIFT(ts_sym_string, 21) + SHIFT(ts_sym_true, 21) + SHIFT(ts_aux_sym_token10, 29) + SHIFT(ts_aux_sym_token5, 34) + SHIFT(ts_builtin_sym_error, 26) END_STATE(); - STATE(37); - SET_LEX_STATE(64); - SHIFT(ts_aux_sym_repeat_helper4, 38) + STATE(26); + SET_LEX_STATE(61); + SHIFT(ts_aux_sym_repeat_helper4, 27) REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 36) + SHIFT(ts_aux_sym_token9, 25) END_STATE(); - STATE(38); - SET_LEX_STATE(67); + STATE(27); + SET_LEX_STATE(64); REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 3, COLLAPSE({1, 0, 1})) END_STATE(); - STATE(39); - SET_LEX_STATE(64); + STATE(28); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_expression, 1, COLLAPSE({0})) REDUCE(ts_aux_sym_token9, ts_sym_expression, 1, COLLAPSE({0})) END_STATE(); - STATE(40); - SET_LEX_STATE(70); - SHIFT(ts_sym_array, 32) - SHIFT(ts_sym_expression, 41) - SHIFT(ts_sym_false, 32) - SHIFT(ts_sym_identifier, 39) - SHIFT(ts_sym_literal, 39) - SHIFT(ts_sym_null, 32) - SHIFT(ts_sym_number, 32) - SHIFT(ts_sym_object, 32) - SHIFT(ts_sym_string, 32) - SHIFT(ts_sym_true, 32) - SHIFT(ts_aux_sym_token10, 40) - SHIFT(ts_aux_sym_token11, 44) - SHIFT(ts_aux_sym_token5, 45) - SHIFT(ts_builtin_sym_error, 41) - END_STATE(); - - STATE(41); - SET_LEX_STATE(64); - SHIFT(ts_aux_sym_repeat_helper4, 42) - REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 36) - END_STATE(); - - STATE(42); + STATE(29); SET_LEX_STATE(67); - SHIFT(ts_aux_sym_token11, 43) + SHIFT(ts_sym_array, 21) + SHIFT(ts_sym_expression, 30) + SHIFT(ts_sym_false, 21) + SHIFT(ts_sym_identifier, 28) + SHIFT(ts_sym_literal, 28) + SHIFT(ts_sym_null, 21) + SHIFT(ts_sym_number, 21) + SHIFT(ts_sym_object, 21) + SHIFT(ts_sym_string, 21) + SHIFT(ts_sym_true, 21) + SHIFT(ts_aux_sym_token10, 29) + SHIFT(ts_aux_sym_token11, 33) + SHIFT(ts_aux_sym_token5, 34) + SHIFT(ts_builtin_sym_error, 30) END_STATE(); - STATE(43); + STATE(30); + SET_LEX_STATE(61); + SHIFT(ts_aux_sym_repeat_helper4, 31) + REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 25) + END_STATE(); + + STATE(31); SET_LEX_STATE(64); + SHIFT(ts_aux_sym_token11, 32) + END_STATE(); + + STATE(32); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(44); - SET_LEX_STATE(64); + STATE(33); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_array, 2, COLLAPSE({1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_array, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(45); - SET_LEX_STATE(74); - SHIFT(ts_sym_string, 46) - SHIFT(ts_aux_sym_token6, 75) - SHIFT(ts_builtin_sym_error, 76) - END_STATE(); - - STATE(46); - SET_LEX_STATE(72); - SHIFT(ts_aux_sym_token8, 47) - END_STATE(); - - STATE(47); + STATE(34); SET_LEX_STATE(71); - SHIFT(ts_sym_array, 48) - SHIFT(ts_sym_expression, 49) - SHIFT(ts_sym_false, 48) - SHIFT(ts_sym_identifier, 57) - SHIFT(ts_sym_literal, 57) - SHIFT(ts_sym_null, 48) - SHIFT(ts_sym_number, 48) - SHIFT(ts_sym_object, 48) - SHIFT(ts_sym_string, 48) - SHIFT(ts_sym_true, 48) - SHIFT(ts_aux_sym_token10, 58) - SHIFT(ts_aux_sym_token5, 63) + SHIFT(ts_sym_string, 35) + SHIFT(ts_aux_sym_token6, 64) + SHIFT(ts_builtin_sym_error, 65) END_STATE(); - STATE(48); + STATE(35); + SET_LEX_STATE(69); + SHIFT(ts_aux_sym_token8, 36) + END_STATE(); + + STATE(36); SET_LEX_STATE(68); + SHIFT(ts_sym_array, 37) + SHIFT(ts_sym_expression, 38) + SHIFT(ts_sym_false, 37) + SHIFT(ts_sym_identifier, 46) + SHIFT(ts_sym_literal, 46) + SHIFT(ts_sym_null, 37) + SHIFT(ts_sym_number, 37) + SHIFT(ts_sym_object, 37) + SHIFT(ts_sym_string, 37) + SHIFT(ts_sym_true, 37) + SHIFT(ts_aux_sym_token10, 47) + SHIFT(ts_aux_sym_token5, 52) + END_STATE(); + + STATE(37); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_literal, 1, COLLAPSE({0})) REDUCE(ts_aux_sym_token9, ts_sym_literal, 1, COLLAPSE({0})) END_STATE(); - STATE(49); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 50) + STATE(38); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 39) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) + SHIFT(ts_aux_sym_token9, 41) END_STATE(); - STATE(50); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 51) + STATE(39); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 40) END_STATE(); - STATE(51); - SET_LEX_STATE(64); + STATE(40); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); - STATE(52); - SET_LEX_STATE(75); - SHIFT(ts_sym_string, 53) - SHIFT(ts_builtin_sym_error, 73) - END_STATE(); - - STATE(53); + STATE(41); SET_LEX_STATE(72); - SHIFT(ts_aux_sym_token8, 54) + SHIFT(ts_sym_string, 42) + SHIFT(ts_builtin_sym_error, 62) END_STATE(); - STATE(54); - SET_LEX_STATE(71); - SHIFT(ts_sym_array, 48) - SHIFT(ts_sym_expression, 55) - SHIFT(ts_sym_false, 48) - SHIFT(ts_sym_identifier, 57) - SHIFT(ts_sym_literal, 57) - SHIFT(ts_sym_null, 48) - SHIFT(ts_sym_number, 48) - SHIFT(ts_sym_object, 48) - SHIFT(ts_sym_string, 48) - SHIFT(ts_sym_true, 48) - SHIFT(ts_aux_sym_token10, 58) - SHIFT(ts_aux_sym_token5, 63) - END_STATE(); - - STATE(55); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 56) - REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) - END_STATE(); - - STATE(56); + STATE(42); SET_LEX_STATE(69); + SHIFT(ts_aux_sym_token8, 43) + END_STATE(); + + STATE(43); + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 37) + SHIFT(ts_sym_expression, 44) + SHIFT(ts_sym_false, 37) + SHIFT(ts_sym_identifier, 46) + SHIFT(ts_sym_literal, 46) + SHIFT(ts_sym_null, 37) + SHIFT(ts_sym_number, 37) + SHIFT(ts_sym_object, 37) + SHIFT(ts_sym_string, 37) + SHIFT(ts_sym_true, 37) + SHIFT(ts_aux_sym_token10, 47) + SHIFT(ts_aux_sym_token5, 52) + END_STATE(); + + STATE(44); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 45) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 41) + END_STATE(); + + STATE(45); + SET_LEX_STATE(66); REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 5, COLLAPSE({1, 0, 1, 0, 1})) END_STATE(); - STATE(57); - SET_LEX_STATE(68); + STATE(46); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_expression, 1, COLLAPSE({0})) REDUCE(ts_aux_sym_token9, ts_sym_expression, 1, COLLAPSE({0})) END_STATE(); - STATE(58); - SET_LEX_STATE(70); - SHIFT(ts_sym_array, 32) - SHIFT(ts_sym_expression, 59) - SHIFT(ts_sym_false, 32) - SHIFT(ts_sym_identifier, 39) - SHIFT(ts_sym_literal, 39) - SHIFT(ts_sym_null, 32) - SHIFT(ts_sym_number, 32) - SHIFT(ts_sym_object, 32) - SHIFT(ts_sym_string, 32) - SHIFT(ts_sym_true, 32) - SHIFT(ts_aux_sym_token10, 40) - SHIFT(ts_aux_sym_token11, 62) - SHIFT(ts_aux_sym_token5, 45) - SHIFT(ts_builtin_sym_error, 59) - END_STATE(); - - STATE(59); - SET_LEX_STATE(64); - SHIFT(ts_aux_sym_repeat_helper4, 60) - REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 36) - END_STATE(); - - STATE(60); + STATE(47); SET_LEX_STATE(67); - SHIFT(ts_aux_sym_token11, 61) + SHIFT(ts_sym_array, 21) + SHIFT(ts_sym_expression, 48) + SHIFT(ts_sym_false, 21) + SHIFT(ts_sym_identifier, 28) + SHIFT(ts_sym_literal, 28) + SHIFT(ts_sym_null, 21) + SHIFT(ts_sym_number, 21) + SHIFT(ts_sym_object, 21) + SHIFT(ts_sym_string, 21) + SHIFT(ts_sym_true, 21) + SHIFT(ts_aux_sym_token10, 29) + SHIFT(ts_aux_sym_token11, 51) + SHIFT(ts_aux_sym_token5, 34) + SHIFT(ts_builtin_sym_error, 48) END_STATE(); - STATE(61); - SET_LEX_STATE(68); + STATE(48); + SET_LEX_STATE(61); + SHIFT(ts_aux_sym_repeat_helper4, 49) + REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 25) + END_STATE(); + + STATE(49); + SET_LEX_STATE(64); + SHIFT(ts_aux_sym_token11, 50) + END_STATE(); + + STATE(50); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(62); - SET_LEX_STATE(68); + STATE(51); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_array, 2, COLLAPSE({1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_array, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(63); - SET_LEX_STATE(74); - SHIFT(ts_sym_string, 64) - SHIFT(ts_aux_sym_token6, 69) - SHIFT(ts_builtin_sym_error, 70) - END_STATE(); - - STATE(64); - SET_LEX_STATE(72); - SHIFT(ts_aux_sym_token8, 65) - END_STATE(); - - STATE(65); + STATE(52); SET_LEX_STATE(71); - SHIFT(ts_sym_array, 48) - SHIFT(ts_sym_expression, 66) - SHIFT(ts_sym_false, 48) - SHIFT(ts_sym_identifier, 57) - SHIFT(ts_sym_literal, 57) - SHIFT(ts_sym_null, 48) - SHIFT(ts_sym_number, 48) - SHIFT(ts_sym_object, 48) - SHIFT(ts_sym_string, 48) - SHIFT(ts_sym_true, 48) - SHIFT(ts_aux_sym_token10, 58) - SHIFT(ts_aux_sym_token5, 63) + SHIFT(ts_sym_string, 53) + SHIFT(ts_aux_sym_token6, 58) + SHIFT(ts_builtin_sym_error, 59) END_STATE(); - STATE(66); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 67) - REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) - END_STATE(); - - STATE(67); + STATE(53); SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 68) + SHIFT(ts_aux_sym_token8, 54) END_STATE(); - STATE(68); + STATE(54); SET_LEX_STATE(68); + SHIFT(ts_sym_array, 37) + SHIFT(ts_sym_expression, 55) + SHIFT(ts_sym_false, 37) + SHIFT(ts_sym_identifier, 46) + SHIFT(ts_sym_literal, 46) + SHIFT(ts_sym_null, 37) + SHIFT(ts_sym_number, 37) + SHIFT(ts_sym_object, 37) + SHIFT(ts_sym_string, 37) + SHIFT(ts_sym_true, 37) + SHIFT(ts_aux_sym_token10, 47) + SHIFT(ts_aux_sym_token5, 52) + END_STATE(); + + STATE(55); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 56) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 41) + END_STATE(); + + STATE(56); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 57) + END_STATE(); + + STATE(57); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); - STATE(69); - SET_LEX_STATE(68); + STATE(58); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_object, 2, COLLAPSE({1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_object, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(70); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 71) + STATE(59); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 60) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) + SHIFT(ts_aux_sym_token9, 41) END_STATE(); - STATE(71); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 72) + STATE(60); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 61) END_STATE(); - STATE(72); - SET_LEX_STATE(68); + STATE(61); + SET_LEX_STATE(65); REDUCE(ts_aux_sym_token6, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(73); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 74) + STATE(62); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 63) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) + SHIFT(ts_aux_sym_token9, 41) END_STATE(); - STATE(74); - SET_LEX_STATE(69); + STATE(63); + SET_LEX_STATE(66); REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 3, COLLAPSE({1, 0, 1})) END_STATE(); - STATE(75); - SET_LEX_STATE(64); + STATE(64); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_object, 2, COLLAPSE({1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_object, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(76); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 77) + STATE(65); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 66) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) + SHIFT(ts_aux_sym_token9, 41) END_STATE(); - STATE(77); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 78) + STATE(66); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 67) END_STATE(); - STATE(78); - SET_LEX_STATE(64); + STATE(67); + SET_LEX_STATE(61); REDUCE(ts_aux_sym_token11, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) REDUCE(ts_aux_sym_token9, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(79); - SET_LEX_STATE(0); + STATE(68); + SET_LEX_STATE(58); REDUCE(ts_aux_sym_token1, ts_sym_array, 2, COLLAPSE({1, 1})) REDUCE(ts_aux_sym_token2, ts_sym_array, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(80); - SET_LEX_STATE(74); - SHIFT(ts_sym_string, 81) - SHIFT(ts_aux_sym_token6, 86) - SHIFT(ts_builtin_sym_error, 87) - END_STATE(); - - STATE(81); - SET_LEX_STATE(72); - SHIFT(ts_aux_sym_token8, 82) - END_STATE(); - - STATE(82); + STATE(69); SET_LEX_STATE(71); - SHIFT(ts_sym_array, 48) - SHIFT(ts_sym_expression, 83) - SHIFT(ts_sym_false, 48) - SHIFT(ts_sym_identifier, 57) - SHIFT(ts_sym_literal, 57) - SHIFT(ts_sym_null, 48) - SHIFT(ts_sym_number, 48) - SHIFT(ts_sym_object, 48) - SHIFT(ts_sym_string, 48) - SHIFT(ts_sym_true, 48) - SHIFT(ts_aux_sym_token10, 58) - SHIFT(ts_aux_sym_token5, 63) + SHIFT(ts_sym_string, 70) + SHIFT(ts_aux_sym_token6, 75) + SHIFT(ts_builtin_sym_error, 76) END_STATE(); - STATE(83); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 84) - REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) - END_STATE(); - - STATE(84); + STATE(70); SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 85) + SHIFT(ts_aux_sym_token8, 71) END_STATE(); - STATE(85); - SET_LEX_STATE(0); + STATE(71); + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 37) + SHIFT(ts_sym_expression, 72) + SHIFT(ts_sym_false, 37) + SHIFT(ts_sym_identifier, 46) + SHIFT(ts_sym_literal, 46) + SHIFT(ts_sym_null, 37) + SHIFT(ts_sym_number, 37) + SHIFT(ts_sym_object, 37) + SHIFT(ts_sym_string, 37) + SHIFT(ts_sym_true, 37) + SHIFT(ts_aux_sym_token10, 47) + SHIFT(ts_aux_sym_token5, 52) + END_STATE(); + + STATE(72); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 73) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 41) + END_STATE(); + + STATE(73); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 74) + END_STATE(); + + STATE(74); + SET_LEX_STATE(58); REDUCE(ts_aux_sym_token1, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) REDUCE(ts_aux_sym_token2, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); - STATE(86); - SET_LEX_STATE(0); + STATE(75); + SET_LEX_STATE(58); REDUCE(ts_aux_sym_token1, ts_sym_object, 2, COLLAPSE({1, 1})) REDUCE(ts_aux_sym_token2, ts_sym_object, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(87); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 88) + STATE(76); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 77) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) + SHIFT(ts_aux_sym_token9, 41) END_STATE(); - STATE(88); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 89) + STATE(77); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 78) END_STATE(); - STATE(89); - SET_LEX_STATE(0); + STATE(78); + SET_LEX_STATE(58); REDUCE(ts_aux_sym_token1, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) REDUCE(ts_aux_sym_token2, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(90); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 91) + STATE(79); + SET_LEX_STATE(58); + SHIFT(ts_sym__terminator, 80) + SHIFT(ts_aux_sym_token1, 81) + SHIFT(ts_aux_sym_token2, 81) END_STATE(); - STATE(91); - SET_LEX_STATE(62); + STATE(80); + SET_LEX_STATE(56); + REDUCE(ts_sym__IF, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym__VAR, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_false, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_identifier, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_null, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_number, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_string, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_true, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_aux_sym_token10, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_aux_sym_token5, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_aux_sym_token6, ts_sym_statement, 2, COLLAPSE({0, 1})) + END_STATE(); + + STATE(81); + SET_LEX_STATE(56); + REDUCE(ts_sym__IF, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym__VAR, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_false, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_identifier, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_null, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_number, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_string, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_true, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_aux_sym_token10, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_aux_sym_token5, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_aux_sym_token6, ts_sym__terminator, 1, COLLAPSE({1})) + END_STATE(); + + STATE(82); + SET_LEX_STATE(56); + REDUCE(ts_sym__IF, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym__VAR, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_false, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_identifier, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_null, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_number, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_string, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_true, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token10, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token5, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token6, ts_sym_statement, 1, COLLAPSE({0})) + END_STATE(); + + STATE(83); + SET_LEX_STATE(56); + SHIFT(ts_sym__IF, 8) + SHIFT(ts_sym__VAR, 14) + SHIFT(ts_sym_array, 17) + SHIFT(ts_sym_assignment, 79) + SHIFT(ts_sym_expression, 79) + SHIFT(ts_sym_false, 17) + SHIFT(ts_sym_identifier, 19) + SHIFT(ts_sym_if_statement, 82) + SHIFT(ts_sym_literal, 19) + SHIFT(ts_sym_null, 17) + SHIFT(ts_sym_number, 17) + SHIFT(ts_sym_object, 17) + SHIFT(ts_sym_statement, 83) + SHIFT(ts_sym_string, 17) + SHIFT(ts_sym_true, 17) + SHIFT(ts_aux_sym_repeat_helper2, 84) + SHIFT(ts_aux_sym_token10, 20) + SHIFT(ts_aux_sym_token5, 69) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) + END_STATE(); + + STATE(84); + SET_LEX_STATE(66); + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 2, COLLAPSE({0, 1})) + END_STATE(); + + STATE(85); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 86) + END_STATE(); + + STATE(86); + SET_LEX_STATE(56); + REDUCE(ts_sym__IF, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) + REDUCE(ts_sym__VAR, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_false, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_identifier, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_null, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_number, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_string, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_true, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) - REDUCE(ts_sym_IF, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) - REDUCE(ts_sym_VAR, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_aux_sym_token10, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_aux_sym_token5, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_aux_sym_token6, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) END_STATE(); - STATE(92); - SET_LEX_STATE(60); + STATE(87); + SET_LEX_STATE(0); REDUCE(ts_aux_sym_token4, ts_sym_expression, 1, COLLAPSE({0})) END_STATE(); - STATE(93); - SET_LEX_STATE(70); - SHIFT(ts_sym_array, 32) - SHIFT(ts_sym_expression, 94) - SHIFT(ts_sym_false, 32) - SHIFT(ts_sym_identifier, 39) - SHIFT(ts_sym_literal, 39) - SHIFT(ts_sym_null, 32) - SHIFT(ts_sym_number, 32) - SHIFT(ts_sym_object, 32) - SHIFT(ts_sym_string, 32) - SHIFT(ts_sym_true, 32) - SHIFT(ts_aux_sym_token10, 40) - SHIFT(ts_aux_sym_token11, 97) - SHIFT(ts_aux_sym_token5, 45) - SHIFT(ts_builtin_sym_error, 94) - END_STATE(); - - STATE(94); - SET_LEX_STATE(64); - SHIFT(ts_aux_sym_repeat_helper4, 95) - REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 36) - END_STATE(); - - STATE(95); + STATE(88); SET_LEX_STATE(67); - SHIFT(ts_aux_sym_token11, 96) + SHIFT(ts_sym_array, 21) + SHIFT(ts_sym_expression, 89) + SHIFT(ts_sym_false, 21) + SHIFT(ts_sym_identifier, 28) + SHIFT(ts_sym_literal, 28) + SHIFT(ts_sym_null, 21) + SHIFT(ts_sym_number, 21) + SHIFT(ts_sym_object, 21) + SHIFT(ts_sym_string, 21) + SHIFT(ts_sym_true, 21) + SHIFT(ts_aux_sym_token10, 29) + SHIFT(ts_aux_sym_token11, 92) + SHIFT(ts_aux_sym_token5, 34) + SHIFT(ts_builtin_sym_error, 89) END_STATE(); - STATE(96); - SET_LEX_STATE(60); + STATE(89); + SET_LEX_STATE(61); + SHIFT(ts_aux_sym_repeat_helper4, 90) + REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 25) + END_STATE(); + + STATE(90); + SET_LEX_STATE(64); + SHIFT(ts_aux_sym_token11, 91) + END_STATE(); + + STATE(91); + SET_LEX_STATE(0); REDUCE(ts_aux_sym_token4, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(97); - SET_LEX_STATE(60); + STATE(92); + SET_LEX_STATE(0); REDUCE(ts_aux_sym_token4, ts_sym_array, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(98); - SET_LEX_STATE(74); - SHIFT(ts_sym_string, 99) - SHIFT(ts_aux_sym_token6, 104) - SHIFT(ts_builtin_sym_error, 105) - END_STATE(); - - STATE(99); - SET_LEX_STATE(72); - SHIFT(ts_aux_sym_token8, 100) - END_STATE(); - - STATE(100); + STATE(93); SET_LEX_STATE(71); - SHIFT(ts_sym_array, 48) - SHIFT(ts_sym_expression, 101) - SHIFT(ts_sym_false, 48) - SHIFT(ts_sym_identifier, 57) - SHIFT(ts_sym_literal, 57) - SHIFT(ts_sym_null, 48) - SHIFT(ts_sym_number, 48) - SHIFT(ts_sym_object, 48) - SHIFT(ts_sym_string, 48) - SHIFT(ts_sym_true, 48) - SHIFT(ts_aux_sym_token10, 58) - SHIFT(ts_aux_sym_token5, 63) + SHIFT(ts_sym_string, 94) + SHIFT(ts_aux_sym_token6, 99) + SHIFT(ts_builtin_sym_error, 100) END_STATE(); - STATE(101); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 102) - REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) - END_STATE(); - - STATE(102); + STATE(94); SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 103) + SHIFT(ts_aux_sym_token8, 95) END_STATE(); - STATE(103); - SET_LEX_STATE(60); + STATE(95); + SET_LEX_STATE(68); + SHIFT(ts_sym_array, 37) + SHIFT(ts_sym_expression, 96) + SHIFT(ts_sym_false, 37) + SHIFT(ts_sym_identifier, 46) + SHIFT(ts_sym_literal, 46) + SHIFT(ts_sym_null, 37) + SHIFT(ts_sym_number, 37) + SHIFT(ts_sym_object, 37) + SHIFT(ts_sym_string, 37) + SHIFT(ts_sym_true, 37) + SHIFT(ts_aux_sym_token10, 47) + SHIFT(ts_aux_sym_token5, 52) + END_STATE(); + + STATE(96); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 97) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) + SHIFT(ts_aux_sym_token9, 41) + END_STATE(); + + STATE(97); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 98) + END_STATE(); + + STATE(98); + SET_LEX_STATE(0); REDUCE(ts_aux_sym_token4, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); - STATE(104); - SET_LEX_STATE(60); + STATE(99); + SET_LEX_STATE(0); REDUCE(ts_aux_sym_token4, ts_sym_object, 2, COLLAPSE({1, 1})) END_STATE(); - STATE(105); - SET_LEX_STATE(68); - SHIFT(ts_aux_sym_repeat_helper3, 106) + STATE(100); + SET_LEX_STATE(65); + SHIFT(ts_aux_sym_repeat_helper3, 101) REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_token9, 52) + SHIFT(ts_aux_sym_token9, 41) END_STATE(); - STATE(106); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 107) + STATE(101); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 102) END_STATE(); - STATE(107); - SET_LEX_STATE(60); + STATE(102); + SET_LEX_STATE(0); REDUCE(ts_aux_sym_token4, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); - STATE(108); - SET_LEX_STATE(69); - REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 2, COLLAPSE({0, 1})) + STATE(103); + SET_LEX_STATE(66); + SHIFT(ts_aux_sym_token6, 104) END_STATE(); - STATE(109); - SET_LEX_STATE(69); - SHIFT(ts_aux_sym_token6, 110) - END_STATE(); - - STATE(110); - SET_LEX_STATE(3); + STATE(104); + SET_LEX_STATE(2); + REDUCE(ts_sym__IF, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) + REDUCE(ts_sym__VAR, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_false, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_identifier, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_null, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_number, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_string, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_sym_true, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) - REDUCE(ts_sym_IF, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) - REDUCE(ts_sym_VAR, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_aux_sym_token10, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_aux_sym_token5, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) REDUCE(ts_builtin_sym_end, ts_sym_statement_block, 3, COLLAPSE({1, 1, 1})) END_STATE(); + STATE(105); + SET_LEX_STATE(58); + SHIFT(ts_sym__terminator, 106) + SHIFT(ts_aux_sym_token1, 107) + SHIFT(ts_aux_sym_token2, 107) + END_STATE(); + + STATE(106); + SET_LEX_STATE(2); + REDUCE(ts_sym__IF, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym__VAR, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_false, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_identifier, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_null, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_number, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_string, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_sym_true, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_aux_sym_token10, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_aux_sym_token5, ts_sym_statement, 2, COLLAPSE({0, 1})) + REDUCE(ts_builtin_sym_end, ts_sym_statement, 2, COLLAPSE({0, 1})) + END_STATE(); + + STATE(107); + SET_LEX_STATE(2); + REDUCE(ts_sym__IF, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym__VAR, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_false, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_identifier, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_null, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_number, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_string, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_sym_true, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_aux_sym_token10, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_aux_sym_token5, ts_sym__terminator, 1, COLLAPSE({1})) + REDUCE(ts_builtin_sym_end, ts_sym__terminator, 1, COLLAPSE({1})) + END_STATE(); + + STATE(108); + SET_LEX_STATE(2); + REDUCE(ts_sym__IF, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym__VAR, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_false, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_identifier, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_null, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_number, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_string, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_sym_true, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token10, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token5, ts_sym_statement, 1, COLLAPSE({0})) + REDUCE(ts_builtin_sym_end, ts_sym_statement, 1, COLLAPSE({0})) + END_STATE(); + + STATE(109); + SET_LEX_STATE(79); + ACCEPT_INPUT(ts_builtin_sym_end) + END_STATE(); + + STATE(110); + SET_LEX_STATE(2); + SHIFT(ts_sym__IF, 1) + SHIFT(ts_sym__VAR, 14) + SHIFT(ts_sym_array, 17) + SHIFT(ts_sym_assignment, 105) + SHIFT(ts_sym_expression, 105) + SHIFT(ts_sym_false, 17) + SHIFT(ts_sym_identifier, 19) + SHIFT(ts_sym_if_statement, 108) + SHIFT(ts_sym_literal, 19) + SHIFT(ts_sym_null, 17) + SHIFT(ts_sym_number, 17) + SHIFT(ts_sym_object, 17) + SHIFT(ts_sym_statement, 110) + SHIFT(ts_sym_string, 17) + SHIFT(ts_sym_true, 17) + SHIFT(ts_aux_sym_repeat_helper1, 111) + SHIFT(ts_aux_sym_token10, 20) + SHIFT(ts_aux_sym_token5, 69) + REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) + END_STATE(); + STATE(111); - SET_LEX_STATE(59); + SET_LEX_STATE(79); REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 2, COLLAPSE({0, 1})) END_STATE(); STATE(112); - SET_LEX_STATE(59); + SET_LEX_STATE(79); REDUCE(ts_builtin_sym_end, ts_sym_program, 1, COLLAPSE({1})) END_STATE(); diff --git a/examples/parsers/json.c b/examples/parsers/json.c index 9ae1817b..4276e580 100644 --- a/examples/parsers/json.c +++ b/examples/parsers/json.c @@ -11,14 +11,14 @@ enum { ts_sym_string, ts_sym_true, ts_sym_value, - ts_sym_colon, - ts_sym_comma, - ts_sym_left_brace, - ts_sym_left_bracket, - ts_sym_right_brace, - ts_sym_right_bracket, ts_aux_sym_repeat_helper1, ts_aux_sym_repeat_helper2, + ts_aux_sym_token1, + ts_aux_sym_token2, + ts_aux_sym_token3, + ts_aux_sym_token4, + ts_aux_sym_token5, + ts_aux_sym_token6, }; SYMBOL_NAMES = { @@ -30,14 +30,14 @@ SYMBOL_NAMES = { "string", "true", "value", - "colon", - "comma", - "left_brace", - "left_bracket", - "right_brace", - "right_bracket", "repeat_helper1", "repeat_helper2", + "token1", + "token2", + "token3", + "token4", + "token5", + "token6", }; LEX_FN() { @@ -52,9 +52,9 @@ LEX_FN() { ADVANCE(3); LEX_ERROR(); case 2: - ACCEPT_TOKEN(ts_sym_comma); + ACCEPT_TOKEN(ts_aux_sym_token3); case 3: - ACCEPT_TOKEN(ts_sym_right_brace); + ACCEPT_TOKEN(ts_aux_sym_token4); case 4: if (LOOKAHEAD_CHAR() == '}') ADVANCE(3); @@ -66,7 +66,7 @@ LEX_FN() { ADVANCE(6); LEX_ERROR(); case 6: - ACCEPT_TOKEN(ts_sym_right_bracket); + ACCEPT_TOKEN(ts_aux_sym_token6); case 7: if (LOOKAHEAD_CHAR() == ']') ADVANCE(6); @@ -201,7 +201,7 @@ LEX_FN() { ADVANCE(23); ACCEPT_TOKEN(ts_sym_number); case 24: - ACCEPT_TOKEN(ts_sym_left_bracket); + ACCEPT_TOKEN(ts_aux_sym_token5); case 25: if (LOOKAHEAD_CHAR() == 'a') ADVANCE(26); @@ -249,13 +249,13 @@ LEX_FN() { case 37: ACCEPT_TOKEN(ts_sym_true); case 38: - ACCEPT_TOKEN(ts_sym_left_brace); + ACCEPT_TOKEN(ts_aux_sym_token1); case 39: if (LOOKAHEAD_CHAR() == ':') ADVANCE(40); LEX_ERROR(); case 40: - ACCEPT_TOKEN(ts_sym_colon); + ACCEPT_TOKEN(ts_aux_sym_token2); case 41: if (LOOKAHEAD_CHAR() == '\"') ADVANCE(9); @@ -284,31 +284,19 @@ LEX_FN() { if (LOOKAHEAD_CHAR() == '\"') ADVANCE(9); LEX_ERROR(); - case 44: - ACCEPT_TOKEN(ts_sym_comma); - case 45: - ACCEPT_TOKEN(ts_sym_colon); - case 46: - ACCEPT_TOKEN(ts_sym_left_bracket); - case 47: - ACCEPT_TOKEN(ts_sym_right_bracket); - case 48: - ACCEPT_TOKEN(ts_sym_left_brace); - case 49: - ACCEPT_TOKEN(ts_sym_right_brace); case ts_lex_state_error: if (LOOKAHEAD_CHAR() == '\"') ADVANCE(9); if (LOOKAHEAD_CHAR() == ',') - ADVANCE(44); + ADVANCE(2); if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9') ADVANCE(19); if (LOOKAHEAD_CHAR() == ':') - ADVANCE(45); + ADVANCE(40); if (LOOKAHEAD_CHAR() == '[') - ADVANCE(46); + ADVANCE(24); if (LOOKAHEAD_CHAR() == ']') - ADVANCE(47); + ADVANCE(6); if (LOOKAHEAD_CHAR() == 'f') ADVANCE(25); if (LOOKAHEAD_CHAR() == 'n') @@ -316,9 +304,9 @@ LEX_FN() { if (LOOKAHEAD_CHAR() == 't') ADVANCE(34); if (LOOKAHEAD_CHAR() == '{') - ADVANCE(48); + ADVANCE(38); if (LOOKAHEAD_CHAR() == '}') - ADVANCE(49); + ADVANCE(3); LEX_ERROR(); default: LEX_PANIC(); @@ -338,8 +326,8 @@ PARSE_TABLE() { SHIFT(ts_sym_string, 1) SHIFT(ts_sym_true, 1) SHIFT(ts_sym_value, 2) - SHIFT(ts_sym_left_brace, 3) - SHIFT(ts_sym_left_bracket, 55) + SHIFT(ts_aux_sym_token1, 3) + SHIFT(ts_aux_sym_token5, 55) END_STATE(); STATE(1); @@ -355,13 +343,13 @@ PARSE_TABLE() { STATE(3); SET_LEX_STATE(41); SHIFT(ts_sym_string, 4) - SHIFT(ts_sym_right_brace, 51) + SHIFT(ts_aux_sym_token4, 51) SHIFT(ts_builtin_sym_error, 52) END_STATE(); STATE(4); SET_LEX_STATE(39); - SHIFT(ts_sym_colon, 5) + SHIFT(ts_aux_sym_token2, 5) END_STATE(); STATE(5); @@ -374,73 +362,45 @@ PARSE_TABLE() { SHIFT(ts_sym_string, 6) SHIFT(ts_sym_true, 6) SHIFT(ts_sym_value, 7) - SHIFT(ts_sym_left_brace, 13) - SHIFT(ts_sym_left_bracket, 19) + SHIFT(ts_aux_sym_token1, 15) + SHIFT(ts_aux_sym_token5, 21) END_STATE(); STATE(6); SET_LEX_STATE(1); - REDUCE(ts_sym_comma, ts_sym_value, 1, COLLAPSE({0})) - REDUCE(ts_sym_right_brace, ts_sym_value, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token3, ts_sym_value, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token4, ts_sym_value, 1, COLLAPSE({0})) END_STATE(); STATE(7); SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper1, 49) + SHIFT(ts_aux_sym_repeat_helper1, 8) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(8); - SET_LEX_STATE(43); - SHIFT(ts_sym_string, 9) - SHIFT(ts_builtin_sym_error, 47) + SET_LEX_STATE(4); + SHIFT(ts_aux_sym_token4, 9) END_STATE(); STATE(9); - SET_LEX_STATE(39); - SHIFT(ts_sym_colon, 10) + SET_LEX_STATE(0); + REDUCE(ts_builtin_sym_end, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); STATE(10); - SET_LEX_STATE(8); - SHIFT(ts_sym_array, 6) - SHIFT(ts_sym_false, 6) - SHIFT(ts_sym_null, 6) - SHIFT(ts_sym_number, 6) - SHIFT(ts_sym_object, 6) - SHIFT(ts_sym_string, 6) - SHIFT(ts_sym_true, 6) - SHIFT(ts_sym_value, 11) - SHIFT(ts_sym_left_brace, 13) - SHIFT(ts_sym_left_bracket, 19) + SET_LEX_STATE(43); + SHIFT(ts_sym_string, 11) + SHIFT(ts_builtin_sym_error, 49) END_STATE(); STATE(11); - SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper1, 12) + SET_LEX_STATE(39); + SHIFT(ts_aux_sym_token2, 12) END_STATE(); STATE(12); - SET_LEX_STATE(4); - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 5, COLLAPSE({1, 0, 1, 0, 1})) - END_STATE(); - - STATE(13); - SET_LEX_STATE(41); - SHIFT(ts_sym_string, 14) - SHIFT(ts_sym_right_brace, 43) - SHIFT(ts_builtin_sym_error, 44) - END_STATE(); - - STATE(14); - SET_LEX_STATE(39); - SHIFT(ts_sym_colon, 15) - END_STATE(); - - STATE(15); SET_LEX_STATE(8); SHIFT(ts_sym_array, 6) SHIFT(ts_sym_false, 6) @@ -449,98 +409,147 @@ PARSE_TABLE() { SHIFT(ts_sym_object, 6) SHIFT(ts_sym_string, 6) SHIFT(ts_sym_true, 6) - SHIFT(ts_sym_value, 16) - SHIFT(ts_sym_left_brace, 13) - SHIFT(ts_sym_left_bracket, 19) + SHIFT(ts_sym_value, 13) + SHIFT(ts_aux_sym_token1, 15) + SHIFT(ts_aux_sym_token5, 21) + END_STATE(); + + STATE(13); + SET_LEX_STATE(1); + SHIFT(ts_aux_sym_repeat_helper1, 14) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) + END_STATE(); + + STATE(14); + SET_LEX_STATE(4); + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 5, COLLAPSE({1, 0, 1, 0, 1})) + END_STATE(); + + STATE(15); + SET_LEX_STATE(41); + SHIFT(ts_sym_string, 16) + SHIFT(ts_aux_sym_token4, 45) + SHIFT(ts_builtin_sym_error, 46) END_STATE(); STATE(16); - SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper1, 17) + SET_LEX_STATE(39); + SHIFT(ts_aux_sym_token2, 17) END_STATE(); STATE(17); - SET_LEX_STATE(4); - SHIFT(ts_sym_right_brace, 18) + SET_LEX_STATE(8); + SHIFT(ts_sym_array, 6) + SHIFT(ts_sym_false, 6) + SHIFT(ts_sym_null, 6) + SHIFT(ts_sym_number, 6) + SHIFT(ts_sym_object, 6) + SHIFT(ts_sym_string, 6) + SHIFT(ts_sym_true, 6) + SHIFT(ts_sym_value, 18) + SHIFT(ts_aux_sym_token1, 15) + SHIFT(ts_aux_sym_token5, 21) END_STATE(); STATE(18); SET_LEX_STATE(1); - REDUCE(ts_sym_comma, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) - REDUCE(ts_sym_right_brace, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) + SHIFT(ts_aux_sym_repeat_helper1, 19) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(19); - SET_LEX_STATE(42); - SHIFT(ts_sym_array, 20) - SHIFT(ts_sym_false, 20) - SHIFT(ts_sym_null, 20) - SHIFT(ts_sym_number, 20) - SHIFT(ts_sym_object, 20) - SHIFT(ts_sym_string, 20) - SHIFT(ts_sym_true, 20) - SHIFT(ts_sym_value, 21) - SHIFT(ts_sym_left_brace, 25) - SHIFT(ts_sym_left_bracket, 35) - SHIFT(ts_sym_right_bracket, 42) - SHIFT(ts_builtin_sym_error, 21) + SET_LEX_STATE(4); + SHIFT(ts_aux_sym_token4, 20) END_STATE(); STATE(20); - SET_LEX_STATE(5); - REDUCE(ts_sym_comma, ts_sym_value, 1, COLLAPSE({0})) - REDUCE(ts_sym_right_bracket, ts_sym_value, 1, COLLAPSE({0})) + SET_LEX_STATE(1); + REDUCE(ts_aux_sym_token3, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) + REDUCE(ts_aux_sym_token4, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); STATE(21); - SET_LEX_STATE(5); - SHIFT(ts_sym_comma, 22) - REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper2, 40) + SET_LEX_STATE(42); + SHIFT(ts_sym_array, 22) + SHIFT(ts_sym_false, 22) + SHIFT(ts_sym_null, 22) + SHIFT(ts_sym_number, 22) + SHIFT(ts_sym_object, 22) + SHIFT(ts_sym_string, 22) + SHIFT(ts_sym_true, 22) + SHIFT(ts_sym_value, 23) + SHIFT(ts_aux_sym_token1, 29) + SHIFT(ts_aux_sym_token5, 39) + SHIFT(ts_aux_sym_token6, 44) + SHIFT(ts_builtin_sym_error, 23) END_STATE(); STATE(22); - SET_LEX_STATE(8); - SHIFT(ts_sym_array, 20) - SHIFT(ts_sym_false, 20) - SHIFT(ts_sym_null, 20) - SHIFT(ts_sym_number, 20) - SHIFT(ts_sym_object, 20) - SHIFT(ts_sym_string, 20) - SHIFT(ts_sym_true, 20) - SHIFT(ts_sym_value, 23) - SHIFT(ts_sym_left_brace, 25) - SHIFT(ts_sym_left_bracket, 35) - SHIFT(ts_builtin_sym_error, 23) + SET_LEX_STATE(5); + REDUCE(ts_aux_sym_token3, ts_sym_value, 1, COLLAPSE({0})) + REDUCE(ts_aux_sym_token6, ts_sym_value, 1, COLLAPSE({0})) END_STATE(); STATE(23); SET_LEX_STATE(5); - SHIFT(ts_sym_comma, 22) - REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) SHIFT(ts_aux_sym_repeat_helper2, 24) + SHIFT(ts_aux_sym_token3, 26) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) END_STATE(); STATE(24); SET_LEX_STATE(7); - REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 3, COLLAPSE({1, 0, 1})) + SHIFT(ts_aux_sym_token6, 25) END_STATE(); STATE(25); - SET_LEX_STATE(41); - SHIFT(ts_sym_string, 26) - SHIFT(ts_sym_right_brace, 31) - SHIFT(ts_builtin_sym_error, 32) + SET_LEX_STATE(1); + REDUCE(ts_aux_sym_token3, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) + REDUCE(ts_aux_sym_token4, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); STATE(26); - SET_LEX_STATE(39); - SHIFT(ts_sym_colon, 27) + SET_LEX_STATE(8); + SHIFT(ts_sym_array, 22) + SHIFT(ts_sym_false, 22) + SHIFT(ts_sym_null, 22) + SHIFT(ts_sym_number, 22) + SHIFT(ts_sym_object, 22) + SHIFT(ts_sym_string, 22) + SHIFT(ts_sym_true, 22) + SHIFT(ts_sym_value, 27) + SHIFT(ts_aux_sym_token1, 29) + SHIFT(ts_aux_sym_token5, 39) + SHIFT(ts_builtin_sym_error, 27) END_STATE(); STATE(27); + SET_LEX_STATE(5); + SHIFT(ts_aux_sym_repeat_helper2, 28) + SHIFT(ts_aux_sym_token3, 26) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) + END_STATE(); + + STATE(28); + SET_LEX_STATE(7); + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 3, COLLAPSE({1, 0, 1})) + END_STATE(); + + STATE(29); + SET_LEX_STATE(41); + SHIFT(ts_sym_string, 30) + SHIFT(ts_aux_sym_token4, 35) + SHIFT(ts_builtin_sym_error, 36) + END_STATE(); + + STATE(30); + SET_LEX_STATE(39); + SHIFT(ts_aux_sym_token2, 31) + END_STATE(); + + STATE(31); SET_LEX_STATE(8); SHIFT(ts_sym_array, 6) SHIFT(ts_sym_false, 6) @@ -549,154 +558,133 @@ PARSE_TABLE() { SHIFT(ts_sym_object, 6) SHIFT(ts_sym_string, 6) SHIFT(ts_sym_true, 6) - SHIFT(ts_sym_value, 28) - SHIFT(ts_sym_left_brace, 13) - SHIFT(ts_sym_left_bracket, 19) - END_STATE(); - - STATE(28); - SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper1, 29) - END_STATE(); - - STATE(29); - SET_LEX_STATE(4); - SHIFT(ts_sym_right_brace, 30) - END_STATE(); - - STATE(30); - SET_LEX_STATE(5); - REDUCE(ts_sym_comma, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) - REDUCE(ts_sym_right_bracket, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) - END_STATE(); - - STATE(31); - SET_LEX_STATE(5); - REDUCE(ts_sym_comma, ts_sym_object, 2, COLLAPSE({1, 1})) - REDUCE(ts_sym_right_bracket, ts_sym_object, 2, COLLAPSE({1, 1})) + SHIFT(ts_sym_value, 32) + SHIFT(ts_aux_sym_token1, 15) + SHIFT(ts_aux_sym_token5, 21) END_STATE(); STATE(32); SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) SHIFT(ts_aux_sym_repeat_helper1, 33) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(33); SET_LEX_STATE(4); - SHIFT(ts_sym_right_brace, 34) + SHIFT(ts_aux_sym_token4, 34) END_STATE(); STATE(34); SET_LEX_STATE(5); - REDUCE(ts_sym_comma, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) - REDUCE(ts_sym_right_bracket, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) + REDUCE(ts_aux_sym_token3, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) + REDUCE(ts_aux_sym_token6, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) END_STATE(); STATE(35); - SET_LEX_STATE(42); - SHIFT(ts_sym_array, 20) - SHIFT(ts_sym_false, 20) - SHIFT(ts_sym_null, 20) - SHIFT(ts_sym_number, 20) - SHIFT(ts_sym_object, 20) - SHIFT(ts_sym_string, 20) - SHIFT(ts_sym_true, 20) - SHIFT(ts_sym_value, 36) - SHIFT(ts_sym_left_brace, 25) - SHIFT(ts_sym_left_bracket, 35) - SHIFT(ts_sym_right_bracket, 39) - SHIFT(ts_builtin_sym_error, 36) + SET_LEX_STATE(5); + REDUCE(ts_aux_sym_token3, ts_sym_object, 2, COLLAPSE({1, 1})) + REDUCE(ts_aux_sym_token6, ts_sym_object, 2, COLLAPSE({1, 1})) END_STATE(); STATE(36); - SET_LEX_STATE(5); - SHIFT(ts_sym_comma, 22) - REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper2, 37) + SET_LEX_STATE(1); + SHIFT(ts_aux_sym_repeat_helper1, 37) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(37); - SET_LEX_STATE(7); - SHIFT(ts_sym_right_bracket, 38) + SET_LEX_STATE(4); + SHIFT(ts_aux_sym_token4, 38) END_STATE(); STATE(38); SET_LEX_STATE(5); - REDUCE(ts_sym_comma, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) - REDUCE(ts_sym_right_bracket, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) + REDUCE(ts_aux_sym_token3, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) + REDUCE(ts_aux_sym_token6, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); STATE(39); - SET_LEX_STATE(5); - REDUCE(ts_sym_comma, ts_sym_array, 2, COLLAPSE({1, 1})) - REDUCE(ts_sym_right_bracket, ts_sym_array, 2, COLLAPSE({1, 1})) + SET_LEX_STATE(42); + SHIFT(ts_sym_array, 22) + SHIFT(ts_sym_false, 22) + SHIFT(ts_sym_null, 22) + SHIFT(ts_sym_number, 22) + SHIFT(ts_sym_object, 22) + SHIFT(ts_sym_string, 22) + SHIFT(ts_sym_true, 22) + SHIFT(ts_sym_value, 40) + SHIFT(ts_aux_sym_token1, 29) + SHIFT(ts_aux_sym_token5, 39) + SHIFT(ts_aux_sym_token6, 43) + SHIFT(ts_builtin_sym_error, 40) END_STATE(); STATE(40); - SET_LEX_STATE(7); - SHIFT(ts_sym_right_bracket, 41) + SET_LEX_STATE(5); + SHIFT(ts_aux_sym_repeat_helper2, 41) + SHIFT(ts_aux_sym_token3, 26) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) END_STATE(); STATE(41); - SET_LEX_STATE(1); - REDUCE(ts_sym_comma, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) - REDUCE(ts_sym_right_brace, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) + SET_LEX_STATE(7); + SHIFT(ts_aux_sym_token6, 42) END_STATE(); STATE(42); - SET_LEX_STATE(1); - REDUCE(ts_sym_comma, ts_sym_array, 2, COLLAPSE({1, 1})) - REDUCE(ts_sym_right_brace, ts_sym_array, 2, COLLAPSE({1, 1})) + SET_LEX_STATE(5); + REDUCE(ts_aux_sym_token3, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) + REDUCE(ts_aux_sym_token6, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); STATE(43); - SET_LEX_STATE(1); - REDUCE(ts_sym_comma, ts_sym_object, 2, COLLAPSE({1, 1})) - REDUCE(ts_sym_right_brace, ts_sym_object, 2, COLLAPSE({1, 1})) + SET_LEX_STATE(5); + REDUCE(ts_aux_sym_token3, ts_sym_array, 2, COLLAPSE({1, 1})) + REDUCE(ts_aux_sym_token6, ts_sym_array, 2, COLLAPSE({1, 1})) END_STATE(); STATE(44); SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper1, 45) + REDUCE(ts_aux_sym_token3, ts_sym_array, 2, COLLAPSE({1, 1})) + REDUCE(ts_aux_sym_token4, ts_sym_array, 2, COLLAPSE({1, 1})) END_STATE(); STATE(45); - SET_LEX_STATE(4); - SHIFT(ts_sym_right_brace, 46) + SET_LEX_STATE(1); + REDUCE(ts_aux_sym_token3, ts_sym_object, 2, COLLAPSE({1, 1})) + REDUCE(ts_aux_sym_token4, ts_sym_object, 2, COLLAPSE({1, 1})) END_STATE(); STATE(46); SET_LEX_STATE(1); - REDUCE(ts_sym_comma, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) - REDUCE(ts_sym_right_brace, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) + SHIFT(ts_aux_sym_repeat_helper1, 47) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(47); - SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) - SHIFT(ts_aux_sym_repeat_helper1, 48) + SET_LEX_STATE(4); + SHIFT(ts_aux_sym_token4, 48) END_STATE(); STATE(48); - SET_LEX_STATE(4); - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 3, COLLAPSE({1, 0, 1})) + SET_LEX_STATE(1); + REDUCE(ts_aux_sym_token3, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) + REDUCE(ts_aux_sym_token4, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1})) END_STATE(); STATE(49); - SET_LEX_STATE(4); - SHIFT(ts_sym_right_brace, 50) + SET_LEX_STATE(1); + SHIFT(ts_aux_sym_repeat_helper1, 50) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(50); - SET_LEX_STATE(0); - REDUCE(ts_builtin_sym_end, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1})) + SET_LEX_STATE(4); + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 3, COLLAPSE({1, 0, 1})) END_STATE(); STATE(51); @@ -706,14 +694,14 @@ PARSE_TABLE() { STATE(52); SET_LEX_STATE(1); - SHIFT(ts_sym_comma, 8) - REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) SHIFT(ts_aux_sym_repeat_helper1, 53) + SHIFT(ts_aux_sym_token3, 10) + REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({})) END_STATE(); STATE(53); SET_LEX_STATE(4); - SHIFT(ts_sym_right_brace, 54) + SHIFT(ts_aux_sym_token4, 54) END_STATE(); STATE(54); @@ -723,30 +711,30 @@ PARSE_TABLE() { STATE(55); SET_LEX_STATE(42); - SHIFT(ts_sym_array, 20) - SHIFT(ts_sym_false, 20) - SHIFT(ts_sym_null, 20) - SHIFT(ts_sym_number, 20) - SHIFT(ts_sym_object, 20) - SHIFT(ts_sym_string, 20) - SHIFT(ts_sym_true, 20) + SHIFT(ts_sym_array, 22) + SHIFT(ts_sym_false, 22) + SHIFT(ts_sym_null, 22) + SHIFT(ts_sym_number, 22) + SHIFT(ts_sym_object, 22) + SHIFT(ts_sym_string, 22) + SHIFT(ts_sym_true, 22) SHIFT(ts_sym_value, 56) - SHIFT(ts_sym_left_brace, 25) - SHIFT(ts_sym_left_bracket, 35) - SHIFT(ts_sym_right_bracket, 59) + SHIFT(ts_aux_sym_token1, 29) + SHIFT(ts_aux_sym_token5, 39) + SHIFT(ts_aux_sym_token6, 59) SHIFT(ts_builtin_sym_error, 56) END_STATE(); STATE(56); SET_LEX_STATE(5); - SHIFT(ts_sym_comma, 22) - REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) SHIFT(ts_aux_sym_repeat_helper2, 57) + SHIFT(ts_aux_sym_token3, 26) + REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({})) END_STATE(); STATE(57); SET_LEX_STATE(7); - SHIFT(ts_sym_right_bracket, 58) + SHIFT(ts_aux_sym_token6, 58) END_STATE(); STATE(58); diff --git a/include/tree_sitter/compiler.h b/include/tree_sitter/compiler.h index b5f437e6..f2a48a12 100644 --- a/include/tree_sitter/compiler.h +++ b/include/tree_sitter/compiler.h @@ -17,7 +17,6 @@ namespace tree_sitter { rule_ptr repeat(const rule_ptr &content); rule_ptr seq(const std::vector &rules); rule_ptr sym(const std::string &name); - rule_ptr _sym(const std::string &name); rule_ptr pattern(const std::string &value); rule_ptr str(const std::string &value); rule_ptr err(const rule_ptr &rule); diff --git a/src/compiler/rules/rules.cc b/src/compiler/rules/rules.cc index f93e1f36..40d47d8c 100644 --- a/src/compiler/rules/rules.cc +++ b/src/compiler/rules/rules.cc @@ -37,10 +37,6 @@ namespace tree_sitter { return make_shared(name); } - rule_ptr _sym(const string &name) { - return make_shared(name, SymbolTypeHidden); - } - rule_ptr pattern(const string &value) { return make_shared(value); } diff --git a/src/compiler/rules/symbol.cc b/src/compiler/rules/symbol.cc index 922e3c34..96b92a33 100644 --- a/src/compiler/rules/symbol.cc +++ b/src/compiler/rules/symbol.cc @@ -32,8 +32,6 @@ namespace tree_sitter { switch (type) { case SymbolTypeNormal: return string("#"; - case SymbolTypeHidden: - return string("#"; case SymbolTypeAuxiliary: return string("#"; case SymbolTypeBuiltIn: @@ -56,7 +54,7 @@ namespace tree_sitter { } bool Symbol::is_hidden() const { - return (type == SymbolTypeHidden || type == SymbolTypeAuxiliary); + return (name.front() == '_' || type == SymbolTypeAuxiliary); } void Symbol::accept(Visitor *visitor) const { diff --git a/src/compiler/rules/symbol.h b/src/compiler/rules/symbol.h index 33b4741d..656a0aea 100644 --- a/src/compiler/rules/symbol.h +++ b/src/compiler/rules/symbol.h @@ -9,7 +9,6 @@ namespace tree_sitter { namespace rules { typedef enum { SymbolTypeNormal, - SymbolTypeHidden, SymbolTypeAuxiliary, SymbolTypeBuiltIn } SymbolType;