Separate functions for building parse and lex tables
Now, instead of adding states to the lex table as they are needed by the parse states, we iterate over the parse states after the fact and set up their corresponding lex states. This has the nice side effect that the lex states are in a more readable order.
This commit is contained in:
parent
b998bb35af
commit
1d314d71c2
15 changed files with 4535 additions and 4402 deletions
|
|
@ -58,147 +58,148 @@ LEX_FN() {
|
|||
switch (lex_state) {
|
||||
case 0:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(1);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(0);
|
||||
if (lookahead == '*')
|
||||
if (lookahead == '(')
|
||||
ADVANCE(1);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(2);
|
||||
if (lookahead == '+')
|
||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||
('a' <= lookahead && lookahead <= 'z'))
|
||||
ADVANCE(3);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(4);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(5);
|
||||
if (lookahead == '^')
|
||||
ADVANCE(6);
|
||||
LEX_ERROR();
|
||||
case 1:
|
||||
ACCEPT_TOKEN(ts_builtin_sym_end);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token5);
|
||||
case 2:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token2);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(2);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 3:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token0);
|
||||
if (('0' <= lookahead && lookahead <= '9') ||
|
||||
('A' <= lookahead && lookahead <= 'Z') ||
|
||||
(lookahead == '_') ||
|
||||
('a' <= lookahead && lookahead <= 'z'))
|
||||
ADVANCE(3);
|
||||
ACCEPT_TOKEN(ts_sym_variable);
|
||||
case 4:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token1);
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(5);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(4);
|
||||
if (lookahead == '*')
|
||||
ADVANCE(6);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(7);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(8);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(9);
|
||||
if (lookahead == '^')
|
||||
ADVANCE(10);
|
||||
LEX_ERROR();
|
||||
case 5:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token3);
|
||||
ACCEPT_TOKEN(ts_builtin_sym_end);
|
||||
case 6:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token4);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token2);
|
||||
case 7:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token0);
|
||||
case 8:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token1);
|
||||
case 9:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token3);
|
||||
case 10:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token4);
|
||||
case 11:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(7);
|
||||
ADVANCE(11);
|
||||
if (lookahead == ')')
|
||||
ADVANCE(8);
|
||||
ADVANCE(12);
|
||||
if (lookahead == '*')
|
||||
ADVANCE(2);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(3);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(4);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(5);
|
||||
if (lookahead == '^')
|
||||
ADVANCE(6);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(7);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(8);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(9);
|
||||
if (lookahead == '^')
|
||||
ADVANCE(10);
|
||||
LEX_ERROR();
|
||||
case 8:
|
||||
case 12:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token6);
|
||||
case 9:
|
||||
case 13:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(9);
|
||||
ADVANCE(13);
|
||||
if (lookahead == ')')
|
||||
ADVANCE(8);
|
||||
LEX_ERROR();
|
||||
case 10:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(10);
|
||||
if (lookahead == '(')
|
||||
ADVANCE(11);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(12);
|
||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||
('a' <= lookahead && lookahead <= 'z'))
|
||||
ADVANCE(13);
|
||||
LEX_ERROR();
|
||||
case 11:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token5);
|
||||
case 12:
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(12);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 13:
|
||||
if (('0' <= lookahead && lookahead <= '9') ||
|
||||
('A' <= lookahead && lookahead <= 'Z') ||
|
||||
(lookahead == '_') ||
|
||||
('a' <= lookahead && lookahead <= 'z'))
|
||||
ADVANCE(13);
|
||||
ACCEPT_TOKEN(ts_sym_variable);
|
||||
case 14:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(1);
|
||||
ADVANCE(5);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(14);
|
||||
if (lookahead == '(')
|
||||
ADVANCE(11);
|
||||
ADVANCE(1);
|
||||
if (lookahead == ')')
|
||||
ADVANCE(8);
|
||||
if (lookahead == '*')
|
||||
ADVANCE(2);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(3);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(4);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(5);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(12);
|
||||
if (lookahead == '*')
|
||||
ADVANCE(6);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(7);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(8);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(9);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(2);
|
||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||
('a' <= lookahead && lookahead <= 'z'))
|
||||
ADVANCE(13);
|
||||
ADVANCE(3);
|
||||
if (lookahead == '^')
|
||||
ADVANCE(6);
|
||||
ADVANCE(10);
|
||||
LEX_ERROR();
|
||||
case ts_lex_state_error:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(1);
|
||||
ADVANCE(5);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(14);
|
||||
if (lookahead == '(')
|
||||
ADVANCE(11);
|
||||
ADVANCE(1);
|
||||
if (lookahead == ')')
|
||||
ADVANCE(8);
|
||||
if (lookahead == '*')
|
||||
ADVANCE(2);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(3);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(4);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(5);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(12);
|
||||
if (lookahead == '*')
|
||||
ADVANCE(6);
|
||||
if (lookahead == '+')
|
||||
ADVANCE(7);
|
||||
if (lookahead == '-')
|
||||
ADVANCE(8);
|
||||
if (lookahead == '/')
|
||||
ADVANCE(9);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(2);
|
||||
if (('A' <= lookahead && lookahead <= 'Z') ||
|
||||
('a' <= lookahead && lookahead <= 'z'))
|
||||
ADVANCE(13);
|
||||
ADVANCE(3);
|
||||
if (lookahead == '^')
|
||||
ADVANCE(6);
|
||||
ADVANCE(10);
|
||||
LEX_ERROR();
|
||||
default:
|
||||
LEX_PANIC();
|
||||
|
|
@ -206,38 +207,38 @@ LEX_FN() {
|
|||
}
|
||||
|
||||
LEX_STATES = {
|
||||
[0] = 10,
|
||||
[1] = 0,
|
||||
[2] = 10,
|
||||
[3] = 0,
|
||||
[4] = 10,
|
||||
[5] = 0,
|
||||
[6] = 10,
|
||||
[7] = 0,
|
||||
[8] = 10,
|
||||
[9] = 0,
|
||||
[10] = 10,
|
||||
[11] = 0,
|
||||
[12] = 0,
|
||||
[13] = 10,
|
||||
[14] = 7,
|
||||
[15] = 10,
|
||||
[16] = 7,
|
||||
[17] = 10,
|
||||
[18] = 7,
|
||||
[19] = 10,
|
||||
[20] = 7,
|
||||
[21] = 10,
|
||||
[22] = 7,
|
||||
[23] = 10,
|
||||
[24] = 7,
|
||||
[25] = 7,
|
||||
[26] = 10,
|
||||
[27] = 7,
|
||||
[28] = 7,
|
||||
[29] = 9,
|
||||
[30] = 0,
|
||||
[31] = 9,
|
||||
[0] = 0,
|
||||
[1] = 4,
|
||||
[2] = 0,
|
||||
[3] = 4,
|
||||
[4] = 0,
|
||||
[5] = 4,
|
||||
[6] = 0,
|
||||
[7] = 4,
|
||||
[8] = 0,
|
||||
[9] = 4,
|
||||
[10] = 0,
|
||||
[11] = 4,
|
||||
[12] = 4,
|
||||
[13] = 0,
|
||||
[14] = 11,
|
||||
[15] = 0,
|
||||
[16] = 11,
|
||||
[17] = 0,
|
||||
[18] = 11,
|
||||
[19] = 0,
|
||||
[20] = 11,
|
||||
[21] = 0,
|
||||
[22] = 11,
|
||||
[23] = 0,
|
||||
[24] = 11,
|
||||
[25] = 11,
|
||||
[26] = 0,
|
||||
[27] = 11,
|
||||
[28] = 11,
|
||||
[29] = 13,
|
||||
[30] = 4,
|
||||
[31] = 13,
|
||||
};
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -59,230 +59,230 @@ LEX_FN() {
|
|||
switch (lex_state) {
|
||||
case 0:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(1);
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(0);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(1);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(6);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(9);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(10);
|
||||
if (lookahead == 'n')
|
||||
ADVANCE(15);
|
||||
if (lookahead == 't')
|
||||
ADVANCE(19);
|
||||
if (lookahead == '{')
|
||||
ADVANCE(23);
|
||||
LEX_ERROR();
|
||||
case 1:
|
||||
ACCEPT_TOKEN(ts_builtin_sym_end);
|
||||
case 2:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(2);
|
||||
if (lookahead == '}')
|
||||
if (lookahead == '\\')
|
||||
ADVANCE(4);
|
||||
LEX_ERROR();
|
||||
case 2:
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(2);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(3);
|
||||
if (lookahead == '\\')
|
||||
ADVANCE(4);
|
||||
LEX_ERROR();
|
||||
case 3:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token3);
|
||||
ACCEPT_TOKEN(ts_sym_string);
|
||||
case 4:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(4);
|
||||
if (lookahead == ',')
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(2);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(5);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(3);
|
||||
if (lookahead == '\\')
|
||||
ADVANCE(4);
|
||||
LEX_ERROR();
|
||||
case 5:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token2);
|
||||
case 6:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(6);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(7);
|
||||
LEX_ERROR();
|
||||
case 7:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token5);
|
||||
case 8:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(8);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(5);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(7);
|
||||
LEX_ERROR();
|
||||
case 9:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(9);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(10);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(15);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(18);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(19);
|
||||
if (lookahead == 'n')
|
||||
ADVANCE(24);
|
||||
if (lookahead == 't')
|
||||
ADVANCE(28);
|
||||
if (lookahead == '{')
|
||||
ADVANCE(32);
|
||||
LEX_ERROR();
|
||||
case 10:
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(11);
|
||||
ADVANCE(2);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(3);
|
||||
if (lookahead == '\\')
|
||||
ADVANCE(13);
|
||||
ADVANCE(4);
|
||||
ACCEPT_TOKEN(ts_sym_string);
|
||||
case 6:
|
||||
if (lookahead == '.')
|
||||
ADVANCE(7);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(6);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 7:
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(8);
|
||||
LEX_ERROR();
|
||||
case 8:
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(8);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 9:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token4);
|
||||
case 10:
|
||||
if (lookahead == 'a')
|
||||
ADVANCE(11);
|
||||
LEX_ERROR();
|
||||
case 11:
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(11);
|
||||
if (lookahead == '\"')
|
||||
if (lookahead == 'l')
|
||||
ADVANCE(12);
|
||||
if (lookahead == '\\')
|
||||
ADVANCE(13);
|
||||
LEX_ERROR();
|
||||
case 12:
|
||||
ACCEPT_TOKEN(ts_sym_string);
|
||||
case 13:
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(11);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(14);
|
||||
if (lookahead == '\\')
|
||||
if (lookahead == 's')
|
||||
ADVANCE(13);
|
||||
LEX_ERROR();
|
||||
case 13:
|
||||
if (lookahead == 'e')
|
||||
ADVANCE(14);
|
||||
LEX_ERROR();
|
||||
case 14:
|
||||
if (!((lookahead == '\"') ||
|
||||
(lookahead == '\\')))
|
||||
ADVANCE(11);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(12);
|
||||
if (lookahead == '\\')
|
||||
ADVANCE(13);
|
||||
ACCEPT_TOKEN(ts_sym_string);
|
||||
ACCEPT_TOKEN(ts_sym_false);
|
||||
case 15:
|
||||
if (lookahead == '.')
|
||||
if (lookahead == 'u')
|
||||
ADVANCE(16);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(15);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
LEX_ERROR();
|
||||
case 16:
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
if (lookahead == 'l')
|
||||
ADVANCE(17);
|
||||
LEX_ERROR();
|
||||
case 17:
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(17);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
if (lookahead == 'l')
|
||||
ADVANCE(18);
|
||||
LEX_ERROR();
|
||||
case 18:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token4);
|
||||
ACCEPT_TOKEN(ts_sym_null);
|
||||
case 19:
|
||||
if (lookahead == 'a')
|
||||
if (lookahead == 'r')
|
||||
ADVANCE(20);
|
||||
LEX_ERROR();
|
||||
case 20:
|
||||
if (lookahead == 'l')
|
||||
if (lookahead == 'u')
|
||||
ADVANCE(21);
|
||||
LEX_ERROR();
|
||||
case 21:
|
||||
if (lookahead == 's')
|
||||
if (lookahead == 'e')
|
||||
ADVANCE(22);
|
||||
LEX_ERROR();
|
||||
case 22:
|
||||
if (lookahead == 'e')
|
||||
ADVANCE(23);
|
||||
LEX_ERROR();
|
||||
ACCEPT_TOKEN(ts_sym_true);
|
||||
case 23:
|
||||
ACCEPT_TOKEN(ts_sym_false);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token0);
|
||||
case 24:
|
||||
if (lookahead == 'u')
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(25);
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(24);
|
||||
LEX_ERROR();
|
||||
case 25:
|
||||
if (lookahead == 'l')
|
||||
ADVANCE(26);
|
||||
LEX_ERROR();
|
||||
ACCEPT_TOKEN(ts_builtin_sym_end);
|
||||
case 26:
|
||||
if (lookahead == 'l')
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(26);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(1);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 27:
|
||||
ACCEPT_TOKEN(ts_sym_null);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token3);
|
||||
case 28:
|
||||
if (lookahead == 'r')
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(28);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(29);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 29:
|
||||
if (lookahead == 'u')
|
||||
ADVANCE(30);
|
||||
LEX_ERROR();
|
||||
ACCEPT_TOKEN(ts_aux_sym_token2);
|
||||
case 30:
|
||||
if (lookahead == 'e')
|
||||
ADVANCE(31);
|
||||
LEX_ERROR();
|
||||
case 31:
|
||||
ACCEPT_TOKEN(ts_sym_true);
|
||||
case 32:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token0);
|
||||
case 33:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(33);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(34);
|
||||
ADVANCE(30);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case 34:
|
||||
case 31:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(31);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(1);
|
||||
LEX_ERROR();
|
||||
case 32:
|
||||
START_TOKEN();
|
||||
if ((lookahead == '\t') ||
|
||||
(lookahead == '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(32);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(33);
|
||||
LEX_ERROR();
|
||||
case 33:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token1);
|
||||
case 35:
|
||||
case 34:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(35);
|
||||
ADVANCE(34);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(1);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(6);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(9);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(35);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(10);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(3);
|
||||
if (lookahead == 'n')
|
||||
ADVANCE(15);
|
||||
if (lookahead == 't')
|
||||
ADVANCE(19);
|
||||
if (lookahead == '{')
|
||||
ADVANCE(23);
|
||||
LEX_ERROR();
|
||||
case 35:
|
||||
ACCEPT_TOKEN(ts_aux_sym_token5);
|
||||
case 36:
|
||||
START_TOKEN();
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(36);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(10);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(15);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(18);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(29);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(7);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(19);
|
||||
if (lookahead == 'n')
|
||||
ADVANCE(24);
|
||||
if (lookahead == 't')
|
||||
ADVANCE(28);
|
||||
if (lookahead == '{')
|
||||
ADVANCE(32);
|
||||
ADVANCE(35);
|
||||
LEX_ERROR();
|
||||
case 37:
|
||||
START_TOKEN();
|
||||
|
|
@ -291,69 +291,70 @@ LEX_FN() {
|
|||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(37);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(10);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(35);
|
||||
LEX_ERROR();
|
||||
case 38:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(1);
|
||||
ADVANCE(25);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(38);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(10);
|
||||
ADVANCE(1);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(5);
|
||||
ADVANCE(29);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(15);
|
||||
ADVANCE(6);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(34);
|
||||
ADVANCE(33);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(18);
|
||||
ADVANCE(9);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(7);
|
||||
ADVANCE(35);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(19);
|
||||
ADVANCE(10);
|
||||
if (lookahead == 'n')
|
||||
ADVANCE(24);
|
||||
ADVANCE(15);
|
||||
if (lookahead == 't')
|
||||
ADVANCE(28);
|
||||
ADVANCE(19);
|
||||
if (lookahead == '{')
|
||||
ADVANCE(32);
|
||||
ADVANCE(23);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(3);
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
case ts_lex_state_error:
|
||||
START_TOKEN();
|
||||
if (lookahead == '\0')
|
||||
ADVANCE(1);
|
||||
ADVANCE(25);
|
||||
if (('\t' <= lookahead && lookahead <= '\n') ||
|
||||
(lookahead == '\r') ||
|
||||
(lookahead == ' '))
|
||||
ADVANCE(38);
|
||||
if (lookahead == '\"')
|
||||
ADVANCE(10);
|
||||
ADVANCE(1);
|
||||
if (lookahead == ',')
|
||||
ADVANCE(5);
|
||||
ADVANCE(29);
|
||||
if ('0' <= lookahead && lookahead <= '9')
|
||||
ADVANCE(15);
|
||||
ADVANCE(6);
|
||||
if (lookahead == ':')
|
||||
ADVANCE(34);
|
||||
ADVANCE(33);
|
||||
if (lookahead == '[')
|
||||
ADVANCE(18);
|
||||
ADVANCE(9);
|
||||
if (lookahead == ']')
|
||||
ADVANCE(7);
|
||||
ADVANCE(35);
|
||||
if (lookahead == 'f')
|
||||
ADVANCE(19);
|
||||
ADVANCE(10);
|
||||
if (lookahead == 'n')
|
||||
ADVANCE(24);
|
||||
ADVANCE(15);
|
||||
if (lookahead == 't')
|
||||
ADVANCE(28);
|
||||
ADVANCE(19);
|
||||
if (lookahead == '{')
|
||||
ADVANCE(32);
|
||||
ADVANCE(23);
|
||||
if (lookahead == '}')
|
||||
ADVANCE(3);
|
||||
ADVANCE(27);
|
||||
LEX_ERROR();
|
||||
default:
|
||||
LEX_PANIC();
|
||||
|
|
@ -361,66 +362,66 @@ LEX_FN() {
|
|||
}
|
||||
|
||||
LEX_STATES = {
|
||||
[0] = 9,
|
||||
[1] = 0,
|
||||
[2] = 0,
|
||||
[3] = 35,
|
||||
[4] = 4,
|
||||
[5] = 2,
|
||||
[6] = 0,
|
||||
[7] = 37,
|
||||
[8] = 4,
|
||||
[9] = 2,
|
||||
[10] = 33,
|
||||
[11] = 9,
|
||||
[12] = 4,
|
||||
[13] = 2,
|
||||
[14] = 4,
|
||||
[15] = 35,
|
||||
[16] = 4,
|
||||
[17] = 2,
|
||||
[18] = 4,
|
||||
[19] = 33,
|
||||
[20] = 9,
|
||||
[21] = 4,
|
||||
[22] = 2,
|
||||
[23] = 4,
|
||||
[24] = 36,
|
||||
[25] = 8,
|
||||
[26] = 6,
|
||||
[27] = 4,
|
||||
[28] = 9,
|
||||
[29] = 8,
|
||||
[30] = 6,
|
||||
[31] = 8,
|
||||
[32] = 35,
|
||||
[33] = 4,
|
||||
[34] = 2,
|
||||
[35] = 8,
|
||||
[36] = 33,
|
||||
[37] = 9,
|
||||
[38] = 4,
|
||||
[39] = 2,
|
||||
[40] = 8,
|
||||
[41] = 8,
|
||||
[42] = 36,
|
||||
[43] = 8,
|
||||
[44] = 6,
|
||||
[45] = 8,
|
||||
[46] = 8,
|
||||
[47] = 4,
|
||||
[48] = 4,
|
||||
[49] = 33,
|
||||
[50] = 9,
|
||||
[51] = 4,
|
||||
[52] = 2,
|
||||
[53] = 0,
|
||||
[54] = 0,
|
||||
[55] = 36,
|
||||
[56] = 8,
|
||||
[57] = 6,
|
||||
[58] = 0,
|
||||
[59] = 0,
|
||||
[0] = 0,
|
||||
[1] = 24,
|
||||
[2] = 24,
|
||||
[3] = 26,
|
||||
[4] = 28,
|
||||
[5] = 30,
|
||||
[6] = 24,
|
||||
[7] = 31,
|
||||
[8] = 28,
|
||||
[9] = 30,
|
||||
[10] = 32,
|
||||
[11] = 0,
|
||||
[12] = 28,
|
||||
[13] = 30,
|
||||
[14] = 28,
|
||||
[15] = 26,
|
||||
[16] = 28,
|
||||
[17] = 30,
|
||||
[18] = 28,
|
||||
[19] = 32,
|
||||
[20] = 0,
|
||||
[21] = 28,
|
||||
[22] = 30,
|
||||
[23] = 28,
|
||||
[24] = 34,
|
||||
[25] = 36,
|
||||
[26] = 37,
|
||||
[27] = 28,
|
||||
[28] = 0,
|
||||
[29] = 36,
|
||||
[30] = 37,
|
||||
[31] = 36,
|
||||
[32] = 26,
|
||||
[33] = 28,
|
||||
[34] = 30,
|
||||
[35] = 36,
|
||||
[36] = 32,
|
||||
[37] = 0,
|
||||
[38] = 28,
|
||||
[39] = 30,
|
||||
[40] = 36,
|
||||
[41] = 36,
|
||||
[42] = 34,
|
||||
[43] = 36,
|
||||
[44] = 37,
|
||||
[45] = 36,
|
||||
[46] = 36,
|
||||
[47] = 28,
|
||||
[48] = 28,
|
||||
[49] = 32,
|
||||
[50] = 0,
|
||||
[51] = 28,
|
||||
[52] = 30,
|
||||
[53] = 24,
|
||||
[54] = 24,
|
||||
[55] = 34,
|
||||
[56] = 36,
|
||||
[57] = 37,
|
||||
[58] = 24,
|
||||
[59] = 24,
|
||||
};
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue