diff --git a/grammar.js b/grammar.js index 1521a3b..98f75c5 100644 --- a/grammar.js +++ b/grammar.js @@ -9,19 +9,9 @@ module.exports = grammar({ statement: $ => seq($.expression, $.close), expression: $ => choice( - $.identifier, - prec(1, $.value), - prec(2, seq( - choice( - $.value, - $.identifier, - ), - $.operator, - choice( - $.value, - $.identifier, - $.expression, - ))), + prec(0, $.value), + prec(1, $.identifier), + prec(2, $.operation), ), close: $ => ";", @@ -64,5 +54,11 @@ module.exports = grammar({ '-', '=', ), + + operation: $ => prec.left(seq( + $.expression, + $.operator, + $.expression, + )), } }); diff --git a/src/grammar.json b/src/grammar.json index 4270f97..76b19a5 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -29,59 +29,28 @@ "expression": { "type": "CHOICE", "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, { "type": "PREC", - "value": 1, + "value": 0, "content": { "type": "SYMBOL", "name": "value" } }, + { + "type": "PREC", + "value": 1, + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, { "type": "PREC", "value": 2, "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "value" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - { - "type": "SYMBOL", - "name": "operator" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "value" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] - } - ] + "type": "SYMBOL", + "name": "operation" } } ] @@ -213,6 +182,27 @@ "value": "=" } ] + }, + "operation": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "operator" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } } }, "extras": [ diff --git a/src/node-types.json b/src/node-types.json index 8032742..c343dee 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -9,19 +9,15 @@ "named": true, "fields": {}, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "expression", - "named": true - }, { "type": "identifier", "named": true }, { - "type": "operator", + "type": "operation", "named": true }, { @@ -46,6 +42,25 @@ ] } }, + { + "type": "operation", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expression", + "named": true + }, + { + "type": "operator", + "named": true + } + ] + } + }, { "type": "operator", "named": true, diff --git a/src/parser.c b/src/parser.c index 329b1ad..141d278 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,9 +6,9 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 22 -#define LARGE_STATE_COUNT 10 -#define SYMBOL_COUNT 25 +#define STATE_COUNT 21 +#define LARGE_STATE_COUNT 8 +#define SYMBOL_COUNT 26 #define ALIAS_COUNT 0 #define TOKEN_COUNT 16 #define EXTERNAL_TOKEN_COUNT 0 @@ -39,8 +39,9 @@ enum { sym_boolean = 20, sym_list = 21, sym_operator = 22, - aux_sym_source_repeat1 = 23, - aux_sym_list_repeat1 = 24, + sym_operation = 23, + aux_sym_source_repeat1 = 24, + aux_sym_list_repeat1 = 25, }; static const char * const ts_symbol_names[] = { @@ -67,6 +68,7 @@ static const char * const ts_symbol_names[] = { [sym_boolean] = "boolean", [sym_list] = "list", [sym_operator] = "operator", + [sym_operation] = "operation", [aux_sym_source_repeat1] = "source_repeat1", [aux_sym_list_repeat1] = "list_repeat1", }; @@ -95,6 +97,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_boolean] = sym_boolean, [sym_list] = sym_list, [sym_operator] = sym_operator, + [sym_operation] = sym_operation, [aux_sym_source_repeat1] = aux_sym_source_repeat1, [aux_sym_list_repeat1] = aux_sym_list_repeat1, }; @@ -192,6 +195,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_operation] = { + .visible = true, + .named = true, + }, [aux_sym_source_repeat1] = { .visible = false, .named = false, @@ -232,7 +239,6 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [18] = 18, [19] = 19, [20] = 20, - [21] = 21, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -478,10 +484,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1] = {.lex_state = 0}, [2] = {.lex_state = 0}, [3] = {.lex_state = 0}, - [4] = {.lex_state = 9}, + [4] = {.lex_state = 0}, [5] = {.lex_state = 9}, [6] = {.lex_state = 9}, - [7] = {.lex_state = 0}, + [7] = {.lex_state = 9}, [8] = {.lex_state = 9}, [9] = {.lex_state = 9}, [10] = {.lex_state = 9}, @@ -495,7 +501,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [18] = {.lex_state = 0}, [19] = {.lex_state = 0}, [20] = {.lex_state = 0}, - [21] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -518,13 +523,14 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_EQ] = ACTIONS(1), }, [1] = { - [sym_source] = STATE(21), - [sym_statement] = STATE(3), - [sym_expression] = STATE(20), - [sym_value] = STATE(16), - [sym_boolean] = STATE(4), - [sym_list] = STATE(4), - [aux_sym_source_repeat1] = STATE(3), + [sym_source] = STATE(20), + [sym_statement] = STATE(2), + [sym_expression] = STATE(15), + [sym_value] = STATE(17), + [sym_boolean] = STATE(6), + [sym_list] = STATE(6), + [sym_operation] = STATE(18), + [aux_sym_source_repeat1] = STATE(2), [ts_builtin_sym_end] = ACTIONS(3), [sym_identifier] = ACTIONS(5), [sym_float] = ACTIONS(7), @@ -537,31 +543,14 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LPAREN] = ACTIONS(13), }, [2] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(20), - [sym_value] = STATE(16), - [sym_boolean] = STATE(4), - [sym_list] = STATE(4), - [aux_sym_source_repeat1] = STATE(2), + [sym_statement] = STATE(3), + [sym_expression] = STATE(15), + [sym_value] = STATE(17), + [sym_boolean] = STATE(6), + [sym_list] = STATE(6), + [sym_operation] = STATE(18), + [aux_sym_source_repeat1] = STATE(3), [ts_builtin_sym_end] = ACTIONS(15), - [sym_identifier] = ACTIONS(17), - [sym_float] = ACTIONS(20), - [sym_integer] = ACTIONS(23), - [sym_string] = ACTIONS(20), - [sym_function] = ACTIONS(20), - [sym_empty] = ACTIONS(20), - [anon_sym_true] = ACTIONS(26), - [anon_sym_false] = ACTIONS(26), - [anon_sym_LPAREN] = ACTIONS(29), - }, - [3] = { - [sym_statement] = STATE(2), - [sym_expression] = STATE(20), - [sym_value] = STATE(16), - [sym_boolean] = STATE(4), - [sym_list] = STATE(4), - [aux_sym_source_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(32), [sym_identifier] = ACTIONS(5), [sym_float] = ACTIONS(7), [sym_integer] = ACTIONS(9), @@ -572,7 +561,42 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), }, + [3] = { + [sym_statement] = STATE(3), + [sym_expression] = STATE(15), + [sym_value] = STATE(17), + [sym_boolean] = STATE(6), + [sym_list] = STATE(6), + [sym_operation] = STATE(18), + [aux_sym_source_repeat1] = STATE(3), + [ts_builtin_sym_end] = ACTIONS(17), + [sym_identifier] = ACTIONS(19), + [sym_float] = ACTIONS(22), + [sym_integer] = ACTIONS(25), + [sym_string] = ACTIONS(22), + [sym_function] = ACTIONS(22), + [sym_empty] = ACTIONS(22), + [anon_sym_true] = ACTIONS(28), + [anon_sym_false] = ACTIONS(28), + [anon_sym_LPAREN] = ACTIONS(31), + }, [4] = { + [sym_expression] = STATE(16), + [sym_value] = STATE(17), + [sym_boolean] = STATE(6), + [sym_list] = STATE(6), + [sym_operation] = STATE(18), + [sym_identifier] = ACTIONS(5), + [sym_float] = ACTIONS(7), + [sym_integer] = ACTIONS(9), + [sym_string] = ACTIONS(7), + [sym_function] = ACTIONS(7), + [sym_empty] = ACTIONS(7), + [anon_sym_true] = ACTIONS(11), + [anon_sym_false] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + }, + [5] = { [sym_close] = ACTIONS(34), [sym_float] = ACTIONS(34), [sym_integer] = ACTIONS(36), @@ -588,7 +612,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DASH] = ACTIONS(34), [anon_sym_EQ] = ACTIONS(34), }, - [5] = { + [6] = { [sym_close] = ACTIONS(38), [sym_float] = ACTIONS(38), [sym_integer] = ACTIONS(40), @@ -604,7 +628,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DASH] = ACTIONS(38), [anon_sym_EQ] = ACTIONS(38), }, - [6] = { + [7] = { [sym_close] = ACTIONS(42), [sym_float] = ACTIONS(42), [sym_integer] = ACTIONS(44), @@ -620,67 +644,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DASH] = ACTIONS(42), [anon_sym_EQ] = ACTIONS(42), }, - [7] = { - [sym_expression] = STATE(19), - [sym_value] = STATE(18), - [sym_boolean] = STATE(4), - [sym_list] = STATE(4), - [sym_identifier] = ACTIONS(46), - [sym_float] = ACTIONS(7), - [sym_integer] = ACTIONS(9), - [sym_string] = ACTIONS(7), - [sym_function] = ACTIONS(7), - [sym_empty] = ACTIONS(7), - [anon_sym_true] = ACTIONS(11), - [anon_sym_false] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - }, - [8] = { - [sym_value] = STATE(11), - [sym_boolean] = STATE(4), - [sym_list] = STATE(4), - [aux_sym_list_repeat1] = STATE(8), - [sym_float] = ACTIONS(48), - [sym_integer] = ACTIONS(51), - [sym_string] = ACTIONS(48), - [sym_function] = ACTIONS(48), - [sym_empty] = ACTIONS(48), - [anon_sym_true] = ACTIONS(54), - [anon_sym_false] = ACTIONS(54), - [anon_sym_LPAREN] = ACTIONS(57), - [anon_sym_RPAREN] = ACTIONS(60), - }, - [9] = { - [sym_value] = STATE(11), - [sym_boolean] = STATE(4), - [sym_list] = STATE(4), - [aux_sym_list_repeat1] = STATE(8), - [sym_float] = ACTIONS(7), - [sym_integer] = ACTIONS(9), - [sym_string] = ACTIONS(7), - [sym_function] = ACTIONS(7), - [sym_empty] = ACTIONS(7), - [anon_sym_true] = ACTIONS(62), - [anon_sym_false] = ACTIONS(62), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_RPAREN] = ACTIONS(64), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 7, + [0] = 8, ACTIONS(9), 1, sym_integer, ACTIONS(13), 1, anon_sym_LPAREN, + ACTIONS(48), 1, + anon_sym_RPAREN, STATE(9), 1, aux_sym_list_repeat1, STATE(11), 1, sym_value, - ACTIONS(62), 2, + ACTIONS(46), 2, anon_sym_true, anon_sym_false, - STATE(4), 2, + STATE(6), 2, sym_boolean, sym_list, ACTIONS(7), 4, @@ -688,13 +669,55 @@ static const uint16_t ts_small_parse_table[] = { sym_string, sym_function, sym_empty, - [27] = 3, - ACTIONS(70), 1, + [30] = 8, + ACTIONS(53), 1, + sym_integer, + ACTIONS(59), 1, + anon_sym_LPAREN, + ACTIONS(62), 1, + anon_sym_RPAREN, + STATE(9), 1, + aux_sym_list_repeat1, + STATE(11), 1, + sym_value, + ACTIONS(56), 2, + anon_sym_true, + anon_sym_false, + STATE(6), 2, + sym_boolean, + sym_list, + ACTIONS(50), 4, + sym_float, + sym_string, + sym_function, + sym_empty, + [60] = 7, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + STATE(8), 1, + aux_sym_list_repeat1, + STATE(11), 1, + sym_value, + ACTIONS(46), 2, + anon_sym_true, + anon_sym_false, + STATE(6), 2, + sym_boolean, + sym_list, + ACTIONS(7), 4, + sym_float, + sym_string, + sym_function, + sym_empty, + [87] = 3, + ACTIONS(68), 1, anon_sym_COMMA, - ACTIONS(68), 2, + ACTIONS(66), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(66), 7, + ACTIONS(64), 7, sym_float, sym_string, sym_function, @@ -702,36 +725,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, anon_sym_RPAREN, - [44] = 2, - ACTIONS(72), 5, + [104] = 2, + ACTIONS(70), 5, ts_builtin_sym_end, sym_float, sym_string, sym_function, sym_empty, + ACTIONS(72), 5, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + [119] = 2, + ACTIONS(76), 4, + sym_float, + sym_string, + sym_function, + sym_empty, ACTIONS(74), 5, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_LPAREN, - [59] = 2, - ACTIONS(78), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - ACTIONS(76), 5, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - [73] = 2, - ACTIONS(80), 2, + [133] = 2, + ACTIONS(78), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(60), 7, + ACTIONS(62), 7, sym_float, sym_string, sym_function, @@ -739,111 +762,104 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, anon_sym_RPAREN, - [87] = 3, - ACTIONS(82), 1, + [147] = 3, + ACTIONS(80), 1, sym_close, - STATE(7), 1, + STATE(4), 1, sym_operator, - ACTIONS(84), 3, + ACTIONS(82), 3, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ, - [99] = 3, - ACTIONS(82), 1, - sym_close, - STATE(7), 1, + [159] = 2, + STATE(4), 1, sym_operator, - ACTIONS(84), 3, + ACTIONS(84), 4, + sym_close, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ, - [111] = 3, - ACTIONS(86), 1, + [169] = 1, + ACTIONS(86), 4, sym_close, - STATE(7), 1, - sym_operator, - ACTIONS(84), 3, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ, - [123] = 3, - ACTIONS(86), 1, + [176] = 1, + ACTIONS(86), 4, sym_close, - STATE(7), 1, - sym_operator, - ACTIONS(84), 3, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ, - [135] = 1, - ACTIONS(86), 1, + [183] = 1, + ACTIONS(86), 4, sym_close, - [139] = 1, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ, + [190] = 1, ACTIONS(88), 1, - sym_close, - [143] = 1, - ACTIONS(90), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(10)] = 0, - [SMALL_STATE(11)] = 27, - [SMALL_STATE(12)] = 44, - [SMALL_STATE(13)] = 59, - [SMALL_STATE(14)] = 73, - [SMALL_STATE(15)] = 87, - [SMALL_STATE(16)] = 99, - [SMALL_STATE(17)] = 111, - [SMALL_STATE(18)] = 123, - [SMALL_STATE(19)] = 135, - [SMALL_STATE(20)] = 139, - [SMALL_STATE(21)] = 143, + [SMALL_STATE(8)] = 0, + [SMALL_STATE(9)] = 30, + [SMALL_STATE(10)] = 60, + [SMALL_STATE(11)] = 87, + [SMALL_STATE(12)] = 104, + [SMALL_STATE(13)] = 119, + [SMALL_STATE(14)] = 133, + [SMALL_STATE(15)] = 147, + [SMALL_STATE(16)] = 159, + [SMALL_STATE(17)] = 169, + [SMALL_STATE(18)] = 176, + [SMALL_STATE(19)] = 183, + [SMALL_STATE(20)] = 190, }; 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 = false}}, SHIFT(15), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), + [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), - [17] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(15), - [20] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(4), - [23] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(4), - [26] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(5), - [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(10), - [32] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), - [34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [36] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [38] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [40] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), + [15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), + [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), + [19] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(19), + [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(6), + [25] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(6), + [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(5), + [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(10), + [34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), + [36] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), + [38] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), + [40] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), [44] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [46] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(4), - [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(4), - [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(5), - [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(10), - [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [62] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 2), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 2), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 3), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [90] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [46] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [48] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(6), + [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(6), + [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(5), + [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(10), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), + [66] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), + [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 2), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 2), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [88] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus