From 4b0c658a2b6f282c03363de536580e93744a1385 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 29 Sep 2023 03:10:14 -0400 Subject: [PATCH] Add comment tests; Rewrite statment tests --- corpus/comments.txt | 35 ++++ corpus/statements.txt | 98 +++++++----- grammar.js | 2 +- src/grammar.json | 38 +++-- src/parser.c | 359 ++++++++++++++++++++++-------------------- 5 files changed, 312 insertions(+), 220 deletions(-) create mode 100644 corpus/comments.txt diff --git a/corpus/comments.txt b/corpus/comments.txt new file mode 100644 index 0000000..60e7fd3 --- /dev/null +++ b/corpus/comments.txt @@ -0,0 +1,35 @@ +================== +Full Line Comments +================== + +# comment +#comment +# also a comment! + +--- + +(source + (comment) + (comment) + (comment)) + +================== +Partial Line Comments +================== + +# comment # 1; +#comment# "one"; + +--- + +(source + (comment) + (statement + (closed_statment + (value + (integer)))) + (comment) + (statement + (closed_statment + (value + (string))))) diff --git a/corpus/statements.txt b/corpus/statements.txt index a22a303..276c752 100644 --- a/corpus/statements.txt +++ b/corpus/statements.txt @@ -9,20 +9,23 @@ x; --- (source - (statement - (expression - (value - (integer))) - (close)) - (statement - (expression - (value - (string))) - (close)) - (statement - (expression - (identifier)) - (close))) + (statement + (closed_statement + (expression + (value + (integer))) + (close))) + (statement + (closed_statement + (expression + (value + (string))) + (close))) + (statement + (closed_statement + (expression + (identifier)) + (close)))) ================== Simple Assignment @@ -34,20 +37,29 @@ y = "one"; --- (source - (statement - (expression - (identifier) - (operator) - (value - (integer))) - (close)) - (statement - (expression - (identifier) - (operator) - (value - (string))) - (close))) + (statement + (closed_statement + (expression + (operation + (expression + (identifier)) + (operator) + (expression + (value + (integer))))) + (close))) + (statement + (closed_statement + (expression + (operation + (expression + (identifier)) + (operator) + (expression + (value + (string))))) + (close)))) + ================== Complex Assignment @@ -58,14 +70,22 @@ x = 1 + 1; --- (source - (statement - (expression - (identifier) - (operator) - (expression - (value - (integer)) - (operator) - (value - (integer)))) - (close))) + (statement + (closed_statement + (expression + (operation + (expression + (operation + (expression + (identifier)) + (operator) + (expression + (value + (integer))))) + (operator) + (expression + (value + (integer))))) + (close)))) + + diff --git a/grammar.js b/grammar.js index 1cdcdae..e1b02f4 100644 --- a/grammar.js +++ b/grammar.js @@ -7,7 +7,7 @@ module.exports = grammar({ $.statement, )), - comment: $ => seq('#', /.*/), + comment: $ => prec.right(seq('#', /.*/, optional('#'))), statement: $ => choice( $.closed_statement, diff --git a/src/grammar.json b/src/grammar.json index 555cb9b..9801b0b 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -18,17 +18,33 @@ } }, "comment": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "#" - }, - { - "type": "PATTERN", - "value": ".*" - } - ] + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "PATTERN", + "value": ".*" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "BLANK" + } + ] + } + ] + } }, "statement": { "type": "CHOICE", diff --git a/src/parser.c b/src/parser.c index 26a21c5..2675ba4 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,7 +6,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 29 +#define STATE_COUNT 30 #define LARGE_STATE_COUNT 6 #define SYMBOL_COUNT 31 #define ALIAS_COUNT 0 @@ -267,21 +267,22 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [11] = 11, [12] = 12, [13] = 13, - [14] = 13, - [15] = 15, + [14] = 14, + [15] = 13, [16] = 16, [17] = 16, [18] = 18, [19] = 19, [20] = 20, [21] = 21, - [22] = 9, - [23] = 8, - [24] = 11, - [25] = 25, + [22] = 22, + [23] = 6, + [24] = 7, + [25] = 8, [26] = 26, [27] = 27, [28] = 28, + [29] = 29, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -557,14 +558,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [18] = {.lex_state = 0}, [19] = {.lex_state = 0}, [20] = {.lex_state = 0}, - [21] = {.lex_state = 9}, + [21] = {.lex_state = 0}, [22] = {.lex_state = 9}, [23] = {.lex_state = 9}, [24] = {.lex_state = 9}, [25] = {.lex_state = 9}, - [26] = {.lex_state = 0}, - [27] = {.lex_state = 13}, - [28] = {.lex_state = 0}, + [26] = {.lex_state = 9}, + [27] = {.lex_state = 0}, + [28] = {.lex_state = 13}, + [29] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -588,16 +590,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_EQ] = ACTIONS(1), }, [1] = { - [sym_source] = STATE(28), + [sym_source] = STATE(29), [sym_comment] = STATE(3), [sym_statement] = STATE(3), [sym_closed_statement] = STATE(18), [sym_open_statement] = STATE(18), - [sym_expression] = STATE(4), - [sym_value] = STATE(6), - [sym_boolean] = STATE(9), - [sym_list] = STATE(9), - [sym_operation] = STATE(7), + [sym_expression] = STATE(5), + [sym_value] = STATE(9), + [sym_boolean] = STATE(7), + [sym_list] = STATE(7), + [sym_operation] = STATE(10), [aux_sym_source_repeat1] = STATE(3), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_POUND] = ACTIONS(5), @@ -616,11 +618,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_statement] = STATE(2), [sym_closed_statement] = STATE(18), [sym_open_statement] = STATE(18), - [sym_expression] = STATE(4), - [sym_value] = STATE(6), - [sym_boolean] = STATE(9), - [sym_list] = STATE(9), - [sym_operation] = STATE(7), + [sym_expression] = STATE(5), + [sym_value] = STATE(9), + [sym_boolean] = STATE(7), + [sym_list] = STATE(7), + [sym_operation] = STATE(10), [aux_sym_source_repeat1] = STATE(2), [ts_builtin_sym_end] = ACTIONS(17), [anon_sym_POUND] = ACTIONS(19), @@ -639,11 +641,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_statement] = STATE(2), [sym_closed_statement] = STATE(18), [sym_open_statement] = STATE(18), - [sym_expression] = STATE(4), - [sym_value] = STATE(6), - [sym_boolean] = STATE(9), - [sym_list] = STATE(9), - [sym_operation] = STATE(7), + [sym_expression] = STATE(5), + [sym_value] = STATE(9), + [sym_boolean] = STATE(7), + [sym_list] = STATE(7), + [sym_operation] = STATE(10), [aux_sym_source_repeat1] = STATE(2), [ts_builtin_sym_end] = ACTIONS(37), [anon_sym_POUND] = ACTIONS(5), @@ -661,37 +663,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_operator] = STATE(12), [ts_builtin_sym_end] = ACTIONS(39), [anon_sym_POUND] = ACTIONS(39), - [sym_close] = ACTIONS(41), - [sym_identifier] = ACTIONS(43), + [sym_close] = ACTIONS(39), + [sym_identifier] = ACTIONS(41), [sym_float] = ACTIONS(39), - [sym_integer] = ACTIONS(43), + [sym_integer] = ACTIONS(41), [sym_string] = ACTIONS(39), [sym_function] = ACTIONS(39), [sym_empty] = ACTIONS(39), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_LPAREN] = ACTIONS(43), - [anon_sym_PLUS] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(45), - [anon_sym_EQ] = ACTIONS(45), + [anon_sym_true] = ACTIONS(41), + [anon_sym_false] = ACTIONS(41), + [anon_sym_LPAREN] = ACTIONS(41), + [anon_sym_PLUS] = ACTIONS(39), + [anon_sym_DASH] = ACTIONS(39), + [anon_sym_EQ] = ACTIONS(39), }, [5] = { [sym_operator] = STATE(12), - [ts_builtin_sym_end] = ACTIONS(47), - [anon_sym_POUND] = ACTIONS(47), - [sym_close] = ACTIONS(47), - [sym_identifier] = ACTIONS(49), - [sym_float] = ACTIONS(47), - [sym_integer] = ACTIONS(49), - [sym_string] = ACTIONS(47), - [sym_function] = ACTIONS(47), - [sym_empty] = ACTIONS(47), - [anon_sym_true] = ACTIONS(49), - [anon_sym_false] = ACTIONS(49), - [anon_sym_LPAREN] = ACTIONS(49), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_EQ] = ACTIONS(47), + [ts_builtin_sym_end] = ACTIONS(43), + [anon_sym_POUND] = ACTIONS(43), + [sym_close] = ACTIONS(45), + [sym_identifier] = ACTIONS(47), + [sym_float] = ACTIONS(43), + [sym_integer] = ACTIONS(47), + [sym_string] = ACTIONS(43), + [sym_function] = ACTIONS(43), + [sym_empty] = ACTIONS(43), + [anon_sym_true] = ACTIONS(47), + [anon_sym_false] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_EQ] = ACTIONS(49), }, }; @@ -715,24 +717,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_EQ, [20] = 2, - ACTIONS(53), 5, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - ACTIONS(51), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [40] = 2, ACTIONS(57), 5, sym_identifier, sym_integer, @@ -750,7 +734,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ, - [60] = 2, + [40] = 2, ACTIONS(61), 5, sym_identifier, sym_integer, @@ -768,14 +752,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ, - [80] = 2, - ACTIONS(53), 5, + [60] = 2, + ACTIONS(65), 5, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_LPAREN, - ACTIONS(51), 10, + ACTIONS(63), 10, + ts_builtin_sym_end, + anon_sym_POUND, + sym_close, + sym_float, + sym_string, + sym_function, + sym_empty, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ, + [80] = 2, + ACTIONS(65), 5, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + ACTIONS(63), 10, ts_builtin_sym_end, anon_sym_POUND, sym_close, @@ -811,16 +813,16 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(15), 1, anon_sym_LPAREN, - STATE(5), 1, + STATE(4), 1, sym_expression, - STATE(6), 1, + STATE(9), 1, sym_value, - STATE(7), 1, + STATE(10), 1, sym_operation, ACTIONS(13), 2, anon_sym_true, anon_sym_false, - STATE(9), 2, + STATE(7), 2, sym_boolean, sym_list, ACTIONS(9), 4, @@ -835,14 +837,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(75), 1, anon_sym_RPAREN, - STATE(15), 1, + STATE(14), 1, aux_sym_list_repeat1, - STATE(21), 1, + STATE(22), 1, sym_value, ACTIONS(71), 2, anon_sym_true, anon_sym_false, - STATE(22), 2, + STATE(24), 2, sym_boolean, sym_list, ACTIONS(67), 4, @@ -851,45 +853,45 @@ static const uint16_t ts_small_parse_table[] = { sym_function, sym_empty, [183] = 8, - ACTIONS(69), 1, + ACTIONS(80), 1, sym_integer, - ACTIONS(73), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(77), 1, + ACTIONS(89), 1, anon_sym_RPAREN, - STATE(15), 1, + STATE(14), 1, aux_sym_list_repeat1, - STATE(21), 1, + STATE(22), 1, sym_value, - ACTIONS(71), 2, + ACTIONS(83), 2, anon_sym_true, anon_sym_false, - STATE(22), 2, + STATE(24), 2, sym_boolean, sym_list, - ACTIONS(67), 4, + ACTIONS(77), 4, sym_float, sym_string, sym_function, sym_empty, [213] = 8, - ACTIONS(82), 1, + ACTIONS(69), 1, sym_integer, - ACTIONS(88), 1, + ACTIONS(73), 1, anon_sym_LPAREN, ACTIONS(91), 1, anon_sym_RPAREN, - STATE(15), 1, + STATE(14), 1, aux_sym_list_repeat1, - STATE(21), 1, + STATE(22), 1, sym_value, - ACTIONS(85), 2, + ACTIONS(71), 2, anon_sym_true, anon_sym_false, - STATE(22), 2, + STATE(24), 2, sym_boolean, sym_list, - ACTIONS(79), 4, + ACTIONS(67), 4, sym_float, sym_string, sym_function, @@ -899,14 +901,14 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(73), 1, anon_sym_LPAREN, - STATE(14), 1, + STATE(15), 1, aux_sym_list_repeat1, - STATE(21), 1, + STATE(22), 1, sym_value, ACTIONS(71), 2, anon_sym_true, anon_sym_false, - STATE(22), 2, + STATE(24), 2, sym_boolean, sym_list, ACTIONS(67), 4, @@ -921,12 +923,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, STATE(13), 1, aux_sym_list_repeat1, - STATE(21), 1, + STATE(22), 1, sym_value, ACTIONS(71), 2, anon_sym_true, anon_sym_false, - STATE(22), 2, + STATE(24), 2, sym_boolean, sym_list, ACTIONS(67), 4, @@ -977,12 +979,27 @@ static const uint16_t ts_small_parse_table[] = { sym_function, sym_empty, [345] = 3, - ACTIONS(109), 1, + ACTIONS(107), 1, + anon_sym_POUND, + ACTIONS(105), 5, + ts_builtin_sym_end, + sym_float, + sym_string, + sym_function, + sym_empty, + ACTIONS(109), 5, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + [363] = 3, + ACTIONS(115), 1, anon_sym_COMMA, - ACTIONS(107), 2, + ACTIONS(113), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(105), 7, + ACTIONS(111), 7, sym_float, sym_string, sym_function, @@ -990,11 +1007,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, anon_sym_RPAREN, - [362] = 2, - ACTIONS(61), 2, + [380] = 2, + ACTIONS(53), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(59), 8, + ACTIONS(51), 8, sym_float, sym_string, sym_function, @@ -1003,7 +1020,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_false, anon_sym_COMMA, anon_sym_RPAREN, - [377] = 2, + [395] = 2, ACTIONS(57), 2, sym_integer, anon_sym_LPAREN, @@ -1016,11 +1033,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_false, anon_sym_COMMA, anon_sym_RPAREN, - [392] = 2, - ACTIONS(65), 2, + [410] = 2, + ACTIONS(61), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(63), 8, + ACTIONS(59), 8, sym_float, sym_string, sym_function, @@ -1029,11 +1046,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_false, anon_sym_COMMA, anon_sym_RPAREN, - [407] = 2, - ACTIONS(111), 2, + [425] = 2, + ACTIONS(117), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(91), 7, + ACTIONS(89), 7, sym_float, sym_string, sym_function, @@ -1041,23 +1058,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, anon_sym_RPAREN, - [421] = 2, - ACTIONS(115), 4, + [439] = 2, + ACTIONS(121), 4, sym_float, sym_string, sym_function, sym_empty, - ACTIONS(113), 5, + ACTIONS(119), 5, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_LPAREN, - [435] = 1, - ACTIONS(117), 1, + [453] = 1, + ACTIONS(123), 1, aux_sym_comment_token1, - [439] = 1, - ACTIONS(119), 1, + [457] = 1, + ACTIONS(125), 1, ts_builtin_sym_end, }; @@ -1078,72 +1095,76 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(19)] = 313, [SMALL_STATE(20)] = 329, [SMALL_STATE(21)] = 345, - [SMALL_STATE(22)] = 362, - [SMALL_STATE(23)] = 377, - [SMALL_STATE(24)] = 392, - [SMALL_STATE(25)] = 407, - [SMALL_STATE(26)] = 421, - [SMALL_STATE(27)] = 435, - [SMALL_STATE(28)] = 439, + [SMALL_STATE(22)] = 363, + [SMALL_STATE(23)] = 380, + [SMALL_STATE(24)] = 395, + [SMALL_STATE(25)] = 410, + [SMALL_STATE(26)] = 425, + [SMALL_STATE(27)] = 439, + [SMALL_STATE(28)] = 453, + [SMALL_STATE(29)] = 457, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), - [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(27), - [22] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(10), - [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(9), - [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(9), + [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(28), + [22] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(11), + [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7), + [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7), [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(8), [34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(16), [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), - [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [43] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), - [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), - [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), + [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), + [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [47] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), + [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), + [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(22), - [82] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(22), - [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(23), - [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(17), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [77] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(24), + [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(24), + [83] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(25), + [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(17), + [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), + [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), - [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), - [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), + [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3), + [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 3), [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_closed_statement, 2), [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_closed_statement, 2), - [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), - [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), - [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), - [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [119] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), + [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), + [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), + [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), + [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), + [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), + [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), + [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [125] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus