Make start and EOF symbols into builtin symbols
This commit is contained in:
parent
8b7ed13c8b
commit
0d4687bdad
9 changed files with 288 additions and 305 deletions
|
|
@ -8,7 +8,6 @@ enum {
|
|||
ts_sym_term,
|
||||
ts_sym_times,
|
||||
ts_sym_variable,
|
||||
ts_aux_sym_end,
|
||||
ts_aux_sym_token1,
|
||||
ts_aux_sym_token2,
|
||||
};
|
||||
|
|
@ -21,7 +20,6 @@ SYMBOL_NAMES {
|
|||
"term",
|
||||
"times",
|
||||
"variable",
|
||||
"end",
|
||||
"token1",
|
||||
"token2",
|
||||
};
|
||||
|
|
@ -37,93 +35,81 @@ LEX_FN() {
|
|||
START_LEXER();
|
||||
switch (LEX_STATE()) {
|
||||
case 0:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
LEX_ERROR();
|
||||
case 1:
|
||||
ACCEPT_TOKEN(ts_aux_sym_end);
|
||||
case 2:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(3);
|
||||
ADVANCE(2);
|
||||
LEX_ERROR();
|
||||
case 3:
|
||||
case 2:
|
||||
ACCEPT_TOKEN(ts_sym_plus);
|
||||
case 4:
|
||||
case 3:
|
||||
if (LOOKAHEAD_CHAR() == ')')
|
||||
ADVANCE(5);
|
||||
ADVANCE(4);
|
||||
LEX_ERROR();
|
||||
case 5:
|
||||
case 4:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token2);
|
||||
case 5:
|
||||
if (LOOKAHEAD_CHAR() == ')')
|
||||
ADVANCE(4);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(2);
|
||||
LEX_ERROR();
|
||||
case 6:
|
||||
if (LOOKAHEAD_CHAR() == ')')
|
||||
ADVANCE(5);
|
||||
ADVANCE(4);
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(7);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(3);
|
||||
ADVANCE(2);
|
||||
LEX_ERROR();
|
||||
case 7:
|
||||
if (LOOKAHEAD_CHAR() == ')')
|
||||
ADVANCE(5);
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(8);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(3);
|
||||
LEX_ERROR();
|
||||
case 8:
|
||||
ACCEPT_TOKEN(ts_sym_times);
|
||||
case 9:
|
||||
case 8:
|
||||
if (LOOKAHEAD_CHAR() == '(')
|
||||
ADVANCE(9);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(10);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(11);
|
||||
if (('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') ||
|
||||
('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z'))
|
||||
ADVANCE(12);
|
||||
ADVANCE(11);
|
||||
LEX_ERROR();
|
||||
case 10:
|
||||
case 9:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token1);
|
||||
case 11:
|
||||
case 10:
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(11);
|
||||
ADVANCE(10);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 12:
|
||||
case 11:
|
||||
if (('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') ||
|
||||
('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z'))
|
||||
ADVANCE(12);
|
||||
ADVANCE(11);
|
||||
ACCEPT_TOKEN(ts_sym_variable);
|
||||
case 13:
|
||||
case 12:
|
||||
if (LOOKAHEAD_CHAR() == ')')
|
||||
ADVANCE(5);
|
||||
ADVANCE(4);
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(8);
|
||||
ADVANCE(7);
|
||||
LEX_ERROR();
|
||||
case 13:
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(7);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(2);
|
||||
LEX_ERROR();
|
||||
case 14:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(8);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(3);
|
||||
LEX_ERROR();
|
||||
case 15:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(8);
|
||||
ADVANCE(7);
|
||||
LEX_ERROR();
|
||||
case ts_lex_state_error:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
if (LOOKAHEAD_CHAR() == '*')
|
||||
ADVANCE(8);
|
||||
ADVANCE(7);
|
||||
if (LOOKAHEAD_CHAR() == '+')
|
||||
ADVANCE(3);
|
||||
ADVANCE(2);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(11);
|
||||
ADVANCE(10);
|
||||
if (('A' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'Z') ||
|
||||
('a' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= 'z'))
|
||||
ADVANCE(12);
|
||||
ADVANCE(11);
|
||||
LEX_ERROR();
|
||||
default:
|
||||
LEX_PANIC();
|
||||
|
|
@ -135,7 +121,7 @@ PARSE_FN() {
|
|||
START_PARSER();
|
||||
switch (PARSE_STATE()) {
|
||||
case 0:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(1);
|
||||
|
|
@ -155,25 +141,25 @@ PARSE_FN() {
|
|||
case 1:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
ACCEPT_INPUT();
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 2:
|
||||
SET_LEX_STATE(14);
|
||||
SET_LEX_STATE(13);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_term, 1, COLLAPSE({0}));
|
||||
case ts_sym_times:
|
||||
SHIFT(3);
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_term, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_aux_sym_end}));
|
||||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_builtin_sym_end}));
|
||||
}
|
||||
case 3:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_factor:
|
||||
SHIFT(4);
|
||||
|
|
@ -187,27 +173,27 @@ PARSE_FN() {
|
|||
PARSE_ERROR(4, EXPECT({ts_sym_factor, ts_sym_number, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 4:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_term, 3, COLLAPSE({0, 0, 0}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_term, 3, COLLAPSE({0, 0, 0}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_builtin_sym_end}));
|
||||
}
|
||||
case 5:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_builtin_sym_end}));
|
||||
}
|
||||
case 6:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(7);
|
||||
|
|
@ -225,7 +211,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 7:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(8);
|
||||
|
|
@ -233,17 +219,17 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 8:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_builtin_sym_end}));
|
||||
}
|
||||
case 9:
|
||||
SET_LEX_STATE(7);
|
||||
SET_LEX_STATE(6);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_term, 1, COLLAPSE({0}));
|
||||
|
|
@ -255,7 +241,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_aux_sym_token2}));
|
||||
}
|
||||
case 10:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_factor:
|
||||
SHIFT(11);
|
||||
|
|
@ -269,7 +255,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(4, EXPECT({ts_sym_factor, ts_sym_number, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 11:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_term, 3, COLLAPSE({0, 0, 0}));
|
||||
|
|
@ -279,7 +265,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_token2}));
|
||||
}
|
||||
case 12:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
|
|
@ -289,7 +275,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_token2}));
|
||||
}
|
||||
case 13:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(14);
|
||||
|
|
@ -307,7 +293,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 14:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(15);
|
||||
|
|
@ -315,7 +301,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 15:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
|
|
@ -325,7 +311,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_token2}));
|
||||
}
|
||||
case 16:
|
||||
SET_LEX_STATE(7);
|
||||
SET_LEX_STATE(6);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
|
|
@ -337,7 +323,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_aux_sym_token2}));
|
||||
}
|
||||
case 17:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
SHIFT(18);
|
||||
|
|
@ -347,7 +333,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_token2}));
|
||||
}
|
||||
case 18:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_factor:
|
||||
SHIFT(19);
|
||||
|
|
@ -363,7 +349,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(5, EXPECT({ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 19:
|
||||
SET_LEX_STATE(13);
|
||||
SET_LEX_STATE(12);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_times:
|
||||
SHIFT(20);
|
||||
|
|
@ -373,7 +359,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_aux_sym_token2}));
|
||||
}
|
||||
case 20:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_factor:
|
||||
SHIFT(21);
|
||||
|
|
@ -387,7 +373,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(4, EXPECT({ts_sym_factor, ts_sym_number, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 21:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
REDUCE(ts_sym_term, 3, COLLAPSE({0, 0, 0}));
|
||||
|
|
@ -395,7 +381,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 22:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
|
|
@ -403,7 +389,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 23:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(24);
|
||||
|
|
@ -421,7 +407,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 24:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(25);
|
||||
|
|
@ -429,7 +415,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 25:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
|
|
@ -437,7 +423,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 26:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(27);
|
||||
|
|
@ -455,7 +441,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 27:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(28);
|
||||
|
|
@ -463,7 +449,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 28:
|
||||
SET_LEX_STATE(7);
|
||||
SET_LEX_STATE(6);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
|
|
@ -475,7 +461,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_aux_sym_token2}));
|
||||
}
|
||||
case 29:
|
||||
SET_LEX_STATE(13);
|
||||
SET_LEX_STATE(12);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_times:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
|
|
@ -485,7 +471,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_aux_sym_token2}));
|
||||
}
|
||||
case 30:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
REDUCE(ts_sym_expression, 3, COLLAPSE({0, 0, 0}));
|
||||
|
|
@ -493,7 +479,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 31:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(32);
|
||||
|
|
@ -511,7 +497,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 32:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(33);
|
||||
|
|
@ -519,7 +505,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 33:
|
||||
SET_LEX_STATE(13);
|
||||
SET_LEX_STATE(12);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_times:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
|
|
@ -529,29 +515,29 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_aux_sym_token2}));
|
||||
}
|
||||
case 34:
|
||||
SET_LEX_STATE(14);
|
||||
SET_LEX_STATE(13);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
case ts_sym_times:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_aux_sym_end}));
|
||||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_builtin_sym_end}));
|
||||
}
|
||||
case 35:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
SHIFT(36);
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_expression, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_plus, ts_builtin_sym_end}));
|
||||
}
|
||||
case 36:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_factor:
|
||||
SHIFT(37);
|
||||
|
|
@ -567,17 +553,17 @@ PARSE_FN() {
|
|||
PARSE_ERROR(5, EXPECT({ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 37:
|
||||
SET_LEX_STATE(15);
|
||||
SET_LEX_STATE(14);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_times:
|
||||
SHIFT(38);
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_term, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_builtin_sym_end}));
|
||||
}
|
||||
case 38:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_factor:
|
||||
SHIFT(39);
|
||||
|
|
@ -593,21 +579,21 @@ PARSE_FN() {
|
|||
case 39:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_term, 3, COLLAPSE({0, 0, 0}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 40:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 41:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(42);
|
||||
|
|
@ -625,7 +611,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 42:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(43);
|
||||
|
|
@ -635,31 +621,31 @@ PARSE_FN() {
|
|||
case 43:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 44:
|
||||
SET_LEX_STATE(15);
|
||||
SET_LEX_STATE(14);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_times:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_builtin_sym_end}));
|
||||
}
|
||||
case 45:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_expression, 3, COLLAPSE({0, 0, 0}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 46:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(47);
|
||||
|
|
@ -677,7 +663,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 47:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(48);
|
||||
|
|
@ -685,17 +671,17 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 48:
|
||||
SET_LEX_STATE(15);
|
||||
SET_LEX_STATE(14);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_times:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
default:
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_aux_sym_end}));
|
||||
PARSE_ERROR(2, EXPECT({ts_sym_times, ts_builtin_sym_end}));
|
||||
}
|
||||
case 49:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_expression:
|
||||
SHIFT(50);
|
||||
|
|
@ -713,7 +699,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(6, EXPECT({ts_sym_expression, ts_sym_factor, ts_sym_number, ts_sym_term, ts_sym_variable, ts_aux_sym_token1}));
|
||||
}
|
||||
case 50:
|
||||
SET_LEX_STATE(4);
|
||||
SET_LEX_STATE(3);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_token2:
|
||||
SHIFT(51);
|
||||
|
|
@ -721,16 +707,16 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_aux_sym_token2}));
|
||||
}
|
||||
case 51:
|
||||
SET_LEX_STATE(14);
|
||||
SET_LEX_STATE(13);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_plus:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
case ts_sym_times:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_factor, 3, COLLAPSE({1, 0, 1}));
|
||||
default:
|
||||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_aux_sym_end}));
|
||||
PARSE_ERROR(3, EXPECT({ts_sym_plus, ts_sym_times, ts_builtin_sym_end}));
|
||||
}
|
||||
default:
|
||||
PARSE_PANIC();
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ enum {
|
|||
ts_sym_left_bracket,
|
||||
ts_sym_right_brace,
|
||||
ts_sym_right_bracket,
|
||||
ts_aux_sym_end,
|
||||
ts_aux_sym_repeat_helper1,
|
||||
ts_aux_sym_repeat_helper2,
|
||||
};
|
||||
|
|
@ -29,7 +28,6 @@ SYMBOL_NAMES {
|
|||
"left_bracket",
|
||||
"right_brace",
|
||||
"right_bracket",
|
||||
"end",
|
||||
"repeat_helper1",
|
||||
"repeat_helper2",
|
||||
};
|
||||
|
|
@ -61,166 +59,160 @@ LEX_FN() {
|
|||
START_LEXER();
|
||||
switch (LEX_STATE()) {
|
||||
case 0:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
LEX_ERROR();
|
||||
case 1:
|
||||
ACCEPT_TOKEN(ts_aux_sym_end);
|
||||
case 2:
|
||||
if (LOOKAHEAD_CHAR() == ',')
|
||||
ADVANCE(2);
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(3);
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(4);
|
||||
LEX_ERROR();
|
||||
case 3:
|
||||
case 2:
|
||||
ACCEPT_TOKEN(ts_sym_comma);
|
||||
case 4:
|
||||
case 3:
|
||||
ACCEPT_TOKEN(ts_sym_right_brace);
|
||||
case 5:
|
||||
case 4:
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(4);
|
||||
ADVANCE(3);
|
||||
LEX_ERROR();
|
||||
case 5:
|
||||
if (LOOKAHEAD_CHAR() == ',')
|
||||
ADVANCE(2);
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(6);
|
||||
LEX_ERROR();
|
||||
case 6:
|
||||
if (LOOKAHEAD_CHAR() == ',')
|
||||
ADVANCE(3);
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(7);
|
||||
LEX_ERROR();
|
||||
case 7:
|
||||
ACCEPT_TOKEN(ts_sym_right_bracket);
|
||||
case 8:
|
||||
case 7:
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(7);
|
||||
ADVANCE(6);
|
||||
LEX_ERROR();
|
||||
case 8:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(9);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(15);
|
||||
if (LOOKAHEAD_CHAR() == '[')
|
||||
ADVANCE(16);
|
||||
if (LOOKAHEAD_CHAR() == '{')
|
||||
ADVANCE(17);
|
||||
LEX_ERROR();
|
||||
case 9:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
if (!((LOOKAHEAD_CHAR() == '\"') ||
|
||||
(LOOKAHEAD_CHAR() == '\\')))
|
||||
ADVANCE(10);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(16);
|
||||
if (LOOKAHEAD_CHAR() == '[')
|
||||
ADVANCE(17);
|
||||
if (LOOKAHEAD_CHAR() == '{')
|
||||
ADVANCE(18);
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(11);
|
||||
if (LOOKAHEAD_CHAR() == '\\')
|
||||
ADVANCE(12);
|
||||
if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\')
|
||||
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);
|
||||
if (']' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '\\')
|
||||
ADVANCE(15);
|
||||
LEX_ERROR();
|
||||
case 14:
|
||||
if (!((LOOKAHEAD_CHAR() == '\"') ||
|
||||
(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 15:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(11);
|
||||
LEX_ERROR();
|
||||
case 16:
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(16);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 17:
|
||||
ACCEPT_TOKEN(ts_sym_left_bracket);
|
||||
case 18:
|
||||
ACCEPT_TOKEN(ts_sym_left_brace);
|
||||
case 19:
|
||||
if (LOOKAHEAD_CHAR() == ':')
|
||||
ADVANCE(20);
|
||||
LEX_ERROR();
|
||||
case 20:
|
||||
ACCEPT_TOKEN(ts_sym_colon);
|
||||
case 21:
|
||||
case 14:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(10);
|
||||
LEX_ERROR();
|
||||
case 15:
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(15);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 16:
|
||||
ACCEPT_TOKEN(ts_sym_left_bracket);
|
||||
case 17:
|
||||
ACCEPT_TOKEN(ts_sym_left_brace);
|
||||
case 18:
|
||||
if (LOOKAHEAD_CHAR() == ':')
|
||||
ADVANCE(19);
|
||||
LEX_ERROR();
|
||||
case 19:
|
||||
ACCEPT_TOKEN(ts_sym_colon);
|
||||
case 20:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(9);
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(4);
|
||||
ADVANCE(3);
|
||||
LEX_ERROR();
|
||||
case 21:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(9);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(15);
|
||||
if (LOOKAHEAD_CHAR() == '[')
|
||||
ADVANCE(16);
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(6);
|
||||
if (LOOKAHEAD_CHAR() == '{')
|
||||
ADVANCE(17);
|
||||
LEX_ERROR();
|
||||
case 22:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(10);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(16);
|
||||
if (LOOKAHEAD_CHAR() == '[')
|
||||
ADVANCE(17);
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(7);
|
||||
if (LOOKAHEAD_CHAR() == '{')
|
||||
ADVANCE(18);
|
||||
ADVANCE(9);
|
||||
LEX_ERROR();
|
||||
case 23:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(10);
|
||||
LEX_ERROR();
|
||||
case 24:
|
||||
ACCEPT_TOKEN(ts_sym_comma);
|
||||
case 25:
|
||||
case 24:
|
||||
ACCEPT_TOKEN(ts_sym_colon);
|
||||
case 26:
|
||||
case 25:
|
||||
ACCEPT_TOKEN(ts_sym_left_bracket);
|
||||
case 27:
|
||||
case 26:
|
||||
ACCEPT_TOKEN(ts_sym_right_bracket);
|
||||
case 28:
|
||||
case 27:
|
||||
ACCEPT_TOKEN(ts_sym_left_brace);
|
||||
case 29:
|
||||
case 28:
|
||||
ACCEPT_TOKEN(ts_sym_right_brace);
|
||||
case ts_lex_state_error:
|
||||
if (LOOKAHEAD_CHAR() == '\0')
|
||||
ADVANCE(1);
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(10);
|
||||
ADVANCE(9);
|
||||
if (LOOKAHEAD_CHAR() == ',')
|
||||
ADVANCE(24);
|
||||
ADVANCE(23);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(16);
|
||||
ADVANCE(15);
|
||||
if (LOOKAHEAD_CHAR() == ':')
|
||||
ADVANCE(25);
|
||||
ADVANCE(24);
|
||||
if (LOOKAHEAD_CHAR() == '[')
|
||||
ADVANCE(26);
|
||||
ADVANCE(25);
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(27);
|
||||
ADVANCE(26);
|
||||
if (LOOKAHEAD_CHAR() == '{')
|
||||
ADVANCE(28);
|
||||
ADVANCE(27);
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(29);
|
||||
ADVANCE(28);
|
||||
LEX_ERROR();
|
||||
default:
|
||||
LEX_PANIC();
|
||||
|
|
@ -232,7 +224,7 @@ PARSE_FN() {
|
|||
START_PARSER();
|
||||
switch (PARSE_STATE()) {
|
||||
case 0:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(1);
|
||||
|
|
@ -254,21 +246,21 @@ PARSE_FN() {
|
|||
case 1:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_value, 1, COLLAPSE({0}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 2:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
ACCEPT_INPUT();
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 3:
|
||||
SET_LEX_STATE(21);
|
||||
SET_LEX_STATE(20);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_string:
|
||||
SHIFT(4);
|
||||
|
|
@ -280,7 +272,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_string, ts_sym_right_brace, ts_builtin_sym_error}));
|
||||
}
|
||||
case 4:
|
||||
SET_LEX_STATE(19);
|
||||
SET_LEX_STATE(18);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_colon:
|
||||
SHIFT(5);
|
||||
|
|
@ -288,7 +280,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_colon}));
|
||||
}
|
||||
case 5:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(6);
|
||||
|
|
@ -308,7 +300,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(7, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket}));
|
||||
}
|
||||
case 6:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_value, 1, COLLAPSE({0}));
|
||||
|
|
@ -318,7 +310,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_brace}));
|
||||
}
|
||||
case 7:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -330,7 +322,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 8:
|
||||
SET_LEX_STATE(23);
|
||||
SET_LEX_STATE(22);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_string:
|
||||
SHIFT(9);
|
||||
|
|
@ -340,7 +332,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_string, ts_builtin_sym_error}));
|
||||
}
|
||||
case 9:
|
||||
SET_LEX_STATE(19);
|
||||
SET_LEX_STATE(18);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_colon:
|
||||
SHIFT(10);
|
||||
|
|
@ -348,7 +340,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_colon}));
|
||||
}
|
||||
case 10:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(6);
|
||||
|
|
@ -368,7 +360,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(7, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket}));
|
||||
}
|
||||
case 11:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -380,7 +372,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 12:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
REDUCE(ts_aux_sym_repeat_helper2, 5, COLLAPSE({1, 0, 1, 0, 1}));
|
||||
|
|
@ -388,7 +380,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_brace}));
|
||||
}
|
||||
case 13:
|
||||
SET_LEX_STATE(21);
|
||||
SET_LEX_STATE(20);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_string:
|
||||
SHIFT(14);
|
||||
|
|
@ -400,7 +392,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_string, ts_sym_right_brace, ts_builtin_sym_error}));
|
||||
}
|
||||
case 14:
|
||||
SET_LEX_STATE(19);
|
||||
SET_LEX_STATE(18);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_colon:
|
||||
SHIFT(15);
|
||||
|
|
@ -408,7 +400,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_colon}));
|
||||
}
|
||||
case 15:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(6);
|
||||
|
|
@ -428,7 +420,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(7, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket}));
|
||||
}
|
||||
case 16:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -440,7 +432,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 17:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
SHIFT(18);
|
||||
|
|
@ -448,7 +440,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_brace}));
|
||||
}
|
||||
case 18:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}));
|
||||
|
|
@ -458,7 +450,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_brace}));
|
||||
}
|
||||
case 19:
|
||||
SET_LEX_STATE(22);
|
||||
SET_LEX_STATE(21);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(20);
|
||||
|
|
@ -482,7 +474,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(9, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket, ts_sym_right_bracket, ts_builtin_sym_error}));
|
||||
}
|
||||
case 20:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_value, 1, COLLAPSE({0}));
|
||||
|
|
@ -492,7 +484,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_bracket}));
|
||||
}
|
||||
case 21:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(22);
|
||||
|
|
@ -504,7 +496,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_bracket, ts_aux_sym_repeat_helper1}));
|
||||
}
|
||||
case 22:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(20);
|
||||
|
|
@ -526,7 +518,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(8, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket, ts_builtin_sym_error}));
|
||||
}
|
||||
case 23:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(22);
|
||||
|
|
@ -538,7 +530,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_bracket, ts_aux_sym_repeat_helper1}));
|
||||
}
|
||||
case 24:
|
||||
SET_LEX_STATE(8);
|
||||
SET_LEX_STATE(7);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_bracket:
|
||||
REDUCE(ts_aux_sym_repeat_helper1, 3, COLLAPSE({1, 0, 1}));
|
||||
|
|
@ -546,7 +538,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_bracket}));
|
||||
}
|
||||
case 25:
|
||||
SET_LEX_STATE(21);
|
||||
SET_LEX_STATE(20);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_string:
|
||||
SHIFT(26);
|
||||
|
|
@ -558,7 +550,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_string, ts_sym_right_brace, ts_builtin_sym_error}));
|
||||
}
|
||||
case 26:
|
||||
SET_LEX_STATE(19);
|
||||
SET_LEX_STATE(18);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_colon:
|
||||
SHIFT(27);
|
||||
|
|
@ -566,7 +558,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_colon}));
|
||||
}
|
||||
case 27:
|
||||
SET_LEX_STATE(9);
|
||||
SET_LEX_STATE(8);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(6);
|
||||
|
|
@ -586,7 +578,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(7, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket}));
|
||||
}
|
||||
case 28:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -598,7 +590,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 29:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
SHIFT(30);
|
||||
|
|
@ -606,7 +598,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_brace}));
|
||||
}
|
||||
case 30:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}));
|
||||
|
|
@ -616,7 +608,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_bracket}));
|
||||
}
|
||||
case 31:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_object, 2, COLLAPSE({1, 1}));
|
||||
|
|
@ -626,7 +618,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_bracket}));
|
||||
}
|
||||
case 32:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -638,7 +630,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 33:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
SHIFT(34);
|
||||
|
|
@ -646,7 +638,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_brace}));
|
||||
}
|
||||
case 34:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}));
|
||||
|
|
@ -656,7 +648,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_bracket}));
|
||||
}
|
||||
case 35:
|
||||
SET_LEX_STATE(22);
|
||||
SET_LEX_STATE(21);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(20);
|
||||
|
|
@ -680,7 +672,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(9, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket, ts_sym_right_bracket, ts_builtin_sym_error}));
|
||||
}
|
||||
case 36:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(22);
|
||||
|
|
@ -692,7 +684,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_bracket, ts_aux_sym_repeat_helper1}));
|
||||
}
|
||||
case 37:
|
||||
SET_LEX_STATE(8);
|
||||
SET_LEX_STATE(7);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_bracket:
|
||||
SHIFT(38);
|
||||
|
|
@ -700,7 +692,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_bracket}));
|
||||
}
|
||||
case 38:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}));
|
||||
|
|
@ -710,7 +702,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_bracket}));
|
||||
}
|
||||
case 39:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_array, 2, COLLAPSE({1, 1}));
|
||||
|
|
@ -720,7 +712,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_bracket}));
|
||||
}
|
||||
case 40:
|
||||
SET_LEX_STATE(8);
|
||||
SET_LEX_STATE(7);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_bracket:
|
||||
SHIFT(41);
|
||||
|
|
@ -728,7 +720,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_bracket}));
|
||||
}
|
||||
case 41:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}));
|
||||
|
|
@ -738,7 +730,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_brace}));
|
||||
}
|
||||
case 42:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_array, 2, COLLAPSE({1, 1}));
|
||||
|
|
@ -748,7 +740,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_brace}));
|
||||
}
|
||||
case 43:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_object, 2, COLLAPSE({1, 1}));
|
||||
|
|
@ -758,7 +750,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_brace}));
|
||||
}
|
||||
case 44:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -770,7 +762,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 45:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
SHIFT(46);
|
||||
|
|
@ -778,7 +770,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_brace}));
|
||||
}
|
||||
case 46:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
REDUCE(ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}));
|
||||
|
|
@ -788,7 +780,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(2, EXPECT({ts_sym_comma, ts_sym_right_brace}));
|
||||
}
|
||||
case 47:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -800,7 +792,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 48:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
REDUCE(ts_aux_sym_repeat_helper2, 3, COLLAPSE({1, 0, 1}));
|
||||
|
|
@ -808,7 +800,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(1, EXPECT({ts_sym_right_brace}));
|
||||
}
|
||||
case 49:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
SHIFT(50);
|
||||
|
|
@ -818,21 +810,21 @@ PARSE_FN() {
|
|||
case 50:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 51:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_object, 2, COLLAPSE({1, 1}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 52:
|
||||
SET_LEX_STATE(2);
|
||||
SET_LEX_STATE(1);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(8);
|
||||
|
|
@ -844,7 +836,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_brace, ts_aux_sym_repeat_helper2}));
|
||||
}
|
||||
case 53:
|
||||
SET_LEX_STATE(5);
|
||||
SET_LEX_STATE(4);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_brace:
|
||||
SHIFT(54);
|
||||
|
|
@ -854,13 +846,13 @@ PARSE_FN() {
|
|||
case 54:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 55:
|
||||
SET_LEX_STATE(22);
|
||||
SET_LEX_STATE(21);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_array:
|
||||
SHIFT(20);
|
||||
|
|
@ -884,7 +876,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(9, EXPECT({ts_sym_array, ts_sym_number, ts_sym_object, ts_sym_string, ts_sym_value, ts_sym_left_brace, ts_sym_left_bracket, ts_sym_right_bracket, ts_builtin_sym_error}));
|
||||
}
|
||||
case 56:
|
||||
SET_LEX_STATE(6);
|
||||
SET_LEX_STATE(5);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_comma:
|
||||
SHIFT(22);
|
||||
|
|
@ -896,7 +888,7 @@ PARSE_FN() {
|
|||
PARSE_ERROR(3, EXPECT({ts_sym_comma, ts_sym_right_bracket, ts_aux_sym_repeat_helper1}));
|
||||
}
|
||||
case 57:
|
||||
SET_LEX_STATE(8);
|
||||
SET_LEX_STATE(7);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_sym_right_bracket:
|
||||
SHIFT(58);
|
||||
|
|
@ -906,18 +898,18 @@ PARSE_FN() {
|
|||
case 58:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
case 59:
|
||||
SET_LEX_STATE(0);
|
||||
switch (LOOKAHEAD_SYM()) {
|
||||
case ts_aux_sym_end:
|
||||
case ts_builtin_sym_end:
|
||||
REDUCE(ts_sym_array, 2, COLLAPSE({1, 1}));
|
||||
default:
|
||||
PARSE_ERROR(1, EXPECT({ts_aux_sym_end}));
|
||||
PARSE_ERROR(1, EXPECT({ts_builtin_sym_end}));
|
||||
}
|
||||
default:
|
||||
PARSE_PANIC();
|
||||
|
|
|
|||
|
|
@ -197,6 +197,10 @@ next_state:
|
|||
|
||||
#define START_LEXER() \
|
||||
ts_parser_skip_whitespace(parser); \
|
||||
if (!ts_parser_lookahead_char(parser)) { \
|
||||
parser->lookahead_node = ts_tree_make_leaf(ts_builtin_sym_end); \
|
||||
return; \
|
||||
} \
|
||||
next_state:
|
||||
|
||||
#define LOOKAHEAD_SYM() \
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ extern "C" {
|
|||
|
||||
typedef int ts_symbol;
|
||||
static const ts_symbol ts_builtin_sym_error = -1;
|
||||
static const ts_symbol ts_builtin_sym_end = -2;
|
||||
|
||||
typedef struct ts_tree {
|
||||
ts_symbol symbol;
|
||||
|
|
|
|||
|
|
@ -17,9 +17,6 @@ namespace tree_sitter {
|
|||
|
||||
namespace build_tables {
|
||||
const int NOT_FOUND = -2;
|
||||
const Symbol START("start", rules::SymbolTypeAuxiliary);
|
||||
const Symbol END_OF_INPUT("end", rules::SymbolTypeAuxiliary);
|
||||
const LexItem EOF_ITEM(END_OF_INPUT, make_shared<CharacterSet>(std::set<rules::CharacterRange>{ '\0' }));
|
||||
|
||||
class TableBuilder {
|
||||
const PreparedGrammar grammar;
|
||||
|
|
@ -72,7 +69,7 @@ namespace tree_sitter {
|
|||
void add_reduce_actions(const ParseItemSet &item_set, ParseStateId state_id) {
|
||||
for (ParseItem item : item_set) {
|
||||
if (item.is_done()) {
|
||||
ParseAction action = (item.lhs == START) ?
|
||||
ParseAction action = (item.lhs == rules::START) ?
|
||||
ParseAction::Accept() :
|
||||
ParseAction::Reduce(item.lhs, item.consumed_symbols);
|
||||
parse_table.add_action(state_id, item.lookahead_sym, action);
|
||||
|
|
@ -86,8 +83,6 @@ namespace tree_sitter {
|
|||
for (auto &symbol : state.expected_inputs()) {
|
||||
if (lex_grammar.has_definition(symbol))
|
||||
item_set.insert(LexItem(symbol, lex_grammar.rule(symbol)));
|
||||
else if (symbol == END_OF_INPUT)
|
||||
item_set.insert(EOF_ITEM);
|
||||
}
|
||||
|
||||
state.lex_state_id = add_lex_state(item_set);
|
||||
|
|
@ -121,7 +116,6 @@ namespace tree_sitter {
|
|||
LexItemSet error_item_set;
|
||||
for (auto &pair : lex_grammar.rules)
|
||||
error_item_set.insert(LexItem(pair.first, pair.second));
|
||||
error_item_set.insert(EOF_ITEM);
|
||||
add_advance_actions(error_item_set, LexTable::ERROR_STATE_ID);
|
||||
add_accept_token_actions(error_item_set, LexTable::ERROR_STATE_ID);
|
||||
}
|
||||
|
|
@ -148,7 +142,7 @@ namespace tree_sitter {
|
|||
lex_grammar(lex_grammar) {};
|
||||
|
||||
pair<ParseTable, LexTable> build() {
|
||||
ParseItem item(START, make_shared<Symbol>(grammar.start_rule_name), {}, END_OF_INPUT);
|
||||
ParseItem item(rules::START, make_shared<Symbol>(grammar.start_rule_name), {}, rules::END_OF_INPUT);
|
||||
ParseItemSet item_set = item_set_closure(ParseItemSet({ item }), grammar);
|
||||
add_parse_state(item_set);
|
||||
add_error_lex_state();
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace tree_sitter {
|
|||
if (symbol == rules::ERROR)
|
||||
return "ts_builtin_sym_error";
|
||||
else
|
||||
return "unexpected_built_in_sym!";
|
||||
return "ts_builtin_sym_end";
|
||||
} else if (symbol.is_auxiliary())
|
||||
return "ts_aux_sym_" + symbol.name;
|
||||
else
|
||||
|
|
|
|||
|
|
@ -3,5 +3,7 @@
|
|||
namespace tree_sitter {
|
||||
namespace rules {
|
||||
const Symbol ERROR("error", SymbolTypeBuiltIn);
|
||||
const Symbol START("start", SymbolTypeBuiltIn);
|
||||
const Symbol END_OF_INPUT("end", SymbolTypeBuiltIn);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,8 @@
|
|||
namespace tree_sitter {
|
||||
namespace rules {
|
||||
extern const Symbol ERROR;
|
||||
extern const Symbol START;
|
||||
extern const Symbol END_OF_INPUT;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@
|
|||
122587B018BDD79600A68B84 /* follow_sets_spec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = follow_sets_spec.cpp; sourceTree = "<group>"; };
|
||||
122587B218BEE2C600A68B84 /* helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = helpers.cpp; sourceTree = "<group>"; };
|
||||
122587B318BEE2C600A68B84 /* helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = helpers.h; sourceTree = "<group>"; };
|
||||
122587B518BF19CA00A68B84 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.md; sourceTree = "<group>"; };
|
||||
1225CC6318765693000D4723 /* prepare_grammar_spec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prepare_grammar_spec.cpp; sourceTree = "<group>"; };
|
||||
1236A7C318B287DC00593ABB /* character_range.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = character_range.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||
1236A7C918B2A79F00593ABB /* rule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rule.h; sourceTree = "<group>"; };
|
||||
|
|
@ -312,6 +313,7 @@
|
|||
12FD40D3185FED630041A84E /* include */,
|
||||
1236A7CC18B2B4F000593ABB /* Makefile */,
|
||||
12E71795181D02A80051A649 /* Products */,
|
||||
122587B518BF19CA00A68B84 /* README.md */,
|
||||
12E71796181D02A80051A649 /* spec */,
|
||||
12E71701181D01890051A649 /* src */,
|
||||
12D1369E18342088005F3369 /* todo.md */,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue