Remove reduction-specific collapse flags in favor of globally hidden symbols
This commit is contained in:
parent
2df56f01c8
commit
25861b7f03
6 changed files with 378 additions and 311 deletions
|
|
@ -26,6 +26,18 @@ SYMBOL_NAMES = {
|
|||
"token2",
|
||||
};
|
||||
|
||||
HIDDEN_SYMBOL_FLAGS = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
|
||||
LEX_FN() {
|
||||
START_LEXER();
|
||||
switch (LEX_STATE()) {
|
||||
|
|
@ -144,9 +156,9 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(2);
|
||||
SET_LEX_STATE(15);
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 1)
|
||||
SHIFT(ts_sym_times, 3)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(3);
|
||||
|
|
@ -159,14 +171,14 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(4);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 3)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(5);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(6);
|
||||
|
|
@ -187,15 +199,15 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(8);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(9);
|
||||
SET_LEX_STATE(6);
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 1)
|
||||
SHIFT(ts_sym_times, 10)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(10);
|
||||
|
|
@ -208,14 +220,14 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(11);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_term, 3)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(12);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(13);
|
||||
|
|
@ -236,21 +248,21 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(15);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(16);
|
||||
SET_LEX_STATE(6);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1)
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(17);
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_sym_plus, 18)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_expression, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_expression, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(18);
|
||||
|
|
@ -265,7 +277,7 @@ PARSE_TABLE() {
|
|||
STATE(19);
|
||||
SET_LEX_STATE(14);
|
||||
SHIFT(ts_sym_times, 20)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(20);
|
||||
|
|
@ -278,12 +290,12 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(21);
|
||||
SET_LEX_STATE(3);
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_term, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(22);
|
||||
SET_LEX_STATE(3);
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(23);
|
||||
|
|
@ -304,7 +316,7 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(25);
|
||||
SET_LEX_STATE(3);
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(26);
|
||||
|
|
@ -325,20 +337,20 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(28);
|
||||
SET_LEX_STATE(6);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3)
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(29);
|
||||
SET_LEX_STATE(14);
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(30);
|
||||
SET_LEX_STATE(3);
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_expression, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_expression, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(31);
|
||||
|
|
@ -359,21 +371,21 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(33);
|
||||
SET_LEX_STATE(14);
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(34);
|
||||
SET_LEX_STATE(15);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 1)
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(35);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_plus, 36)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_expression, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_expression, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(36);
|
||||
|
|
@ -388,7 +400,7 @@ PARSE_TABLE() {
|
|||
STATE(37);
|
||||
SET_LEX_STATE(16);
|
||||
SHIFT(ts_sym_times, 38)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(38);
|
||||
|
|
@ -401,12 +413,12 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(39);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_term, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(40);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(41);
|
||||
|
|
@ -427,18 +439,18 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(43);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(44);
|
||||
SET_LEX_STATE(16);
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 1)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(45);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_expression, 3, COLLAPSE({0, 0, 0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_expression, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(46);
|
||||
|
|
@ -459,8 +471,8 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(48);
|
||||
SET_LEX_STATE(16);
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(49);
|
||||
|
|
@ -481,9 +493,9 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(51);
|
||||
SET_LEX_STATE(15);
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_sym_plus, ts_sym_factor, 3)
|
||||
REDUCE(ts_sym_times, ts_sym_factor, 3)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_factor, 3)
|
||||
END_STATE();
|
||||
|
||||
END_TABLE();
|
||||
|
|
|
|||
|
|
@ -74,6 +74,42 @@ SYMBOL_NAMES = {
|
|||
"token9",
|
||||
};
|
||||
|
||||
HIDDEN_SYMBOL_FLAGS = {
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
|
||||
LEX_FN() {
|
||||
START_LEXER();
|
||||
switch (LEX_STATE()) {
|
||||
|
|
@ -729,7 +765,7 @@ PARSE_TABLE() {
|
|||
SHIFT(ts_aux_sym_repeat_helper1, 112)
|
||||
SHIFT(ts_aux_sym_token10, 20)
|
||||
SHIFT(ts_aux_sym_token5, 69)
|
||||
REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(1);
|
||||
|
|
@ -755,7 +791,7 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(3);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_literal, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_literal, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(4);
|
||||
|
|
@ -771,17 +807,17 @@ PARSE_TABLE() {
|
|||
|
||||
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_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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym__VAR, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_false, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_identifier, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_null, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_number, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_string, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_true, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_if_statement, 5)
|
||||
END_STATE();
|
||||
|
||||
STATE(7);
|
||||
|
|
@ -804,7 +840,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(8);
|
||||
|
|
@ -841,17 +877,17 @@ PARSE_TABLE() {
|
|||
|
||||
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_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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym__VAR, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_false, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_identifier, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_null, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_number, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_string, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_sym_true, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_if_statement, 5)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_if_statement, 5)
|
||||
END_STATE();
|
||||
|
||||
STATE(13);
|
||||
|
|
@ -874,7 +910,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(14);
|
||||
|
|
@ -905,20 +941,20 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_literal, 1)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_literal, 1)
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_assignment, 4)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_assignment, 4)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_expression, 1)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_expression, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(20);
|
||||
|
|
@ -941,14 +977,14 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_literal, 1)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_literal, 1)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0)
|
||||
SHIFT(ts_aux_sym_token9, 25)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -959,8 +995,8 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_array, 4)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(25);
|
||||
|
|
@ -983,19 +1019,19 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0)
|
||||
SHIFT(ts_aux_sym_token9, 25)
|
||||
END_STATE();
|
||||
|
||||
STATE(27);
|
||||
SET_LEX_STATE(64);
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 3)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_expression, 1)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_expression, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(29);
|
||||
|
|
@ -1019,7 +1055,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0)
|
||||
SHIFT(ts_aux_sym_token9, 25)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1030,14 +1066,14 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_array, 4)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_array, 2)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(34);
|
||||
|
|
@ -1070,14 +1106,14 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_literal, 1)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_literal, 1)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1088,8 +1124,8 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_object, 6)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
STATE(41);
|
||||
|
|
@ -1122,19 +1158,19 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 5)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_expression, 1)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_expression, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(47);
|
||||
|
|
@ -1158,7 +1194,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0)
|
||||
SHIFT(ts_aux_sym_token9, 25)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1169,14 +1205,14 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_array, 4)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_array, 2)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(52);
|
||||
|
|
@ -1210,7 +1246,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1221,20 +1257,20 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 6)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 2)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1245,32 +1281,32 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 4)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
STATE(63);
|
||||
SET_LEX_STATE(66);
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 3)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_object, 2)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1281,14 +1317,14 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token11, ts_sym_object, 4)
|
||||
REDUCE(ts_aux_sym_token9, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_array, 2)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(69);
|
||||
|
|
@ -1322,7 +1358,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1333,20 +1369,20 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_object, 6)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_object, 2)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1357,8 +1393,8 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token1, ts_sym_object, 4)
|
||||
REDUCE(ts_aux_sym_token2, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(79);
|
||||
|
|
@ -1370,47 +1406,47 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym__VAR, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_false, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_identifier, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_null, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_number, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_string, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_true, ts_sym_statement, 2)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_statement, 2)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_statement, 2)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_statement, 2)
|
||||
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}))
|
||||
REDUCE(ts_sym__IF, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym__VAR, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_false, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_identifier, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_null, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_number, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_string, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_true, ts_sym__terminator, 1)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym__terminator, 1)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym__terminator, 1)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym__terminator, 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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym__VAR, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_false, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_identifier, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_null, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_number, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_string, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_true, ts_sym_statement, 1)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_statement, 1)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_statement, 1)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_statement, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(83);
|
||||
|
|
@ -1433,12 +1469,12 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(84);
|
||||
SET_LEX_STATE(66);
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 2, COLLAPSE({0, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(85);
|
||||
|
|
@ -1448,22 +1484,22 @@ PARSE_TABLE() {
|
|||
|
||||
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_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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym__VAR, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_false, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_identifier, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_null, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_number, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_string, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_true, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_statement_block, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(87);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_expression, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_expression, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(88);
|
||||
|
|
@ -1487,7 +1523,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token11, ts_aux_sym_repeat_helper4, 0)
|
||||
SHIFT(ts_aux_sym_token9, 25)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1498,12 +1534,12 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(91);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(92);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(93);
|
||||
|
|
@ -1537,7 +1573,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1548,18 +1584,18 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(98);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
STATE(99);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper3, 0)
|
||||
SHIFT(ts_aux_sym_token9, 41)
|
||||
END_STATE();
|
||||
|
||||
|
|
@ -1570,7 +1606,7 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(102);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(103);
|
||||
|
|
@ -1580,17 +1616,17 @@ PARSE_TABLE() {
|
|||
|
||||
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_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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym__VAR, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_false, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_identifier, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_null, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_number, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_string, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_sym_true, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_statement_block, 3)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_statement_block, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(105);
|
||||
|
|
@ -1602,47 +1638,47 @@ PARSE_TABLE() {
|
|||
|
||||
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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym__VAR, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_false, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_identifier, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_null, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_number, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_string, ts_sym_statement, 2)
|
||||
REDUCE(ts_sym_true, ts_sym_statement, 2)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_statement, 2)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_statement, 2)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_statement, 2)
|
||||
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}))
|
||||
REDUCE(ts_sym__IF, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym__VAR, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_false, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_identifier, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_null, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_number, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_string, ts_sym__terminator, 1)
|
||||
REDUCE(ts_sym_true, ts_sym__terminator, 1)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym__terminator, 1)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym__terminator, 1)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym__terminator, 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}))
|
||||
REDUCE(ts_sym__IF, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym__VAR, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_false, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_identifier, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_null, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_number, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_string, ts_sym_statement, 1)
|
||||
REDUCE(ts_sym_true, ts_sym_statement, 1)
|
||||
REDUCE(ts_aux_sym_token10, ts_sym_statement, 1)
|
||||
REDUCE(ts_aux_sym_token5, ts_sym_statement, 1)
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_statement, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(109);
|
||||
|
|
@ -1670,17 +1706,17 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(111);
|
||||
SET_LEX_STATE(79);
|
||||
REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 2, COLLAPSE({0, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_aux_sym_repeat_helper1, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(112);
|
||||
SET_LEX_STATE(79);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_program, 1, COLLAPSE({1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_program, 1)
|
||||
END_STATE();
|
||||
|
||||
END_TABLE();
|
||||
|
|
|
|||
|
|
@ -40,6 +40,25 @@ SYMBOL_NAMES = {
|
|||
"token6",
|
||||
};
|
||||
|
||||
HIDDEN_SYMBOL_FLAGS = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
|
||||
LEX_FN() {
|
||||
START_LEXER();
|
||||
switch (LEX_STATE()) {
|
||||
|
|
@ -332,7 +351,7 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(1);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_value, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(2);
|
||||
|
|
@ -368,15 +387,15 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(6);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_value, 1)
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_value, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(7);
|
||||
SET_LEX_STATE(1);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(8);
|
||||
|
|
@ -386,7 +405,7 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(9);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
STATE(10);
|
||||
|
|
@ -418,12 +437,12 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 5)
|
||||
END_STATE();
|
||||
|
||||
STATE(15);
|
||||
|
|
@ -456,7 +475,7 @@ PARSE_TABLE() {
|
|||
SET_LEX_STATE(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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(19);
|
||||
|
|
@ -466,8 +485,8 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(20);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 6)
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
STATE(21);
|
||||
|
|
@ -488,15 +507,15 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(22);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_value, 1)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_value, 1)
|
||||
END_STATE();
|
||||
|
||||
STATE(23);
|
||||
SET_LEX_STATE(5);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(24);
|
||||
|
|
@ -506,8 +525,8 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(25);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 4)
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(26);
|
||||
|
|
@ -529,12 +548,12 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(28);
|
||||
SET_LEX_STATE(7);
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(29);
|
||||
|
|
@ -567,7 +586,7 @@ PARSE_TABLE() {
|
|||
SET_LEX_STATE(1);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(33);
|
||||
|
|
@ -577,21 +596,21 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(34);
|
||||
SET_LEX_STATE(5);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 6)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 6)
|
||||
END_STATE();
|
||||
|
||||
STATE(35);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 2)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(36);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(37);
|
||||
|
|
@ -601,8 +620,8 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(38);
|
||||
SET_LEX_STATE(5);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 4)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(39);
|
||||
|
|
@ -625,7 +644,7 @@ PARSE_TABLE() {
|
|||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(41);
|
||||
|
|
@ -635,33 +654,33 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(42);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 4)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(43);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 2)
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(44);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 2)
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(45);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 2)
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(46);
|
||||
SET_LEX_STATE(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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(47);
|
||||
|
|
@ -671,32 +690,32 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(48);
|
||||
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}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 4)
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(49);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(50);
|
||||
SET_LEX_STATE(4);
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 3, COLLAPSE({1, 0, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 3)
|
||||
END_STATE();
|
||||
|
||||
STATE(51);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 2)
|
||||
END_STATE();
|
||||
|
||||
STATE(52);
|
||||
SET_LEX_STATE(1);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(53);
|
||||
|
|
@ -706,7 +725,7 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(54);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(55);
|
||||
|
|
@ -729,7 +748,7 @@ PARSE_TABLE() {
|
|||
SET_LEX_STATE(5);
|
||||
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({}))
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0)
|
||||
END_STATE();
|
||||
|
||||
STATE(57);
|
||||
|
|
@ -739,12 +758,12 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(58);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_array, 4)
|
||||
END_STATE();
|
||||
|
||||
STATE(59);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_array, 2)
|
||||
END_STATE();
|
||||
|
||||
END_TABLE();
|
||||
|
|
|
|||
|
|
@ -68,13 +68,16 @@ ts_lex(ts_lexer *lexer, state_id lex_state)
|
|||
#define SYMBOL_NAMES \
|
||||
static const char *ts_symbol_names[]
|
||||
|
||||
#define HIDDEN_SYMBOL_FLAGS \
|
||||
static const int hidden_symbol_flags[]
|
||||
|
||||
#define EXPORT_PARSER(constructor_name) \
|
||||
ts_parser constructor_name() { \
|
||||
ts_init_parse_table(); \
|
||||
ts_parser result = { \
|
||||
.parse_fn = ts_parse, \
|
||||
.symbol_names = ts_symbol_names, \
|
||||
.data = ts_lr_parser_make(), \
|
||||
.data = ts_lr_parser_make(hidden_symbol_flags), \
|
||||
.free_fn = NULL \
|
||||
}; \
|
||||
return result; \
|
||||
|
|
@ -86,14 +89,11 @@ actions_for_state[on_symbol] = (ts_parse_action) { \
|
|||
.data = { .to_state = to_state_value } \
|
||||
};
|
||||
|
||||
#define REDUCE(on_symbol, symbol_val, child_count_val, collapse_flags_val) \
|
||||
do { \
|
||||
static const int collapse_flags[child_count_val] = collapse_flags_val; \
|
||||
actions_for_state[on_symbol] = (ts_parse_action) { \
|
||||
.type = ts_parse_action_type_reduce, \
|
||||
.data = { .symbol = symbol_val, .child_count = child_count_val, .collapse_flags = collapse_flags } \
|
||||
}; \
|
||||
} while(0);
|
||||
#define REDUCE(on_symbol, symbol_val, child_count_val) \
|
||||
actions_for_state[on_symbol] = (ts_parse_action) { \
|
||||
.type = ts_parse_action_type_reduce, \
|
||||
.data = { .symbol = symbol_val, .child_count = child_count_val } \
|
||||
}; \
|
||||
|
||||
#define ACCEPT_INPUT(on_symbol) \
|
||||
actions_for_state[on_symbol] = (ts_parse_action) { \
|
||||
|
|
@ -132,8 +132,6 @@ return ts_lexer_build_node(lexer, ts_builtin_sym_error);
|
|||
#define LEX_PANIC() \
|
||||
{ DEBUG_LEX("Lex error: unexpected state %d", LEX_STATE()); return NULL; }
|
||||
|
||||
#define COLLAPSE(...) __VA_ARGS__
|
||||
|
||||
|
||||
/*
|
||||
* Stack
|
||||
|
|
@ -259,14 +257,16 @@ PARSE_TABLE();
|
|||
typedef struct {
|
||||
ts_lexer lexer;
|
||||
ts_stack stack;
|
||||
const int *hidden_symbol_flags;
|
||||
ts_tree *lookahead;
|
||||
ts_tree *next_lookahead;
|
||||
} ts_lr_parser;
|
||||
|
||||
static ts_lr_parser * ts_lr_parser_make() {
|
||||
static ts_lr_parser * ts_lr_parser_make(const int *hidden_symbol_flags) {
|
||||
ts_lr_parser *result = malloc(sizeof(ts_lr_parser));
|
||||
result->lexer = ts_lexer_make();
|
||||
result->stack = ts_stack_make();
|
||||
result->hidden_symbol_flags = hidden_symbol_flags;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -323,9 +323,9 @@ static void ts_lr_parser_shift(ts_lr_parser *parser, state_id parse_state) {
|
|||
parser->next_lookahead = NULL;
|
||||
}
|
||||
|
||||
static void ts_lr_parser_reduce(ts_lr_parser *parser, ts_symbol symbol, int immediate_child_count, const int *collapse_flags) {
|
||||
static void ts_lr_parser_reduce(ts_lr_parser *parser, ts_symbol symbol, int child_count) {
|
||||
parser->next_lookahead = parser->lookahead;
|
||||
parser->lookahead = ts_stack_reduce(&parser->stack, symbol, immediate_child_count, collapse_flags);
|
||||
parser->lookahead = ts_stack_reduce(&parser->stack, symbol, child_count, parser->hidden_symbol_flags);
|
||||
}
|
||||
|
||||
static ts_symbol * ts_lr_parser_expected_symbols(ts_lr_parser *parser, size_t *count) {
|
||||
|
|
@ -394,7 +394,7 @@ static const ts_tree * ts_parse(void *data, ts_input input, ts_input_edit *edit)
|
|||
ts_lr_parser_shift(parser, action.data.to_state);
|
||||
break;
|
||||
case ts_parse_action_type_reduce:
|
||||
ts_lr_parser_reduce(parser, action.data.symbol, action.data.child_count, action.data.collapse_flags);
|
||||
ts_lr_parser_reduce(parser, action.data.symbol, action.data.child_count);
|
||||
break;
|
||||
case ts_parse_action_type_accept:
|
||||
done = 1;
|
||||
|
|
|
|||
|
|
@ -114,17 +114,6 @@ namespace tree_sitter {
|
|||
return "!(" + condition_for_character_set(rule.complement()) + ")";
|
||||
}
|
||||
|
||||
string collapse_flags(vector<bool> flags) {
|
||||
string result;
|
||||
bool started = false;
|
||||
for (auto flag : flags) {
|
||||
if (started) result += ", ";
|
||||
result += (flag ? "1" : "0");
|
||||
started = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
string code_for_parse_actions(const rules::Symbol &symbol, const ParseAction &action) {
|
||||
string sym_id = symbol_id(symbol);
|
||||
switch (action.type) {
|
||||
|
|
@ -136,8 +125,7 @@ namespace tree_sitter {
|
|||
return "REDUCE(" +
|
||||
sym_id + ", " +
|
||||
symbol_id(action.symbol) + ", " +
|
||||
to_string(action.child_flags.size()) + ", " +
|
||||
"COLLAPSE({" + collapse_flags(action.child_flags) + "}))";
|
||||
to_string(action.child_flags.size()) + ")";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
|
|
@ -206,6 +194,14 @@ namespace tree_sitter {
|
|||
result += indent(string("\"") + symbol.name) + "\",\n";
|
||||
return result + "};";
|
||||
}
|
||||
|
||||
string hidden_symbol_flags() {
|
||||
string result = "HIDDEN_SYMBOL_FLAGS = {\n";
|
||||
for (auto &symbol : parse_table.symbols)
|
||||
if (!symbol.is_built_in())
|
||||
result += indent(symbol.is_hidden() ? "1" : "0") + ",\n";
|
||||
return result + "};";
|
||||
}
|
||||
|
||||
string includes() {
|
||||
return "#include \"tree_sitter/parser.h\"";
|
||||
|
|
@ -265,6 +261,7 @@ namespace tree_sitter {
|
|||
symbol_count(),
|
||||
symbol_enum(),
|
||||
rule_names_list(),
|
||||
hidden_symbol_flags(),
|
||||
lex_function(),
|
||||
parse_table_function(),
|
||||
parser_export(),
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ size_t ts_stack_right_position(const ts_stack *stack) {
|
|||
return result;
|
||||
}
|
||||
|
||||
ts_tree * ts_stack_reduce(ts_stack *stack, ts_symbol symbol, int immediate_child_count, const int *collapse_flags) {
|
||||
ts_tree * ts_stack_reduce(ts_stack *stack, ts_symbol symbol, int immediate_child_count, const int *hidden_symbol_flags) {
|
||||
size_t new_stack_size = stack->size - immediate_child_count;
|
||||
size_t size = 0, offset = 0;
|
||||
|
||||
|
|
@ -72,7 +72,8 @@ ts_tree * ts_stack_reduce(ts_stack *stack, ts_symbol symbol, int immediate_child
|
|||
size += ts_tree_offset(child) + ts_tree_size(child);
|
||||
}
|
||||
|
||||
if (collapse_flags[i]) {
|
||||
ts_symbol symbol = ts_tree_symbol(child);
|
||||
if (symbol >= 0 && hidden_symbol_flags[symbol]) {
|
||||
size_t grandchild_count;
|
||||
ts_tree_children(child, &grandchild_count);
|
||||
child_count += grandchild_count;
|
||||
|
|
@ -89,7 +90,9 @@ ts_tree * ts_stack_reduce(ts_stack *stack, ts_symbol symbol, int immediate_child
|
|||
ts_tree *child = stack->entries[new_stack_size + i].node;
|
||||
immediate_children[i] = child;
|
||||
|
||||
if (collapse_flags[i]) {
|
||||
|
||||
ts_symbol symbol = ts_tree_symbol(child);
|
||||
if (symbol >= 0 && hidden_symbol_flags[symbol]) {
|
||||
size_t grandchild_count;
|
||||
ts_tree ** grandchildren = ts_tree_children(child, &grandchild_count);
|
||||
memcpy(children + child_index, grandchildren, (grandchild_count * sizeof(ts_tree *)));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue