diff --git a/examples/grammars/javascript.cc b/examples/grammars/javascript.cc index 00e3d82c..25d135ec 100644 --- a/examples/grammars/javascript.cc +++ b/examples/grammars/javascript.cc @@ -112,7 +112,7 @@ namespace tree_sitter_examples { str("]") }) }, // Keywords - { "_terminator", choice({ str(";"), str("\n") }) }, + { "_terminator", pattern("[;\n]") }, { "_var", str("var") }, { "_for", str("for") }, { "_if", str("if") }, diff --git a/examples/parsers/arithmetic.c b/examples/parsers/arithmetic.c index 94efd581..d48d9815 100644 --- a/examples/parsers/arithmetic.c +++ b/examples/parsers/arithmetic.c @@ -66,72 +66,113 @@ LEX_FN() { START_LEXER(); switch (lex_state) { case 0: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(0); LEX_ERROR(); case 1: - if (lookahead == ')') - ADVANCE(2); - LEX_ERROR(); + ACCEPT_TOKEN(ts_builtin_sym_end); case 2: - ACCEPT_TOKEN(ts_aux_sym_token2); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(2); + if (lookahead == ')') + ADVANCE(3); + LEX_ERROR(); case 3: - if (lookahead == ')') - ADVANCE(2); - if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') - ADVANCE(5); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token2); case 4: - ACCEPT_TOKEN(ts_aux_sym_token3); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(4); + if (lookahead == ')') + ADVANCE(3); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + LEX_ERROR(); case 5: - ACCEPT_TOKEN(ts_aux_sym_token4); + ACCEPT_TOKEN(ts_aux_sym_token3); case 6: - if (lookahead == ')') - ADVANCE(2); - if (lookahead == '*') - ADVANCE(7); - if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') - ADVANCE(5); - if (lookahead == '/') - ADVANCE(8); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token4); case 7: - ACCEPT_TOKEN(ts_aux_sym_token5); - case 8: - ACCEPT_TOKEN(ts_aux_sym_token6); - case 9: - if (lookahead == ')') - ADVANCE(2); - if (lookahead == '*') + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(7); - if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') - ADVANCE(5); - if (lookahead == '/') + if (lookahead == ')') + ADVANCE(3); + if (lookahead == '*') ADVANCE(8); - if (lookahead == '^') - ADVANCE(10); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '/') + ADVANCE(9); LEX_ERROR(); + case 8: + ACCEPT_TOKEN(ts_aux_sym_token5); + case 9: + ACCEPT_TOKEN(ts_aux_sym_token6); case 10: - ACCEPT_TOKEN(ts_aux_sym_token7); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(10); + if (lookahead == ')') + ADVANCE(3); + if (lookahead == '*') + ADVANCE(8); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '/') + ADVANCE(9); + if (lookahead == '^') + ADVANCE(11); + LEX_ERROR(); case 11: - if (lookahead == '(') + ACCEPT_TOKEN(ts_aux_sym_token7); + case 12: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(12); - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == '(') ADVANCE(13); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(14); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(15); LEX_ERROR(); - case 12: - ACCEPT_TOKEN(ts_aux_sym_token1); case 13: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(14); - ACCEPT_TOKEN(ts_sym_number); + ACCEPT_TOKEN(ts_aux_sym_token1); case 14: if ('0' <= lookahead && lookahead <= '9') ADVANCE(14); @@ -141,123 +182,227 @@ LEX_FN() { ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(16); + ADVANCE(15); ACCEPT_TOKEN(ts_sym_variable); case 16: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(16); - ACCEPT_TOKEN(ts_sym_variable); - case 17: if (lookahead == ')') - ADVANCE(2); + ADVANCE(3); if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); if (lookahead == '^') - ADVANCE(10); + ADVANCE(11); + LEX_ERROR(); + case 17: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(17); + if (lookahead == ')') + ADVANCE(3); + if (lookahead == '^') + ADVANCE(11); LEX_ERROR(); case 18: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(18); if (lookahead == ')') - ADVANCE(2); - if (lookahead == '^') - ADVANCE(10); + ADVANCE(3); + if (lookahead == '*') + ADVANCE(8); + if (lookahead == '/') + ADVANCE(9); LEX_ERROR(); case 19: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(19); if (lookahead == ')') - ADVANCE(2); + ADVANCE(3); if (lookahead == '*') - ADVANCE(7); - if (lookahead == '/') ADVANCE(8); + if (lookahead == '/') + ADVANCE(9); + if (lookahead == '^') + ADVANCE(11); LEX_ERROR(); case 20: - if (lookahead == ')') - ADVANCE(2); - if (lookahead == '*') - ADVANCE(7); - if (lookahead == '/') - ADVANCE(8); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(20); if (lookahead == '^') - ADVANCE(10); + ADVANCE(11); LEX_ERROR(); case 21: - if (lookahead == '^') - ADVANCE(10); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(21); + if (lookahead == '*') + ADVANCE(8); + if (lookahead == '/') + ADVANCE(9); LEX_ERROR(); case 22: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(22); if (lookahead == '*') - ADVANCE(7); - if (lookahead == '/') ADVANCE(8); + if (lookahead == '/') + ADVANCE(9); + if (lookahead == '^') + ADVANCE(11); LEX_ERROR(); case 23: - if (lookahead == '*') - ADVANCE(7); - if (lookahead == '/') - ADVANCE(8); - if (lookahead == '^') - ADVANCE(10); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(23); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); LEX_ERROR(); case 24: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(24); if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '^') + ADVANCE(11); LEX_ERROR(); case 25: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(25); + if (lookahead == '*') + ADVANCE(8); if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') ADVANCE(5); - if (lookahead == '^') - ADVANCE(10); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '/') + ADVANCE(9); LEX_ERROR(); case 26: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(26); if (lookahead == '*') - ADVANCE(7); - if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') - ADVANCE(5); - if (lookahead == '/') ADVANCE(8); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '/') + ADVANCE(9); + if (lookahead == '^') + ADVANCE(11); LEX_ERROR(); case 27: - if (lookahead == '*') - ADVANCE(7); - if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') - ADVANCE(5); - if (lookahead == '/') - ADVANCE(8); - if (lookahead == '^') - ADVANCE(10); - LEX_ERROR(); - case ts_lex_state_error: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(27); if (lookahead == '(') - ADVANCE(12); - if (lookahead == ')') - ADVANCE(2); - if (lookahead == '*') - ADVANCE(7); - if (lookahead == '+') - ADVANCE(4); - if (lookahead == '-') - ADVANCE(5); - if (lookahead == '/') - ADVANCE(8); - if ('0' <= lookahead && lookahead <= '9') ADVANCE(13); + if (lookahead == ')') + ADVANCE(3); + if (lookahead == '*') + ADVANCE(8); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '/') + ADVANCE(9); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(14); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(15); if (lookahead == '^') - ADVANCE(10); + ADVANCE(11); + LEX_ERROR(); + case ts_lex_state_error: + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(27); + if (lookahead == '(') + ADVANCE(13); + if (lookahead == ')') + ADVANCE(3); + if (lookahead == '*') + ADVANCE(8); + if (lookahead == '+') + ADVANCE(5); + if (lookahead == '-') + ADVANCE(6); + if (lookahead == '/') + ADVANCE(9); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(14); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '^') + ADVANCE(11); LEX_ERROR(); default: LEX_PANIC(); @@ -265,140 +410,140 @@ LEX_FN() { } LEX_STATES = { - [0] = 11, - [1] = 24, - [2] = 11, + [0] = 12, + [1] = 23, + [2] = 12, [3] = 0, - [4] = 22, - [5] = 11, + [4] = 21, + [5] = 12, [6] = 0, - [7] = 21, - [8] = 11, + [7] = 20, + [8] = 12, [9] = 0, [10] = 0, - [11] = 11, - [12] = 3, - [13] = 11, - [14] = 1, - [15] = 19, - [16] = 11, - [17] = 1, - [18] = 18, - [19] = 11, - [20] = 1, - [21] = 1, - [22] = 11, - [23] = 6, - [24] = 11, - [25] = 3, - [26] = 17, - [27] = 11, - [28] = 3, - [29] = 3, - [30] = 11, - [31] = 9, - [32] = 11, - [33] = 6, - [34] = 6, - [35] = 11, - [36] = 1, - [37] = 6, - [38] = 1, - [39] = 6, - [40] = 9, - [41] = 3, - [42] = 11, - [43] = 1, - [44] = 9, - [45] = 1, - [46] = 3, - [47] = 3, - [48] = 17, - [49] = 11, - [50] = 1, - [51] = 17, - [52] = 11, - [53] = 3, - [54] = 1, - [55] = 1, - [56] = 1, - [57] = 18, - [58] = 11, - [59] = 1, - [60] = 18, - [61] = 11, - [62] = 1, - [63] = 20, - [64] = 11, - [65] = 19, - [66] = 19, - [67] = 11, - [68] = 1, - [69] = 19, - [70] = 19, - [71] = 20, - [72] = 1, - [73] = 11, - [74] = 1, - [75] = 20, - [76] = 11, - [77] = 1, - [78] = 1, + [11] = 12, + [12] = 4, + [13] = 12, + [14] = 2, + [15] = 18, + [16] = 12, + [17] = 2, + [18] = 17, + [19] = 12, + [20] = 2, + [21] = 2, + [22] = 12, + [23] = 7, + [24] = 12, + [25] = 4, + [26] = 16, + [27] = 12, + [28] = 4, + [29] = 4, + [30] = 12, + [31] = 10, + [32] = 12, + [33] = 7, + [34] = 7, + [35] = 12, + [36] = 2, + [37] = 7, + [38] = 2, + [39] = 7, + [40] = 10, + [41] = 4, + [42] = 12, + [43] = 2, + [44] = 10, + [45] = 2, + [46] = 4, + [47] = 4, + [48] = 16, + [49] = 12, + [50] = 2, + [51] = 16, + [52] = 12, + [53] = 4, + [54] = 2, + [55] = 2, + [56] = 2, + [57] = 17, + [58] = 12, + [59] = 2, + [60] = 17, + [61] = 12, + [62] = 2, + [63] = 19, + [64] = 12, + [65] = 18, + [66] = 18, + [67] = 12, + [68] = 2, + [69] = 18, + [70] = 18, + [71] = 19, + [72] = 2, + [73] = 12, + [74] = 2, + [75] = 19, + [76] = 12, + [77] = 2, + [78] = 2, [79] = 0, [80] = 0, - [81] = 21, - [82] = 11, - [83] = 1, - [84] = 21, - [85] = 11, + [81] = 20, + [82] = 12, + [83] = 2, + [84] = 20, + [85] = 12, [86] = 0, - [87] = 23, - [88] = 11, - [89] = 22, - [90] = 22, - [91] = 11, - [92] = 1, - [93] = 22, - [94] = 22, - [95] = 23, + [87] = 22, + [88] = 12, + [89] = 21, + [90] = 21, + [91] = 12, + [92] = 2, + [93] = 21, + [94] = 21, + [95] = 22, [96] = 0, - [97] = 11, - [98] = 1, - [99] = 23, - [100] = 11, + [97] = 12, + [98] = 2, + [99] = 22, + [100] = 12, [101] = 0, - [102] = 26, - [103] = 11, - [104] = 24, - [105] = 25, - [106] = 11, - [107] = 24, - [108] = 24, - [109] = 11, - [110] = 1, - [111] = 24, - [112] = 24, - [113] = 25, - [114] = 11, - [115] = 1, - [116] = 25, - [117] = 11, - [118] = 24, - [119] = 27, - [120] = 11, - [121] = 26, - [122] = 26, - [123] = 11, - [124] = 1, - [125] = 26, + [102] = 25, + [103] = 12, + [104] = 23, + [105] = 24, + [106] = 12, + [107] = 23, + [108] = 23, + [109] = 12, + [110] = 2, + [111] = 23, + [112] = 23, + [113] = 24, + [114] = 12, + [115] = 2, + [116] = 24, + [117] = 12, + [118] = 23, + [119] = 26, + [120] = 12, + [121] = 25, + [122] = 25, + [123] = 12, + [124] = 2, + [125] = 25, [126] = 0, - [127] = 26, + [127] = 25, [128] = 0, - [129] = 27, - [130] = 24, - [131] = 11, - [132] = 1, - [133] = 27, + [129] = 26, + [130] = 23, + [131] = 12, + [132] = 2, + [133] = 26, }; PARSE_TABLE = { @@ -420,7 +565,7 @@ PARSE_TABLE = { [1] = { [ts_aux_sym_token3] = SHIFT(2), [ts_aux_sym_token4] = SHIFT(100), - [ts_builtin_sym_end] = REDUCE(ts_sym_difference, 1), + [ts_builtin_sym_end] = REDUCE(ts_sym_sum, 1), }, [2] = { [ts_sym__operand1] = SHIFT(3), @@ -440,7 +585,7 @@ PARSE_TABLE = { [4] = { [ts_aux_sym_token5] = SHIFT(5), [ts_aux_sym_token6] = SHIFT(85), - [ts_builtin_sym_end] = REDUCE(ts_sym_product, 1), + [ts_builtin_sym_end] = REDUCE(ts_sym_quotient, 1), }, [5] = { [ts_sym__operand2] = SHIFT(6), @@ -488,7 +633,7 @@ PARSE_TABLE = { [ts_builtin_sym_error] = SHIFT(78), }, [12] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_difference, 1), + [ts_aux_sym_token2] = REDUCE(ts_sym_sum, 1), [ts_aux_sym_token3] = SHIFT(13), [ts_aux_sym_token4] = SHIFT(76), }, @@ -559,8 +704,8 @@ PARSE_TABLE = { }, [23] = { [ts_aux_sym_token2] = REDUCE(ts_sym_quotient, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_quotient, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_product, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_product, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_quotient, 1), [ts_aux_sym_token5] = SHIFT(24), [ts_aux_sym_token6] = SHIFT(52), }, @@ -1080,7 +1225,7 @@ PARSE_TABLE = { }, [102] = { [ts_aux_sym_token3] = REDUCE(ts_sym_quotient, 1), - [ts_aux_sym_token4] = REDUCE(ts_sym_quotient, 1), + [ts_aux_sym_token4] = REDUCE(ts_sym_product, 1), [ts_aux_sym_token5] = SHIFT(103), [ts_aux_sym_token6] = SHIFT(117), [ts_builtin_sym_end] = REDUCE(ts_sym_quotient, 1), diff --git a/examples/parsers/golang.c b/examples/parsers/golang.c index 1f6bf30b..31bb7969 100644 --- a/examples/parsers/golang.c +++ b/examples/parsers/golang.c @@ -147,87 +147,96 @@ LEX_FN() { START_LEXER(); switch (lex_state) { case 0: - if (lookahead == 'f') + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(0); + if (lookahead == 'f') + ADVANCE(2); if (lookahead == 'i') - ADVANCE(5); + ADVANCE(6); if (lookahead == 't') - ADVANCE(11); + ADVANCE(12); if (lookahead == 'v') - ADVANCE(15); + ADVANCE(16); LEX_ERROR(); case 1: - if (lookahead == 'u') - ADVANCE(2); - LEX_ERROR(); + ACCEPT_TOKEN(ts_builtin_sym_end); case 2: - if (lookahead == 'n') + if (lookahead == 'u') ADVANCE(3); LEX_ERROR(); case 3: - if (lookahead == 'c') + if (lookahead == 'n') ADVANCE(4); LEX_ERROR(); case 4: - ACCEPT_TOKEN(ts_sym__func); - case 5: - if (lookahead == 'm') - ADVANCE(6); + if (lookahead == 'c') + ADVANCE(5); LEX_ERROR(); + case 5: + ACCEPT_TOKEN(ts_sym__func); case 6: - if (lookahead == 'p') + if (lookahead == 'm') ADVANCE(7); LEX_ERROR(); case 7: - if (lookahead == 'o') + if (lookahead == 'p') ADVANCE(8); LEX_ERROR(); case 8: - if (lookahead == 'r') + if (lookahead == 'o') ADVANCE(9); LEX_ERROR(); case 9: - if (lookahead == 't') + if (lookahead == 'r') ADVANCE(10); LEX_ERROR(); case 10: - ACCEPT_TOKEN(ts_sym__import); - case 11: - if (lookahead == 'y') - ADVANCE(12); + if (lookahead == 't') + ADVANCE(11); LEX_ERROR(); + case 11: + ACCEPT_TOKEN(ts_sym__import); case 12: - if (lookahead == 'p') + if (lookahead == 'y') ADVANCE(13); LEX_ERROR(); case 13: - if (lookahead == 'e') + if (lookahead == 'p') ADVANCE(14); LEX_ERROR(); case 14: - ACCEPT_TOKEN(ts_sym__type); - case 15: - if (lookahead == 'a') - ADVANCE(16); + if (lookahead == 'e') + ADVANCE(15); LEX_ERROR(); + case 15: + ACCEPT_TOKEN(ts_sym__type); case 16: - if (lookahead == 'r') + if (lookahead == 'a') ADVANCE(17); LEX_ERROR(); case 17: - ACCEPT_TOKEN(ts_sym__var); + if (lookahead == 'r') + ADVANCE(18); + LEX_ERROR(); case 18: + ACCEPT_TOKEN(ts_sym__var); + case 19: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(19); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(19); - LEX_ERROR(); - case 19: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20); - ACCEPT_TOKEN(ts_sym__identifier); + LEX_ERROR(); case 20: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || @@ -236,199 +245,168 @@ LEX_FN() { ADVANCE(20); ACCEPT_TOKEN(ts_sym__identifier); case 21: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(21); if (lookahead == '\"') ADVANCE(22); if (lookahead == ')') - ADVANCE(32); + ADVANCE(27); LEX_ERROR(); case 22: if (!((lookahead == '\"') || (lookahead == '\\'))) ADVANCE(23); if (lookahead == '\\') - ADVANCE(29); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(31); + ADVANCE(25); LEX_ERROR(); case 23: if (!((lookahead == '\"') || (lookahead == '\\'))) - ADVANCE(24); + ADVANCE(23); if (lookahead == '\"') - ADVANCE(25); + ADVANCE(24); if (lookahead == '\\') - ADVANCE(26); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(28); + ADVANCE(25); LEX_ERROR(); case 24: + ACCEPT_TOKEN(ts_sym_string); + case 25: if (!((lookahead == '\"') || (lookahead == '\\'))) - ADVANCE(24); + ADVANCE(23); if (lookahead == '\"') - ADVANCE(25); - if (lookahead == '\\') ADVANCE(26); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(28); + if (lookahead == '\\') + ADVANCE(25); LEX_ERROR(); - case 25: - ACCEPT_TOKEN(ts_sym_string); case 26: if (!((lookahead == '\"') || (lookahead == '\\'))) - ADVANCE(24); + ADVANCE(23); if (lookahead == '\"') - ADVANCE(27); - if ('#' <= lookahead && lookahead <= '\"') ADVANCE(24); if (lookahead == '\\') - ADVANCE(26); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(28); - LEX_ERROR(); - case 27: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(24); - if (lookahead == '\"') ADVANCE(25); - if (lookahead == '\\') - ADVANCE(26); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(28); ACCEPT_TOKEN(ts_sym_string); + case 27: + ACCEPT_TOKEN(ts_aux_sym_token2); case 28: - if (lookahead == '\"') - ADVANCE(24); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(28); + if (lookahead == ')') + ADVANCE(27); LEX_ERROR(); case 29: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(24); - if (lookahead == '\"') - ADVANCE(30); - if ('#' <= lookahead && lookahead <= '\"') - ADVANCE(23); - if (lookahead == '\\') - ADVANCE(26); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(28); - LEX_ERROR(); - case 30: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(24); - if (lookahead == '\"') - ADVANCE(25); - if (lookahead == '\\') - ADVANCE(26); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(28); - ACCEPT_TOKEN(ts_sym_string); - case 31: - if (lookahead == '\"') - ADVANCE(23); - LEX_ERROR(); - case 32: - ACCEPT_TOKEN(ts_aux_sym_token2); - case 33: - if (lookahead == ')') - ADVANCE(32); - LEX_ERROR(); - case 34: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(29); if (lookahead == '\"') ADVANCE(22); if (lookahead == '(') - ADVANCE(35); + ADVANCE(30); LEX_ERROR(); - case 35: + case 30: ACCEPT_TOKEN(ts_aux_sym_token1); - case 36: - if (lookahead == 'f') + case 31: + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(31); + if (lookahead == 'f') + ADVANCE(2); if (lookahead == 't') - ADVANCE(11); + ADVANCE(12); if (lookahead == 'v') - ADVANCE(15); + ADVANCE(16); LEX_ERROR(); - case 37: + case 32: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(32); if (lookahead == '(') - ADVANCE(35); + ADVANCE(30); LEX_ERROR(); - case 38: + case 33: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(33); if (lookahead == '}') - ADVANCE(39); + ADVANCE(34); LEX_ERROR(); - case 39: + case 34: ACCEPT_TOKEN(ts_aux_sym_token5); - case 40: + case 35: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(35); if (lookahead == '{') - ADVANCE(41); + ADVANCE(36); LEX_ERROR(); - case 41: + case 36: ACCEPT_TOKEN(ts_aux_sym_token4); - case 42: + case 37: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(37); if (lookahead == '*') - ADVANCE(52); + ADVANCE(38); if (lookahead == ',') - ADVANCE(53); + ADVANCE(39); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(19); + ADVANCE(20); if (lookahead == '[') - ADVANCE(54); + ADVANCE(40); if (lookahead == 'i') - ADVANCE(55); + ADVANCE(41); if (lookahead == 'm') - ADVANCE(64); - if (lookahead == 's') - ADVANCE(69); - LEX_ERROR(); - case 43: - if (lookahead == 'n') - ADVANCE(44); - LEX_ERROR(); - case 44: - if (lookahead == 't') - ADVANCE(45); - LEX_ERROR(); - case 45: - if (lookahead == 'e') - ADVANCE(46); - LEX_ERROR(); - case 46: - if (lookahead == 'r') - ADVANCE(47); - LEX_ERROR(); - case 47: - if (lookahead == 'f') - ADVANCE(48); - LEX_ERROR(); - case 48: - if (lookahead == 'a') - ADVANCE(49); - LEX_ERROR(); - case 49: - if (lookahead == 'c') ADVANCE(50); + if (lookahead == 's') + ADVANCE(53); LEX_ERROR(); - case 50: - if (lookahead == 'e') - ADVANCE(51); - LEX_ERROR(); - case 51: - ACCEPT_TOKEN(ts_sym__interface); - case 52: + case 38: ACCEPT_TOKEN(ts_aux_sym_token6); - case 53: + case 39: ACCEPT_TOKEN(ts_aux_sym_token9); - case 54: + case 40: ACCEPT_TOKEN(ts_aux_sym_token7); - case 55: + case 41: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -436,9 +414,9 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'n') - ADVANCE(56); + ADVANCE(42); ACCEPT_TOKEN(ts_sym__identifier); - case 56: + case 42: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -446,9 +424,9 @@ LEX_FN() { ('u' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 't') - ADVANCE(57); + ADVANCE(43); ACCEPT_TOKEN(ts_sym__identifier); - case 57: + case 43: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -456,9 +434,9 @@ LEX_FN() { ('f' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'e') - ADVANCE(58); + ADVANCE(44); ACCEPT_TOKEN(ts_sym__identifier); - case 58: + case 44: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -466,9 +444,9 @@ LEX_FN() { ('s' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'r') - ADVANCE(59); + ADVANCE(45); ACCEPT_TOKEN(ts_sym__identifier); - case 59: + case 45: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -476,18 +454,18 @@ LEX_FN() { ('g' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'f') - ADVANCE(60); + ADVANCE(46); ACCEPT_TOKEN(ts_sym__identifier); - case 60: + case 46: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'a') - ADVANCE(61); + ADVANCE(47); ACCEPT_TOKEN(ts_sym__identifier); - case 61: + case 47: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -495,9 +473,9 @@ LEX_FN() { ('d' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'c') - ADVANCE(62); + ADVANCE(48); ACCEPT_TOKEN(ts_sym__identifier); - case 62: + case 48: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -505,31 +483,25 @@ LEX_FN() { ('f' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'e') - ADVANCE(63); + ADVANCE(49); ACCEPT_TOKEN(ts_sym__identifier); - case 63: + case 49: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20); ACCEPT_TOKEN(ts_sym__interface); - case 64: + case 50: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'a') - ADVANCE(67); + ADVANCE(51); ACCEPT_TOKEN(ts_sym__identifier); - case 65: - if (lookahead == 'p') - ADVANCE(66); - LEX_ERROR(); - case 66: - ACCEPT_TOKEN(ts_sym__map); - case 67: + case 51: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -537,16 +509,16 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'p') - ADVANCE(68); + ADVANCE(52); ACCEPT_TOKEN(ts_sym__identifier); - case 68: + case 52: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20); ACCEPT_TOKEN(ts_sym__map); - case 69: + case 53: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -554,27 +526,9 @@ LEX_FN() { ('u' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 't') - ADVANCE(75); + ADVANCE(54); ACCEPT_TOKEN(ts_sym__identifier); - case 70: - if (lookahead == 'r') - ADVANCE(71); - LEX_ERROR(); - case 71: - if (lookahead == 'u') - ADVANCE(72); - LEX_ERROR(); - case 72: - if (lookahead == 'c') - ADVANCE(73); - LEX_ERROR(); - case 73: - if (lookahead == 't') - ADVANCE(74); - LEX_ERROR(); - case 74: - ACCEPT_TOKEN(ts_sym__struct); - case 75: + case 54: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -582,9 +536,9 @@ LEX_FN() { ('s' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'r') - ADVANCE(76); + ADVANCE(55); ACCEPT_TOKEN(ts_sym__identifier); - case 76: + case 55: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -592,9 +546,9 @@ LEX_FN() { ('v' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'u') - ADVANCE(77); + ADVANCE(56); ACCEPT_TOKEN(ts_sym__identifier); - case 77: + case 56: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -602,9 +556,9 @@ LEX_FN() { ('d' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 'c') - ADVANCE(78); + ADVANCE(57); ACCEPT_TOKEN(ts_sym__identifier); - case 78: + case 57: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || @@ -612,425 +566,260 @@ LEX_FN() { ('u' <= lookahead && lookahead <= 'z')) ADVANCE(20); if (lookahead == 't') - ADVANCE(79); + ADVANCE(58); ACCEPT_TOKEN(ts_sym__identifier); - case 79: + case 58: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20); ACCEPT_TOKEN(ts_sym__struct); - case 80: + case 59: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(59); if (lookahead == ')') - ADVANCE(32); + ADVANCE(27); if (lookahead == ',') - ADVANCE(53); - LEX_ERROR(); - case 81: - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(19); - if (lookahead == '}') ADVANCE(39); LEX_ERROR(); - case 82: - if (lookahead == ']') - ADVANCE(83); + case 60: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(60); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == '}') + ADVANCE(34); LEX_ERROR(); - case 83: + case 61: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(61); + if (lookahead == ']') + ADVANCE(62); + LEX_ERROR(); + case 62: ACCEPT_TOKEN(ts_aux_sym_token8); - case 84: + case 63: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(63); if (lookahead == '*') - ADVANCE(52); + ADVANCE(38); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'h') || ('j' <= lookahead && lookahead <= 'l') || ('n' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(19); + ADVANCE(20); if (lookahead == '[') - ADVANCE(54); + ADVANCE(40); if (lookahead == 'i') - ADVANCE(55); - if (lookahead == 'm') - ADVANCE(64); - if (lookahead == 's') - ADVANCE(69); - LEX_ERROR(); - case 85: - if (lookahead == '[') - ADVANCE(54); - LEX_ERROR(); - case 86: - if (lookahead == ')') - ADVANCE(32); - if (lookahead == ',') - ADVANCE(53); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(19); - LEX_ERROR(); - case 87: - if (lookahead == '(') - ADVANCE(35); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(19); - if (lookahead == '}') - ADVANCE(39); - LEX_ERROR(); - case 88: - if (lookahead == ')') - ADVANCE(32); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(19); - LEX_ERROR(); - case 89: - if (lookahead == '(') - ADVANCE(35); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(19); - if (lookahead == '{') ADVANCE(41); - LEX_ERROR(); - case 90: - if (lookahead == '=') - ADVANCE(91); - LEX_ERROR(); - case 91: - ACCEPT_TOKEN(ts_aux_sym_token3); - case 92: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(93); - LEX_ERROR(); - case 93: - if (lookahead == '.') - ADVANCE(94); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(97); - ACCEPT_TOKEN(ts_sym_number); - case 94: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(95); - LEX_ERROR(); - case 95: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(96); - ACCEPT_TOKEN(ts_sym_number); - case 96: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(96); - ACCEPT_TOKEN(ts_sym_number); - case 97: - if (lookahead == '.') - ADVANCE(94); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(97); - ACCEPT_TOKEN(ts_sym_number); - case 98: - LEX_ERROR(); - case 99: - if (lookahead == 'p') - ADVANCE(100); - LEX_ERROR(); - case 100: - if (lookahead == 'a') - ADVANCE(101); - LEX_ERROR(); - case 101: - if (lookahead == 'c') - ADVANCE(102); - LEX_ERROR(); - case 102: - if (lookahead == 'k') - ADVANCE(103); - LEX_ERROR(); - case 103: - if (lookahead == 'a') - ADVANCE(104); - LEX_ERROR(); - case 104: - if (lookahead == 'g') - ADVANCE(105); - LEX_ERROR(); - case 105: - if (lookahead == 'e') - ADVANCE(106); - LEX_ERROR(); - case 106: - ACCEPT_TOKEN(ts_sym__package); - case 107: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 't') || - ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'u') - ADVANCE(108); - ACCEPT_TOKEN(ts_sym__identifier); - case 108: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'n') - ADVANCE(109); - ACCEPT_TOKEN(ts_sym__identifier); - case 109: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'c') - ADVANCE(110); - ACCEPT_TOKEN(ts_sym__identifier); - case 110: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__func); - case 111: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'l') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(20); if (lookahead == 'm') - ADVANCE(112); - if (lookahead == 'n') - ADVANCE(56); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(44); - ACCEPT_TOKEN(ts_sym__identifier); - case 112: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'p') - ADVANCE(113); - if ('q' <= lookahead && lookahead <= 'p') - ADVANCE(7); - ACCEPT_TOKEN(ts_sym__identifier); - case 113: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'n') || - ('p' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'o') - ADVANCE(114); - if ('p' <= lookahead && lookahead <= 'o') - ADVANCE(8); - ACCEPT_TOKEN(ts_sym__identifier); - case 114: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'r') - ADVANCE(115); - if ('s' <= lookahead && lookahead <= 'r') - ADVANCE(9); - ACCEPT_TOKEN(ts_sym__identifier); - case 115: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 't') - ADVANCE(116); - if ('u' <= lookahead && lookahead <= 't') - ADVANCE(10); - ACCEPT_TOKEN(ts_sym__identifier); - case 116: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__import); - case 117: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'l') || - ('n' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'm') - ADVANCE(112); - if ('n' <= lookahead && lookahead <= 'm') - ADVANCE(6); - ACCEPT_TOKEN(ts_sym__identifier); - case 118: - if (lookahead == 'a') + ADVANCE(50); + if (lookahead == 's') + ADVANCE(53); + LEX_ERROR(); + case 64: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(64); + if (lookahead == '[') + ADVANCE(40); + LEX_ERROR(); + case 65: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(65); - LEX_ERROR(); - case 119: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'a') - ADVANCE(120); - ACCEPT_TOKEN(ts_sym__identifier); - case 120: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'c') - ADVANCE(121); - ACCEPT_TOKEN(ts_sym__identifier); - case 121: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'j') || - ('l' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'k') - ADVANCE(122); - ACCEPT_TOKEN(ts_sym__identifier); - case 122: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'a') - ADVANCE(123); - ACCEPT_TOKEN(ts_sym__identifier); - case 123: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'f') || - ('h' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'g') - ADVANCE(124); - ACCEPT_TOKEN(ts_sym__identifier); - case 124: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'e') - ADVANCE(125); - ACCEPT_TOKEN(ts_sym__identifier); - case 125: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || + if (lookahead == ')') + ADVANCE(27); + if (lookahead == ',') + ADVANCE(39); + if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20); - ACCEPT_TOKEN(ts_sym__package); - case 126: - if (lookahead == 't') + LEX_ERROR(); + case 66: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(66); + if (lookahead == '(') + ADVANCE(30); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == '}') + ADVANCE(34); + LEX_ERROR(); + case 67: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(67); + if (lookahead == ')') + ADVANCE(27); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + LEX_ERROR(); + case 68: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(68); + if (lookahead == '(') + ADVANCE(30); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == '{') + ADVANCE(36); + LEX_ERROR(); + case 69: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(69); + if (lookahead == '=') ADVANCE(70); LEX_ERROR(); - case 127: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'x') || - (lookahead == 'z')) - ADVANCE(20); - if (lookahead == 'y') - ADVANCE(128); - ACCEPT_TOKEN(ts_sym__identifier); - case 128: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'o') || - ('q' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + case 70: + ACCEPT_TOKEN(ts_aux_sym_token3); + case 71: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(71); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(72); + LEX_ERROR(); + case 72: + if (lookahead == '.') + ADVANCE(73); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(72); + ACCEPT_TOKEN(ts_sym_number); + case 73: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(74); + LEX_ERROR(); + case 74: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(74); + ACCEPT_TOKEN(ts_sym_number); + case 75: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(75); + LEX_ERROR(); + case 76: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(76); if (lookahead == 'p') - ADVANCE(129); - ACCEPT_TOKEN(ts_sym__identifier); - case 129: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'e') - ADVANCE(130); - ACCEPT_TOKEN(ts_sym__identifier); - case 130: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__type); - case 131: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(20); + ADVANCE(77); + LEX_ERROR(); + case 77: if (lookahead == 'a') - ADVANCE(132); - ACCEPT_TOKEN(ts_sym__identifier); - case 132: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'q') || - ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - if (lookahead == 'r') - ADVANCE(133); - ACCEPT_TOKEN(ts_sym__identifier); - case 133: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(20); - ACCEPT_TOKEN(ts_sym__var); - case ts_lex_state_error: + ADVANCE(78); + LEX_ERROR(); + case 78: + if (lookahead == 'c') + ADVANCE(79); + LEX_ERROR(); + case 79: + if (lookahead == 'k') + ADVANCE(80); + LEX_ERROR(); + case 80: + if (lookahead == 'a') + ADVANCE(81); + LEX_ERROR(); + case 81: + if (lookahead == 'g') + ADVANCE(82); + LEX_ERROR(); + case 82: + if (lookahead == 'e') + ADVANCE(83); + LEX_ERROR(); + case 83: + ACCEPT_TOKEN(ts_sym__package); + case 84: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(84); if (lookahead == '\"') ADVANCE(22); if (lookahead == '(') - ADVANCE(35); + ADVANCE(30); if (lookahead == ')') - ADVANCE(32); + ADVANCE(27); if (lookahead == '*') - ADVANCE(52); + ADVANCE(38); if (lookahead == ',') - ADVANCE(53); + ADVANCE(39); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(93); + ADVANCE(72); if (lookahead == '=') - ADVANCE(91); + ADVANCE(70); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -1039,35 +828,306 @@ LEX_FN() { ('q' <= lookahead && lookahead <= 'r') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(19); + ADVANCE(20); if (lookahead == '[') - ADVANCE(54); + ADVANCE(40); if (lookahead == ']') - ADVANCE(83); + ADVANCE(62); if (lookahead == 'f') - ADVANCE(107); + ADVANCE(85); if (lookahead == 'i') - ADVANCE(111); - if ('j' <= lookahead && lookahead <= 'i') - ADVANCE(117); + ADVANCE(89); if (lookahead == 'm') - ADVANCE(64); - if ('n' <= lookahead && lookahead <= 'm') - ADVANCE(118); + ADVANCE(50); if (lookahead == 'p') - ADVANCE(119); + ADVANCE(95); if (lookahead == 's') - ADVANCE(69); - if ('t' <= lookahead && lookahead <= 's') - ADVANCE(126); + ADVANCE(53); if (lookahead == 't') - ADVANCE(127); + ADVANCE(102); if (lookahead == 'v') - ADVANCE(131); + ADVANCE(106); if (lookahead == '{') - ADVANCE(41); + ADVANCE(36); if (lookahead == '}') + ADVANCE(34); + LEX_ERROR(); + case 85: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'u') + ADVANCE(86); + ACCEPT_TOKEN(ts_sym__identifier); + case 86: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'n') + ADVANCE(87); + ACCEPT_TOKEN(ts_sym__identifier); + case 87: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'c') + ADVANCE(88); + ACCEPT_TOKEN(ts_sym__identifier); + case 88: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + ACCEPT_TOKEN(ts_sym__func); + case 89: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'l') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'm') + ADVANCE(90); + if (lookahead == 'n') + ADVANCE(42); + ACCEPT_TOKEN(ts_sym__identifier); + case 90: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'p') + ADVANCE(91); + ACCEPT_TOKEN(ts_sym__identifier); + case 91: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'n') || + ('p' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'o') + ADVANCE(92); + ACCEPT_TOKEN(ts_sym__identifier); + case 92: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'r') + ADVANCE(93); + ACCEPT_TOKEN(ts_sym__identifier); + case 93: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 't') + ADVANCE(94); + ACCEPT_TOKEN(ts_sym__identifier); + case 94: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + ACCEPT_TOKEN(ts_sym__import); + case 95: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'a') + ADVANCE(96); + ACCEPT_TOKEN(ts_sym__identifier); + case 96: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'c') + ADVANCE(97); + ACCEPT_TOKEN(ts_sym__identifier); + case 97: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'j') || + ('l' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'k') + ADVANCE(98); + ACCEPT_TOKEN(ts_sym__identifier); + case 98: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'a') + ADVANCE(99); + ACCEPT_TOKEN(ts_sym__identifier); + case 99: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'f') || + ('h' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'g') + ADVANCE(100); + ACCEPT_TOKEN(ts_sym__identifier); + case 100: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'e') + ADVANCE(101); + ACCEPT_TOKEN(ts_sym__identifier); + case 101: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + ACCEPT_TOKEN(ts_sym__package); + case 102: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'x') || + (lookahead == 'z')) + ADVANCE(20); + if (lookahead == 'y') + ADVANCE(103); + ACCEPT_TOKEN(ts_sym__identifier); + case 103: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'p') + ADVANCE(104); + ACCEPT_TOKEN(ts_sym__identifier); + case 104: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'e') + ADVANCE(105); + ACCEPT_TOKEN(ts_sym__identifier); + case 105: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + ACCEPT_TOKEN(ts_sym__type); + case 106: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('b' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'a') + ADVANCE(107); + ACCEPT_TOKEN(ts_sym__identifier); + case 107: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'q') || + ('s' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == 'r') + ADVANCE(108); + ACCEPT_TOKEN(ts_sym__identifier); + case 108: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + ACCEPT_TOKEN(ts_sym__var); + case ts_lex_state_error: + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(84); + if (lookahead == '\"') + ADVANCE(22); + if (lookahead == '(') + ADVANCE(30); + if (lookahead == ')') + ADVANCE(27); + if (lookahead == '*') + ADVANCE(38); + if (lookahead == ',') ADVANCE(39); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(72); + if (lookahead == '=') + ADVANCE(70); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'l') || + ('n' <= lookahead && lookahead <= 'o') || + ('q' <= lookahead && lookahead <= 'r') || + (lookahead == 'u') || + ('w' <= lookahead && lookahead <= 'z')) + ADVANCE(20); + if (lookahead == '[') + ADVANCE(40); + if (lookahead == ']') + ADVANCE(62); + if (lookahead == 'f') + ADVANCE(85); + if (lookahead == 'i') + ADVANCE(89); + if (lookahead == 'm') + ADVANCE(50); + if (lookahead == 'p') + ADVANCE(95); + if (lookahead == 's') + ADVANCE(53); + if (lookahead == 't') + ADVANCE(102); + if (lookahead == 'v') + ADVANCE(106); + if (lookahead == '{') + ADVANCE(36); + if (lookahead == '}') + ADVANCE(34); LEX_ERROR(); default: LEX_PANIC(); @@ -1075,202 +1135,202 @@ LEX_FN() { } LEX_STATES = { - [0] = 99, - [1] = 18, + [0] = 76, + [1] = 19, [2] = 0, [3] = 0, [4] = 0, - [5] = 34, + [5] = 29, [6] = 0, [7] = 0, [8] = 21, [9] = 21, [10] = 21, - [11] = 33, - [12] = 33, + [11] = 28, + [12] = 28, [13] = 0, [14] = 0, - [15] = 36, - [16] = 36, - [17] = 18, - [18] = 37, - [19] = 37, - [20] = 40, - [21] = 36, - [22] = 38, - [23] = 36, - [24] = 88, - [25] = 42, - [26] = 42, - [27] = 84, - [28] = 80, - [29] = 40, - [30] = 81, - [31] = 37, - [32] = 81, - [33] = 38, - [34] = 88, - [35] = 42, - [36] = 84, - [37] = 85, - [38] = 84, - [39] = 82, - [40] = 40, - [41] = 81, - [42] = 38, - [43] = 82, - [44] = 85, - [45] = 84, - [46] = 40, - [47] = 81, - [48] = 84, - [49] = 84, - [50] = 81, - [51] = 40, - [52] = 81, - [53] = 38, - [54] = 81, - [55] = 85, - [56] = 84, - [57] = 82, - [58] = 82, - [59] = 84, - [60] = 40, - [61] = 81, - [62] = 38, - [63] = 81, - [64] = 81, - [65] = 81, - [66] = 84, - [67] = 81, - [68] = 82, - [69] = 84, - [70] = 81, - [71] = 84, - [72] = 82, - [73] = 82, - [74] = 84, - [75] = 82, - [76] = 81, - [77] = 38, - [78] = 38, - [79] = 82, - [80] = 82, - [81] = 84, - [82] = 82, - [83] = 82, - [84] = 84, - [85] = 40, - [86] = 81, - [87] = 38, - [88] = 80, - [89] = 80, - [90] = 80, - [91] = 84, - [92] = 80, - [93] = 82, - [94] = 84, - [95] = 80, - [96] = 80, - [97] = 33, - [98] = 87, - [99] = 81, - [100] = 18, - [101] = 86, - [102] = 80, - [103] = 33, - [104] = 81, - [105] = 18, - [106] = 80, - [107] = 33, - [108] = 18, - [109] = 80, - [110] = 33, - [111] = 81, - [112] = 18, - [113] = 18, - [114] = 18, - [115] = 80, - [116] = 33, - [117] = 18, - [118] = 42, - [119] = 84, - [120] = 80, - [121] = 33, - [122] = 18, - [123] = 42, - [124] = 84, - [125] = 18, - [126] = 42, - [127] = 84, - [128] = 87, - [129] = 81, - [130] = 18, - [131] = 80, - [132] = 33, - [133] = 81, - [134] = 18, - [135] = 80, - [136] = 33, - [137] = 38, - [138] = 80, - [139] = 80, - [140] = 33, - [141] = 89, - [142] = 40, - [143] = 40, - [144] = 18, - [145] = 80, - [146] = 33, - [147] = 40, - [148] = 18, - [149] = 80, - [150] = 33, - [151] = 40, - [152] = 89, - [153] = 40, - [154] = 18, - [155] = 80, - [156] = 33, - [157] = 40, - [158] = 18, - [159] = 80, - [160] = 33, - [161] = 18, - [162] = 84, - [163] = 84, - [164] = 36, - [165] = 40, - [166] = 81, - [167] = 38, - [168] = 36, - [169] = 85, - [170] = 84, - [171] = 82, - [172] = 84, - [173] = 40, - [174] = 81, - [175] = 38, - [176] = 36, - [177] = 36, - [178] = 36, - [179] = 84, - [180] = 36, - [181] = 82, - [182] = 84, - [183] = 36, - [184] = 36, - [185] = 18, - [186] = 90, - [187] = 90, - [188] = 92, - [189] = 36, - [190] = 36, - [191] = 36, - [192] = 36, - [193] = 98, - [194] = 98, - [195] = 98, + [15] = 31, + [16] = 31, + [17] = 19, + [18] = 32, + [19] = 32, + [20] = 35, + [21] = 31, + [22] = 33, + [23] = 31, + [24] = 67, + [25] = 37, + [26] = 37, + [27] = 63, + [28] = 59, + [29] = 35, + [30] = 60, + [31] = 32, + [32] = 60, + [33] = 33, + [34] = 67, + [35] = 37, + [36] = 63, + [37] = 64, + [38] = 63, + [39] = 61, + [40] = 35, + [41] = 60, + [42] = 33, + [43] = 61, + [44] = 64, + [45] = 63, + [46] = 35, + [47] = 60, + [48] = 63, + [49] = 63, + [50] = 60, + [51] = 35, + [52] = 60, + [53] = 33, + [54] = 60, + [55] = 64, + [56] = 63, + [57] = 61, + [58] = 61, + [59] = 63, + [60] = 35, + [61] = 60, + [62] = 33, + [63] = 60, + [64] = 60, + [65] = 60, + [66] = 63, + [67] = 60, + [68] = 61, + [69] = 63, + [70] = 60, + [71] = 63, + [72] = 61, + [73] = 61, + [74] = 63, + [75] = 61, + [76] = 60, + [77] = 33, + [78] = 33, + [79] = 61, + [80] = 61, + [81] = 63, + [82] = 61, + [83] = 61, + [84] = 63, + [85] = 35, + [86] = 60, + [87] = 33, + [88] = 59, + [89] = 59, + [90] = 59, + [91] = 63, + [92] = 59, + [93] = 61, + [94] = 63, + [95] = 59, + [96] = 59, + [97] = 28, + [98] = 66, + [99] = 60, + [100] = 19, + [101] = 65, + [102] = 59, + [103] = 28, + [104] = 60, + [105] = 19, + [106] = 59, + [107] = 28, + [108] = 19, + [109] = 59, + [110] = 28, + [111] = 60, + [112] = 19, + [113] = 19, + [114] = 19, + [115] = 59, + [116] = 28, + [117] = 19, + [118] = 37, + [119] = 63, + [120] = 59, + [121] = 28, + [122] = 19, + [123] = 37, + [124] = 63, + [125] = 19, + [126] = 37, + [127] = 63, + [128] = 66, + [129] = 60, + [130] = 19, + [131] = 59, + [132] = 28, + [133] = 60, + [134] = 19, + [135] = 59, + [136] = 28, + [137] = 33, + [138] = 59, + [139] = 59, + [140] = 28, + [141] = 68, + [142] = 35, + [143] = 35, + [144] = 19, + [145] = 59, + [146] = 28, + [147] = 35, + [148] = 19, + [149] = 59, + [150] = 28, + [151] = 35, + [152] = 68, + [153] = 35, + [154] = 19, + [155] = 59, + [156] = 28, + [157] = 35, + [158] = 19, + [159] = 59, + [160] = 28, + [161] = 19, + [162] = 63, + [163] = 63, + [164] = 31, + [165] = 35, + [166] = 60, + [167] = 33, + [168] = 31, + [169] = 64, + [170] = 63, + [171] = 61, + [172] = 63, + [173] = 35, + [174] = 60, + [175] = 33, + [176] = 31, + [177] = 31, + [178] = 31, + [179] = 63, + [180] = 31, + [181] = 61, + [182] = 63, + [183] = 31, + [184] = 31, + [185] = 19, + [186] = 69, + [187] = 69, + [188] = 71, + [189] = 31, + [190] = 31, + [191] = 31, + [192] = 31, + [193] = 75, + [194] = 75, + [195] = 75, }; PARSE_TABLE = { diff --git a/examples/parsers/javascript.c b/examples/parsers/javascript.c index 0f32cecb..95660474 100644 --- a/examples/parsers/javascript.c +++ b/examples/parsers/javascript.c @@ -1,7 +1,7 @@ #include "tree_sitter/parser.h" -STATE_COUNT = 347; -SYMBOL_COUNT = 48; +STATE_COUNT = 342; +SYMBOL_COUNT = 46; enum { ts_sym__else = 2, @@ -40,16 +40,14 @@ enum { ts_aux_sym_repeat_helper6 = 35, ts_aux_sym_token1 = 36, ts_aux_sym_token10 = 37, - ts_aux_sym_token11 = 38, - ts_aux_sym_token12 = 39, - ts_aux_sym_token2 = 40, - ts_aux_sym_token3 = 41, - ts_aux_sym_token4 = 42, - ts_aux_sym_token5 = 43, - ts_aux_sym_token6 = 44, - ts_aux_sym_token7 = 45, - ts_aux_sym_token8 = 46, - ts_aux_sym_token9 = 47, + ts_aux_sym_token2 = 38, + ts_aux_sym_token3 = 39, + ts_aux_sym_token4 = 40, + ts_aux_sym_token5 = 41, + ts_aux_sym_token6 = 42, + ts_aux_sym_token7 = 43, + ts_aux_sym_token8 = 44, + ts_aux_sym_token9 = 45, }; SYMBOL_NAMES = { @@ -89,8 +87,6 @@ SYMBOL_NAMES = { [ts_aux_sym_repeat_helper6] = "repeat_helper6", [ts_aux_sym_token1] = "'{'", [ts_aux_sym_token10] = "']'", - [ts_aux_sym_token11] = "';'", - [ts_aux_sym_token12] = "'\n'", [ts_aux_sym_token2] = "'}'", [ts_aux_sym_token3] = "'('", [ts_aux_sym_token4] = "')'", @@ -118,8 +114,6 @@ HIDDEN_SYMBOLS = { [ts_aux_sym_repeat_helper6] = 1, [ts_aux_sym_token1] = 1, [ts_aux_sym_token10] = 1, - [ts_aux_sym_token11] = 1, - [ts_aux_sym_token12] = 1, [ts_aux_sym_token2] = 1, [ts_aux_sym_token3] = 1, [ts_aux_sym_token4] = 1, @@ -134,70 +128,82 @@ LEX_FN() { START_LEXER(); switch (lex_state) { case 0: - if (lookahead == '\n') + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); - if (lookahead == '(') + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(0); + if (lookahead == '\n') ADVANCE(2); - if (lookahead == '.') + if (lookahead == '(') ADVANCE(3); - if (lookahead == ';') + if (lookahead == '.') ADVANCE(4); + if (lookahead == ';') + ADVANCE(5); LEX_ERROR(); case 1: - ACCEPT_TOKEN(ts_aux_sym_token12); + ACCEPT_TOKEN(ts_builtin_sym_end); case 2: - ACCEPT_TOKEN(ts_aux_sym_token3); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(0); + if (lookahead == '\n') + ADVANCE(2); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ';') + ADVANCE(5); + ACCEPT_TOKEN(ts_sym__terminator); case 3: - ACCEPT_TOKEN(ts_aux_sym_token7); + ACCEPT_TOKEN(ts_aux_sym_token3); case 4: - ACCEPT_TOKEN(ts_aux_sym_token11); + ACCEPT_TOKEN(ts_aux_sym_token7); case 5: - if (lookahead == '\"') + ACCEPT_TOKEN(ts_sym__terminator); + case 6: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(6); + if (lookahead == '\"') + ADVANCE(7); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); + ADVANCE(12); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 's') || ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - if (lookahead == '[') - ADVANCE(23); - if (lookahead == 'f') - ADVANCE(24); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(47); - if (lookahead == 'n') - ADVANCE(48); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(55); - if (lookahead == 't') - ADVANCE(56); - if ('u' <= lookahead && lookahead <= 't') - ADVANCE(63); - if (lookahead == '{') - ADVANCE(64); - LEX_ERROR(); - case 6: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(7); - if (lookahead == '\\') - ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') ADVANCE(15); + if (lookahead == '[') + ADVANCE(16); + if (lookahead == 'f') + ADVANCE(17); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == '{') + ADVANCE(37); LEX_ERROR(); case 7: if (!((lookahead == '\"') || (lookahead == '\\'))) ADVANCE(8); - if (lookahead == '\"') - ADVANCE(9); if (lookahead == '\\') ADVANCE(10); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(12); LEX_ERROR(); case 8: if (!((lookahead == '\"') || @@ -207,8 +213,6 @@ LEX_FN() { ADVANCE(9); if (lookahead == '\\') ADVANCE(10); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(12); LEX_ERROR(); case 9: ACCEPT_TOKEN(ts_sym_string); @@ -218,12 +222,8 @@ LEX_FN() { ADVANCE(8); if (lookahead == '\"') ADVANCE(11); - if ('#' <= lookahead && lookahead <= '\"') - ADVANCE(8); if (lookahead == '\\') ADVANCE(10); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(12); LEX_ERROR(); case 11: if (!((lookahead == '\"') || @@ -233,130 +233,168 @@ LEX_FN() { ADVANCE(9); if (lookahead == '\\') ADVANCE(10); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(12); ACCEPT_TOKEN(ts_sym_string); case 12: - if (lookahead == '\"') - ADVANCE(8); - LEX_ERROR(); - case 13: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(8); - if (lookahead == '\"') - ADVANCE(14); - if ('#' <= lookahead && lookahead <= '\"') - ADVANCE(7); - if (lookahead == '\\') - ADVANCE(10); - if (']' <= lookahead && lookahead <= '\\') + if (lookahead == '.') + ADVANCE(13); + if ('0' <= lookahead && lookahead <= '9') ADVANCE(12); + ACCEPT_TOKEN(ts_sym_number); + case 13: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(14); LEX_ERROR(); case 14: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(8); - if (lookahead == '\"') - ADVANCE(9); - if (lookahead == '\\') - ADVANCE(10); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(12); - ACCEPT_TOKEN(ts_sym_string); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(14); + ACCEPT_TOKEN(ts_sym_number); case 15: - if (lookahead == '\"') - ADVANCE(7); - LEX_ERROR(); + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + ACCEPT_TOKEN(ts_sym_identifier); case 16: - if (lookahead == '.') - ADVANCE(17); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_number); - case 17: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(18); - LEX_ERROR(); - case 18: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(19); - ACCEPT_TOKEN(ts_sym_number); - case 19: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(19); - ACCEPT_TOKEN(ts_sym_number); - case 20: - if (lookahead == '.') - ADVANCE(17); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(20); - ACCEPT_TOKEN(ts_sym_number); - case 21: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - ACCEPT_TOKEN(ts_sym_identifier); - case 22: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - ACCEPT_TOKEN(ts_sym_identifier); - case 23: ACCEPT_TOKEN(ts_aux_sym_token9); - case 24: + case 17: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'a') - ADVANCE(25); - if ('b' <= lookahead && lookahead <= 'a') - ADVANCE(32); + ADVANCE(18); if (lookahead == 'u') - ADVANCE(33); - if ('v' <= lookahead && lookahead <= 'u') - ADVANCE(46); + ADVANCE(22); ACCEPT_TOKEN(ts_sym_identifier); - case 25: + case 18: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'k') || ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'l') - ADVANCE(29); + ADVANCE(19); ACCEPT_TOKEN(ts_sym_identifier); - case 26: - if (lookahead == 's') - ADVANCE(27); - LEX_ERROR(); - case 27: - if (lookahead == 'e') - ADVANCE(28); - LEX_ERROR(); - case 28: - ACCEPT_TOKEN(ts_sym_false); - case 29: + case 19: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 's') + ADVANCE(20); + ACCEPT_TOKEN(ts_sym_identifier); + case 20: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'd') || + ('f' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'e') + ADVANCE(21); + ACCEPT_TOKEN(ts_sym_identifier); + case 21: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + ACCEPT_TOKEN(ts_sym_false); + case 22: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'n') + ADVANCE(23); + ACCEPT_TOKEN(ts_sym_identifier); + case 23: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'b') || + ('d' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'c') + ADVANCE(24); + ACCEPT_TOKEN(ts_sym_identifier); + case 24: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 't') + ADVANCE(25); + ACCEPT_TOKEN(ts_sym_identifier); + case 25: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'i') + ADVANCE(26); + ACCEPT_TOKEN(ts_sym_identifier); + case 26: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'n') || + ('p' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'o') + ADVANCE(27); + ACCEPT_TOKEN(ts_sym_identifier); + case 27: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'n') + ADVANCE(28); + ACCEPT_TOKEN(ts_sym_identifier); + case 28: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + ACCEPT_TOKEN(ts_sym__function); + case 29: + if ((lookahead == '$') || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + (lookahead == '_') || + ('a' <= lookahead && lookahead <= 't') || + ('v' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'u') ADVANCE(30); ACCEPT_TOKEN(ts_sym_identifier); case 30: @@ -364,10 +402,10 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'd') || - ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'e') + ('a' <= lookahead && lookahead <= 'k') || + ('m' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == 'l') ADVANCE(31); ACCEPT_TOKEN(ts_sym_identifier); case 31: @@ -375,280 +413,137 @@ LEX_FN() { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - ACCEPT_TOKEN(ts_sym_false); - case 32: + ('a' <= lookahead && lookahead <= 'k') || + ('m' <= lookahead && lookahead <= 'z')) + ADVANCE(15); if (lookahead == 'l') - ADVANCE(26); - LEX_ERROR(); - case 33: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'n') - ADVANCE(34); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(45); - ACCEPT_TOKEN(ts_sym_identifier); - case 34: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'b') || - ('d' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'c') - ADVANCE(35); - if ('d' <= lookahead && lookahead <= 'c') - ADVANCE(44); - ACCEPT_TOKEN(ts_sym_identifier); - case 35: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 't') - ADVANCE(36); - if ('u' <= lookahead && lookahead <= 't') - ADVANCE(43); - ACCEPT_TOKEN(ts_sym_identifier); - case 36: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'h') || - ('j' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'i') - ADVANCE(37); - if ('j' <= lookahead && lookahead <= 'i') - ADVANCE(42); - ACCEPT_TOKEN(ts_sym_identifier); - case 37: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'n') || - ('p' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'o') - ADVANCE(38); - if ('p' <= lookahead && lookahead <= 'o') - ADVANCE(41); - ACCEPT_TOKEN(ts_sym_identifier); - case 38: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'n') - ADVANCE(39); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(40); - ACCEPT_TOKEN(ts_sym_identifier); - case 39: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - ACCEPT_TOKEN(ts_sym__function); - case 40: - ACCEPT_TOKEN(ts_sym__function); - case 41: - if (lookahead == 'n') - ADVANCE(40); - LEX_ERROR(); - case 42: - if (lookahead == 'o') - ADVANCE(41); - LEX_ERROR(); - case 43: - if (lookahead == 'i') - ADVANCE(42); - LEX_ERROR(); - case 44: - if (lookahead == 't') - ADVANCE(43); - LEX_ERROR(); - case 45: - if (lookahead == 'c') - ADVANCE(44); - LEX_ERROR(); - case 46: - if (lookahead == 'n') - ADVANCE(45); - LEX_ERROR(); - case 47: - if (lookahead == 'a') ADVANCE(32); - LEX_ERROR(); - case 48: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 't') || - ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'u') - ADVANCE(52); ACCEPT_TOKEN(ts_sym_identifier); - case 49: - if (lookahead == 'l') - ADVANCE(50); - LEX_ERROR(); - case 50: - if (lookahead == 'l') - ADVANCE(51); - LEX_ERROR(); - case 51: - ACCEPT_TOKEN(ts_sym_null); - case 52: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'k') || - ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'l') - ADVANCE(53); - ACCEPT_TOKEN(ts_sym_identifier); - case 53: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'k') || - ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'l') - ADVANCE(54); - ACCEPT_TOKEN(ts_sym_identifier); - case 54: + case 32: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); ACCEPT_TOKEN(ts_sym_null); - case 55: - if (lookahead == 'u') - ADVANCE(49); - LEX_ERROR(); - case 56: + case 33: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'r') - ADVANCE(57); - if ('s' <= lookahead && lookahead <= 'r') - ADVANCE(62); + ADVANCE(34); ACCEPT_TOKEN(ts_sym_identifier); - case 57: + case 34: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'u') - ADVANCE(58); - if ('v' <= lookahead && lookahead <= 'u') - ADVANCE(61); + ADVANCE(35); ACCEPT_TOKEN(ts_sym_identifier); - case 58: + case 35: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'd') || ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'e') - ADVANCE(59); - if ('f' <= lookahead && lookahead <= 'e') - ADVANCE(60); + ADVANCE(36); ACCEPT_TOKEN(ts_sym_identifier); - case 59: + case 36: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); ACCEPT_TOKEN(ts_sym_true); - case 60: - ACCEPT_TOKEN(ts_sym_true); - case 61: - if (lookahead == 'e') - ADVANCE(60); - LEX_ERROR(); - case 62: - if (lookahead == 'u') - ADVANCE(61); - LEX_ERROR(); - case 63: - if (lookahead == 'r') - ADVANCE(62); - LEX_ERROR(); - case 64: + case 37: ACCEPT_TOKEN(ts_aux_sym_token1); - case 65: - if (lookahead == '\n') + case 38: + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(38); + if (lookahead == '\n') + ADVANCE(39); if (lookahead == ';') + ADVANCE(5); + LEX_ERROR(); + case 39: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(38); + if (lookahead == '\n') + ADVANCE(39); + if (lookahead == ';') + ADVANCE(5); + ACCEPT_TOKEN(ts_sym__terminator); + case 40: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(40); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') ADVANCE(4); LEX_ERROR(); - case 66: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ')') - ADVANCE(67); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); - LEX_ERROR(); - case 67: + case 41: ACCEPT_TOKEN(ts_aux_sym_token4); - case 68: + case 42: ACCEPT_TOKEN(ts_aux_sym_token6); - case 69: + case 43: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(43); if (lookahead == '(') - ADVANCE(2); - if (lookahead == ')') - ADVANCE(67); - if (lookahead == '.') ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == '.') + ADVANCE(4); LEX_ERROR(); - case 70: + case 44: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(44); if (lookahead == '\"') - ADVANCE(6); + ADVANCE(7); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); + ADVANCE(12); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -656,43 +551,25 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 's') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(21); + ADVANCE(15); if (lookahead == '[') - ADVANCE(23); + ADVANCE(16); if (lookahead == 'f') - ADVANCE(74); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(77); + ADVANCE(45); if (lookahead == 'i') - ADVANCE(78); - if (lookahead == 'n') ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); if (lookahead == 't') - ADVANCE(56); + ADVANCE(33); if (lookahead == 'v') - ADVANCE(81); - if ('w' <= lookahead && lookahead <= 'v') - ADVANCE(86); + ADVANCE(50); if (lookahead == '{') - ADVANCE(64); + ADVANCE(37); if (lookahead == '}') - ADVANCE(87); + ADVANCE(53); LEX_ERROR(); - case 71: - if (lookahead == 'a') - ADVANCE(32); - if (lookahead == 'o') - ADVANCE(72); - if (lookahead == 'u') - ADVANCE(46); - LEX_ERROR(); - case 72: - if (lookahead == 'r') - ADVANCE(73); - LEX_ERROR(); - case 73: - ACCEPT_TOKEN(ts_sym__for); - case 74: + case 45: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || @@ -700,386 +577,641 @@ LEX_FN() { ('b' <= lookahead && lookahead <= 'n') || ('p' <= lookahead && lookahead <= 't') || ('v' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'a') - ADVANCE(25); - if ('b' <= lookahead && lookahead <= 'a') - ADVANCE(32); + ADVANCE(18); if (lookahead == 'o') - ADVANCE(75); + ADVANCE(46); if (lookahead == 'u') - ADVANCE(33); + ADVANCE(22); ACCEPT_TOKEN(ts_sym_identifier); - case 75: + case 46: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'r') - ADVANCE(76); - if ('s' <= lookahead && lookahead <= 'r') - ADVANCE(73); + ADVANCE(47); ACCEPT_TOKEN(ts_sym_identifier); - case 76: + case 47: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); ACCEPT_TOKEN(ts_sym__for); - case 77: - if ((lookahead == '$') || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - (lookahead == '_') || - ('a' <= lookahead && lookahead <= 'n') || - ('p' <= lookahead && lookahead <= 'z')) - ADVANCE(22); - if (lookahead == 'o') - ADVANCE(75); - if ('p' <= lookahead && lookahead <= 'o') - ADVANCE(72); - ACCEPT_TOKEN(ts_sym_identifier); - case 78: + case 48: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'f') - ADVANCE(79); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(80); + ADVANCE(49); ACCEPT_TOKEN(ts_sym_identifier); - case 79: + case 49: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); ACCEPT_TOKEN(ts_sym__if); - case 80: - ACCEPT_TOKEN(ts_sym__if); - case 81: + case 50: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('b' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'a') - ADVANCE(82); - if ('b' <= lookahead && lookahead <= 'a') - ADVANCE(85); + ADVANCE(51); ACCEPT_TOKEN(ts_sym_identifier); - case 82: + case 51: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'q') || ('s' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'r') - ADVANCE(83); - if ('s' <= lookahead && lookahead <= 'r') - ADVANCE(84); + ADVANCE(52); ACCEPT_TOKEN(ts_sym_identifier); - case 83: + case 52: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); ACCEPT_TOKEN(ts_sym__var); + case 53: + ACCEPT_TOKEN(ts_aux_sym_token2); + case 54: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(54); + if (lookahead == '\n') + ADVANCE(55); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + LEX_ERROR(); + case 55: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(54); + if (lookahead == '\n') + ADVANCE(55); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + ACCEPT_TOKEN(ts_sym__terminator); + case 56: + ACCEPT_TOKEN(ts_aux_sym_token5); + case 57: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(57); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + LEX_ERROR(); + case 58: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(58); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == '}') + ADVANCE(53); + LEX_ERROR(); + case 59: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(59); + if (lookahead == '}') + ADVANCE(53); + LEX_ERROR(); + case 60: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(60); + if (lookahead == '\n') + ADVANCE(61); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + LEX_ERROR(); + case 61: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(60); + if (lookahead == '\n') + ADVANCE(61); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + ACCEPT_TOKEN(ts_sym__terminator); + case 62: + ACCEPT_TOKEN(ts_aux_sym_token8); + case 63: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(63); + if (lookahead == '\n') + ADVANCE(64); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + LEX_ERROR(); + case 64: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(63); + if (lookahead == '\n') + ADVANCE(64); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + ACCEPT_TOKEN(ts_sym__terminator); + case 65: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(65); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ']') + ADVANCE(66); + LEX_ERROR(); + case 66: + ACCEPT_TOKEN(ts_aux_sym_token10); + case 67: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(67); + if (lookahead == '\n') + ADVANCE(68); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '}') + ADVANCE(53); + LEX_ERROR(); + case 68: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(67); + if (lookahead == '\n') + ADVANCE(68); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '}') + ADVANCE(53); + ACCEPT_TOKEN(ts_sym__terminator); + case 69: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(69); + if (lookahead == '{') + ADVANCE(37); + LEX_ERROR(); + case 70: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(70); + if (lookahead == ')') + ADVANCE(41); + LEX_ERROR(); + case 71: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(71); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == ',') + ADVANCE(42); + LEX_ERROR(); + case 72: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(72); + if (lookahead == ')') + ADVANCE(41); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + LEX_ERROR(); + case 73: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(73); + if (lookahead == '(') + ADVANCE(3); + LEX_ERROR(); + case 74: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(74); + if (lookahead == '(') + ADVANCE(3); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + LEX_ERROR(); + case 75: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(75); + if (lookahead == ']') + ADVANCE(66); + LEX_ERROR(); + case 76: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(76); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == ']') + ADVANCE(66); + LEX_ERROR(); + case 77: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(77); + if (lookahead == '\"') + ADVANCE(7); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(12); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '[') + ADVANCE(16); + if (lookahead == ']') + ADVANCE(66); + if (lookahead == 'f') + ADVANCE(17); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == '{') + ADVANCE(37); + LEX_ERROR(); + case 78: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(78); + if (lookahead == ':') + ADVANCE(62); + LEX_ERROR(); + case 79: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(79); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '}') + ADVANCE(53); + LEX_ERROR(); + case 80: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(80); + if (lookahead == '\"') + ADVANCE(7); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '}') + ADVANCE(53); + LEX_ERROR(); + case 81: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(81); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == '=') + ADVANCE(56); + if (lookahead == '}') + ADVANCE(53); + LEX_ERROR(); + case 82: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(82); + if (lookahead == '\"') + ADVANCE(7); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + LEX_ERROR(); + case 83: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(83); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == '=') + ADVANCE(56); + if (lookahead == ']') + ADVANCE(66); + LEX_ERROR(); case 84: - ACCEPT_TOKEN(ts_sym__var); - case 85: - if (lookahead == 'r') + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(84); + if (lookahead == '\"') + ADVANCE(7); + if (lookahead == ')') + ADVANCE(41); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(12); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'e') || + ('g' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + ('u' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '[') + ADVANCE(16); + if (lookahead == 'f') + ADVANCE(17); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == '{') + ADVANCE(37); + LEX_ERROR(); + case 85: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(85); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == '=') + ADVANCE(56); LEX_ERROR(); case 86: - if (lookahead == 'a') - ADVANCE(85); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(86); + if (lookahead == '\n') + ADVANCE(87); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '}') + ADVANCE(53); LEX_ERROR(); case 87: - ACCEPT_TOKEN(ts_aux_sym_token2); - case 88: - if (lookahead == '\n') + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(86); + if (lookahead == '\n') + ADVANCE(87); + if (lookahead == ',') + ADVANCE(42); if (lookahead == ';') - ADVANCE(4); - if (lookahead == '=') + ADVANCE(5); + if (lookahead == '}') + ADVANCE(53); + ACCEPT_TOKEN(ts_sym__terminator); + case 88: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(88); + if (lookahead == '\n') ADVANCE(89); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); LEX_ERROR(); case 89: - ACCEPT_TOKEN(ts_aux_sym_token5); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(88); + if (lookahead == '\n') + ADVANCE(89); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + ACCEPT_TOKEN(ts_sym__terminator); case 90: - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - LEX_ERROR(); - case 91: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 92: - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 93: - if (lookahead == '\n') + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); - if (lookahead == '(') - ADVANCE(2); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == ':') - ADVANCE(94); - if (lookahead == ';') - ADVANCE(4); - if (lookahead == '=') - ADVANCE(89); - LEX_ERROR(); - case 94: - ACCEPT_TOKEN(ts_aux_sym_token8); - case 95: - if (lookahead == '\n') - ADVANCE(1); - if (lookahead == '(') - ADVANCE(2); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == ':') - ADVANCE(94); - if (lookahead == ';') - ADVANCE(4); - LEX_ERROR(); - case 96: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == ']') - ADVANCE(97); - LEX_ERROR(); - case 97: - ACCEPT_TOKEN(ts_aux_sym_token10); - case 98: - if (lookahead == '\n') - ADVANCE(1); - if (lookahead == ';') - ADVANCE(4); - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 99: - if (lookahead == '{') - ADVANCE(64); - LEX_ERROR(); - case 100: - if (lookahead == ')') - ADVANCE(67); - LEX_ERROR(); - case 101: - if (lookahead == ')') - ADVANCE(67); - if (lookahead == ',') - ADVANCE(68); - LEX_ERROR(); - case 102: - if (lookahead == ')') - ADVANCE(67); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - LEX_ERROR(); - case 103: - if (lookahead == '(') - ADVANCE(2); - LEX_ERROR(); - case 104: - if (lookahead == '(') - ADVANCE(2); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - LEX_ERROR(); - case 105: - if (lookahead == ']') - ADVANCE(97); - LEX_ERROR(); - case 106: - if (lookahead == ',') - ADVANCE(68); - if (lookahead == ']') - ADVANCE(97); - LEX_ERROR(); - case 107: + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(90); if (lookahead == '\"') - ADVANCE(6); + ADVANCE(7); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'e') || - ('g' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - if (lookahead == '[') - ADVANCE(23); - if (lookahead == ']') - ADVANCE(97); - if (lookahead == 'f') - ADVANCE(24); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(47); - if (lookahead == 'n') - ADVANCE(48); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(55); - if (lookahead == 't') - ADVANCE(56); - if ('u' <= lookahead && lookahead <= 't') - ADVANCE(63); - if (lookahead == '{') - ADVANCE(64); - LEX_ERROR(); - case 108: - if (lookahead == ':') - ADVANCE(94); - LEX_ERROR(); - case 109: - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 110: - if (lookahead == '\"') - ADVANCE(6); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 111: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == '=') - ADVANCE(89); - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 112: - if (lookahead == '\"') - ADVANCE(6); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - LEX_ERROR(); - case 113: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == '=') - ADVANCE(89); - if (lookahead == ']') - ADVANCE(97); - LEX_ERROR(); - case 114: - if (lookahead == '\"') - ADVANCE(6); - if (lookahead == ')') - ADVANCE(67); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'e') || - ('g' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 's') || - ('u' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - if (lookahead == '[') - ADVANCE(23); - if (lookahead == 'f') - ADVANCE(24); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(47); - if (lookahead == 'n') - ADVANCE(48); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(55); - if (lookahead == 't') - ADVANCE(56); - if ('u' <= lookahead && lookahead <= 't') - ADVANCE(63); - if (lookahead == '{') - ADVANCE(64); - LEX_ERROR(); - case 115: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ')') - ADVANCE(67); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == '=') - ADVANCE(89); - LEX_ERROR(); - case 116: - if (lookahead == '\n') - ADVANCE(1); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == ';') - ADVANCE(4); - if (lookahead == '}') - ADVANCE(87); - LEX_ERROR(); - case 117: - if (lookahead == '\n') - ADVANCE(1); - if (lookahead == '(') - ADVANCE(2); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == ';') - ADVANCE(4); - if (lookahead == '=') - ADVANCE(89); - LEX_ERROR(); - case 118: - if (lookahead == '\"') - ADVANCE(6); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); + ADVANCE(12); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'd') || ('g' <= lookahead && lookahead <= 'h') || @@ -1087,98 +1219,79 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 's') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(21); + ADVANCE(15); if (lookahead == '[') - ADVANCE(23); + ADVANCE(16); if (lookahead == 'e') - ADVANCE(119); - if ('f' <= lookahead && lookahead <= 'e') - ADVANCE(126); + ADVANCE(91); if (lookahead == 'f') - ADVANCE(74); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(77); + ADVANCE(45); if (lookahead == 'i') - ADVANCE(78); - if (lookahead == 'n') ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); if (lookahead == 't') - ADVANCE(56); + ADVANCE(33); if (lookahead == 'v') - ADVANCE(81); - if ('w' <= lookahead && lookahead <= 'v') - ADVANCE(86); + ADVANCE(50); if (lookahead == '{') - ADVANCE(64); + ADVANCE(37); if (lookahead == '}') - ADVANCE(87); + ADVANCE(53); LEX_ERROR(); - case 119: + case 91: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'k') || ('m' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'l') - ADVANCE(120); - if ('m' <= lookahead && lookahead <= 'l') - ADVANCE(125); + ADVANCE(92); ACCEPT_TOKEN(ts_sym_identifier); - case 120: + case 92: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'r') || ('t' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 's') - ADVANCE(121); - if ('t' <= lookahead && lookahead <= 's') - ADVANCE(124); + ADVANCE(93); ACCEPT_TOKEN(ts_sym_identifier); - case 121: + case 93: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'd') || ('f' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); if (lookahead == 'e') - ADVANCE(122); - if ('f' <= lookahead && lookahead <= 'e') - ADVANCE(123); + ADVANCE(94); ACCEPT_TOKEN(ts_sym_identifier); - case 122: + case 94: if ((lookahead == '$') || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || (lookahead == '_') || ('a' <= lookahead && lookahead <= 'z')) - ADVANCE(22); + ADVANCE(15); ACCEPT_TOKEN(ts_sym__else); - case 123: - ACCEPT_TOKEN(ts_sym__else); - case 124: - if (lookahead == 'e') - ADVANCE(123); - LEX_ERROR(); - case 125: - if (lookahead == 's') - ADVANCE(124); - LEX_ERROR(); - case 126: - if (lookahead == 'l') - ADVANCE(125); - LEX_ERROR(); - case 127: + case 95: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(95); if (lookahead == '\"') - ADVANCE(6); + ADVANCE(7); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); + ADVANCE(12); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'h') || @@ -1186,126 +1299,83 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 's') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(21); + ADVANCE(15); if (lookahead == '[') - ADVANCE(23); - if (lookahead == 'f') - ADVANCE(74); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(77); - if (lookahead == 'i') - ADVANCE(78); - if (lookahead == 'n') - ADVANCE(48); - if (lookahead == 't') - ADVANCE(56); - if (lookahead == 'v') - ADVANCE(81); - if ('w' <= lookahead && lookahead <= 'v') - ADVANCE(86); - if (lookahead == '{') - ADVANCE(64); - LEX_ERROR(); - case 128: - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ')') - ADVANCE(67); - if (lookahead == '.') - ADVANCE(3); - if (lookahead == '=') - ADVANCE(89); - LEX_ERROR(); - case 129: - if (lookahead == '\"') - ADVANCE(6); - if ('0' <= lookahead && lookahead <= '9') ADVANCE(16); + if (lookahead == 'f') + ADVANCE(45); + if (lookahead == 'i') + ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == 'v') + ADVANCE(50); + if (lookahead == '{') + ADVANCE(37); + LEX_ERROR(); + case 96: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(96); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == '.') + ADVANCE(4); + if (lookahead == '=') + ADVANCE(56); + LEX_ERROR(); + case 97: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(97); + if (lookahead == '\"') + ADVANCE(7); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(12); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'e') || ('g' <= lookahead && lookahead <= 'm') || ('o' <= lookahead && lookahead <= 's') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(21); + ADVANCE(15); if (lookahead == '[') - ADVANCE(23); - if (lookahead == 'f') - ADVANCE(24); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(47); - if (lookahead == 'n') - ADVANCE(48); - if ('o' <= lookahead && lookahead <= 'n') - ADVANCE(55); - if (lookahead == 't') - ADVANCE(56); - if ('u' <= lookahead && lookahead <= 't') - ADVANCE(63); - if (lookahead == 'v') - ADVANCE(81); - if (lookahead == '{') - ADVANCE(64); - LEX_ERROR(); - case 130: - if (lookahead == '\"') - ADVANCE(6); - if ('0' <= lookahead && lookahead <= '9') ADVANCE(16); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'd') || - ('g' <= lookahead && lookahead <= 'h') || - ('j' <= lookahead && lookahead <= 'm') || - ('o' <= lookahead && lookahead <= 's') || - (lookahead == 'u') || - ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(21); - if (lookahead == '[') - ADVANCE(23); - if (lookahead == 'e') - ADVANCE(119); - if ('f' <= lookahead && lookahead <= 'e') - ADVANCE(126); if (lookahead == 'f') - ADVANCE(74); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(77); - if (lookahead == 'i') - ADVANCE(78); + ADVANCE(17); if (lookahead == 'n') - ADVANCE(48); + ADVANCE(29); if (lookahead == 't') - ADVANCE(56); + ADVANCE(33); if (lookahead == 'v') - ADVANCE(81); - if ('w' <= lookahead && lookahead <= 'v') - ADVANCE(86); + ADVANCE(50); if (lookahead == '{') - ADVANCE(64); + ADVANCE(37); LEX_ERROR(); - case 131: - LEX_ERROR(); - case ts_lex_state_error: - if (lookahead == '\n') + case 98: + START_TOKEN(); + if (lookahead == '\0') ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(98); if (lookahead == '\"') - ADVANCE(6); - if (lookahead == '(') - ADVANCE(2); - if (lookahead == ')') - ADVANCE(67); - if (lookahead == ',') - ADVANCE(68); - if (lookahead == '.') - ADVANCE(3); + ADVANCE(7); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(16); - if (lookahead == ':') - ADVANCE(94); - if (lookahead == ';') - ADVANCE(4); - if (lookahead == '=') - ADVANCE(89); + ADVANCE(12); if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'd') || ('g' <= lookahead && lookahead <= 'h') || @@ -1313,31 +1383,203 @@ LEX_FN() { ('o' <= lookahead && lookahead <= 's') || (lookahead == 'u') || ('w' <= lookahead && lookahead <= 'z')) - ADVANCE(21); + ADVANCE(15); if (lookahead == '[') - ADVANCE(23); - if (lookahead == ']') - ADVANCE(97); + ADVANCE(16); if (lookahead == 'e') - ADVANCE(119); + ADVANCE(91); if (lookahead == 'f') - ADVANCE(74); - if ('g' <= lookahead && lookahead <= 'f') - ADVANCE(77); + ADVANCE(45); if (lookahead == 'i') - ADVANCE(78); - if (lookahead == 'n') ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); if (lookahead == 't') - ADVANCE(56); + ADVANCE(33); if (lookahead == 'v') - ADVANCE(81); - if ('w' <= lookahead && lookahead <= 'v') - ADVANCE(86); + ADVANCE(50); if (lookahead == '{') - ADVANCE(64); + ADVANCE(37); + LEX_ERROR(); + case 99: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(99); + LEX_ERROR(); + case 100: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(100); + if (lookahead == '\n') + ADVANCE(101); + if (lookahead == '\"') + ADVANCE(7); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(12); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'd') || + ('g' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + (lookahead == 'u') || + ('w' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '[') + ADVANCE(16); + if (lookahead == ']') + ADVANCE(66); + if (lookahead == 'e') + ADVANCE(91); + if (lookahead == 'f') + ADVANCE(45); + if (lookahead == 'i') + ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == 'v') + ADVANCE(50); + if (lookahead == '{') + ADVANCE(37); if (lookahead == '}') - ADVANCE(87); + ADVANCE(53); + LEX_ERROR(); + case 101: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(100); + if (lookahead == '\n') + ADVANCE(101); + if (lookahead == '\"') + ADVANCE(7); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(12); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'd') || + ('g' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + (lookahead == 'u') || + ('w' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '[') + ADVANCE(16); + if (lookahead == ']') + ADVANCE(66); + if (lookahead == 'e') + ADVANCE(91); + if (lookahead == 'f') + ADVANCE(45); + if (lookahead == 'i') + ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == 'v') + ADVANCE(50); + if (lookahead == '{') + ADVANCE(37); + if (lookahead == '}') + ADVANCE(53); + ACCEPT_TOKEN(ts_sym__terminator); + case ts_lex_state_error: + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(100); + if (lookahead == '\n') + ADVANCE(101); + if (lookahead == '\"') + ADVANCE(7); + if (lookahead == '(') + ADVANCE(3); + if (lookahead == ')') + ADVANCE(41); + if (lookahead == ',') + ADVANCE(42); + if (lookahead == '.') + ADVANCE(4); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(12); + if (lookahead == ':') + ADVANCE(62); + if (lookahead == ';') + ADVANCE(5); + if (lookahead == '=') + ADVANCE(56); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'd') || + ('g' <= lookahead && lookahead <= 'h') || + ('j' <= lookahead && lookahead <= 'm') || + ('o' <= lookahead && lookahead <= 's') || + (lookahead == 'u') || + ('w' <= lookahead && lookahead <= 'z')) + ADVANCE(15); + if (lookahead == '[') + ADVANCE(16); + if (lookahead == ']') + ADVANCE(66); + if (lookahead == 'e') + ADVANCE(91); + if (lookahead == 'f') + ADVANCE(45); + if (lookahead == 'i') + ADVANCE(48); + if (lookahead == 'n') + ADVANCE(29); + if (lookahead == 't') + ADVANCE(33); + if (lookahead == 'v') + ADVANCE(50); + if (lookahead == '{') + ADVANCE(37); + if (lookahead == '}') + ADVANCE(53); LEX_ERROR(); default: LEX_PANIC(); @@ -1345,387 +1587,382 @@ LEX_FN() { } LEX_STATES = { - [0] = 127, - [1] = 103, - [2] = 129, - [3] = 104, - [4] = 99, + [0] = 95, + [1] = 73, + [2] = 97, + [3] = 74, + [4] = 69, [5] = 0, - [6] = 70, - [7] = 103, - [8] = 129, - [9] = 90, - [10] = 65, - [11] = 5, - [12] = 5, - [13] = 88, - [14] = 5, + [6] = 44, + [7] = 73, + [8] = 97, + [9] = 57, + [10] = 38, + [11] = 6, + [12] = 54, + [13] = 6, + [14] = 0, [15] = 0, [16] = 0, - [17] = 0, - [18] = 114, - [19] = 104, - [20] = 99, - [21] = 66, - [22] = 70, - [23] = 103, - [24] = 5, - [25] = 104, - [26] = 99, - [27] = 69, - [28] = 70, - [29] = 90, - [30] = 65, - [31] = 70, - [32] = 70, - [33] = 88, - [34] = 0, - [35] = 70, - [36] = 90, - [37] = 0, - [38] = 70, - [39] = 117, - [40] = 5, - [41] = 0, - [42] = 110, - [43] = 108, - [44] = 5, - [45] = 104, - [46] = 99, - [47] = 91, - [48] = 70, - [49] = 70, - [50] = 92, - [51] = 70, - [52] = 93, - [53] = 95, - [54] = 92, - [55] = 70, - [56] = 0, - [57] = 107, - [58] = 104, - [59] = 99, - [60] = 96, - [61] = 70, - [62] = 92, - [63] = 96, - [64] = 98, - [65] = 103, - [66] = 99, - [67] = 96, - [68] = 102, - [69] = 101, - [70] = 100, - [71] = 99, - [72] = 90, - [73] = 101, - [74] = 100, - [75] = 99, - [76] = 96, - [77] = 96, - [78] = 96, - [79] = 105, - [80] = 0, - [81] = 114, - [82] = 66, - [83] = 66, - [84] = 66, - [85] = 100, - [86] = 96, - [87] = 114, - [88] = 66, - [89] = 100, - [90] = 66, - [91] = 5, - [92] = 66, - [93] = 100, - [94] = 90, - [95] = 66, - [96] = 115, - [97] = 5, - [98] = 66, - [99] = 110, - [100] = 108, - [101] = 5, - [102] = 91, - [103] = 91, - [104] = 91, - [105] = 92, - [106] = 66, - [107] = 114, - [108] = 66, - [109] = 100, - [110] = 91, - [111] = 91, - [112] = 107, - [113] = 96, - [114] = 105, - [115] = 66, - [116] = 5, - [117] = 96, - [118] = 105, - [119] = 90, - [120] = 96, - [121] = 113, - [122] = 5, - [123] = 96, - [124] = 110, - [125] = 108, - [126] = 5, - [127] = 91, - [128] = 92, - [129] = 96, - [130] = 112, - [131] = 108, - [132] = 5, - [133] = 91, - [134] = 92, - [135] = 90, - [136] = 91, - [137] = 111, - [138] = 5, - [139] = 91, - [140] = 110, - [141] = 108, - [142] = 5, - [143] = 91, - [144] = 92, - [145] = 91, - [146] = 107, - [147] = 96, - [148] = 105, - [149] = 91, - [150] = 91, - [151] = 107, - [152] = 96, - [153] = 105, - [154] = 96, - [155] = 96, - [156] = 106, - [157] = 106, - [158] = 91, - [159] = 109, - [160] = 92, - [161] = 91, - [162] = 109, - [163] = 92, - [164] = 96, - [165] = 109, - [166] = 92, - [167] = 96, - [168] = 106, - [169] = 66, - [170] = 106, - [171] = 66, - [172] = 109, - [173] = 92, - [174] = 66, - [175] = 66, - [176] = 96, - [177] = 0, - [178] = 106, - [179] = 116, - [180] = 92, - [181] = 0, - [182] = 65, - [183] = 92, - [184] = 91, - [185] = 98, - [186] = 103, - [187] = 99, - [188] = 91, - [189] = 91, - [190] = 92, - [191] = 0, - [192] = 109, - [193] = 92, - [194] = 69, - [195] = 98, - [196] = 103, - [197] = 99, - [198] = 69, - [199] = 69, - [200] = 69, - [201] = 69, - [202] = 114, - [203] = 66, - [204] = 100, - [205] = 69, - [206] = 69, - [207] = 127, - [208] = 103, - [209] = 129, - [210] = 0, - [211] = 5, - [212] = 5, - [213] = 5, - [214] = 69, - [215] = 127, - [216] = 103, - [217] = 5, - [218] = 69, - [219] = 127, + [17] = 84, + [18] = 74, + [19] = 69, + [20] = 40, + [21] = 44, + [22] = 73, + [23] = 6, + [24] = 74, + [25] = 69, + [26] = 43, + [27] = 44, + [28] = 57, + [29] = 38, + [30] = 44, + [31] = 54, + [32] = 0, + [33] = 44, + [34] = 57, + [35] = 0, + [36] = 44, + [37] = 88, + [38] = 6, + [39] = 0, + [40] = 80, + [41] = 78, + [42] = 6, + [43] = 74, + [44] = 69, + [45] = 58, + [46] = 44, + [47] = 44, + [48] = 59, + [49] = 44, + [50] = 60, + [51] = 63, + [52] = 59, + [53] = 44, + [54] = 0, + [55] = 77, + [56] = 74, + [57] = 69, + [58] = 65, + [59] = 44, + [60] = 59, + [61] = 65, + [62] = 67, + [63] = 73, + [64] = 69, + [65] = 65, + [66] = 72, + [67] = 71, + [68] = 70, + [69] = 69, + [70] = 57, + [71] = 71, + [72] = 70, + [73] = 69, + [74] = 65, + [75] = 65, + [76] = 65, + [77] = 75, + [78] = 0, + [79] = 84, + [80] = 40, + [81] = 40, + [82] = 40, + [83] = 70, + [84] = 65, + [85] = 84, + [86] = 40, + [87] = 70, + [88] = 40, + [89] = 6, + [90] = 40, + [91] = 70, + [92] = 57, + [93] = 40, + [94] = 85, + [95] = 6, + [96] = 40, + [97] = 80, + [98] = 78, + [99] = 6, + [100] = 58, + [101] = 58, + [102] = 58, + [103] = 59, + [104] = 40, + [105] = 84, + [106] = 40, + [107] = 70, + [108] = 58, + [109] = 58, + [110] = 77, + [111] = 65, + [112] = 75, + [113] = 40, + [114] = 6, + [115] = 65, + [116] = 75, + [117] = 57, + [118] = 65, + [119] = 83, + [120] = 6, + [121] = 65, + [122] = 80, + [123] = 78, + [124] = 6, + [125] = 58, + [126] = 59, + [127] = 65, + [128] = 82, + [129] = 78, + [130] = 6, + [131] = 58, + [132] = 59, + [133] = 57, + [134] = 58, + [135] = 81, + [136] = 6, + [137] = 58, + [138] = 80, + [139] = 78, + [140] = 6, + [141] = 58, + [142] = 59, + [143] = 58, + [144] = 77, + [145] = 65, + [146] = 75, + [147] = 58, + [148] = 58, + [149] = 77, + [150] = 65, + [151] = 75, + [152] = 65, + [153] = 65, + [154] = 76, + [155] = 76, + [156] = 58, + [157] = 79, + [158] = 59, + [159] = 58, + [160] = 79, + [161] = 59, + [162] = 65, + [163] = 79, + [164] = 59, + [165] = 65, + [166] = 76, + [167] = 40, + [168] = 76, + [169] = 40, + [170] = 79, + [171] = 59, + [172] = 40, + [173] = 40, + [174] = 65, + [175] = 0, + [176] = 76, + [177] = 86, + [178] = 59, + [179] = 0, + [180] = 38, + [181] = 59, + [182] = 58, + [183] = 67, + [184] = 73, + [185] = 69, + [186] = 58, + [187] = 58, + [188] = 59, + [189] = 0, + [190] = 79, + [191] = 59, + [192] = 43, + [193] = 67, + [194] = 73, + [195] = 69, + [196] = 43, + [197] = 43, + [198] = 43, + [199] = 43, + [200] = 84, + [201] = 40, + [202] = 70, + [203] = 43, + [204] = 43, + [205] = 95, + [206] = 73, + [207] = 97, + [208] = 0, + [209] = 6, + [210] = 6, + [211] = 6, + [212] = 43, + [213] = 95, + [214] = 73, + [215] = 6, + [216] = 43, + [217] = 95, + [218] = 57, + [219] = 38, [220] = 90, - [221] = 65, - [222] = 118, - [223] = 118, - [224] = 88, - [225] = 0, - [226] = 118, - [227] = 118, - [228] = 118, - [229] = 127, - [230] = 118, - [231] = 70, - [232] = 92, - [233] = 118, - [234] = 116, - [235] = 65, - [236] = 90, - [237] = 69, - [238] = 128, - [239] = 5, - [240] = 69, - [241] = 110, - [242] = 108, - [243] = 5, - [244] = 91, - [245] = 92, - [246] = 69, - [247] = 69, - [248] = 109, - [249] = 92, - [250] = 69, - [251] = 107, - [252] = 96, - [253] = 105, - [254] = 69, - [255] = 69, - [256] = 106, - [257] = 100, - [258] = 118, - [259] = 100, - [260] = 65, - [261] = 118, - [262] = 127, - [263] = 70, - [264] = 100, - [265] = 92, - [266] = 66, - [267] = 98, - [268] = 103, - [269] = 99, - [270] = 66, - [271] = 66, - [272] = 100, - [273] = 0, - [274] = 0, - [275] = 5, - [276] = 5, - [277] = 69, - [278] = 127, - [279] = 70, - [280] = 100, - [281] = 92, - [282] = 0, - [283] = 98, - [284] = 103, - [285] = 99, - [286] = 0, - [287] = 5, - [288] = 5, - [289] = 69, - [290] = 127, - [291] = 103, - [292] = 5, - [293] = 69, - [294] = 127, - [295] = 103, - [296] = 129, - [297] = 5, - [298] = 5, - [299] = 69, - [300] = 127, - [301] = 103, - [302] = 5, - [303] = 69, - [304] = 127, - [305] = 90, - [306] = 65, - [307] = 130, - [308] = 130, - [309] = 88, - [310] = 0, - [311] = 130, - [312] = 130, - [313] = 130, - [314] = 127, - [315] = 130, - [316] = 70, - [317] = 92, - [318] = 130, - [319] = 116, - [320] = 65, - [321] = 100, - [322] = 130, - [323] = 100, - [324] = 130, - [325] = 127, - [326] = 90, - [327] = 65, - [328] = 127, - [329] = 127, - [330] = 88, - [331] = 0, - [332] = 127, - [333] = 127, - [334] = 127, + [221] = 54, + [222] = 0, + [223] = 90, + [224] = 90, + [225] = 90, + [226] = 95, + [227] = 90, + [228] = 44, + [229] = 59, + [230] = 90, + [231] = 86, + [232] = 38, + [233] = 57, + [234] = 43, + [235] = 96, + [236] = 6, + [237] = 43, + [238] = 80, + [239] = 78, + [240] = 6, + [241] = 58, + [242] = 59, + [243] = 43, + [244] = 43, + [245] = 79, + [246] = 59, + [247] = 43, + [248] = 77, + [249] = 65, + [250] = 75, + [251] = 43, + [252] = 43, + [253] = 76, + [254] = 70, + [255] = 90, + [256] = 70, + [257] = 38, + [258] = 90, + [259] = 95, + [260] = 44, + [261] = 70, + [262] = 59, + [263] = 40, + [264] = 67, + [265] = 73, + [266] = 69, + [267] = 40, + [268] = 40, + [269] = 70, + [270] = 0, + [271] = 0, + [272] = 6, + [273] = 6, + [274] = 43, + [275] = 95, + [276] = 44, + [277] = 70, + [278] = 59, + [279] = 0, + [280] = 67, + [281] = 73, + [282] = 69, + [283] = 0, + [284] = 6, + [285] = 6, + [286] = 43, + [287] = 95, + [288] = 73, + [289] = 6, + [290] = 43, + [291] = 95, + [292] = 73, + [293] = 97, + [294] = 6, + [295] = 6, + [296] = 43, + [297] = 95, + [298] = 73, + [299] = 6, + [300] = 43, + [301] = 95, + [302] = 57, + [303] = 38, + [304] = 98, + [305] = 54, + [306] = 0, + [307] = 98, + [308] = 98, + [309] = 98, + [310] = 95, + [311] = 98, + [312] = 44, + [313] = 59, + [314] = 98, + [315] = 86, + [316] = 38, + [317] = 70, + [318] = 98, + [319] = 70, + [320] = 98, + [321] = 95, + [322] = 57, + [323] = 38, + [324] = 95, + [325] = 54, + [326] = 0, + [327] = 95, + [328] = 95, + [329] = 95, + [330] = 44, + [331] = 59, + [332] = 95, + [333] = 86, + [334] = 38, [335] = 70, - [336] = 92, - [337] = 127, - [338] = 116, - [339] = 65, - [340] = 100, - [341] = 127, - [342] = 100, - [343] = 131, - [344] = 127, - [345] = 131, - [346] = 131, + [336] = 95, + [337] = 70, + [338] = 99, + [339] = 95, + [340] = 99, + [341] = 99, }; PARSE_TABLE = { [0] = { [ts_sym__for] = SHIFT(1), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(291), - [ts_sym__var] = SHIFT(326), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(331), - [ts_sym_expression_statement] = SHIFT(333), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(333), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(333), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_program] = SHIFT(343), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(344), - [ts_sym_statement_block] = SHIFT(333), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(333), - [ts_aux_sym_repeat_helper1] = SHIFT(346), - [ts_aux_sym_token1] = SHIFT(335), - [ts_aux_sym_token9] = SHIFT(57), + [ts_sym__if] = SHIFT(288), + [ts_sym__var] = SHIFT(322), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(326), + [ts_sym_expression_statement] = SHIFT(328), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(328), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(328), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_program] = SHIFT(338), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(339), + [ts_sym_statement_block] = SHIFT(328), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(328), + [ts_aux_sym_repeat_helper1] = SHIFT(341), + [ts_aux_sym_token1] = SHIFT(330), + [ts_aux_sym_token9] = SHIFT(55), [ts_builtin_sym_end] = REDUCE(ts_aux_sym_repeat_helper1, 0), - [ts_builtin_sym_error] = SHIFT(339), + [ts_builtin_sym_error] = SHIFT(334), }, [1] = { [ts_aux_sym_token3] = SHIFT(2), @@ -1733,71 +1970,70 @@ PARSE_TABLE = { [2] = { [ts_sym__function] = SHIFT(3), [ts_sym__var] = SHIFT(9), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(287), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(287), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(284), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(284), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), }, [3] = { [ts_sym_formal_parameters] = SHIFT(4), - [ts_sym_identifier] = SHIFT(284), - [ts_aux_sym_token3] = SHIFT(68), + [ts_sym_identifier] = SHIFT(281), + [ts_aux_sym_token3] = SHIFT(66), }, [4] = { [ts_sym_statement_block] = SHIFT(5), [ts_aux_sym_token1] = SHIFT(6), }, [5] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_function_expression, 3), - [ts_aux_sym_token12] = REDUCE(ts_sym_function_expression, 3), + [ts_sym__terminator] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), }, [6] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(281), - [ts_aux_sym_token1] = SHIFT(51), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(278), + [ts_aux_sym_token1] = SHIFT(49), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(283), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(280), }, [7] = { [ts_aux_sym_token3] = SHIFT(8), @@ -1805,34 +2041,32 @@ PARSE_TABLE = { [8] = { [ts_sym__function] = SHIFT(3), [ts_sym__var] = SHIFT(9), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(275), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(275), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(272), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(272), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), }, [9] = { [ts_sym_assignment] = SHIFT(10), - [ts_sym_identifier] = SHIFT(13), + [ts_sym_identifier] = SHIFT(12), }, [10] = { [ts_sym__terminator] = SHIFT(11), - [ts_aux_sym_token11] = SHIFT(12), - [ts_aux_sym_token12] = SHIFT(12), }, [11] = { [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), @@ -1847,204 +2081,185 @@ PARSE_TABLE = { [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), }, [12] = { - [ts_sym__function] = REDUCE(ts_sym__terminator, 1), - [ts_sym_false] = REDUCE(ts_sym__terminator, 1), - [ts_sym_identifier] = REDUCE(ts_sym__terminator, 1), - [ts_sym_null] = REDUCE(ts_sym__terminator, 1), - [ts_sym_number] = REDUCE(ts_sym__terminator, 1), - [ts_sym_string] = REDUCE(ts_sym__terminator, 1), - [ts_sym_true] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym__terminator, 1), + [ts_sym__terminator] = SHIFT(11), + [ts_aux_sym_token5] = SHIFT(13), }, [13] = { - [ts_sym__terminator] = SHIFT(11), - [ts_aux_sym_token11] = SHIFT(12), - [ts_aux_sym_token12] = SHIFT(12), - [ts_aux_sym_token5] = SHIFT(14), + [ts_sym__function] = SHIFT(3), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(16), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), }, [14] = { - [ts_sym__function] = SHIFT(3), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(17), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - }, - [15] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token12] = REDUCE(ts_sym_literal, 1), + [ts_sym__terminator] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), }, - [16] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token12] = REDUCE(ts_sym_expression, 1), + [15] = { + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, + [16] = { + [ts_sym__terminator] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), + }, [17] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token12] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(268), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token4] = SHIFT(271), + [ts_aux_sym_token9] = SHIFT(110), }, [18] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(271), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token4] = SHIFT(274), - [ts_aux_sym_token9] = SHIFT(112), + [ts_sym_formal_parameters] = SHIFT(19), + [ts_sym_identifier] = SHIFT(265), + [ts_aux_sym_token3] = SHIFT(66), }, [19] = { - [ts_sym_formal_parameters] = SHIFT(20), - [ts_sym_identifier] = SHIFT(268), - [ts_aux_sym_token3] = SHIFT(68), + [ts_sym_statement_block] = SHIFT(20), + [ts_aux_sym_token1] = SHIFT(21), }, [20] = { - [ts_sym_statement_block] = SHIFT(21), - [ts_aux_sym_token1] = SHIFT(22), - }, - [21] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), }, - [22] = { + [21] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(265), - [ts_aux_sym_token1] = SHIFT(51), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(262), + [ts_aux_sym_token1] = SHIFT(49), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(267), - }, - [23] = { - [ts_aux_sym_token3] = SHIFT(24), - }, - [24] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(201), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), + [ts_aux_sym_token9] = SHIFT(55), [ts_builtin_sym_error] = SHIFT(264), }, + [22] = { + [ts_aux_sym_token3] = SHIFT(23), + }, + [23] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(199), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(261), + }, + [24] = { + [ts_sym_formal_parameters] = SHIFT(25), + [ts_sym_identifier] = SHIFT(194), + [ts_aux_sym_token3] = SHIFT(66), + }, [25] = { - [ts_sym_formal_parameters] = SHIFT(26), - [ts_sym_identifier] = SHIFT(196), - [ts_aux_sym_token3] = SHIFT(68), + [ts_sym_statement_block] = SHIFT(26), + [ts_aux_sym_token1] = SHIFT(27), }, [26] = { - [ts_sym_statement_block] = SHIFT(27), - [ts_aux_sym_token1] = SHIFT(28), - }, - [27] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), }, - [28] = { + [27] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(193), - [ts_aux_sym_token1] = SHIFT(51), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(191), + [ts_aux_sym_token1] = SHIFT(49), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(195), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(193), + }, + [28] = { + [ts_sym_assignment] = SHIFT(29), + [ts_sym_identifier] = SHIFT(31), }, [29] = { - [ts_sym_assignment] = SHIFT(30), - [ts_sym_identifier] = SHIFT(33), + [ts_sym__terminator] = SHIFT(30), }, [30] = { - [ts_sym__terminator] = SHIFT(31), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - }, - [31] = { [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), @@ -2060,36 +2275,16 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), }, + [31] = { + [ts_sym__terminator] = SHIFT(30), + [ts_aux_sym_token5] = SHIFT(13), + }, [32] = { - [ts_sym__for] = REDUCE(ts_sym__terminator, 1), - [ts_sym__function] = REDUCE(ts_sym__terminator, 1), - [ts_sym__if] = REDUCE(ts_sym__terminator, 1), - [ts_sym__var] = REDUCE(ts_sym__terminator, 1), - [ts_sym_false] = REDUCE(ts_sym__terminator, 1), - [ts_sym_identifier] = REDUCE(ts_sym__terminator, 1), - [ts_sym_null] = REDUCE(ts_sym__terminator, 1), - [ts_sym_number] = REDUCE(ts_sym__terminator, 1), - [ts_sym_string] = REDUCE(ts_sym__terminator, 1), - [ts_sym_true] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym__terminator, 1), + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), }, [33] = { - [ts_sym__terminator] = SHIFT(31), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token5] = SHIFT(14), - }, - [34] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), - }, - [35] = { [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), @@ -2105,16 +2300,15 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), }, - [36] = { - [ts_sym_identifier] = SHIFT(37), + [34] = { + [ts_sym_identifier] = SHIFT(35), }, - [37] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_property_access, 3), - [ts_aux_sym_token12] = REDUCE(ts_sym_property_access, 3), + [35] = { + [ts_sym__terminator] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), }, - [38] = { + [36] = { [ts_sym__for] = REDUCE(ts_sym_statement, 1), [ts_sym__function] = REDUCE(ts_sym_statement, 1), [ts_sym__if] = REDUCE(ts_sym_statement, 1), @@ -2130,196 +2324,192 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), }, - [39] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token12] = REDUCE(ts_sym_expression, 1), + [37] = { + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(40), + [ts_aux_sym_token5] = SHIFT(38), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, - [40] = { + [38] = { [ts_sym__function] = SHIFT(3), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(41), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(39), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + }, + [39] = { + [ts_sym__terminator] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), + }, + [40] = { + [ts_sym_identifier] = SHIFT(41), + [ts_sym_string] = SHIFT(41), + [ts_aux_sym_token2] = SHIFT(54), + [ts_builtin_sym_error] = SHIFT(190), }, [41] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token12] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), + [ts_aux_sym_token8] = SHIFT(42), }, [42] = { - [ts_sym_identifier] = SHIFT(43), - [ts_sym_string] = SHIFT(43), - [ts_aux_sym_token2] = SHIFT(56), - [ts_builtin_sym_error] = SHIFT(192), + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(187), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), + [ts_sym_string] = SHIFT(100), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), }, [43] = { - [ts_aux_sym_token8] = SHIFT(44), + [ts_sym_formal_parameters] = SHIFT(44), + [ts_sym_identifier] = SHIFT(184), + [ts_aux_sym_token3] = SHIFT(66), }, [44] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(189), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [ts_sym_statement_block] = SHIFT(45), + [ts_aux_sym_token1] = SHIFT(46), }, [45] = { - [ts_sym_formal_parameters] = SHIFT(46), - [ts_sym_identifier] = SHIFT(186), - [ts_aux_sym_token3] = SHIFT(68), - }, - [46] = { - [ts_sym_statement_block] = SHIFT(47), - [ts_aux_sym_token1] = SHIFT(48), - }, - [47] = { [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), }, - [48] = { + [46] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(183), - [ts_aux_sym_token1] = SHIFT(51), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(181), + [ts_aux_sym_token1] = SHIFT(49), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(185), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(183), + }, + [47] = { + [ts_sym__for] = SHIFT(7), + [ts_sym__function] = SHIFT(3), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(48), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(180), + }, + [48] = { + [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 2), }, [49] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(50), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(182), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(50), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(51), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(52), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token2] = SHIFT(54), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(177), }, [50] = { - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 2), + [ts_sym__terminator] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token5] = SHIFT(38), + [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), + [ts_aux_sym_token8] = SHIFT(42), }, [51] = { - [ts_sym__for] = SHIFT(7), - [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(52), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(53), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(54), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token2] = SHIFT(56), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(179), - }, - [52] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token12] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(40), - [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token8] = SHIFT(44), - }, - [53] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token12] = REDUCE(ts_sym_literal, 1), + [ts_sym__terminator] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), - [ts_aux_sym_token8] = SHIFT(44), + [ts_aux_sym_token8] = SHIFT(42), }, - [54] = { - [ts_aux_sym_token2] = SHIFT(55), + [52] = { + [ts_aux_sym_token2] = SHIFT(53), }, - [55] = { + [53] = { [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), @@ -2335,1111 +2525,1094 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), }, - [56] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_object, 2), - [ts_aux_sym_token12] = REDUCE(ts_sym_object, 2), + [54] = { + [ts_sym__terminator] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), }, + [55] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(76), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token10] = SHIFT(175), + [ts_aux_sym_token9] = SHIFT(149), + [ts_builtin_sym_error] = SHIFT(176), + }, + [56] = { + [ts_sym_formal_parameters] = SHIFT(57), + [ts_sym_identifier] = SHIFT(63), + [ts_aux_sym_token3] = SHIFT(66), + }, [57] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(78), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token10] = SHIFT(177), - [ts_aux_sym_token9] = SHIFT(151), - [ts_builtin_sym_error] = SHIFT(178), + [ts_sym_statement_block] = SHIFT(58), + [ts_aux_sym_token1] = SHIFT(59), }, [58] = { - [ts_sym_formal_parameters] = SHIFT(59), - [ts_sym_identifier] = SHIFT(65), - [ts_aux_sym_token3] = SHIFT(68), - }, - [59] = { - [ts_sym_statement_block] = SHIFT(60), - [ts_aux_sym_token1] = SHIFT(61), - }, - [60] = { [ts_aux_sym_token10] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 3), }, - [61] = { + [59] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(62), - [ts_aux_sym_token1] = SHIFT(51), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(60), + [ts_aux_sym_token1] = SHIFT(49), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper2, 0), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(64), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(62), }, - [62] = { - [ts_aux_sym_token2] = SHIFT(63), + [60] = { + [ts_aux_sym_token2] = SHIFT(61), }, - [63] = { + [61] = { [ts_aux_sym_token10] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), }, + [62] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_token2] = SHIFT(61), + }, + [63] = { + [ts_sym_formal_parameters] = SHIFT(64), + [ts_aux_sym_token3] = SHIFT(66), + }, [64] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(63), + [ts_sym_statement_block] = SHIFT(65), + [ts_aux_sym_token1] = SHIFT(59), }, [65] = { - [ts_sym_formal_parameters] = SHIFT(66), - [ts_aux_sym_token3] = SHIFT(68), - }, - [66] = { - [ts_sym_statement_block] = SHIFT(67), - [ts_aux_sym_token1] = SHIFT(61), - }, - [67] = { [ts_aux_sym_token10] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), }, + [66] = { + [ts_sym_identifier] = SHIFT(67), + [ts_aux_sym_token4] = SHIFT(73), + }, + [67] = { + [ts_aux_sym_repeat_helper4] = SHIFT(68), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper4, 0), + [ts_aux_sym_token6] = SHIFT(70), + }, [68] = { - [ts_sym_identifier] = SHIFT(69), - [ts_aux_sym_token4] = SHIFT(75), + [ts_aux_sym_token4] = SHIFT(69), }, [69] = { - [ts_aux_sym_repeat_helper4] = SHIFT(70), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper4, 0), - [ts_aux_sym_token6] = SHIFT(72), - }, - [70] = { - [ts_aux_sym_token4] = SHIFT(71), - }, - [71] = { [ts_aux_sym_token1] = REDUCE(ts_sym_formal_parameters, 4), }, - [72] = { - [ts_sym_identifier] = SHIFT(73), + [70] = { + [ts_sym_identifier] = SHIFT(71), }, - [73] = { - [ts_aux_sym_repeat_helper4] = SHIFT(74), + [71] = { + [ts_aux_sym_repeat_helper4] = SHIFT(72), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper4, 0), - [ts_aux_sym_token6] = SHIFT(72), + [ts_aux_sym_token6] = SHIFT(70), }, - [74] = { + [72] = { [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper4, 3), }, - [75] = { + [73] = { [ts_aux_sym_token1] = REDUCE(ts_sym_formal_parameters, 2), }, - [76] = { + [74] = { [ts_aux_sym_token10] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), }, - [77] = { + [75] = { [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, - [78] = { - [ts_aux_sym_repeat_helper6] = SHIFT(79), + [76] = { + [ts_aux_sym_repeat_helper6] = SHIFT(77), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = SHIFT(116), - [ts_aux_sym_token7] = SHIFT(119), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = SHIFT(114), + [ts_aux_sym_token7] = SHIFT(117), }, - [79] = { - [ts_aux_sym_token10] = SHIFT(80), + [77] = { + [ts_aux_sym_token10] = SHIFT(78), }, - [80] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_array, 4), - [ts_aux_sym_token12] = REDUCE(ts_sym_array, 4), + [78] = { + [ts_sym__terminator] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), }, - [81] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(84), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token4] = SHIFT(176), - [ts_aux_sym_token9] = SHIFT(112), + [79] = { + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(82), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token4] = SHIFT(174), + [ts_aux_sym_token9] = SHIFT(110), }, - [82] = { + [80] = { [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), }, - [83] = { + [81] = { [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, - [84] = { - [ts_aux_sym_repeat_helper3] = SHIFT(85), - [ts_aux_sym_token3] = SHIFT(87), + [82] = { + [ts_aux_sym_repeat_helper3] = SHIFT(83), + [ts_aux_sym_token3] = SHIFT(85), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(94), + [ts_aux_sym_token6] = SHIFT(89), + [ts_aux_sym_token7] = SHIFT(92), }, - [85] = { - [ts_aux_sym_token4] = SHIFT(86), + [83] = { + [ts_aux_sym_token4] = SHIFT(84), }, - [86] = { + [84] = { [ts_aux_sym_token10] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), }, + [85] = { + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(86), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token4] = SHIFT(173), + [ts_aux_sym_token9] = SHIFT(110), + }, + [86] = { + [ts_aux_sym_repeat_helper3] = SHIFT(87), + [ts_aux_sym_token3] = SHIFT(85), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), + [ts_aux_sym_token6] = SHIFT(89), + [ts_aux_sym_token7] = SHIFT(92), + }, [87] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(88), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token4] = SHIFT(175), - [ts_aux_sym_token9] = SHIFT(112), + [ts_aux_sym_token4] = SHIFT(88), }, [88] = { - [ts_aux_sym_repeat_helper3] = SHIFT(89), - [ts_aux_sym_token3] = SHIFT(87), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(94), - }, - [89] = { - [ts_aux_sym_token4] = SHIFT(90), - }, - [90] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), }, - [91] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(92), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token9] = SHIFT(112), + [89] = { + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(90), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token9] = SHIFT(110), }, - [92] = { - [ts_aux_sym_repeat_helper3] = SHIFT(93), - [ts_aux_sym_token3] = SHIFT(87), + [90] = { + [ts_aux_sym_repeat_helper3] = SHIFT(91), + [ts_aux_sym_token3] = SHIFT(85), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(94), + [ts_aux_sym_token6] = SHIFT(89), + [ts_aux_sym_token7] = SHIFT(92), }, - [93] = { + [91] = { [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 3), }, - [94] = { - [ts_sym_identifier] = SHIFT(95), + [92] = { + [ts_sym_identifier] = SHIFT(93), }, - [95] = { + [93] = { [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), }, - [96] = { + [94] = { [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(97), + [ts_aux_sym_token5] = SHIFT(95), [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, - [97] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(98), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token9] = SHIFT(112), + [95] = { + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(96), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token9] = SHIFT(110), }, - [98] = { - [ts_aux_sym_token3] = SHIFT(87), + [96] = { + [ts_aux_sym_token3] = SHIFT(85), [ts_aux_sym_token4] = REDUCE(ts_sym_assignment, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token7] = SHIFT(94), + [ts_aux_sym_token7] = SHIFT(92), + }, + [97] = { + [ts_sym_identifier] = SHIFT(98), + [ts_sym_string] = SHIFT(98), + [ts_aux_sym_token2] = SHIFT(169), + [ts_builtin_sym_error] = SHIFT(170), + }, + [98] = { + [ts_aux_sym_token8] = SHIFT(99), }, [99] = { - [ts_sym_identifier] = SHIFT(100), + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(102), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), [ts_sym_string] = SHIFT(100), - [ts_aux_sym_token2] = SHIFT(171), - [ts_builtin_sym_error] = SHIFT(172), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), }, [100] = { - [ts_aux_sym_token8] = SHIFT(101), - }, - [101] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(104), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [102] = { [ts_aux_sym_token2] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), }, - [103] = { + [101] = { [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, - [104] = { - [ts_aux_sym_repeat_helper5] = SHIFT(105), + [102] = { + [ts_aux_sym_repeat_helper5] = SHIFT(103), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = SHIFT(130), - [ts_aux_sym_token7] = SHIFT(135), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(128), + [ts_aux_sym_token7] = SHIFT(133), }, - [105] = { - [ts_aux_sym_token2] = SHIFT(106), + [103] = { + [ts_aux_sym_token2] = SHIFT(104), }, - [106] = { + [104] = { [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token4] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), }, + [105] = { + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(106), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token4] = SHIFT(109), + [ts_aux_sym_token9] = SHIFT(110), + }, + [106] = { + [ts_aux_sym_repeat_helper3] = SHIFT(107), + [ts_aux_sym_token3] = SHIFT(85), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), + [ts_aux_sym_token6] = SHIFT(89), + [ts_aux_sym_token7] = SHIFT(92), + }, [107] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(108), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token4] = SHIFT(111), - [ts_aux_sym_token9] = SHIFT(112), + [ts_aux_sym_token4] = SHIFT(108), }, [108] = { - [ts_aux_sym_repeat_helper3] = SHIFT(109), - [ts_aux_sym_token3] = SHIFT(87), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(94), - }, - [109] = { - [ts_aux_sym_token4] = SHIFT(110), - }, - [110] = { [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), }, - [111] = { + [109] = { [ts_aux_sym_token2] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), }, + [110] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(111), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token10] = SHIFT(167), + [ts_aux_sym_token9] = SHIFT(149), + [ts_builtin_sym_error] = SHIFT(168), + }, + [111] = { + [ts_aux_sym_repeat_helper6] = SHIFT(112), + [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = SHIFT(114), + [ts_aux_sym_token7] = SHIFT(117), + }, [112] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(113), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token10] = SHIFT(169), - [ts_aux_sym_token9] = SHIFT(151), - [ts_builtin_sym_error] = SHIFT(170), + [ts_aux_sym_token10] = SHIFT(113), }, [113] = { - [ts_aux_sym_repeat_helper6] = SHIFT(114), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = SHIFT(116), - [ts_aux_sym_token7] = SHIFT(119), - }, - [114] = { - [ts_aux_sym_token10] = SHIFT(115), - }, - [115] = { [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token4] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), }, - [116] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(117), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token9] = SHIFT(151), - [ts_builtin_sym_error] = SHIFT(168), + [114] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(115), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token9] = SHIFT(149), + [ts_builtin_sym_error] = SHIFT(166), }, - [117] = { - [ts_aux_sym_repeat_helper6] = SHIFT(118), + [115] = { + [ts_aux_sym_repeat_helper6] = SHIFT(116), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = SHIFT(116), - [ts_aux_sym_token7] = SHIFT(119), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = SHIFT(114), + [ts_aux_sym_token7] = SHIFT(117), }, - [118] = { + [116] = { [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 3), }, - [119] = { - [ts_sym_identifier] = SHIFT(120), + [117] = { + [ts_sym_identifier] = SHIFT(118), }, - [120] = { + [118] = { [ts_aux_sym_token10] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), }, - [121] = { + [119] = { [ts_aux_sym_token10] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(122), + [ts_aux_sym_token5] = SHIFT(120), [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, + [120] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(121), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token9] = SHIFT(149), + }, + [121] = { + [ts_aux_sym_token10] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(117), + }, [122] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(123), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token9] = SHIFT(151), + [ts_sym_identifier] = SHIFT(123), + [ts_sym_string] = SHIFT(123), + [ts_aux_sym_token2] = SHIFT(162), + [ts_builtin_sym_error] = SHIFT(163), }, [123] = { - [ts_aux_sym_token10] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token7] = SHIFT(119), + [ts_aux_sym_token8] = SHIFT(124), }, [124] = { - [ts_sym_identifier] = SHIFT(125), - [ts_sym_string] = SHIFT(125), - [ts_aux_sym_token2] = SHIFT(164), - [ts_builtin_sym_error] = SHIFT(165), + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(125), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), + [ts_sym_string] = SHIFT(100), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), }, [125] = { - [ts_aux_sym_token8] = SHIFT(126), + [ts_aux_sym_repeat_helper5] = SHIFT(126), + [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(128), + [ts_aux_sym_token7] = SHIFT(133), }, [126] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(127), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [ts_aux_sym_token2] = SHIFT(127), }, [127] = { - [ts_aux_sym_repeat_helper5] = SHIFT(128), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = SHIFT(130), - [ts_aux_sym_token7] = SHIFT(135), - }, - [128] = { - [ts_aux_sym_token2] = SHIFT(129), - }, - [129] = { [ts_aux_sym_token10] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), }, + [128] = { + [ts_sym_identifier] = SHIFT(129), + [ts_sym_string] = SHIFT(129), + [ts_builtin_sym_error] = SHIFT(160), + }, + [129] = { + [ts_aux_sym_token8] = SHIFT(130), + }, [130] = { - [ts_sym_identifier] = SHIFT(131), - [ts_sym_string] = SHIFT(131), - [ts_builtin_sym_error] = SHIFT(162), + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(131), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), + [ts_sym_string] = SHIFT(100), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), }, [131] = { - [ts_aux_sym_token8] = SHIFT(132), + [ts_aux_sym_repeat_helper5] = SHIFT(132), + [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(128), + [ts_aux_sym_token7] = SHIFT(133), }, [132] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(133), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [133] = { - [ts_aux_sym_repeat_helper5] = SHIFT(134), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = SHIFT(130), - [ts_aux_sym_token7] = SHIFT(135), - }, - [134] = { [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 5), }, - [135] = { - [ts_sym_identifier] = SHIFT(136), + [133] = { + [ts_sym_identifier] = SHIFT(134), }, - [136] = { + [134] = { [ts_aux_sym_token2] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), }, - [137] = { + [135] = { [ts_aux_sym_token2] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(138), + [ts_aux_sym_token5] = SHIFT(136), [ts_aux_sym_token6] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, + [136] = { + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(137), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), + [ts_sym_string] = SHIFT(100), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), + }, + [137] = { + [ts_aux_sym_token2] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(133), + }, [138] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(139), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [ts_sym_identifier] = SHIFT(139), + [ts_sym_string] = SHIFT(139), + [ts_aux_sym_token2] = SHIFT(156), + [ts_builtin_sym_error] = SHIFT(157), }, [139] = { - [ts_aux_sym_token2] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token7] = SHIFT(135), + [ts_aux_sym_token8] = SHIFT(140), }, [140] = { - [ts_sym_identifier] = SHIFT(141), - [ts_sym_string] = SHIFT(141), - [ts_aux_sym_token2] = SHIFT(158), - [ts_builtin_sym_error] = SHIFT(159), + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(141), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), + [ts_sym_string] = SHIFT(100), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), }, [141] = { - [ts_aux_sym_token8] = SHIFT(142), + [ts_aux_sym_repeat_helper5] = SHIFT(142), + [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(128), + [ts_aux_sym_token7] = SHIFT(133), }, [142] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(143), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), + [ts_aux_sym_token2] = SHIFT(143), }, [143] = { - [ts_aux_sym_repeat_helper5] = SHIFT(144), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = SHIFT(130), - [ts_aux_sym_token7] = SHIFT(135), - }, - [144] = { - [ts_aux_sym_token2] = SHIFT(145), - }, - [145] = { [ts_aux_sym_token2] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), }, + [144] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(145), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token10] = SHIFT(148), + [ts_aux_sym_token9] = SHIFT(149), + [ts_builtin_sym_error] = SHIFT(155), + }, + [145] = { + [ts_aux_sym_repeat_helper6] = SHIFT(146), + [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = SHIFT(114), + [ts_aux_sym_token7] = SHIFT(117), + }, [146] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(147), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token10] = SHIFT(150), - [ts_aux_sym_token9] = SHIFT(151), - [ts_builtin_sym_error] = SHIFT(157), + [ts_aux_sym_token10] = SHIFT(147), }, [147] = { - [ts_aux_sym_repeat_helper6] = SHIFT(148), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = SHIFT(116), - [ts_aux_sym_token7] = SHIFT(119), - }, - [148] = { - [ts_aux_sym_token10] = SHIFT(149), - }, - [149] = { [ts_aux_sym_token2] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), }, - [150] = { + [148] = { [ts_aux_sym_token2] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), }, + [149] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(150), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token10] = SHIFT(153), + [ts_aux_sym_token9] = SHIFT(149), + [ts_builtin_sym_error] = SHIFT(154), + }, + [150] = { + [ts_aux_sym_repeat_helper6] = SHIFT(151), + [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = SHIFT(114), + [ts_aux_sym_token7] = SHIFT(117), + }, [151] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(152), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token10] = SHIFT(155), - [ts_aux_sym_token9] = SHIFT(151), - [ts_builtin_sym_error] = SHIFT(156), + [ts_aux_sym_token10] = SHIFT(152), }, [152] = { - [ts_aux_sym_repeat_helper6] = SHIFT(153), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = SHIFT(116), - [ts_aux_sym_token7] = SHIFT(119), - }, - [153] = { - [ts_aux_sym_token10] = SHIFT(154), - }, - [154] = { [ts_aux_sym_token10] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), }, - [155] = { + [153] = { [ts_aux_sym_token10] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), }, + [154] = { + [ts_aux_sym_repeat_helper6] = SHIFT(151), + [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), + [ts_aux_sym_token6] = SHIFT(114), + }, + [155] = { + [ts_aux_sym_repeat_helper6] = SHIFT(146), + [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), + [ts_aux_sym_token6] = SHIFT(114), + }, [156] = { - [ts_aux_sym_repeat_helper6] = SHIFT(153), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token6] = SHIFT(116), - }, - [157] = { - [ts_aux_sym_repeat_helper6] = SHIFT(148), - [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token6] = SHIFT(116), - }, - [158] = { [ts_aux_sym_token2] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), }, - [159] = { - [ts_aux_sym_repeat_helper5] = SHIFT(160), + [157] = { + [ts_aux_sym_repeat_helper5] = SHIFT(158), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token6] = SHIFT(128), }, - [160] = { - [ts_aux_sym_token2] = SHIFT(161), + [158] = { + [ts_aux_sym_token2] = SHIFT(159), }, - [161] = { + [159] = { [ts_aux_sym_token2] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), }, - [162] = { - [ts_aux_sym_repeat_helper5] = SHIFT(163), + [160] = { + [ts_aux_sym_repeat_helper5] = SHIFT(161), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token6] = SHIFT(128), }, - [163] = { + [161] = { [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 3), }, - [164] = { + [162] = { [ts_aux_sym_token10] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), }, - [165] = { - [ts_aux_sym_repeat_helper5] = SHIFT(166), + [163] = { + [ts_aux_sym_repeat_helper5] = SHIFT(164), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token6] = SHIFT(128), }, - [166] = { - [ts_aux_sym_token2] = SHIFT(167), + [164] = { + [ts_aux_sym_token2] = SHIFT(165), }, - [167] = { + [165] = { [ts_aux_sym_token10] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), }, - [168] = { - [ts_aux_sym_repeat_helper6] = SHIFT(118), + [166] = { + [ts_aux_sym_repeat_helper6] = SHIFT(116), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token6] = SHIFT(116), + [ts_aux_sym_token6] = SHIFT(114), }, - [169] = { + [167] = { [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token4] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token6] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), }, - [170] = { - [ts_aux_sym_repeat_helper6] = SHIFT(114), + [168] = { + [ts_aux_sym_repeat_helper6] = SHIFT(112), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token6] = SHIFT(116), + [ts_aux_sym_token6] = SHIFT(114), }, - [171] = { + [169] = { [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token4] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), }, - [172] = { - [ts_aux_sym_repeat_helper5] = SHIFT(173), + [170] = { + [ts_aux_sym_repeat_helper5] = SHIFT(171), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token6] = SHIFT(128), }, - [173] = { - [ts_aux_sym_token2] = SHIFT(174), + [171] = { + [ts_aux_sym_token2] = SHIFT(172), }, - [174] = { + [172] = { [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token4] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), }, - [175] = { + [173] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), }, - [176] = { + [174] = { [ts_aux_sym_token10] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), }, - [177] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_array, 2), - [ts_aux_sym_token12] = REDUCE(ts_sym_array, 2), + [175] = { + [ts_sym__terminator] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), }, - [178] = { - [ts_aux_sym_repeat_helper6] = SHIFT(79), + [176] = { + [ts_aux_sym_repeat_helper6] = SHIFT(77), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token6] = SHIFT(116), + [ts_aux_sym_token6] = SHIFT(114), + }, + [177] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_repeat_helper5] = SHIFT(178), + [ts_aux_sym_token2] = SHIFT(53), + [ts_aux_sym_token6] = SHIFT(128), + }, + [178] = { + [ts_aux_sym_token2] = SHIFT(179), }, [179] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_repeat_helper5] = SHIFT(180), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(55), - [ts_aux_sym_token6] = SHIFT(130), - }, - [180] = { - [ts_aux_sym_token2] = SHIFT(181), - }, - [181] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_object, 4), - [ts_aux_sym_token12] = REDUCE(ts_sym_object, 4), + [ts_sym__terminator] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), }, + [180] = { + [ts_sym__terminator] = SHIFT(33), + }, + [181] = { + [ts_aux_sym_token2] = SHIFT(182), + }, [182] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - }, - [183] = { - [ts_aux_sym_token2] = SHIFT(184), - }, - [184] = { [ts_aux_sym_token2] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), }, + [183] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_token2] = SHIFT(182), + }, + [184] = { + [ts_sym_formal_parameters] = SHIFT(185), + [ts_aux_sym_token3] = SHIFT(66), + }, [185] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(184), + [ts_sym_statement_block] = SHIFT(186), + [ts_aux_sym_token1] = SHIFT(46), }, [186] = { - [ts_sym_formal_parameters] = SHIFT(187), - [ts_aux_sym_token3] = SHIFT(68), - }, - [187] = { - [ts_sym_statement_block] = SHIFT(188), - [ts_aux_sym_token1] = SHIFT(48), - }, - [188] = { [ts_aux_sym_token2] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), }, - [189] = { - [ts_aux_sym_repeat_helper5] = SHIFT(190), + [187] = { + [ts_aux_sym_repeat_helper5] = SHIFT(188), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = SHIFT(130), - [ts_aux_sym_token7] = SHIFT(135), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(128), + [ts_aux_sym_token7] = SHIFT(133), }, - [190] = { - [ts_aux_sym_token2] = SHIFT(191), + [188] = { + [ts_aux_sym_token2] = SHIFT(189), }, - [191] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_object, 6), - [ts_aux_sym_token12] = REDUCE(ts_sym_object, 6), + [189] = { + [ts_sym__terminator] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), }, - [192] = { - [ts_aux_sym_repeat_helper5] = SHIFT(180), + [190] = { + [ts_aux_sym_repeat_helper5] = SHIFT(178), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token6] = SHIFT(128), }, - [193] = { - [ts_aux_sym_token2] = SHIFT(194), + [191] = { + [ts_aux_sym_token2] = SHIFT(192), }, - [194] = { + [192] = { [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), }, + [193] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_token2] = SHIFT(192), + }, + [194] = { + [ts_sym_formal_parameters] = SHIFT(195), + [ts_aux_sym_token3] = SHIFT(66), + }, [195] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(194), + [ts_sym_statement_block] = SHIFT(196), + [ts_aux_sym_token1] = SHIFT(27), }, [196] = { - [ts_sym_formal_parameters] = SHIFT(197), - [ts_aux_sym_token3] = SHIFT(68), - }, - [197] = { - [ts_sym_statement_block] = SHIFT(198), - [ts_aux_sym_token1] = SHIFT(28), - }, - [198] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), }, - [199] = { + [197] = { [ts_aux_sym_token3] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_literal, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_literal, 1), }, - [200] = { + [198] = { [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, + [199] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(205), + [ts_aux_sym_token7] = SHIFT(233), + }, + [200] = { + [ts_sym__function] = SHIFT(18), + [ts_sym_array] = SHIFT(80), + [ts_sym_assignment] = SHIFT(81), + [ts_sym_expression] = SHIFT(201), + [ts_sym_false] = SHIFT(80), + [ts_sym_function_call] = SHIFT(81), + [ts_sym_function_expression] = SHIFT(81), + [ts_sym_identifier] = SHIFT(94), + [ts_sym_literal] = SHIFT(81), + [ts_sym_null] = SHIFT(80), + [ts_sym_number] = SHIFT(80), + [ts_sym_object] = SHIFT(80), + [ts_sym_property_access] = SHIFT(81), + [ts_sym_string] = SHIFT(80), + [ts_sym_true] = SHIFT(80), + [ts_aux_sym_token1] = SHIFT(97), + [ts_aux_sym_token4] = SHIFT(204), + [ts_aux_sym_token9] = SHIFT(110), + }, [201] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(207), - [ts_aux_sym_token7] = SHIFT(236), + [ts_aux_sym_repeat_helper3] = SHIFT(202), + [ts_aux_sym_token3] = SHIFT(85), + [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), + [ts_aux_sym_token6] = SHIFT(89), + [ts_aux_sym_token7] = SHIFT(92), }, [202] = { - [ts_sym__function] = SHIFT(19), - [ts_sym_array] = SHIFT(82), - [ts_sym_assignment] = SHIFT(83), - [ts_sym_expression] = SHIFT(203), - [ts_sym_false] = SHIFT(82), - [ts_sym_function_call] = SHIFT(83), - [ts_sym_function_expression] = SHIFT(83), - [ts_sym_identifier] = SHIFT(96), - [ts_sym_literal] = SHIFT(83), - [ts_sym_null] = SHIFT(82), - [ts_sym_number] = SHIFT(82), - [ts_sym_object] = SHIFT(82), - [ts_sym_property_access] = SHIFT(83), - [ts_sym_string] = SHIFT(82), - [ts_sym_true] = SHIFT(82), - [ts_aux_sym_token1] = SHIFT(99), - [ts_aux_sym_token4] = SHIFT(206), - [ts_aux_sym_token9] = SHIFT(112), + [ts_aux_sym_token4] = SHIFT(203), }, [203] = { - [ts_aux_sym_repeat_helper3] = SHIFT(204), - [ts_aux_sym_token3] = SHIFT(87), - [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(94), - }, - [204] = { - [ts_aux_sym_token4] = SHIFT(205), - }, - [205] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), }, - [206] = { + [204] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), }, - [207] = { - [ts_sym__for] = SHIFT(208), + [205] = { + [ts_sym__for] = SHIFT(206), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(216), - [ts_sym__var] = SHIFT(220), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(225), - [ts_sym_expression_statement] = SHIFT(227), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(227), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(227), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(261), - [ts_sym_statement_block] = SHIFT(227), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(227), - [ts_aux_sym_token1] = SHIFT(231), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(235), + [ts_sym__if] = SHIFT(214), + [ts_sym__var] = SHIFT(218), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(222), + [ts_sym_expression_statement] = SHIFT(224), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(224), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(224), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(258), + [ts_sym_statement_block] = SHIFT(224), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(224), + [ts_aux_sym_token1] = SHIFT(228), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(232), }, - [208] = { - [ts_aux_sym_token3] = SHIFT(209), + [206] = { + [ts_aux_sym_token3] = SHIFT(207), }, - [209] = { + [207] = { [ts_sym__function] = SHIFT(3), [ts_sym__var] = SHIFT(9), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(212), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(212), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(210), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(210), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), }, - [210] = { - [ts_sym__terminator] = SHIFT(211), - [ts_aux_sym_token11] = SHIFT(12), - [ts_aux_sym_token12] = SHIFT(12), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), + [208] = { + [ts_sym__terminator] = SHIFT(209), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), }, - [211] = { + [209] = { [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_false] = REDUCE(ts_sym_expression_statement, 2), [ts_sym_identifier] = REDUCE(ts_sym_expression_statement, 2), @@ -3451,148 +3624,146 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), }, - [212] = { + [210] = { [ts_sym__function] = SHIFT(3), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(213), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), - }, - [213] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(214), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), - [ts_builtin_sym_error] = SHIFT(259), - }, - [214] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(215), - [ts_aux_sym_token7] = SHIFT(236), - }, - [215] = { - [ts_sym__for] = SHIFT(208), - [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(216), - [ts_sym__var] = SHIFT(220), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(225), - [ts_sym_expression_statement] = SHIFT(227), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(227), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(227), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(258), - [ts_sym_statement_block] = SHIFT(227), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(227), - [ts_aux_sym_token1] = SHIFT(231), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(235), - }, - [216] = { - [ts_aux_sym_token3] = SHIFT(217), - }, - [217] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(218), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(211), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), [ts_builtin_sym_error] = SHIFT(257), }, + [211] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(212), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(256), + }, + [212] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(213), + [ts_aux_sym_token7] = SHIFT(233), + }, + [213] = { + [ts_sym__for] = SHIFT(206), + [ts_sym__function] = SHIFT(3), + [ts_sym__if] = SHIFT(214), + [ts_sym__var] = SHIFT(218), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(222), + [ts_sym_expression_statement] = SHIFT(224), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(224), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(224), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(255), + [ts_sym_statement_block] = SHIFT(224), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(224), + [ts_aux_sym_token1] = SHIFT(228), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(232), + }, + [214] = { + [ts_aux_sym_token3] = SHIFT(215), + }, + [215] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(216), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(254), + }, + [216] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(217), + [ts_aux_sym_token7] = SHIFT(233), + }, + [217] = { + [ts_sym__for] = SHIFT(206), + [ts_sym__function] = SHIFT(3), + [ts_sym__if] = SHIFT(214), + [ts_sym__var] = SHIFT(218), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(222), + [ts_sym_expression_statement] = SHIFT(224), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(224), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(224), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(225), + [ts_sym_statement_block] = SHIFT(224), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(224), + [ts_aux_sym_token1] = SHIFT(228), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(232), + }, [218] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(219), - [ts_aux_sym_token7] = SHIFT(236), + [ts_sym_assignment] = SHIFT(219), + [ts_sym_identifier] = SHIFT(221), }, [219] = { - [ts_sym__for] = SHIFT(208), - [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(216), - [ts_sym__var] = SHIFT(220), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(225), - [ts_sym_expression_statement] = SHIFT(227), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(227), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(227), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(228), - [ts_sym_statement_block] = SHIFT(227), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(227), - [ts_aux_sym_token1] = SHIFT(231), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(235), + [ts_sym__terminator] = SHIFT(220), }, [220] = { - [ts_sym_assignment] = SHIFT(221), - [ts_sym_identifier] = SHIFT(224), - }, - [221] = { - [ts_sym__terminator] = SHIFT(222), - [ts_aux_sym_token11] = SHIFT(223), - [ts_aux_sym_token12] = SHIFT(223), - }, - [222] = { [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), @@ -3609,37 +3780,16 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_var_declaration, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), }, + [221] = { + [ts_sym__terminator] = SHIFT(220), + [ts_aux_sym_token5] = SHIFT(13), + }, + [222] = { + [ts_sym__terminator] = SHIFT(223), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), + }, [223] = { - [ts_sym__else] = REDUCE(ts_sym__terminator, 1), - [ts_sym__for] = REDUCE(ts_sym__terminator, 1), - [ts_sym__function] = REDUCE(ts_sym__terminator, 1), - [ts_sym__if] = REDUCE(ts_sym__terminator, 1), - [ts_sym__var] = REDUCE(ts_sym__terminator, 1), - [ts_sym_false] = REDUCE(ts_sym__terminator, 1), - [ts_sym_identifier] = REDUCE(ts_sym__terminator, 1), - [ts_sym_null] = REDUCE(ts_sym__terminator, 1), - [ts_sym_number] = REDUCE(ts_sym__terminator, 1), - [ts_sym_string] = REDUCE(ts_sym__terminator, 1), - [ts_sym_true] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token2] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym__terminator, 1), - }, - [224] = { - [ts_sym__terminator] = SHIFT(222), - [ts_aux_sym_token11] = SHIFT(223), - [ts_aux_sym_token12] = SHIFT(223), - [ts_aux_sym_token5] = SHIFT(14), - }, - [225] = { - [ts_sym__terminator] = SHIFT(226), - [ts_aux_sym_token11] = SHIFT(223), - [ts_aux_sym_token12] = SHIFT(223), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), - }, - [226] = { [ts_sym__else] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), @@ -3656,7 +3806,7 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_expression_statement, 2), [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), }, - [227] = { + [224] = { [ts_sym__else] = REDUCE(ts_sym_statement, 1), [ts_sym__for] = REDUCE(ts_sym_statement, 1), [ts_sym__function] = REDUCE(ts_sym_statement, 1), @@ -3673,8 +3823,8 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_statement, 1), [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), }, - [228] = { - [ts_sym__else] = SHIFT(229), + [225] = { + [ts_sym__else] = SHIFT(226), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), @@ -3690,36 +3840,36 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), }, - [229] = { - [ts_sym__for] = SHIFT(208), + [226] = { + [ts_sym__for] = SHIFT(206), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(216), - [ts_sym__var] = SHIFT(220), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(225), - [ts_sym_expression_statement] = SHIFT(227), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(227), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(227), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(230), - [ts_sym_statement_block] = SHIFT(227), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(227), - [ts_aux_sym_token1] = SHIFT(231), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(235), + [ts_sym__if] = SHIFT(214), + [ts_sym__var] = SHIFT(218), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(222), + [ts_sym_expression_statement] = SHIFT(224), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(224), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(224), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(227), + [ts_sym_statement_block] = SHIFT(224), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(224), + [ts_aux_sym_token1] = SHIFT(228), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(232), }, - [230] = { + [227] = { [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), @@ -3736,41 +3886,41 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), }, - [231] = { + [228] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(52), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(53), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(232), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token2] = SHIFT(56), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(234), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(50), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(51), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(229), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token2] = SHIFT(54), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(231), }, - [232] = { - [ts_aux_sym_token2] = SHIFT(233), + [229] = { + [ts_aux_sym_token2] = SHIFT(230), }, - [233] = { + [230] = { [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), @@ -3787,168 +3937,164 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_statement_block, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), }, + [231] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_repeat_helper5] = SHIFT(178), + [ts_aux_sym_token2] = SHIFT(230), + [ts_aux_sym_token6] = SHIFT(128), + }, + [232] = { + [ts_sym__terminator] = SHIFT(223), + }, + [233] = { + [ts_sym_identifier] = SHIFT(234), + }, [234] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_repeat_helper5] = SHIFT(180), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(233), - [ts_aux_sym_token6] = SHIFT(130), - }, - [235] = { - [ts_sym__terminator] = SHIFT(226), - [ts_aux_sym_token11] = SHIFT(223), - [ts_aux_sym_token12] = SHIFT(223), - }, - [236] = { - [ts_sym_identifier] = SHIFT(237), - }, - [237] = { [ts_aux_sym_token3] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_property_access, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_property_access, 3), }, - [238] = { + [235] = { [ts_aux_sym_token3] = REDUCE(ts_sym_expression, 1), [ts_aux_sym_token4] = REDUCE(ts_sym_expression, 1), - [ts_aux_sym_token5] = SHIFT(239), + [ts_aux_sym_token5] = SHIFT(236), [ts_aux_sym_token7] = REDUCE(ts_sym_expression, 1), }, + [236] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(237), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + }, + [237] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = REDUCE(ts_sym_assignment, 3), + [ts_aux_sym_token7] = SHIFT(233), + }, + [238] = { + [ts_sym_identifier] = SHIFT(239), + [ts_sym_string] = SHIFT(239), + [ts_aux_sym_token2] = SHIFT(244), + [ts_builtin_sym_error] = SHIFT(245), + }, [239] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(240), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), + [ts_aux_sym_token8] = SHIFT(240), }, [240] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = REDUCE(ts_sym_assignment, 3), - [ts_aux_sym_token7] = SHIFT(236), + [ts_sym__function] = SHIFT(43), + [ts_sym_array] = SHIFT(100), + [ts_sym_assignment] = SHIFT(101), + [ts_sym_expression] = SHIFT(241), + [ts_sym_false] = SHIFT(100), + [ts_sym_function_call] = SHIFT(101), + [ts_sym_function_expression] = SHIFT(101), + [ts_sym_identifier] = SHIFT(135), + [ts_sym_literal] = SHIFT(101), + [ts_sym_null] = SHIFT(100), + [ts_sym_number] = SHIFT(100), + [ts_sym_object] = SHIFT(100), + [ts_sym_property_access] = SHIFT(101), + [ts_sym_string] = SHIFT(100), + [ts_sym_true] = SHIFT(100), + [ts_aux_sym_token1] = SHIFT(138), + [ts_aux_sym_token9] = SHIFT(144), }, [241] = { - [ts_sym_identifier] = SHIFT(242), - [ts_sym_string] = SHIFT(242), - [ts_aux_sym_token2] = SHIFT(247), - [ts_builtin_sym_error] = SHIFT(248), + [ts_aux_sym_repeat_helper5] = SHIFT(242), + [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), + [ts_aux_sym_token3] = SHIFT(105), + [ts_aux_sym_token6] = SHIFT(128), + [ts_aux_sym_token7] = SHIFT(133), }, [242] = { - [ts_aux_sym_token8] = SHIFT(243), + [ts_aux_sym_token2] = SHIFT(243), }, [243] = { - [ts_sym__function] = SHIFT(45), - [ts_sym_array] = SHIFT(102), - [ts_sym_assignment] = SHIFT(103), - [ts_sym_expression] = SHIFT(244), - [ts_sym_false] = SHIFT(102), - [ts_sym_function_call] = SHIFT(103), - [ts_sym_function_expression] = SHIFT(103), - [ts_sym_identifier] = SHIFT(137), - [ts_sym_literal] = SHIFT(103), - [ts_sym_null] = SHIFT(102), - [ts_sym_number] = SHIFT(102), - [ts_sym_object] = SHIFT(102), - [ts_sym_property_access] = SHIFT(103), - [ts_sym_string] = SHIFT(102), - [ts_sym_true] = SHIFT(102), - [ts_aux_sym_token1] = SHIFT(140), - [ts_aux_sym_token9] = SHIFT(146), - }, - [244] = { - [ts_aux_sym_repeat_helper5] = SHIFT(245), - [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token3] = SHIFT(107), - [ts_aux_sym_token6] = SHIFT(130), - [ts_aux_sym_token7] = SHIFT(135), - }, - [245] = { - [ts_aux_sym_token2] = SHIFT(246), - }, - [246] = { [ts_aux_sym_token3] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token4] = REDUCE(ts_sym_object, 6), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 6), }, - [247] = { + [244] = { [ts_aux_sym_token3] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token4] = REDUCE(ts_sym_object, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 2), }, - [248] = { - [ts_aux_sym_repeat_helper5] = SHIFT(249), + [245] = { + [ts_aux_sym_repeat_helper5] = SHIFT(246), [ts_aux_sym_token2] = REDUCE(ts_aux_sym_repeat_helper5, 0), - [ts_aux_sym_token6] = SHIFT(130), + [ts_aux_sym_token6] = SHIFT(128), }, - [249] = { - [ts_aux_sym_token2] = SHIFT(250), + [246] = { + [ts_aux_sym_token2] = SHIFT(247), }, - [250] = { + [247] = { [ts_aux_sym_token3] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token4] = REDUCE(ts_sym_object, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_object, 4), }, - [251] = { - [ts_sym__function] = SHIFT(58), - [ts_sym_array] = SHIFT(76), - [ts_sym_assignment] = SHIFT(77), - [ts_sym_expression] = SHIFT(252), - [ts_sym_false] = SHIFT(76), - [ts_sym_function_call] = SHIFT(77), - [ts_sym_function_expression] = SHIFT(77), - [ts_sym_identifier] = SHIFT(121), - [ts_sym_literal] = SHIFT(77), - [ts_sym_null] = SHIFT(76), - [ts_sym_number] = SHIFT(76), - [ts_sym_object] = SHIFT(76), - [ts_sym_property_access] = SHIFT(77), - [ts_sym_string] = SHIFT(76), - [ts_sym_true] = SHIFT(76), - [ts_aux_sym_token1] = SHIFT(124), - [ts_aux_sym_token10] = SHIFT(255), - [ts_aux_sym_token9] = SHIFT(151), - [ts_builtin_sym_error] = SHIFT(256), + [248] = { + [ts_sym__function] = SHIFT(56), + [ts_sym_array] = SHIFT(74), + [ts_sym_assignment] = SHIFT(75), + [ts_sym_expression] = SHIFT(249), + [ts_sym_false] = SHIFT(74), + [ts_sym_function_call] = SHIFT(75), + [ts_sym_function_expression] = SHIFT(75), + [ts_sym_identifier] = SHIFT(119), + [ts_sym_literal] = SHIFT(75), + [ts_sym_null] = SHIFT(74), + [ts_sym_number] = SHIFT(74), + [ts_sym_object] = SHIFT(74), + [ts_sym_property_access] = SHIFT(75), + [ts_sym_string] = SHIFT(74), + [ts_sym_true] = SHIFT(74), + [ts_aux_sym_token1] = SHIFT(122), + [ts_aux_sym_token10] = SHIFT(252), + [ts_aux_sym_token9] = SHIFT(149), + [ts_builtin_sym_error] = SHIFT(253), }, - [252] = { - [ts_aux_sym_repeat_helper6] = SHIFT(253), + [249] = { + [ts_aux_sym_repeat_helper6] = SHIFT(250), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token3] = SHIFT(81), - [ts_aux_sym_token6] = SHIFT(116), - [ts_aux_sym_token7] = SHIFT(119), + [ts_aux_sym_token3] = SHIFT(79), + [ts_aux_sym_token6] = SHIFT(114), + [ts_aux_sym_token7] = SHIFT(117), }, - [253] = { - [ts_aux_sym_token10] = SHIFT(254), + [250] = { + [ts_aux_sym_token10] = SHIFT(251), }, - [254] = { + [251] = { [ts_aux_sym_token3] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token4] = REDUCE(ts_sym_array, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 4), }, - [255] = { + [252] = { [ts_aux_sym_token3] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token4] = REDUCE(ts_sym_array, 2), [ts_aux_sym_token7] = REDUCE(ts_sym_array, 2), }, - [256] = { - [ts_aux_sym_repeat_helper6] = SHIFT(253), + [253] = { + [ts_aux_sym_repeat_helper6] = SHIFT(250), [ts_aux_sym_token10] = REDUCE(ts_aux_sym_repeat_helper6, 0), - [ts_aux_sym_token6] = SHIFT(116), + [ts_aux_sym_token6] = SHIFT(114), }, - [257] = { - [ts_aux_sym_token4] = SHIFT(219), + [254] = { + [ts_aux_sym_token4] = SHIFT(217), }, - [258] = { + [255] = { [ts_sym__else] = REDUCE(ts_sym_for_statement, 7), [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), @@ -3965,16 +4111,14 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), }, - [259] = { - [ts_aux_sym_token4] = SHIFT(215), + [256] = { + [ts_aux_sym_token4] = SHIFT(213), }, - [260] = { - [ts_sym__terminator] = SHIFT(211), - [ts_aux_sym_token11] = SHIFT(12), - [ts_aux_sym_token12] = SHIFT(12), + [257] = { + [ts_sym__terminator] = SHIFT(209), }, - [261] = { - [ts_sym__else] = SHIFT(262), + [258] = { + [ts_sym__else] = SHIFT(259), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), @@ -3990,36 +4134,36 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 5), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), }, - [262] = { + [259] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(263), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(182), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(260), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(180), }, - [263] = { + [260] = { [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), @@ -4035,136 +4179,132 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_if_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), }, - [264] = { - [ts_aux_sym_token4] = SHIFT(207), + [261] = { + [ts_aux_sym_token4] = SHIFT(205), }, - [265] = { - [ts_aux_sym_token2] = SHIFT(266), + [262] = { + [ts_aux_sym_token2] = SHIFT(263), }, - [266] = { + [263] = { [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token4] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token6] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), }, + [264] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_token2] = SHIFT(263), + }, + [265] = { + [ts_sym_formal_parameters] = SHIFT(266), + [ts_aux_sym_token3] = SHIFT(66), + }, + [266] = { + [ts_sym_statement_block] = SHIFT(267), + [ts_aux_sym_token1] = SHIFT(21), + }, [267] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(266), - }, - [268] = { - [ts_sym_formal_parameters] = SHIFT(269), - [ts_aux_sym_token3] = SHIFT(68), - }, - [269] = { - [ts_sym_statement_block] = SHIFT(270), - [ts_aux_sym_token1] = SHIFT(22), - }, - [270] = { [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token4] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token6] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), }, - [271] = { - [ts_aux_sym_repeat_helper3] = SHIFT(272), - [ts_aux_sym_token3] = SHIFT(87), + [268] = { + [ts_aux_sym_repeat_helper3] = SHIFT(269), + [ts_aux_sym_token3] = SHIFT(85), [ts_aux_sym_token4] = REDUCE(ts_aux_sym_repeat_helper3, 0), - [ts_aux_sym_token6] = SHIFT(91), - [ts_aux_sym_token7] = SHIFT(94), + [ts_aux_sym_token6] = SHIFT(89), + [ts_aux_sym_token7] = SHIFT(92), }, - [272] = { - [ts_aux_sym_token4] = SHIFT(273), + [269] = { + [ts_aux_sym_token4] = SHIFT(270), }, - [273] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_function_call, 5), - [ts_aux_sym_token12] = REDUCE(ts_sym_function_call, 5), + [270] = { + [ts_sym__terminator] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 5), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 5), }, - [274] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_function_call, 3), - [ts_aux_sym_token12] = REDUCE(ts_sym_function_call, 3), + [271] = { + [ts_sym__terminator] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_function_call, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_function_call, 3), }, - [275] = { + [272] = { [ts_sym__function] = SHIFT(3), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(276), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(273), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), }, - [276] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(277), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), - [ts_builtin_sym_error] = SHIFT(280), + [273] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(274), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(277), }, - [277] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(278), - [ts_aux_sym_token7] = SHIFT(236), + [274] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(275), + [ts_aux_sym_token7] = SHIFT(233), }, - [278] = { + [275] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(279), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(182), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(276), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(180), }, - [279] = { + [276] = { [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), @@ -4180,338 +4320,332 @@ PARSE_TABLE = { [ts_aux_sym_token9] = REDUCE(ts_sym_for_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), }, - [280] = { - [ts_aux_sym_token4] = SHIFT(278), + [277] = { + [ts_aux_sym_token4] = SHIFT(275), }, - [281] = { - [ts_aux_sym_token2] = SHIFT(282), + [278] = { + [ts_aux_sym_token2] = SHIFT(279), }, - [282] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_statement_block, 3), - [ts_aux_sym_token12] = REDUCE(ts_sym_statement_block, 3), + [279] = { + [ts_sym__terminator] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token3] = REDUCE(ts_sym_statement_block, 3), [ts_aux_sym_token7] = REDUCE(ts_sym_statement_block, 3), }, - [283] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(282), + [280] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_token2] = SHIFT(279), }, - [284] = { - [ts_sym_formal_parameters] = SHIFT(285), - [ts_aux_sym_token3] = SHIFT(68), + [281] = { + [ts_sym_formal_parameters] = SHIFT(282), + [ts_aux_sym_token3] = SHIFT(66), }, - [285] = { - [ts_sym_statement_block] = SHIFT(286), + [282] = { + [ts_sym_statement_block] = SHIFT(283), [ts_aux_sym_token1] = SHIFT(6), }, - [286] = { - [ts_aux_sym_token11] = REDUCE(ts_sym_function_expression, 4), - [ts_aux_sym_token12] = REDUCE(ts_sym_function_expression, 4), + [283] = { + [ts_sym__terminator] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token3] = REDUCE(ts_sym_function_expression, 4), [ts_aux_sym_token7] = REDUCE(ts_sym_function_expression, 4), }, - [287] = { + [284] = { [ts_sym__function] = SHIFT(3), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(288), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(285), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), }, - [288] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(289), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), - [ts_builtin_sym_error] = SHIFT(342), + [285] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(286), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(337), }, - [289] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(290), - [ts_aux_sym_token7] = SHIFT(236), + [286] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(287), + [ts_aux_sym_token7] = SHIFT(233), }, - [290] = { + [287] = { [ts_sym__for] = SHIFT(1), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(291), - [ts_sym__var] = SHIFT(326), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(331), - [ts_sym_expression_statement] = SHIFT(333), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(333), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(333), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(341), - [ts_sym_statement_block] = SHIFT(333), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(333), - [ts_aux_sym_token1] = SHIFT(335), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(339), + [ts_sym__if] = SHIFT(288), + [ts_sym__var] = SHIFT(322), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(326), + [ts_sym_expression_statement] = SHIFT(328), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(328), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(328), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(336), + [ts_sym_statement_block] = SHIFT(328), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(328), + [ts_aux_sym_token1] = SHIFT(330), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(334), + }, + [288] = { + [ts_aux_sym_token3] = SHIFT(289), + }, + [289] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(290), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(335), + }, + [290] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(291), + [ts_aux_sym_token7] = SHIFT(233), }, [291] = { - [ts_aux_sym_token3] = SHIFT(292), + [ts_sym__for] = SHIFT(292), + [ts_sym__function] = SHIFT(3), + [ts_sym__if] = SHIFT(298), + [ts_sym__var] = SHIFT(302), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(306), + [ts_sym_expression_statement] = SHIFT(308), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(308), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(308), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(320), + [ts_sym_statement_block] = SHIFT(308), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(308), + [ts_aux_sym_token1] = SHIFT(312), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(316), }, [292] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(293), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), - [ts_builtin_sym_error] = SHIFT(340), + [ts_aux_sym_token3] = SHIFT(293), }, [293] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(294), - [ts_aux_sym_token7] = SHIFT(236), - }, - [294] = { - [ts_sym__for] = SHIFT(295), - [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(301), - [ts_sym__var] = SHIFT(305), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(310), - [ts_sym_expression_statement] = SHIFT(312), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(312), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(312), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(324), - [ts_sym_statement_block] = SHIFT(312), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(312), - [ts_aux_sym_token1] = SHIFT(316), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(320), - }, - [295] = { - [ts_aux_sym_token3] = SHIFT(296), - }, - [296] = { [ts_sym__function] = SHIFT(3), [ts_sym__var] = SHIFT(9), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(297), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(297), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(294), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(294), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), + }, + [294] = { + [ts_sym__function] = SHIFT(3), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(208), + [ts_sym_expression_statement] = SHIFT(295), + [ts_sym_false] = SHIFT(14), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_aux_sym_token1] = SHIFT(40), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(257), + }, + [295] = { + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(296), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(319), + }, + [296] = { + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(297), + [ts_aux_sym_token7] = SHIFT(233), }, [297] = { + [ts_sym__for] = SHIFT(292), [ts_sym__function] = SHIFT(3), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(210), - [ts_sym_expression_statement] = SHIFT(298), - [ts_sym_false] = SHIFT(15), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_aux_sym_token1] = SHIFT(42), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(260), + [ts_sym__if] = SHIFT(298), + [ts_sym__var] = SHIFT(302), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(306), + [ts_sym_expression_statement] = SHIFT(308), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(308), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(308), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(318), + [ts_sym_statement_block] = SHIFT(308), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(308), + [ts_aux_sym_token1] = SHIFT(312), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(316), }, [298] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(299), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), - [ts_builtin_sym_error] = SHIFT(323), + [ts_aux_sym_token3] = SHIFT(299), }, [299] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(300), - [ts_aux_sym_token7] = SHIFT(236), + [ts_sym__function] = SHIFT(24), + [ts_sym_array] = SHIFT(197), + [ts_sym_assignment] = SHIFT(198), + [ts_sym_expression] = SHIFT(300), + [ts_sym_false] = SHIFT(197), + [ts_sym_function_call] = SHIFT(198), + [ts_sym_function_expression] = SHIFT(198), + [ts_sym_identifier] = SHIFT(235), + [ts_sym_literal] = SHIFT(198), + [ts_sym_null] = SHIFT(197), + [ts_sym_number] = SHIFT(197), + [ts_sym_object] = SHIFT(197), + [ts_sym_property_access] = SHIFT(198), + [ts_sym_string] = SHIFT(197), + [ts_sym_true] = SHIFT(197), + [ts_aux_sym_token1] = SHIFT(238), + [ts_aux_sym_token9] = SHIFT(248), + [ts_builtin_sym_error] = SHIFT(317), }, [300] = { - [ts_sym__for] = SHIFT(295), - [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(301), - [ts_sym__var] = SHIFT(305), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(310), - [ts_sym_expression_statement] = SHIFT(312), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(312), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(312), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(322), - [ts_sym_statement_block] = SHIFT(312), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(312), - [ts_aux_sym_token1] = SHIFT(316), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(320), + [ts_aux_sym_token3] = SHIFT(200), + [ts_aux_sym_token4] = SHIFT(301), + [ts_aux_sym_token7] = SHIFT(233), }, [301] = { - [ts_aux_sym_token3] = SHIFT(302), + [ts_sym__for] = SHIFT(292), + [ts_sym__function] = SHIFT(3), + [ts_sym__if] = SHIFT(298), + [ts_sym__var] = SHIFT(302), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(306), + [ts_sym_expression_statement] = SHIFT(308), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(308), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(308), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(309), + [ts_sym_statement_block] = SHIFT(308), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(308), + [ts_aux_sym_token1] = SHIFT(312), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(316), }, [302] = { - [ts_sym__function] = SHIFT(25), - [ts_sym_array] = SHIFT(199), - [ts_sym_assignment] = SHIFT(200), - [ts_sym_expression] = SHIFT(303), - [ts_sym_false] = SHIFT(199), - [ts_sym_function_call] = SHIFT(200), - [ts_sym_function_expression] = SHIFT(200), - [ts_sym_identifier] = SHIFT(238), - [ts_sym_literal] = SHIFT(200), - [ts_sym_null] = SHIFT(199), - [ts_sym_number] = SHIFT(199), - [ts_sym_object] = SHIFT(199), - [ts_sym_property_access] = SHIFT(200), - [ts_sym_string] = SHIFT(199), - [ts_sym_true] = SHIFT(199), - [ts_aux_sym_token1] = SHIFT(241), - [ts_aux_sym_token9] = SHIFT(251), - [ts_builtin_sym_error] = SHIFT(321), + [ts_sym_assignment] = SHIFT(303), + [ts_sym_identifier] = SHIFT(305), }, [303] = { - [ts_aux_sym_token3] = SHIFT(202), - [ts_aux_sym_token4] = SHIFT(304), - [ts_aux_sym_token7] = SHIFT(236), + [ts_sym__terminator] = SHIFT(304), }, [304] = { - [ts_sym__for] = SHIFT(295), - [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(301), - [ts_sym__var] = SHIFT(305), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(310), - [ts_sym_expression_statement] = SHIFT(312), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(312), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(312), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(313), - [ts_sym_statement_block] = SHIFT(312), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(312), - [ts_aux_sym_token1] = SHIFT(316), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(320), - }, - [305] = { - [ts_sym_assignment] = SHIFT(306), - [ts_sym_identifier] = SHIFT(309), - }, - [306] = { - [ts_sym__terminator] = SHIFT(307), - [ts_aux_sym_token11] = SHIFT(308), - [ts_aux_sym_token12] = SHIFT(308), - }, - [307] = { [ts_sym__else] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), @@ -4528,37 +4662,16 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), }, - [308] = { - [ts_sym__else] = REDUCE(ts_sym__terminator, 1), - [ts_sym__for] = REDUCE(ts_sym__terminator, 1), - [ts_sym__function] = REDUCE(ts_sym__terminator, 1), - [ts_sym__if] = REDUCE(ts_sym__terminator, 1), - [ts_sym__var] = REDUCE(ts_sym__terminator, 1), - [ts_sym_false] = REDUCE(ts_sym__terminator, 1), - [ts_sym_identifier] = REDUCE(ts_sym__terminator, 1), - [ts_sym_null] = REDUCE(ts_sym__terminator, 1), - [ts_sym_number] = REDUCE(ts_sym__terminator, 1), - [ts_sym_string] = REDUCE(ts_sym__terminator, 1), - [ts_sym_true] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym__terminator, 1), + [305] = { + [ts_sym__terminator] = SHIFT(304), + [ts_aux_sym_token5] = SHIFT(13), }, - [309] = { + [306] = { [ts_sym__terminator] = SHIFT(307), - [ts_aux_sym_token11] = SHIFT(308), - [ts_aux_sym_token12] = SHIFT(308), - [ts_aux_sym_token5] = SHIFT(14), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), }, - [310] = { - [ts_sym__terminator] = SHIFT(311), - [ts_aux_sym_token11] = SHIFT(308), - [ts_aux_sym_token12] = SHIFT(308), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), - }, - [311] = { + [307] = { [ts_sym__else] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), @@ -4575,7 +4688,7 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_expression_statement, 2), [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), }, - [312] = { + [308] = { [ts_sym__else] = REDUCE(ts_sym_statement, 1), [ts_sym__for] = REDUCE(ts_sym_statement, 1), [ts_sym__function] = REDUCE(ts_sym_statement, 1), @@ -4592,8 +4705,8 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_statement, 1), [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), }, - [313] = { - [ts_sym__else] = SHIFT(314), + [309] = { + [ts_sym__else] = SHIFT(310), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), @@ -4609,36 +4722,36 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 5), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), }, - [314] = { - [ts_sym__for] = SHIFT(295), + [310] = { + [ts_sym__for] = SHIFT(292), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(301), - [ts_sym__var] = SHIFT(305), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(310), - [ts_sym_expression_statement] = SHIFT(312), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(312), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(312), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(315), - [ts_sym_statement_block] = SHIFT(312), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(312), - [ts_aux_sym_token1] = SHIFT(316), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(320), + [ts_sym__if] = SHIFT(298), + [ts_sym__var] = SHIFT(302), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(306), + [ts_sym_expression_statement] = SHIFT(308), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(308), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(308), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(311), + [ts_sym_statement_block] = SHIFT(308), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(308), + [ts_aux_sym_token1] = SHIFT(312), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(316), }, - [315] = { + [311] = { [ts_sym__else] = REDUCE(ts_sym_if_statement, 7), [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), @@ -4655,41 +4768,41 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), }, - [316] = { + [312] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(52), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(53), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(317), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token2] = SHIFT(56), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(319), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(50), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(51), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(313), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token2] = SHIFT(54), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(315), }, - [317] = { - [ts_aux_sym_token2] = SHIFT(318), + [313] = { + [ts_aux_sym_token2] = SHIFT(314), }, - [318] = { + [314] = { [ts_sym__else] = REDUCE(ts_sym_statement_block, 3), [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), @@ -4706,23 +4819,19 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), }, - [319] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_repeat_helper5] = SHIFT(180), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(318), - [ts_aux_sym_token6] = SHIFT(130), + [315] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_repeat_helper5] = SHIFT(178), + [ts_aux_sym_token2] = SHIFT(314), + [ts_aux_sym_token6] = SHIFT(128), }, - [320] = { - [ts_sym__terminator] = SHIFT(311), - [ts_aux_sym_token11] = SHIFT(308), - [ts_aux_sym_token12] = SHIFT(308), + [316] = { + [ts_sym__terminator] = SHIFT(307), }, - [321] = { - [ts_aux_sym_token4] = SHIFT(304), + [317] = { + [ts_aux_sym_token4] = SHIFT(301), }, - [322] = { + [318] = { [ts_sym__else] = REDUCE(ts_sym_for_statement, 7), [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), @@ -4739,11 +4848,11 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_for_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), }, - [323] = { - [ts_aux_sym_token4] = SHIFT(300), + [319] = { + [ts_aux_sym_token4] = SHIFT(297), }, - [324] = { - [ts_sym__else] = SHIFT(325), + [320] = { + [ts_sym__else] = SHIFT(321), [ts_sym__for] = REDUCE(ts_sym_if_statement, 5), [ts_sym__function] = REDUCE(ts_sym_if_statement, 5), [ts_sym__if] = REDUCE(ts_sym_if_statement, 5), @@ -4759,45 +4868,43 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 5), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 5), }, - [325] = { + [321] = { [ts_sym__for] = SHIFT(1), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(291), - [ts_sym__var] = SHIFT(326), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(331), - [ts_sym_expression_statement] = SHIFT(333), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(333), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(333), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(334), - [ts_sym_statement_block] = SHIFT(333), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(333), - [ts_aux_sym_token1] = SHIFT(335), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(339), + [ts_sym__if] = SHIFT(288), + [ts_sym__var] = SHIFT(322), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(326), + [ts_sym_expression_statement] = SHIFT(328), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(328), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(328), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(329), + [ts_sym_statement_block] = SHIFT(328), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(328), + [ts_aux_sym_token1] = SHIFT(330), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(334), }, - [326] = { - [ts_sym_assignment] = SHIFT(327), - [ts_sym_identifier] = SHIFT(330), + [322] = { + [ts_sym_assignment] = SHIFT(323), + [ts_sym_identifier] = SHIFT(325), }, - [327] = { - [ts_sym__terminator] = SHIFT(328), - [ts_aux_sym_token11] = SHIFT(329), - [ts_aux_sym_token12] = SHIFT(329), + [323] = { + [ts_sym__terminator] = SHIFT(324), }, - [328] = { + [324] = { [ts_sym__for] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__function] = REDUCE(ts_sym_var_declaration, 3), [ts_sym__if] = REDUCE(ts_sym_var_declaration, 3), @@ -4813,36 +4920,16 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_var_declaration, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_var_declaration, 3), }, - [329] = { - [ts_sym__for] = REDUCE(ts_sym__terminator, 1), - [ts_sym__function] = REDUCE(ts_sym__terminator, 1), - [ts_sym__if] = REDUCE(ts_sym__terminator, 1), - [ts_sym__var] = REDUCE(ts_sym__terminator, 1), - [ts_sym_false] = REDUCE(ts_sym__terminator, 1), - [ts_sym_identifier] = REDUCE(ts_sym__terminator, 1), - [ts_sym_null] = REDUCE(ts_sym__terminator, 1), - [ts_sym_number] = REDUCE(ts_sym__terminator, 1), - [ts_sym_string] = REDUCE(ts_sym__terminator, 1), - [ts_sym_true] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token1] = REDUCE(ts_sym__terminator, 1), - [ts_aux_sym_token9] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_end] = REDUCE(ts_sym__terminator, 1), - [ts_builtin_sym_error] = REDUCE(ts_sym__terminator, 1), + [325] = { + [ts_sym__terminator] = SHIFT(324), + [ts_aux_sym_token5] = SHIFT(13), }, - [330] = { - [ts_sym__terminator] = SHIFT(328), - [ts_aux_sym_token11] = SHIFT(329), - [ts_aux_sym_token12] = SHIFT(329), - [ts_aux_sym_token5] = SHIFT(14), + [326] = { + [ts_sym__terminator] = SHIFT(327), + [ts_aux_sym_token3] = SHIFT(17), + [ts_aux_sym_token7] = SHIFT(34), }, - [331] = { - [ts_sym__terminator] = SHIFT(332), - [ts_aux_sym_token11] = SHIFT(329), - [ts_aux_sym_token12] = SHIFT(329), - [ts_aux_sym_token3] = SHIFT(18), - [ts_aux_sym_token7] = SHIFT(36), - }, - [332] = { + [327] = { [ts_sym__for] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__function] = REDUCE(ts_sym_expression_statement, 2), [ts_sym__if] = REDUCE(ts_sym_expression_statement, 2), @@ -4858,7 +4945,7 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_expression_statement, 2), [ts_builtin_sym_error] = REDUCE(ts_sym_expression_statement, 2), }, - [333] = { + [328] = { [ts_sym__for] = REDUCE(ts_sym_statement, 1), [ts_sym__function] = REDUCE(ts_sym_statement, 1), [ts_sym__if] = REDUCE(ts_sym_statement, 1), @@ -4874,7 +4961,7 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_statement, 1), [ts_builtin_sym_error] = REDUCE(ts_sym_statement, 1), }, - [334] = { + [329] = { [ts_sym__for] = REDUCE(ts_sym_if_statement, 7), [ts_sym__function] = REDUCE(ts_sym_if_statement, 7), [ts_sym__if] = REDUCE(ts_sym_if_statement, 7), @@ -4890,41 +4977,41 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_if_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_if_statement, 7), }, - [335] = { + [330] = { [ts_sym__for] = SHIFT(7), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(23), - [ts_sym__var] = SHIFT(29), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(34), - [ts_sym_expression_statement] = SHIFT(38), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(38), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(52), - [ts_sym_if_statement] = SHIFT(38), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(49), - [ts_sym_statement_block] = SHIFT(38), - [ts_sym_string] = SHIFT(53), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(38), - [ts_aux_sym_repeat_helper2] = SHIFT(336), - [ts_aux_sym_token1] = SHIFT(51), - [ts_aux_sym_token2] = SHIFT(56), - [ts_aux_sym_token9] = SHIFT(57), - [ts_builtin_sym_error] = SHIFT(338), + [ts_sym__if] = SHIFT(22), + [ts_sym__var] = SHIFT(28), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(32), + [ts_sym_expression_statement] = SHIFT(36), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(36), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(50), + [ts_sym_if_statement] = SHIFT(36), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(47), + [ts_sym_statement_block] = SHIFT(36), + [ts_sym_string] = SHIFT(51), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(36), + [ts_aux_sym_repeat_helper2] = SHIFT(331), + [ts_aux_sym_token1] = SHIFT(49), + [ts_aux_sym_token2] = SHIFT(54), + [ts_aux_sym_token9] = SHIFT(55), + [ts_builtin_sym_error] = SHIFT(333), }, - [336] = { - [ts_aux_sym_token2] = SHIFT(337), + [331] = { + [ts_aux_sym_token2] = SHIFT(332), }, - [337] = { + [332] = { [ts_sym__for] = REDUCE(ts_sym_statement_block, 3), [ts_sym__function] = REDUCE(ts_sym_statement_block, 3), [ts_sym__if] = REDUCE(ts_sym_statement_block, 3), @@ -4940,23 +5027,19 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_statement_block, 3), [ts_builtin_sym_error] = REDUCE(ts_sym_statement_block, 3), }, - [338] = { - [ts_sym__terminator] = SHIFT(35), - [ts_aux_sym_repeat_helper5] = SHIFT(180), - [ts_aux_sym_token11] = SHIFT(32), - [ts_aux_sym_token12] = SHIFT(32), - [ts_aux_sym_token2] = SHIFT(337), - [ts_aux_sym_token6] = SHIFT(130), + [333] = { + [ts_sym__terminator] = SHIFT(33), + [ts_aux_sym_repeat_helper5] = SHIFT(178), + [ts_aux_sym_token2] = SHIFT(332), + [ts_aux_sym_token6] = SHIFT(128), }, - [339] = { - [ts_sym__terminator] = SHIFT(332), - [ts_aux_sym_token11] = SHIFT(329), - [ts_aux_sym_token12] = SHIFT(329), + [334] = { + [ts_sym__terminator] = SHIFT(327), }, - [340] = { - [ts_aux_sym_token4] = SHIFT(294), + [335] = { + [ts_aux_sym_token4] = SHIFT(291), }, - [341] = { + [336] = { [ts_sym__for] = REDUCE(ts_sym_for_statement, 7), [ts_sym__function] = REDUCE(ts_sym_for_statement, 7), [ts_sym__if] = REDUCE(ts_sym_for_statement, 7), @@ -4972,47 +5055,47 @@ PARSE_TABLE = { [ts_builtin_sym_end] = REDUCE(ts_sym_for_statement, 7), [ts_builtin_sym_error] = REDUCE(ts_sym_for_statement, 7), }, - [342] = { - [ts_aux_sym_token4] = SHIFT(290), + [337] = { + [ts_aux_sym_token4] = SHIFT(287), }, - [343] = { + [338] = { [ts_builtin_sym_end] = ACCEPT_INPUT(), }, - [344] = { + [339] = { [ts_sym__for] = SHIFT(1), [ts_sym__function] = SHIFT(3), - [ts_sym__if] = SHIFT(291), - [ts_sym__var] = SHIFT(326), - [ts_sym_array] = SHIFT(15), - [ts_sym_assignment] = SHIFT(16), - [ts_sym_expression] = SHIFT(331), - [ts_sym_expression_statement] = SHIFT(333), - [ts_sym_false] = SHIFT(15), - [ts_sym_for_statement] = SHIFT(333), - [ts_sym_function_call] = SHIFT(16), - [ts_sym_function_expression] = SHIFT(16), - [ts_sym_identifier] = SHIFT(39), - [ts_sym_if_statement] = SHIFT(333), - [ts_sym_literal] = SHIFT(16), - [ts_sym_null] = SHIFT(15), - [ts_sym_number] = SHIFT(15), - [ts_sym_object] = SHIFT(15), - [ts_sym_property_access] = SHIFT(16), - [ts_sym_statement] = SHIFT(344), - [ts_sym_statement_block] = SHIFT(333), - [ts_sym_string] = SHIFT(15), - [ts_sym_true] = SHIFT(15), - [ts_sym_var_declaration] = SHIFT(333), - [ts_aux_sym_repeat_helper1] = SHIFT(345), - [ts_aux_sym_token1] = SHIFT(335), - [ts_aux_sym_token9] = SHIFT(57), + [ts_sym__if] = SHIFT(288), + [ts_sym__var] = SHIFT(322), + [ts_sym_array] = SHIFT(14), + [ts_sym_assignment] = SHIFT(15), + [ts_sym_expression] = SHIFT(326), + [ts_sym_expression_statement] = SHIFT(328), + [ts_sym_false] = SHIFT(14), + [ts_sym_for_statement] = SHIFT(328), + [ts_sym_function_call] = SHIFT(15), + [ts_sym_function_expression] = SHIFT(15), + [ts_sym_identifier] = SHIFT(37), + [ts_sym_if_statement] = SHIFT(328), + [ts_sym_literal] = SHIFT(15), + [ts_sym_null] = SHIFT(14), + [ts_sym_number] = SHIFT(14), + [ts_sym_object] = SHIFT(14), + [ts_sym_property_access] = SHIFT(15), + [ts_sym_statement] = SHIFT(339), + [ts_sym_statement_block] = SHIFT(328), + [ts_sym_string] = SHIFT(14), + [ts_sym_true] = SHIFT(14), + [ts_sym_var_declaration] = SHIFT(328), + [ts_aux_sym_repeat_helper1] = SHIFT(340), + [ts_aux_sym_token1] = SHIFT(330), + [ts_aux_sym_token9] = SHIFT(55), [ts_builtin_sym_end] = REDUCE(ts_aux_sym_repeat_helper1, 0), - [ts_builtin_sym_error] = SHIFT(339), + [ts_builtin_sym_error] = SHIFT(334), }, - [345] = { + [340] = { [ts_builtin_sym_end] = REDUCE(ts_aux_sym_repeat_helper1, 2), }, - [346] = { + [341] = { [ts_builtin_sym_end] = REDUCE(ts_sym_program, 1), }, }; diff --git a/examples/parsers/json.c b/examples/parsers/json.c index 00fd4625..b344207a 100644 --- a/examples/parsers/json.c +++ b/examples/parsers/json.c @@ -58,68 +58,100 @@ LEX_FN() { START_LEXER(); switch (lex_state) { case 0: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if ((lookahead == '\t') || + (lookahead == '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(0); LEX_ERROR(); case 1: - if (lookahead == ',') - ADVANCE(2); - if (lookahead == '}') - ADVANCE(3); - LEX_ERROR(); + ACCEPT_TOKEN(ts_builtin_sym_end); case 2: - ACCEPT_TOKEN(ts_aux_sym_token3); - case 3: - ACCEPT_TOKEN(ts_aux_sym_token4); - case 4: - if (lookahead == '}') - ADVANCE(3); - LEX_ERROR(); - case 5: - if (lookahead == ',') + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(2); - if (lookahead == ']') - ADVANCE(6); + if (lookahead == ',') + ADVANCE(3); + if (lookahead == '}') + ADVANCE(4); + LEX_ERROR(); + case 3: + ACCEPT_TOKEN(ts_aux_sym_token3); + case 4: + ACCEPT_TOKEN(ts_aux_sym_token4); + case 5: + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(5); + if (lookahead == '}') + ADVANCE(4); LEX_ERROR(); case 6: - ACCEPT_TOKEN(ts_aux_sym_token6); - case 7: - if (lookahead == ']') + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(6); + if (lookahead == ',') + ADVANCE(3); + if (lookahead == ']') + ADVANCE(7); LEX_ERROR(); + case 7: + ACCEPT_TOKEN(ts_aux_sym_token6); case 8: - if (lookahead == '\"') - ADVANCE(9); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(19); - if (lookahead == '[') - ADVANCE(24); - if (lookahead == 'f') - ADVANCE(25); - if (lookahead == 'n') - ADVANCE(30); - if (lookahead == 't') - ADVANCE(34); - if (lookahead == '{') - ADVANCE(38); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(8); + if (lookahead == ']') + ADVANCE(7); LEX_ERROR(); case 9: - if (!((lookahead == '\"') || - (lookahead == '\\'))) + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(9); + if (lookahead == '\"') ADVANCE(10); - if (lookahead == '\\') - ADVANCE(16); - if (']' <= lookahead && lookahead <= '\\') + 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); - if (lookahead == '\"') - ADVANCE(12); if (lookahead == '\\') ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(15); LEX_ERROR(); case 11: if (!((lookahead == '\"') || @@ -129,8 +161,6 @@ LEX_FN() { ADVANCE(12); if (lookahead == '\\') ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(15); LEX_ERROR(); case 12: ACCEPT_TOKEN(ts_sym_string); @@ -140,12 +170,8 @@ LEX_FN() { ADVANCE(11); if (lookahead == '\"') ADVANCE(14); - if ('#' <= lookahead && lookahead <= '\"') - ADVANCE(11); if (lookahead == '\\') ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(15); LEX_ERROR(); case 14: if (!((lookahead == '\"') || @@ -155,69 +181,47 @@ LEX_FN() { ADVANCE(12); if (lookahead == '\\') ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(15); ACCEPT_TOKEN(ts_sym_string); case 15: - if (lookahead == '\"') - ADVANCE(11); - LEX_ERROR(); - case 16: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(11); - if (lookahead == '\"') - ADVANCE(17); - if ('#' <= lookahead && lookahead <= '\"') - ADVANCE(10); - if (lookahead == '\\') - ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') + if (lookahead == '.') + ADVANCE(16); + if ('0' <= lookahead && lookahead <= '9') ADVANCE(15); + ACCEPT_TOKEN(ts_sym_number); + case 16: + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(17); LEX_ERROR(); case 17: - if (!((lookahead == '\"') || - (lookahead == '\\'))) - ADVANCE(11); - if (lookahead == '\"') - ADVANCE(12); - if (lookahead == '\\') - ADVANCE(13); - if (']' <= lookahead && lookahead <= '\\') - ADVANCE(15); - ACCEPT_TOKEN(ts_sym_string); - case 18: - if (lookahead == '\"') - ADVANCE(10); - LEX_ERROR(); - case 19: - if (lookahead == '.') - ADVANCE(20); if ('0' <= lookahead && lookahead <= '9') - ADVANCE(23); + ADVANCE(17); ACCEPT_TOKEN(ts_sym_number); + case 18: + ACCEPT_TOKEN(ts_aux_sym_token5); + case 19: + if (lookahead == 'a') + ADVANCE(20); + LEX_ERROR(); case 20: - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == 'l') ADVANCE(21); LEX_ERROR(); case 21: - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == 's') ADVANCE(22); - ACCEPT_TOKEN(ts_sym_number); + LEX_ERROR(); case 22: - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(22); - ACCEPT_TOKEN(ts_sym_number); - case 23: - if (lookahead == '.') - ADVANCE(20); - if ('0' <= lookahead && lookahead <= '9') + if (lookahead == 'e') ADVANCE(23); - ACCEPT_TOKEN(ts_sym_number); + LEX_ERROR(); + case 23: + ACCEPT_TOKEN(ts_sym_false); case 24: - ACCEPT_TOKEN(ts_aux_sym_token5); + if (lookahead == 'u') + ADVANCE(25); + LEX_ERROR(); case 25: - if (lookahead == 'a') + if (lookahead == 'l') ADVANCE(26); LEX_ERROR(); case 26: @@ -225,102 +229,145 @@ LEX_FN() { ADVANCE(27); LEX_ERROR(); case 27: - if (lookahead == 's') - ADVANCE(28); - LEX_ERROR(); + ACCEPT_TOKEN(ts_sym_null); case 28: - if (lookahead == 'e') + if (lookahead == 'r') ADVANCE(29); LEX_ERROR(); case 29: - ACCEPT_TOKEN(ts_sym_false); - case 30: if (lookahead == 'u') + ADVANCE(30); + LEX_ERROR(); + case 30: + if (lookahead == 'e') ADVANCE(31); LEX_ERROR(); case 31: - if (lookahead == 'l') - ADVANCE(32); - LEX_ERROR(); + ACCEPT_TOKEN(ts_sym_true); case 32: - if (lookahead == 'l') - ADVANCE(33); - LEX_ERROR(); + ACCEPT_TOKEN(ts_aux_sym_token1); case 33: - ACCEPT_TOKEN(ts_sym_null); - case 34: - if (lookahead == 'r') - ADVANCE(35); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(33); + if (lookahead == ':') + ADVANCE(34); LEX_ERROR(); + case 34: + ACCEPT_TOKEN(ts_aux_sym_token2); case 35: - if (lookahead == 'u') - ADVANCE(36); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(35); + if (lookahead == '\"') + ADVANCE(10); + if (lookahead == '}') + ADVANCE(4); LEX_ERROR(); case 36: - if (lookahead == 'e') - ADVANCE(37); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + 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(7); + if (lookahead == 'f') + ADVANCE(19); + if (lookahead == 'n') + ADVANCE(24); + if (lookahead == 't') + ADVANCE(28); + if (lookahead == '{') + ADVANCE(32); LEX_ERROR(); case 37: - ACCEPT_TOKEN(ts_sym_true); + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) + ADVANCE(37); + if (lookahead == '\"') + ADVANCE(10); + LEX_ERROR(); case 38: - ACCEPT_TOKEN(ts_aux_sym_token1); - case 39: - if (lookahead == ':') - ADVANCE(40); - LEX_ERROR(); - case 40: - ACCEPT_TOKEN(ts_aux_sym_token2); - case 41: - if (lookahead == '\"') - ADVANCE(9); - if (lookahead == '}') - ADVANCE(3); - LEX_ERROR(); - case 42: - if (lookahead == '\"') - ADVANCE(9); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(19); - if (lookahead == '[') - ADVANCE(24); - if (lookahead == ']') - ADVANCE(6); - if (lookahead == 'f') - ADVANCE(25); - if (lookahead == 'n') - ADVANCE(30); - if (lookahead == 't') - ADVANCE(34); - if (lookahead == '{') + START_TOKEN(); + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(38); - LEX_ERROR(); - case 43: if (lookahead == '\"') - ADVANCE(9); + ADVANCE(10); + if (lookahead == ',') + ADVANCE(3); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(15); + if (lookahead == ':') + ADVANCE(34); + if (lookahead == '[') + ADVANCE(18); + if (lookahead == ']') + ADVANCE(7); + if (lookahead == 'f') + ADVANCE(19); + if (lookahead == 'n') + ADVANCE(24); + if (lookahead == 't') + ADVANCE(28); + if (lookahead == '{') + ADVANCE(32); + if (lookahead == '}') + ADVANCE(4); LEX_ERROR(); case ts_lex_state_error: - if (lookahead == '\"') - ADVANCE(9); - if (lookahead == ',') - ADVANCE(2); - if ('0' <= lookahead && lookahead <= '9') - ADVANCE(19); - if (lookahead == ':') - ADVANCE(40); - if (lookahead == '[') - ADVANCE(24); - if (lookahead == ']') - ADVANCE(6); - if (lookahead == 'f') - ADVANCE(25); - if (lookahead == 'n') - ADVANCE(30); - if (lookahead == 't') - ADVANCE(34); - if (lookahead == '{') + if (lookahead == '\0') + ADVANCE(1); + if (('\t' <= lookahead && lookahead <= '\n') || + (lookahead == '\r') || + (lookahead == ' ')) ADVANCE(38); - if (lookahead == '}') + if (lookahead == '\"') + ADVANCE(10); + if (lookahead == ',') ADVANCE(3); + if ('0' <= lookahead && lookahead <= '9') + ADVANCE(15); + if (lookahead == ':') + ADVANCE(34); + if (lookahead == '[') + ADVANCE(18); + if (lookahead == ']') + ADVANCE(7); + if (lookahead == 'f') + ADVANCE(19); + if (lookahead == 'n') + ADVANCE(24); + if (lookahead == 't') + ADVANCE(28); + if (lookahead == '{') + ADVANCE(32); + if (lookahead == '}') + ADVANCE(4); LEX_ERROR(); default: LEX_PANIC(); @@ -328,64 +375,64 @@ LEX_FN() { } LEX_STATES = { - [0] = 8, + [0] = 9, [1] = 0, [2] = 0, - [3] = 41, - [4] = 39, - [5] = 8, - [6] = 1, - [7] = 1, - [8] = 4, + [3] = 35, + [4] = 33, + [5] = 9, + [6] = 2, + [7] = 2, + [8] = 5, [9] = 0, - [10] = 43, - [11] = 39, - [12] = 8, - [13] = 1, - [14] = 4, - [15] = 41, - [16] = 39, - [17] = 8, - [18] = 1, - [19] = 4, - [20] = 1, - [21] = 42, - [22] = 5, - [23] = 5, - [24] = 7, - [25] = 1, - [26] = 8, - [27] = 5, - [28] = 7, - [29] = 41, - [30] = 39, - [31] = 8, - [32] = 1, - [33] = 4, - [34] = 5, - [35] = 5, - [36] = 1, - [37] = 4, - [38] = 5, - [39] = 42, - [40] = 5, - [41] = 7, - [42] = 5, - [43] = 5, - [44] = 1, - [45] = 1, - [46] = 1, - [47] = 4, - [48] = 1, - [49] = 1, - [50] = 4, + [10] = 37, + [11] = 33, + [12] = 9, + [13] = 2, + [14] = 5, + [15] = 35, + [16] = 33, + [17] = 9, + [18] = 2, + [19] = 5, + [20] = 2, + [21] = 36, + [22] = 6, + [23] = 6, + [24] = 8, + [25] = 2, + [26] = 9, + [27] = 6, + [28] = 8, + [29] = 35, + [30] = 33, + [31] = 9, + [32] = 2, + [33] = 5, + [34] = 6, + [35] = 6, + [36] = 2, + [37] = 5, + [38] = 6, + [39] = 36, + [40] = 6, + [41] = 8, + [42] = 6, + [43] = 6, + [44] = 2, + [45] = 2, + [46] = 2, + [47] = 5, + [48] = 2, + [49] = 2, + [50] = 5, [51] = 0, - [52] = 1, - [53] = 4, + [52] = 2, + [53] = 5, [54] = 0, - [55] = 42, - [56] = 5, - [57] = 7, + [55] = 36, + [56] = 6, + [57] = 8, [58] = 0, [59] = 0, }; diff --git a/include/tree_sitter/parser.h b/include/tree_sitter/parser.h index 90e7cff1..1d02addb 100644 --- a/include/tree_sitter/parser.h +++ b/include/tree_sitter/parser.h @@ -51,10 +51,11 @@ static ts_tree * ts_lex(ts_lexer *lexer, state_id lex_state) #define START_LEXER() \ char lookahead; \ -ts_lexer_skip_whitespace(lexer); \ -if (!ts_lexer_lookahead_char(lexer)) return ts_tree_make_leaf(ts_builtin_sym_end, 0, 0); \ next_state: \ lookahead = ts_lexer_lookahead_char(lexer); + +#define START_TOKEN() \ +ts_lexer_start_token(lexer); #define ADVANCE(state_index) \ { ts_lexer_advance(lexer); lex_state = state_index; goto next_state; } @@ -73,7 +74,7 @@ static const ts_parse_action ts_parse_actions[ts_state_count][ts_symbol_count] #define EXPORT_PARSER(constructor_name) \ ts_parser constructor_name() { \ - return (ts_parser){ \ + return (ts_parser) { \ .parse_fn = ts_parse, \ .symbol_names = ts_symbol_names, \ .data = ts_lr_parser_make(ts_symbol_count, (const ts_parse_action *)ts_parse_actions, ts_lex_states, hidden_symbol_flags), \ @@ -161,6 +162,10 @@ static void ts_lexer_advance(ts_lexer *lexer) { } } +static void ts_lexer_start_token(ts_lexer *lexer) { + lexer->token_start_position = ts_lexer_position(lexer); +} + static ts_tree * ts_lexer_build_node(ts_lexer *lexer, ts_symbol symbol) { size_t current_position = ts_lexer_position(lexer); size_t size = current_position - lexer->token_start_position; @@ -169,12 +174,6 @@ static ts_tree * ts_lexer_build_node(ts_lexer *lexer, ts_symbol symbol) { return ts_tree_make_leaf(symbol, size, offset); } -static void ts_lexer_skip_whitespace(ts_lexer *lexer) { - while (isspace(ts_lexer_lookahead_char(lexer))) - ts_lexer_advance(lexer); - lexer->token_start_position = ts_lexer_position(lexer); -} - static const state_id ts_lex_state_error = -1; diff --git a/spec/compiler/build_tables/build_tables_spec.cc b/spec/compiler/build_tables/build_tables_spec.cc deleted file mode 100644 index 280509bb..00000000 --- a/spec/compiler/build_tables/build_tables_spec.cc +++ /dev/null @@ -1,80 +0,0 @@ -#include "compiler_spec_helper.h" -#include "compiler/prepared_grammar.h" -#include "compiler/build_tables/build_tables.h" -#include - -using namespace rules; -using build_tables::build_tables; - -static set keys(const map &map) { - set result; - for (auto pair : map) { - result.insert(pair.first); - } - return result; -} - -START_TEST - -describe("building parse and lex tables", []() { - PreparedGrammar grammar({ - { "expression", choice({ - seq({ - sym("term"), - sym("plus"), - sym("term") }), - sym("term") }) }, - { "term", choice({ - sym("variable"), - sym("number"), - seq({ - sym("left-paren"), - sym("expression"), - sym("right-paren") - }) }) } - }, {}); - - PreparedGrammar lex_grammar({ - { "plus", str("+") }, - { "variable", pattern("\\a+") }, - { "number", pattern("\\d+") }, - { "left-paren", str("(") }, - { "right-paren", str(")") } - }, {}); - - ParseTable table; - LexTable lex_table; - - before_each([&]() { - pair tables = build_tables::build_tables(grammar, lex_grammar); - table = tables.first; - lex_table = tables.second; - }); - - function parse_state = [&](size_t index) { - return table.states[index]; - }; - - function lex_state = [&](size_t parse_state_index) { - long index = table.states[parse_state_index].lex_state_id; - return lex_table.states[index]; - }; - - it("has the right starting state", [&]() { - AssertThat(keys(parse_state(0).actions), Equals(set({ - Symbol("expression"), - Symbol("term"), - Symbol("number"), - Symbol("variable"), - Symbol("left-paren"), - }))); - - AssertThat(lex_state(0).expected_inputs(), Equals(set({ - CharacterSet({ '(' }), - CharacterSet({ {'0', '9'} }), - CharacterSet({ {'a', 'z'}, {'A', 'Z'} }), - }))); - }); -}); - -END_TEST diff --git a/spec/compiler/build_tables/check_metadata_spec.cc b/spec/compiler/build_tables/check_metadata_spec.cc new file mode 100644 index 00000000..7032f004 --- /dev/null +++ b/spec/compiler/build_tables/check_metadata_spec.cc @@ -0,0 +1,60 @@ +#include "compiler_spec_helper.h" +#include "compiler/rules/metadata.h" +#include "compiler/build_tables/check_metadata.h" + +using namespace rules; +using namespace build_tables; + +START_TEST + +describe("checking if rules have metadata", []() { + MetadataValue value = MetadataValue(1 << 3); + + it("returns true for a compatible metadata rule", [&]() { + auto rule = make_shared(sym("x"), MetadataValue(value | 1)); + AssertThat(check_metadata(rule, value), IsTrue()); + }); + + it("returns false for an incompatible metadata rule", [&]() { + auto rule = make_shared(sym("x"), MetadataValue(1 << 2)); + AssertThat(check_metadata(rule, value), IsFalse()); + }); + + it("returns false for a non-metadata rule", [&]() { + auto rule = sym("x"); + AssertThat(check_metadata(rule, value), IsFalse()); + }); + + it("returns true for a compatible metadata rule preceded by rules that can be blank", [&]() { + auto rule = seq({ + repeat(sym("x")), + make_shared(sym("x"), MetadataValue(value | 1)), + }); + + AssertThat(check_metadata(rule, value), IsTrue()); + }); + + it("returns true for a choice including a compatible metadata rule", [&]() { + auto rule = choice({ + sym("x"), + make_shared(sym("x"), MetadataValue(value | 1)), + }); + + AssertThat(check_metadata(rule, value), IsTrue()); + }); + + it("returns true for a repetition containing a compatible metadata rule", [&]() { + auto rule = repeat(make_shared(sym("x"), MetadataValue(value | 1))); + AssertThat(check_metadata(rule, value), IsTrue()); + }); + + it("returns true for a metadata rule preceded by rules that cannot be blank", [&]() { + auto rule = seq({ + sym("x"), + make_shared(sym("x"), MetadataValue(value | 1)), + }); + AssertThat(check_metadata(rule, value), IsFalse()); + }); +}); + +END_TEST diff --git a/spec/compiler/build_tables/first_set_spec.cc b/spec/compiler/build_tables/first_set_spec.cc index 922b3685..dbe06512 100644 --- a/spec/compiler/build_tables/first_set_spec.cc +++ b/spec/compiler/build_tables/first_set_spec.cc @@ -1,6 +1,7 @@ #include "compiler_spec_helper.h" #include "compiler/prepared_grammar.h" #include "compiler/build_tables/first_set.h" +#include "compiler/rules/metadata.h" using std::set; using namespace build_tables; @@ -83,6 +84,14 @@ describe("computing FIRST sets", []() { }))); }); }); + + it("ignores metadata rules", [&]() { + auto rule = make_shared(sym("x"), MetadataValue(1)); + + AssertThat(first_set(rule, null_grammar), Equals(set({ + Symbol("x"), + }))); + }); }); END_TEST diff --git a/spec/compiler/build_tables/merge_transitions_spec.cc b/spec/compiler/build_tables/merge_transitions_spec.cc new file mode 100644 index 00000000..f22df29e --- /dev/null +++ b/spec/compiler/build_tables/merge_transitions_spec.cc @@ -0,0 +1,37 @@ +#include "compiler_spec_helper.h" +#include "compiler/build_tables/merge_transitions.h" + +using namespace rules; +using namespace build_tables; + +START_TEST + +describe("merging character set transitions", []() { + typedef map int_map; + + auto bitwise = [](int l, int r) -> int { + return l + r; + }; + + describe("when two of the right transitions intersect one of the left transitions", [&]() { + it("splits the left-hand transition correctly", [&]() { + int_map map1({ + { CharacterSet({ 'a', 'c' }), 1 }, + }); + + int_map map2({ + { CharacterSet({ 'a' }), 2 }, + { CharacterSet({ 'c' }), 4 }, + }); + + AssertThat(merge_char_transitions(map1, map2, bitwise), Equals(int_map({ + { CharacterSet({ 'a' }), 3 }, + { CharacterSet({ 'c' }), 5 }, + }))); + + AssertThat(merge_char_transitions(map2, map1, bitwise), Equals(merge_char_transitions(map1, map2, bitwise))); + }); + }); +}); + +END_TEST \ No newline at end of file diff --git a/spec/compiler/build_tables/rule_can_be_blank_spec.cc b/spec/compiler/build_tables/rule_can_be_blank_spec.cc index 1bee061d..7762b5fe 100644 --- a/spec/compiler/build_tables/rule_can_be_blank_spec.cc +++ b/spec/compiler/build_tables/rule_can_be_blank_spec.cc @@ -1,5 +1,6 @@ #include "compiler_spec_helper.h" #include "compiler/build_tables/rule_can_be_blank.h" +#include "compiler/rules/metadata.h" #include "compiler/prepared_grammar.h" using namespace rules; @@ -45,6 +46,14 @@ describe("checking if rules can be blank", [&]() { rule = seq({ blank(), choice({ sym("x"), blank() }) }); AssertThat(rule_can_be_blank(rule), IsTrue()); }); + + it("ignores metadata rules", [&]() { + rule = make_shared(blank(), rules::MetadataValue(0)); + AssertThat(rule_can_be_blank(rule), IsTrue()); + + rule = make_shared(sym("one"), rules::MetadataValue(0)); + AssertThat(rule_can_be_blank(rule), IsFalse()); + }); describe("checking recursively (by expanding non-terminals)", [&]() { PreparedGrammar grammar({ diff --git a/spec/compiler/build_tables/rule_transitions_spec.cc b/spec/compiler/build_tables/rule_transitions_spec.cc index 869c8d33..7b202443 100644 --- a/spec/compiler/build_tables/rule_transitions_spec.cc +++ b/spec/compiler/build_tables/rule_transitions_spec.cc @@ -171,10 +171,7 @@ describe("rule transitions", []() { CharacterSet({ 'a' }), seq({ character({ 'b' }), - choice({ - rule, - blank() - }) + rule, }) }}))); @@ -182,13 +179,8 @@ describe("rule transitions", []() { AssertThat( char_transitions(rule), Equals(rule_map({ - { - CharacterSet({ 'a' }), - choice({ - rule, - blank() - }) - }}))); + { CharacterSet({ 'a' }), rule } + }))); }); describe("regression tests (somewhat redundant, should maybe be deleted later)", []() { @@ -203,10 +195,7 @@ describe("rule transitions", []() { AssertThat(char_transitions(rule), Equals(rule_map({ { CharacterSet({ '"' }).complement(), seq({ - choice({ - repeat(character({ '"' }, false)), - blank(), - }), + repeat(character({ '"' }, false)), character({ '"' }), }) }, { CharacterSet({ '"' }), blank() }, }))); diff --git a/spec/runtime/languages/javascript/main.txt b/spec/runtime/languages/javascript/main.txt index 05fc55fa..3cbc3874 100644 --- a/spec/runtime/languages/javascript/main.txt +++ b/spec/runtime/languages/javascript/main.txt @@ -1,7 +1,7 @@ ========================================== parses multiple statements ========================================== -var x = {}; +var x = {} firstFunction(x); secondFunction(x); --- diff --git a/src/compiler/build_tables/build_tables.cc b/src/compiler/build_tables/build_tables.cc index b84b288a..dcf33af4 100644 --- a/src/compiler/build_tables/build_tables.cc +++ b/src/compiler/build_tables/build_tables.cc @@ -4,11 +4,16 @@ #include #include "compiler/prepared_grammar.h" #include "compiler/rules/built_in_symbols.h" +#include "compiler/rules/metadata.h" +#include "compiler/rules/repeat.h" +#include "compiler/rules/seq.h" #include "compiler/build_tables/item.h" #include "compiler/build_tables/item_set_closure.h" #include "compiler/build_tables/item_set_transitions.h" #include "compiler/build_tables/first_set.h" +#include "stream_methods.h" + namespace tree_sitter { using std::pair; using std::string; @@ -48,13 +53,20 @@ namespace tree_sitter { } void add_advance_actions(const LexItemSet &item_set, LexStateId state_id) { - for (auto transition : char_transitions(item_set, grammar)) { + auto transitions = char_transitions(item_set, grammar); + for (auto transition : transitions) { CharacterSet rule = transition.first; - LexItemSet item_set = transition.second; - LexStateId new_state_id = add_lex_state(item_set); + LexItemSet new_item_set = transition.second; + LexStateId new_state_id = add_lex_state(new_item_set); lex_table.add_action(state_id, rule, LexAction::Advance(new_state_id)); } } + + void add_token_start(const LexItemSet &item_set, LexStateId state_id) { + for (auto &item : item_set) + if (item.has_metadata(rules::START_TOKEN)) + lex_table.state(state_id).is_token_start = true; + } void add_accept_token_actions(const LexItemSet &item_set, LexStateId state_id) { for (LexItem item : item_set) { @@ -80,23 +92,35 @@ namespace tree_sitter { } } } + + rules::rule_ptr after_separators(rules::rule_ptr rule) { + return rules::Seq::Build({ + make_shared(CharacterSet({ ' ', '\t', '\n', '\r' }).copy()), + make_shared(rule, rules::START_TOKEN) + }); + } + + LexItemSet lex_item_set_for_parse_state(const ParseState &state) { + LexItemSet result; + for (auto &symbol : state.expected_inputs()) + if (lex_grammar.has_definition(symbol)) { + result.insert(LexItem(symbol, after_separators(lex_grammar.rule(symbol)))); + } + result.insert(LexItem(rules::END_OF_INPUT(), after_separators(CharacterSet({ 0 }).copy()))); + return result; + } void assign_lex_state(ParseStateId state_id) { ParseState &state = parse_table.states[state_id]; - LexItemSet item_set; - for (auto &symbol : state.expected_inputs()) { - if (lex_grammar.has_definition(symbol)) - item_set.insert(LexItem(symbol, lex_grammar.rule(symbol))); - } - - state.lex_state_id = add_lex_state(item_set); + state.lex_state_id = add_lex_state(lex_item_set_for_parse_state(state)); } - + LexStateId add_lex_state(const LexItemSet &item_set) { auto state_id = lex_state_id_for_item_set(item_set); if (state_id == NOT_FOUND) { state_id = lex_table.add_state(); lex_state_ids[item_set] = state_id; + add_token_start(item_set, state_id); add_advance_actions(item_set, state_id); add_accept_token_actions(item_set, state_id); } @@ -119,13 +143,14 @@ namespace tree_sitter { void add_error_lex_state() { LexItemSet error_item_set; for (auto &pair : lex_grammar.rules) { - LexItem item(Symbol(pair.first, rules::SymbolTypeNormal), pair.second); + LexItem item(Symbol(pair.first, rules::SymbolTypeNormal), after_separators(pair.second)); error_item_set.insert(item); } for (auto &pair : lex_grammar.aux_rules) { - LexItem item(Symbol(pair.first, rules::SymbolTypeAuxiliary), pair.second); + LexItem item(Symbol(pair.first, rules::SymbolTypeAuxiliary), after_separators(pair.second)); error_item_set.insert(item); } + error_item_set.insert(LexItem(rules::END_OF_INPUT(), after_separators(CharacterSet({ 0 }).copy()))); add_advance_actions(error_item_set, LexTable::ERROR_STATE_ID); add_accept_token_actions(error_item_set, LexTable::ERROR_STATE_ID); } diff --git a/src/compiler/build_tables/check_metadata.cc b/src/compiler/build_tables/check_metadata.cc new file mode 100644 index 00000000..5f0c5ae6 --- /dev/null +++ b/src/compiler/build_tables/check_metadata.cc @@ -0,0 +1,39 @@ +#include "check_metadata.h" +#include "compiler/rules/seq.h" +#include "compiler/rules/choice.h" +#include "compiler/rules/repeat.h" +#include "compiler/rules/visitor.h" +#include "compiler/build_tables/rule_can_be_blank.h" + +namespace tree_sitter { + namespace build_tables { + class HasMetadata : public rules::RuleFn { + rules::MetadataValue metadata_value; + public: + HasMetadata(rules::MetadataValue value) : metadata_value(value) {} + + void visit(const rules::Choice *rule) { + value = apply(rule->left) || apply(rule->right); + } + + void visit(const rules::Repeat *rule) { + value = apply(rule->content); + } + + void visit(const rules::Seq *rule) { + bool result = apply(rule->left); + if (rule_can_be_blank(rule->left)) + result = result || apply(rule->right); + value = result; + } + + void visit(const rules::Metadata *rule) { + value = rule->value & metadata_value; + } + }; + + bool check_metadata(const rules::rule_ptr &rule, rules::MetadataValue value) { + return HasMetadata(value).apply(rule); + } + } +} \ No newline at end of file diff --git a/src/compiler/build_tables/check_metadata.h b/src/compiler/build_tables/check_metadata.h new file mode 100644 index 00000000..810fda3f --- /dev/null +++ b/src/compiler/build_tables/check_metadata.h @@ -0,0 +1,13 @@ +#ifndef COMPILER_BUILD_TABLES_CHECK_METADATA_ +#define COMPILER_BUILD_TABLES_CHECK_METADATA_ + +#include "compiler/rules/rule.h" +#include "compiler/rules/metadata.h" + +namespace tree_sitter { + namespace build_tables { + bool check_metadata(const rules::rule_ptr &rule, rules::MetadataValue value); + } +} + +#endif // COMPILER_BUILD_TABLES_CHECK_METADATA_ diff --git a/src/compiler/build_tables/first_set.cc b/src/compiler/build_tables/first_set.cc index 9a583fac..6b946fbb 100644 --- a/src/compiler/build_tables/first_set.cc +++ b/src/compiler/build_tables/first_set.cc @@ -2,6 +2,7 @@ #include "tree_sitter/compiler.h" #include "compiler/prepared_grammar.h" #include "compiler/build_tables/rule_can_be_blank.h" +#include "compiler/rules/metadata.h" #include "compiler/rules/visitor.h" #include "compiler/rules/seq.h" #include "compiler/rules/choice.h" @@ -34,6 +35,10 @@ namespace tree_sitter { } } } + + void visit(const rules::Metadata *rule) { + value = apply(rule->rule); + } void visit(const rules::Choice *rule) { value = set_union(apply(rule->left), apply(rule->right)); diff --git a/src/compiler/build_tables/item.cc b/src/compiler/build_tables/item.cc index 6679c69b..64794886 100644 --- a/src/compiler/build_tables/item.cc +++ b/src/compiler/build_tables/item.cc @@ -1,5 +1,6 @@ #include "compiler/build_tables/item.h" #include "compiler/build_tables/rule_can_be_blank.h" +#include "compiler/build_tables/check_metadata.h" #include "tree_sitter/compiler.h" namespace tree_sitter { @@ -18,7 +19,11 @@ namespace tree_sitter { bool Item::is_done() const { return rule_can_be_blank(rule); } - + + bool Item::has_metadata(rules::MetadataValue value) const { + return check_metadata(rule, value); + } + ostream& operator<<(ostream &stream, const LexItem &item) { return stream << string("# #include #include "compiler/rules/symbol.h" +#include "compiler/rules/metadata.h" namespace tree_sitter { class Grammar; @@ -12,23 +13,24 @@ namespace tree_sitter { namespace build_tables { class Item { public: - Item(const rules::Symbol &lhs, const rules::rule_ptr rule); + Item(const rules::Symbol &lhs, rules::rule_ptr rule); bool is_done() const; + bool has_metadata(rules::MetadataValue) const; - const rules::Symbol lhs; - const rules::rule_ptr rule; + rules::Symbol lhs; + rules::rule_ptr rule; }; class LexItem : public Item { public: - LexItem(const rules::Symbol &lhs, const rules::rule_ptr rule); + LexItem(const rules::Symbol &lhs, rules::rule_ptr rule); bool operator==(const LexItem &other) const; }; class ParseItem : public Item { public: ParseItem(const rules::Symbol &lhs, - const rules::rule_ptr rule, + rules::rule_ptr rule, const size_t consumed_symbol_count, const rules::Symbol &lookahead_sym); bool operator==(const ParseItem &other) const; diff --git a/src/compiler/build_tables/merge_transitions.h b/src/compiler/build_tables/merge_transitions.h index 707e1e89..9d08518b 100644 --- a/src/compiler/build_tables/merge_transitions.h +++ b/src/compiler/build_tables/merge_transitions.h @@ -50,24 +50,32 @@ namespace tree_sitter { std::function merge_fn) { std::map result(left); for (auto &new_pair : right) { - rules::CharacterSet new_rule = new_pair.first; + rules::CharacterSet new_char_set = new_pair.first; T new_value = new_pair.second; - for (auto &existing_pair : left) { - rules::CharacterSet existing_rule = existing_pair.first; - T existing_value = existing_pair.second; + std::map pairs_to_insert; + + auto iter = result.begin(); + while (iter != result.end()) { + rules::CharacterSet char_set = iter->first; + T value = iter->second; - rules::CharacterSet intersection = existing_rule.remove_set(new_rule); + rules::CharacterSet intersection = char_set.remove_set(new_char_set); if (!intersection.is_empty()) { - result.erase(existing_pair.first); - if (!existing_rule.is_empty()) - result.insert({ existing_rule, existing_value }); - result.insert({ intersection, merge_fn(existing_value, new_value) }); - new_rule.remove_set(intersection); + new_char_set.remove_set(intersection); + if (!char_set.is_empty()) + pairs_to_insert.insert({ char_set, value }); + pairs_to_insert.insert({ intersection, merge_fn(value, new_value) }); + result.erase(iter++); + } else { + ++iter; } } - if (!new_rule.is_empty()) - result.insert({ new_rule, new_pair.second }); + + result.insert(pairs_to_insert.begin(), pairs_to_insert.end()); + + if (!new_char_set.is_empty()) + result.insert({ new_char_set, new_pair.second }); } return result; } diff --git a/src/compiler/build_tables/rule_can_be_blank.cc b/src/compiler/build_tables/rule_can_be_blank.cc index 3849a893..42147bd8 100644 --- a/src/compiler/build_tables/rule_can_be_blank.cc +++ b/src/compiler/build_tables/rule_can_be_blank.cc @@ -7,6 +7,7 @@ #include "compiler/rules/seq.h" #include "compiler/rules/choice.h" #include "compiler/rules/blank.h" +#include "compiler/rules/metadata.h" namespace tree_sitter { using std::set; @@ -33,6 +34,10 @@ namespace tree_sitter { void visit(const rules::Seq *rule) { value = apply(rule->left) && apply(rule->right); } + + void visit(const rules::Metadata *rule) { + value = apply(rule->rule); + } }; class CanBeBlankRecursive : public CanBeBlank { diff --git a/src/compiler/build_tables/rule_transitions.cc b/src/compiler/build_tables/rule_transitions.cc index 332b0aaf..ca49ac6d 100644 --- a/src/compiler/build_tables/rule_transitions.cc +++ b/src/compiler/build_tables/rule_transitions.cc @@ -7,6 +7,7 @@ #include "compiler/rules/seq.h" #include "compiler/rules/string.h" #include "compiler/rules/repeat.h" +#include "compiler/rules/metadata.h" #include "compiler/rules/pattern.h" #include "compiler/rules/character_set.h" #include "compiler/rules/visitor.h" @@ -65,27 +66,32 @@ namespace tree_sitter { } void visit(const rules::Choice *rule) { - this->value = merge_transitions(this->apply(rule->left), - this->apply(rule->right)); + auto left_transitions = this->apply(rule->left); + auto right_transitions = this->apply(rule->right); + this->value = merge_transitions(left_transitions, + right_transitions); } void visit(const rules::Seq *rule) { auto result = map_transitions(this->apply(rule->left), [&](const rule_ptr left_rule) { return rules::Seq::Build({ left_rule, rule->right }); }); - if (rule_can_be_blank(rule->left)) - result = merge_transitions(result, this->apply(rule->right)); + if (rule_can_be_blank(rule->left)) { + auto right_transitions = this->apply(rule->right); + result = merge_transitions(result, right_transitions); + } this->value = result; } void visit(const rules::Repeat *rule) { this->value = map_transitions(this->apply(rule->content), [&](const rule_ptr &value) { - return rules::Seq::Build({ - value, - make_shared(rule->copy(), make_shared()) - }); + return rules::Seq::Build({ value, rule->copy() }); }); } + + void visit(const rules::Metadata *rule) { + this->value = this->apply(rule->rule); + } void visit(const rules::String *rule) { rule_ptr result = make_shared(); diff --git a/src/compiler/generate_code/c_code.cc b/src/compiler/generate_code/c_code.cc index 1dca2819..60f62094 100644 --- a/src/compiler/generate_code/c_code.cc +++ b/src/compiler/generate_code/c_code.cc @@ -145,22 +145,24 @@ namespace tree_sitter { } } - string switch_on_lookahead_char(const LexState &parse_state) { + string code_for_lex_state(const LexState &lex_state) { string result = ""; - auto expected_inputs = parse_state.expected_inputs(); - for (auto pair : parse_state.actions) + auto expected_inputs = lex_state.expected_inputs(); + if (lex_state.is_token_start) + result += "START_TOKEN();" "\n"; + for (auto pair : lex_state.actions) if (!pair.first.is_empty()) result += _if(condition_for_character_rule(pair.first), code_for_lex_actions(pair.second, expected_inputs)); - result += code_for_lex_actions(parse_state.default_action, expected_inputs); + result += code_for_lex_actions(lex_state.default_action, expected_inputs); return result; } string switch_on_lex_state() { string body = ""; for (size_t i = 0; i < lex_table.states.size(); i++) - body += _case(std::to_string(i), switch_on_lookahead_char(lex_table.states[i])); - body += _case("ts_lex_state_error", switch_on_lookahead_char(lex_table.error_state)); + body += _case(std::to_string(i), code_for_lex_state(lex_table.states[i])); + body += _case("ts_lex_state_error", code_for_lex_state(lex_table.error_state)); body += _default("LEX_PANIC();"); return _switch("lex_state", body); } diff --git a/src/compiler/generate_code/helpers.cc b/src/compiler/generate_code/helpers.cc index a380e1ce..ac6f7563 100644 --- a/src/compiler/generate_code/helpers.cc +++ b/src/compiler/generate_code/helpers.cc @@ -35,6 +35,10 @@ namespace tree_sitter { return "\\\""; case '\n': return "\\n"; + case '\r': + return "\\r"; + case '\t': + return "\\t"; case '\\': return "\\\\"; default: diff --git a/src/compiler/lex_table.cc b/src/compiler/lex_table.cc index a7163cf8..273e2c45 100644 --- a/src/compiler/lex_table.cc +++ b/src/compiler/lex_table.cc @@ -57,19 +57,19 @@ namespace tree_sitter { return states.size() - 1; } - LexState & state(LexTable *table, LexStateId id) { + LexState & LexTable::state(LexStateId id) { if (id < 0) - return table->error_state; + return error_state; else - return table->states[id]; + return states[id]; } void LexTable::add_action(LexStateId id, CharacterSet match, LexAction action) { - state(this, id).actions[match] = action; + state(id).actions[match] = action; } void LexTable::add_default_action(LexStateId id, LexAction action) { - state(this, id).default_action = action; + state(id).default_action = action; } const LexStateId LexTable::ERROR_STATE_ID = -1; diff --git a/src/compiler/lex_table.h b/src/compiler/lex_table.h index 8f30ed55..15808ead 100644 --- a/src/compiler/lex_table.h +++ b/src/compiler/lex_table.h @@ -49,6 +49,7 @@ namespace tree_sitter { std::map actions; LexAction default_action; std::set expected_inputs() const; + bool is_token_start; }; typedef int64_t LexStateId; @@ -59,6 +60,7 @@ namespace tree_sitter { LexStateId add_state(); void add_action(LexStateId state_id, rules::CharacterSet rule, LexAction action); void add_default_action(LexStateId state_id, LexAction action); + LexState & state(LexStateId state_id); std::vector states; LexState error_state; diff --git a/src/compiler/rules/character_range.cc b/src/compiler/rules/character_range.cc index f964a647..7b5e614e 100644 --- a/src/compiler/rules/character_range.cc +++ b/src/compiler/rules/character_range.cc @@ -26,6 +26,12 @@ namespace tree_sitter { switch (input) { case '\0': return ""; + case '\n': + return "\\n"; + case '\r': + return "\\r"; + case '\t': + return "\\t"; case MAX_CHAR: return ""; default: diff --git a/src/compiler/rules/metadata.cc b/src/compiler/rules/metadata.cc new file mode 100644 index 00000000..92860d76 --- /dev/null +++ b/src/compiler/rules/metadata.cc @@ -0,0 +1,34 @@ +#include "compiler/rules/metadata.h" +#include +#include "compiler/rules/visitor.h" +#include + +namespace tree_sitter { + using std::hash; + using std::make_shared; + + namespace rules { + Metadata::Metadata(rule_ptr rule, MetadataValue value) : rule(rule), value(value) {} + + bool Metadata::operator==(const Rule &rule) const { + auto other = dynamic_cast(&rule); + return other && other->value == value && other->rule->operator==(*this->rule); + } + + size_t Metadata::hash_code() const { + return hash()(value); + } + + rule_ptr Metadata::copy() const { + return make_shared(rule, value); + } + + std::string Metadata::to_string() const { + return "#to_string() + ">"; + } + + void Metadata::accept(Visitor *visitor) const { + visitor->visit(this); + } + } +} \ No newline at end of file diff --git a/src/compiler/rules/metadata.h b/src/compiler/rules/metadata.h new file mode 100644 index 00000000..bd3dae5f --- /dev/null +++ b/src/compiler/rules/metadata.h @@ -0,0 +1,30 @@ +#ifndef COMPILER_RULES_METADATA_H_ +#define COMPILER_RULES_METADATA_H_ + +#include +#include "compiler/rules/rule.h" + +namespace tree_sitter { + namespace rules { + typedef enum { + NONE = 0, + START_TOKEN = 1, + } MetadataValue; + + class Metadata : public Rule { + public: + Metadata(rule_ptr rule, MetadataValue value); + + bool operator==(const Rule& other) const; + size_t hash_code() const; + rule_ptr copy() const; + std::string to_string() const; + void accept(Visitor *visitor) const; + + const rule_ptr rule; + const MetadataValue value; + }; + } +} + +#endif // COMPILER_RULES_METADATA_H_ diff --git a/src/compiler/rules/pattern.cc b/src/compiler/rules/pattern.cc index 696955e4..9e102754 100644 --- a/src/compiler/rules/pattern.cc +++ b/src/compiler/rules/pattern.cc @@ -7,6 +7,7 @@ #include "compiler/rules/repeat.h" #include "compiler/rules/character_set.h" #include "compiler/rules/blank.h" +#include "compiler/util/string_helpers.h" namespace tree_sitter { namespace rules { @@ -183,7 +184,7 @@ namespace tree_sitter { } string Pattern::to_string() const { - return string("#"; + return string("#"; } void Pattern::accept(Visitor *visitor) const { diff --git a/src/compiler/rules/visitor.cc b/src/compiler/rules/visitor.cc index f29d1b5d..5eb19066 100644 --- a/src/compiler/rules/visitor.cc +++ b/src/compiler/rules/visitor.cc @@ -6,6 +6,7 @@ #include "compiler/rules/choice.h" #include "compiler/rules/seq.h" #include "compiler/rules/string.h" +#include "compiler/rules/metadata.h" #include "compiler/rules/pattern.h" #include "compiler/rules/repeat.h" @@ -15,6 +16,7 @@ namespace tree_sitter { void Visitor::visit(const Blank *rule) { default_visit(rule); } void Visitor::visit(const CharacterSet *rule) { default_visit(rule); } void Visitor::visit(const Choice *rule) { default_visit(rule); } + void Visitor::visit(const Metadata *rule) { default_visit(rule); } void Visitor::visit(const Pattern *rule) { default_visit(rule); } void Visitor::visit(const Repeat *rule) { default_visit(rule); } void Visitor::visit(const Seq *rule) { default_visit(rule); } @@ -36,5 +38,9 @@ namespace tree_sitter { void IdentityRuleFn::visit(const Repeat *rule) { value = std::make_shared(apply(rule->content)); } + + void IdentityRuleFn::visit(const Metadata *rule) { + value = std::make_shared(apply(rule->rule), rule->value); + } } } \ No newline at end of file diff --git a/src/compiler/rules/visitor.h b/src/compiler/rules/visitor.h index 001ef978..ec9d237d 100644 --- a/src/compiler/rules/visitor.h +++ b/src/compiler/rules/visitor.h @@ -13,6 +13,7 @@ namespace tree_sitter { class Seq; class String; class Pattern; + class Metadata; class Visitor { public: @@ -20,6 +21,7 @@ namespace tree_sitter { virtual void visit(const Blank *rule); virtual void visit(const CharacterSet *rule); virtual void visit(const Choice *rule); + virtual void visit(const Metadata *rule); virtual void visit(const Pattern *rule); virtual void visit(const Repeat *rule); virtual void visit(const Seq *rule); @@ -41,8 +43,9 @@ namespace tree_sitter { class IdentityRuleFn : public RuleFn { virtual void default_visit(const Rule *rule); - virtual void visit(const Seq *rule); virtual void visit(const Choice *rule); + virtual void visit(const Metadata *rule); + virtual void visit(const Seq *rule); virtual void visit(const Repeat *rule); }; }