diff --git a/grammar.js b/grammar.js index 1626362..9f6edcf 100644 --- a/grammar.js +++ b/grammar.js @@ -9,12 +9,11 @@ module.exports = grammar({ conflicts: $ => [ [$.body], [$.object_elem, $.variable_expr], + [$.attr_splat], + [$.full_splat], ], - extras: $ => [ - $.comment, - /\s/, - ], + extras: $ => [$.comment, /\s/], rules: { config_file: $ => $.body, @@ -58,9 +57,9 @@ module.exports = grammar({ $.variable_expr, // $.function_call, // $.for_expr, - // seq($.expr_term, $.index), - // seq($.expr_term, $.get_attr), - // seq($.expr_term, $.splat), + seq($.expr_term, $.index), + seq($.expr_term, $.get_attr), + seq($.expr_term, $.splat), seq('(', $.expression, ')'), ), @@ -108,6 +107,15 @@ module.exports = grammar({ $.expression, ), + index: $ => seq('[', $.expression, ']'), + + get_attr: $ => seq('.', $.identifier), + + splat: $ => choice($.attr_splat, $.full_splat), + + attr_splat: $ => seq('.', '*', repeat($.get_attr)), + full_splat: $ => seq('[', '*', ']', repeat(choice($.get_attr, $.index))), + variable_expr: $ => $.identifier, // http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890 diff --git a/src/grammar.json b/src/grammar.json index 4e58cba..b02421a 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -152,6 +152,45 @@ "type": "SYMBOL", "name": "variable_expr" }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expr_term" + }, + { + "type": "SYMBOL", + "name": "index" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expr_term" + }, + { + "type": "SYMBOL", + "name": "get_attr" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expr_term" + }, + { + "type": "SYMBOL", + "name": "splat" + } + ] + }, { "type": "SEQ", "members": [ @@ -382,6 +421,102 @@ } ] }, + "index": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "get_attr": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "splat": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "attr_splat" + }, + { + "type": "SYMBOL", + "name": "full_splat" + } + ] + }, + "attr_splat": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "get_attr" + } + } + ] + }, + "full_splat": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "]" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "get_attr" + }, + { + "type": "SYMBOL", + "name": "index" + } + ] + } + } + ] + }, "variable_expr": { "type": "SYMBOL", "name": "identifier" @@ -455,6 +590,12 @@ [ "object_elem", "variable_expr" + ], + [ + "attr_splat" + ], + [ + "full_splat" ] ], "precedences": [], diff --git a/src/node-types.json b/src/node-types.json index 75f2c28..6871497 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1,4 +1,19 @@ [ + { + "type": "attr_splat", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "get_attr", + "named": true + } + ] + } + }, { "type": "attribute", "named": true, @@ -122,21 +137,37 @@ "named": true, "fields": {}, "children": { - "multiple": false, + "multiple": true, "required": true, "types": [ { "type": "collection_value", "named": true }, + { + "type": "expr_term", + "named": true + }, { "type": "expression", "named": true }, + { + "type": "get_attr", + "named": true + }, + { + "type": "index", + "named": true + }, { "type": "literal_value", "named": true }, + { + "type": "splat", + "named": true + }, { "type": "variable_expr", "named": true @@ -159,6 +190,55 @@ ] } }, + { + "type": "full_splat", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "get_attr", + "named": true + }, + { + "type": "index", + "named": true + } + ] + } + }, + { + "type": "get_attr", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "index", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expression", + "named": true + } + ] + } + }, { "type": "literal_value", "named": true, @@ -220,6 +300,25 @@ ] } }, + { + "type": "splat", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "attr_splat", + "named": true + }, + { + "type": "full_splat", + "named": true + } + ] + } + }, { "type": "string_lit", "named": true, @@ -267,10 +366,18 @@ "type": ")", "named": false }, + { + "type": "*", + "named": false + }, { "type": ",", "named": false }, + { + "type": ".", + "named": false + }, { "type": ":", "named": false diff --git a/src/parser.c b/src/parser.c index 039e7ca..e2224c1 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 13 -#define STATE_COUNT 54 -#define LARGE_STATE_COUNT 5 -#define SYMBOL_COUNT 38 +#define STATE_COUNT 70 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 47 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 19 +#define TOKEN_COUNT 21 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 1 #define MAX_ALIAS_SEQUENCE_LENGTH 5 @@ -34,26 +34,35 @@ enum { anon_sym_COMMA = 15, anon_sym_RBRACK = 16, anon_sym_COLON = 17, - sym_comment = 18, - sym_config_file = 19, - sym_body = 20, - sym_attribute = 21, - sym_block = 22, - sym_expression = 23, - sym_expr_term = 24, - sym_literal_value = 25, - sym_string_lit = 26, - sym_bool_lit = 27, - sym_collection_value = 28, - sym_tuple = 29, - sym_object = 30, - sym_object_elem = 31, - sym_variable_expr = 32, - aux_sym_body_repeat1 = 33, - aux_sym_block_repeat1 = 34, - aux_sym_string_lit_repeat1 = 35, - aux_sym_tuple_repeat1 = 36, - aux_sym_object_repeat1 = 37, + anon_sym_DOT = 18, + anon_sym_STAR = 19, + sym_comment = 20, + sym_config_file = 21, + sym_body = 22, + sym_attribute = 23, + sym_block = 24, + sym_expression = 25, + sym_expr_term = 26, + sym_literal_value = 27, + sym_string_lit = 28, + sym_bool_lit = 29, + sym_collection_value = 30, + sym_tuple = 31, + sym_object = 32, + sym_object_elem = 33, + sym_index = 34, + sym_get_attr = 35, + sym_splat = 36, + sym_attr_splat = 37, + sym_full_splat = 38, + sym_variable_expr = 39, + aux_sym_body_repeat1 = 40, + aux_sym_block_repeat1 = 41, + aux_sym_string_lit_repeat1 = 42, + aux_sym_tuple_repeat1 = 43, + aux_sym_object_repeat1 = 44, + aux_sym_attr_splat_repeat1 = 45, + aux_sym_full_splat_repeat1 = 46, }; static const char * const ts_symbol_names[] = { @@ -75,6 +84,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_COMMA] = ",", [anon_sym_RBRACK] = "]", [anon_sym_COLON] = ":", + [anon_sym_DOT] = ".", + [anon_sym_STAR] = "*", [sym_comment] = "comment", [sym_config_file] = "config_file", [sym_body] = "body", @@ -89,12 +100,19 @@ static const char * const ts_symbol_names[] = { [sym_tuple] = "tuple", [sym_object] = "object", [sym_object_elem] = "object_elem", + [sym_index] = "index", + [sym_get_attr] = "get_attr", + [sym_splat] = "splat", + [sym_attr_splat] = "attr_splat", + [sym_full_splat] = "full_splat", [sym_variable_expr] = "variable_expr", [aux_sym_body_repeat1] = "body_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym_string_lit_repeat1] = "string_lit_repeat1", [aux_sym_tuple_repeat1] = "tuple_repeat1", [aux_sym_object_repeat1] = "object_repeat1", + [aux_sym_attr_splat_repeat1] = "attr_splat_repeat1", + [aux_sym_full_splat_repeat1] = "full_splat_repeat1", }; static const TSSymbol ts_symbol_map[] = { @@ -116,6 +134,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_DOT] = anon_sym_DOT, + [anon_sym_STAR] = anon_sym_STAR, [sym_comment] = sym_comment, [sym_config_file] = sym_config_file, [sym_body] = sym_body, @@ -130,12 +150,19 @@ static const TSSymbol ts_symbol_map[] = { [sym_tuple] = sym_tuple, [sym_object] = sym_object, [sym_object_elem] = sym_object_elem, + [sym_index] = sym_index, + [sym_get_attr] = sym_get_attr, + [sym_splat] = sym_splat, + [sym_attr_splat] = sym_attr_splat, + [sym_full_splat] = sym_full_splat, [sym_variable_expr] = sym_variable_expr, [aux_sym_body_repeat1] = aux_sym_body_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym_string_lit_repeat1] = aux_sym_string_lit_repeat1, [aux_sym_tuple_repeat1] = aux_sym_tuple_repeat1, [aux_sym_object_repeat1] = aux_sym_object_repeat1, + [aux_sym_attr_splat_repeat1] = aux_sym_attr_splat_repeat1, + [aux_sym_full_splat_repeat1] = aux_sym_full_splat_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -211,6 +238,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, [sym_comment] = { .visible = true, .named = true, @@ -267,6 +302,26 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_index] = { + .visible = true, + .named = true, + }, + [sym_get_attr] = { + .visible = true, + .named = true, + }, + [sym_splat] = { + .visible = true, + .named = true, + }, + [sym_attr_splat] = { + .visible = true, + .named = true, + }, + [sym_full_splat] = { + .visible = true, + .named = true, + }, [sym_variable_expr] = { .visible = true, .named = true, @@ -291,6 +346,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_attr_splat_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_full_splat_repeat1] = { + .visible = false, + .named = false, + }, }; enum { @@ -1868,10 +1931,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 0: if (eof) ADVANCE(10); if (lookahead == '"') ADVANCE(30); - if (lookahead == '#') ADVANCE(44); + if (lookahead == '#') ADVANCE(46); if (lookahead == '(') ADVANCE(25); if (lookahead == ')') ADVANCE(26); + if (lookahead == '*') ADVANCE(44); if (lookahead == ',') ADVANCE(40); + if (lookahead == '.') ADVANCE(43); if (lookahead == '/') ADVANCE(2); if (lookahead == ':') ADVANCE(42); if (lookahead == '=') ADVANCE(11); @@ -1903,11 +1968,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 2: if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(44); + if (lookahead == '/') ADVANCE(46); END_STATE(); case 3: if (lookahead == '*') ADVANCE(3); - if (lookahead == '/') ADVANCE(43); + if (lookahead == '/') ADVANCE(45); if (lookahead != 0) ADVANCE(4); END_STATE(); case 4: @@ -1931,12 +1996,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 9: if (eof) ADVANCE(10); if (lookahead == '"') ADVANCE(30); - if (lookahead == '#') ADVANCE(44); + if (lookahead == '#') ADVANCE(46); if (lookahead == ')') ADVANCE(26); + if (lookahead == '*') ADVANCE(44); if (lookahead == ',') ADVANCE(40); + if (lookahead == '.') ADVANCE(43); if (lookahead == '/') ADVANCE(2); if (lookahead == ':') ADVANCE(42); if (lookahead == '=') ADVANCE(11); + if (lookahead == '[') ADVANCE(39); if (lookahead == ']') ADVANCE(41); if (lookahead == '{') ADVANCE(12); if (lookahead == '}') ADVANCE(13); @@ -2054,12 +2122,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 33: ACCEPT_TOKEN(aux_sym_string_lit_token1); if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(44); + if (lookahead == '/') ADVANCE(46); END_STATE(); case 34: ACCEPT_TOKEN(aux_sym_string_lit_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(44); + lookahead != '\n') ADVANCE(46); END_STATE(); case 35: ACCEPT_TOKEN(aux_sym_string_lit_token2); @@ -2089,12 +2157,18 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 43: - ACCEPT_TOKEN(sym_comment); + ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 44: + ACCEPT_TOKEN(anon_sym_STAR); + END_STATE(); + case 45: + ACCEPT_TOKEN(sym_comment); + END_STATE(); + case 46: ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(44); + lookahead != '\n') ADVANCE(46); END_STATE(); default: return false; @@ -2111,8 +2185,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [6] = {.lex_state = 0}, [7] = {.lex_state = 0}, [8] = {.lex_state = 0}, - [9] = {.lex_state = 9}, - [10] = {.lex_state = 9}, + [9] = {.lex_state = 0}, + [10] = {.lex_state = 0}, [11] = {.lex_state = 9}, [12] = {.lex_state = 9}, [13] = {.lex_state = 9}, @@ -2133,29 +2207,45 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [28] = {.lex_state = 9}, [29] = {.lex_state = 9}, [30] = {.lex_state = 9}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, - [33] = {.lex_state = 1}, - [34] = {.lex_state = 0}, + [31] = {.lex_state = 9}, + [32] = {.lex_state = 9}, + [33] = {.lex_state = 9}, + [34] = {.lex_state = 9}, [35] = {.lex_state = 9}, - [36] = {.lex_state = 0}, + [36] = {.lex_state = 9}, [37] = {.lex_state = 9}, [38] = {.lex_state = 9}, - [39] = {.lex_state = 0}, - [40] = {.lex_state = 0}, + [39] = {.lex_state = 9}, + [40] = {.lex_state = 9}, [41] = {.lex_state = 9}, - [42] = {.lex_state = 0}, - [43] = {.lex_state = 0}, - [44] = {.lex_state = 0}, + [42] = {.lex_state = 9}, + [43] = {.lex_state = 1}, + [44] = {.lex_state = 1}, [45] = {.lex_state = 0}, - [46] = {.lex_state = 0}, + [46] = {.lex_state = 1}, [47] = {.lex_state = 0}, [48] = {.lex_state = 0}, [49] = {.lex_state = 0}, - [50] = {.lex_state = 0}, - [51] = {.lex_state = 0}, + [50] = {.lex_state = 9}, + [51] = {.lex_state = 9}, [52] = {.lex_state = 0}, - [53] = {.lex_state = 0}, + [53] = {.lex_state = 9}, + [54] = {.lex_state = 9}, + [55] = {.lex_state = 0}, + [56] = {.lex_state = 0}, + [57] = {.lex_state = 0}, + [58] = {.lex_state = 0}, + [59] = {.lex_state = 9}, + [60] = {.lex_state = 0}, + [61] = {.lex_state = 0}, + [62] = {.lex_state = 0}, + [63] = {.lex_state = 0}, + [64] = {.lex_state = 0}, + [65] = {.lex_state = 9}, + [66] = {.lex_state = 0}, + [67] = {.lex_state = 0}, + [68] = {.lex_state = 0}, + [69] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2177,88 +2267,97 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), [sym_comment] = ACTIONS(3), }, [1] = { - [sym_config_file] = STATE(52), - [sym_body] = STATE(50), - [sym_attribute] = STATE(23), - [sym_block] = STATE(23), - [aux_sym_body_repeat1] = STATE(23), + [sym_config_file] = STATE(62), + [sym_body] = STATE(69), + [sym_attribute] = STATE(37), + [sym_block] = STATE(37), + [aux_sym_body_repeat1] = STATE(37), [sym_identifier] = ACTIONS(5), [sym_comment] = ACTIONS(3), }, - [2] = { - [sym_expression] = STATE(46), - [sym_expr_term] = STATE(18), - [sym_literal_value] = STATE(19), - [sym_string_lit] = STATE(11), - [sym_bool_lit] = STATE(11), - [sym_collection_value] = STATE(19), - [sym_tuple] = STATE(20), - [sym_object] = STATE(20), - [sym_object_elem] = STATE(34), - [sym_variable_expr] = STATE(19), - [anon_sym_LBRACE] = ACTIONS(7), - [anon_sym_RBRACE] = ACTIONS(9), - [sym_identifier] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [sym_numeric_lit] = ACTIONS(15), - [anon_sym_DQUOTE] = ACTIONS(17), - [anon_sym_true] = ACTIONS(19), - [anon_sym_false] = ACTIONS(19), - [sym_null_lit] = ACTIONS(21), - [anon_sym_LBRACK] = ACTIONS(23), - [sym_comment] = ACTIONS(3), - }, - [3] = { - [sym_expression] = STATE(46), - [sym_expr_term] = STATE(18), - [sym_literal_value] = STATE(19), - [sym_string_lit] = STATE(11), - [sym_bool_lit] = STATE(11), - [sym_collection_value] = STATE(19), - [sym_tuple] = STATE(20), - [sym_object] = STATE(20), - [sym_object_elem] = STATE(45), - [sym_variable_expr] = STATE(19), - [anon_sym_LBRACE] = ACTIONS(7), - [sym_identifier] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [sym_numeric_lit] = ACTIONS(15), - [anon_sym_DQUOTE] = ACTIONS(17), - [anon_sym_true] = ACTIONS(19), - [anon_sym_false] = ACTIONS(19), - [sym_null_lit] = ACTIONS(21), - [anon_sym_LBRACK] = ACTIONS(23), - [sym_comment] = ACTIONS(3), - }, - [4] = { - [sym_expression] = STATE(36), - [sym_expr_term] = STATE(18), - [sym_literal_value] = STATE(19), - [sym_string_lit] = STATE(11), - [sym_bool_lit] = STATE(11), - [sym_collection_value] = STATE(19), - [sym_tuple] = STATE(20), - [sym_object] = STATE(20), - [sym_variable_expr] = STATE(19), - [anon_sym_LBRACE] = ACTIONS(7), - [sym_identifier] = ACTIONS(25), - [anon_sym_LPAREN] = ACTIONS(13), - [sym_numeric_lit] = ACTIONS(15), - [anon_sym_DQUOTE] = ACTIONS(17), - [anon_sym_true] = ACTIONS(19), - [anon_sym_false] = ACTIONS(19), - [sym_null_lit] = ACTIONS(21), - [anon_sym_LBRACK] = ACTIONS(23), - [anon_sym_RBRACK] = ACTIONS(27), - [sym_comment] = ACTIONS(3), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 14, + [0] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(7), 1, + anon_sym_LBRACE, + ACTIONS(9), 1, + anon_sym_RBRACE, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + sym_numeric_lit, + ACTIONS(17), 1, + anon_sym_DQUOTE, + ACTIONS(21), 1, + sym_null_lit, + ACTIONS(23), 1, + anon_sym_LBRACK, + STATE(11), 1, + sym_expr_term, + STATE(52), 1, + sym_object_elem, + STATE(61), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(20), 2, + sym_string_lit, + sym_bool_lit, + STATE(23), 2, + sym_tuple, + sym_object, + STATE(22), 3, + sym_literal_value, + sym_collection_value, + sym_variable_expr, + [54] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(7), 1, + anon_sym_LBRACE, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + sym_numeric_lit, + ACTIONS(17), 1, + anon_sym_DQUOTE, + ACTIONS(21), 1, + sym_null_lit, + ACTIONS(23), 1, + anon_sym_LBRACK, + STATE(11), 1, + sym_expr_term, + STATE(57), 1, + sym_object_elem, + STATE(61), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(20), 2, + sym_string_lit, + sym_bool_lit, + STATE(23), 2, + sym_tuple, + sym_object, + STATE(22), 3, + sym_literal_value, + sym_collection_value, + sym_variable_expr, + [105] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2275,24 +2374,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(25), 1, sym_identifier, - STATE(18), 1, + ACTIONS(27), 1, + anon_sym_STAR, + STATE(11), 1, + sym_expr_term, + STATE(67), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(20), 2, + sym_string_lit, + sym_bool_lit, + STATE(23), 2, + sym_tuple, + sym_object, + STATE(22), 3, + sym_literal_value, + sym_collection_value, + sym_variable_expr, + [156] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(7), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + sym_numeric_lit, + ACTIONS(17), 1, + anon_sym_DQUOTE, + ACTIONS(21), 1, + sym_null_lit, + ACTIONS(23), 1, + anon_sym_LBRACK, + ACTIONS(25), 1, + sym_identifier, + ACTIONS(29), 1, + anon_sym_RBRACK, + STATE(11), 1, sym_expr_term, STATE(47), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(11), 2, + STATE(20), 2, sym_string_lit, sym_bool_lit, - STATE(20), 2, + STATE(23), 2, sym_tuple, sym_object, - STATE(19), 3, + STATE(22), 3, sym_literal_value, sym_collection_value, sym_variable_expr, - [48] = 14, + [207] = 14, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2309,24 +2446,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(25), 1, sym_identifier, - STATE(18), 1, + STATE(11), 1, sym_expr_term, - STATE(44), 1, + STATE(58), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(11), 2, + STATE(20), 2, sym_string_lit, sym_bool_lit, - STATE(20), 2, + STATE(23), 2, sym_tuple, sym_object, - STATE(19), 3, + STATE(22), 3, sym_literal_value, sym_collection_value, sym_variable_expr, - [96] = 14, + [255] = 14, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2343,24 +2480,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(25), 1, sym_identifier, - STATE(18), 1, + STATE(11), 1, sym_expr_term, - STATE(38), 1, + STATE(50), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(11), 2, + STATE(20), 2, sym_string_lit, sym_bool_lit, - STATE(20), 2, + STATE(23), 2, sym_tuple, sym_object, - STATE(19), 3, + STATE(22), 3, sym_literal_value, sym_collection_value, sym_variable_expr, - [144] = 14, + [303] = 14, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2377,55 +2514,106 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(25), 1, sym_identifier, - STATE(18), 1, + STATE(11), 1, sym_expr_term, - STATE(53), 1, + STATE(60), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(11), 2, + STATE(20), 2, sym_string_lit, sym_bool_lit, - STATE(20), 2, + STATE(23), 2, sym_tuple, sym_object, - STATE(19), 3, + STATE(22), 3, sym_literal_value, sym_collection_value, sym_variable_expr, - [192] = 2, + [351] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(29), 10, - ts_builtin_sym_end, - anon_sym_EQ, + ACTIONS(7), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + sym_numeric_lit, + ACTIONS(17), 1, anon_sym_DQUOTE, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [208] = 2, + ACTIONS(21), 1, + sym_null_lit, + ACTIONS(23), 1, + anon_sym_LBRACK, + ACTIONS(25), 1, + sym_identifier, + STATE(11), 1, + sym_expr_term, + STATE(63), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(20), 2, + sym_string_lit, + sym_bool_lit, + STATE(23), 2, + sym_tuple, + sym_object, + STATE(22), 3, + sym_literal_value, + sym_collection_value, + sym_variable_expr, + [399] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(31), 10, - ts_builtin_sym_end, - anon_sym_EQ, + ACTIONS(7), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + sym_numeric_lit, + ACTIONS(17), 1, anon_sym_DQUOTE, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [224] = 2, + ACTIONS(21), 1, + sym_null_lit, + ACTIONS(23), 1, + anon_sym_LBRACK, + ACTIONS(25), 1, + sym_identifier, + STATE(11), 1, + sym_expr_term, + STATE(67), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(20), 2, + sym_string_lit, + sym_bool_lit, + STATE(23), 2, + sym_tuple, + sym_object, + STATE(22), 3, + sym_literal_value, + sym_collection_value, + sym_variable_expr, + [447] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 8, + ACTIONS(33), 1, + anon_sym_LBRACK, + ACTIONS(35), 1, + anon_sym_DOT, + STATE(30), 2, + sym_attr_splat, + sym_full_splat, + STATE(21), 3, + sym_index, + sym_get_attr, + sym_splat, + ACTIONS(31), 8, ts_builtin_sym_end, anon_sym_EQ, anon_sym_RBRACE, @@ -2434,21 +2622,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - [238] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(35), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [252] = 2, + [476] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(39), 1, + anon_sym_LBRACK, + ACTIONS(42), 1, + anon_sym_DOT, + STATE(14), 3, + sym_index, + sym_get_attr, + aux_sym_full_splat_repeat1, ACTIONS(37), 8, ts_builtin_sym_end, anon_sym_EQ, @@ -2458,45 +2642,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - [266] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(39), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [280] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(41), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [294] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(43), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [308] = 2, + [501] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(47), 1, + anon_sym_LBRACK, + ACTIONS(50), 1, + anon_sym_DOT, + STATE(13), 3, + sym_index, + sym_get_attr, + aux_sym_full_splat_repeat1, ACTIONS(45), 8, ts_builtin_sym_end, anon_sym_EQ, @@ -2506,45 +2662,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - [322] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(47), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [336] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(49), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [350] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 8, - ts_builtin_sym_end, - anon_sym_EQ, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - [364] = 2, + [526] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(55), 1, + anon_sym_LBRACK, + ACTIONS(58), 1, + anon_sym_DOT, + STATE(13), 3, + sym_index, + sym_get_attr, + aux_sym_full_splat_repeat1, ACTIONS(53), 8, ts_builtin_sym_end, anon_sym_EQ, @@ -2554,409 +2682,765 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - [378] = 2, + [551] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(55), 8, + ACTIONS(61), 12, ts_builtin_sym_end, anon_sym_EQ, + anon_sym_LBRACE, anon_sym_RBRACE, sym_identifier, anon_sym_RPAREN, + anon_sym_DQUOTE, + anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - [392] = 4, + anon_sym_DOT, + [569] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(5), 1, - sym_identifier, - ACTIONS(57), 2, - ts_builtin_sym_end, - anon_sym_RBRACE, - STATE(25), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [408] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(5), 1, - sym_identifier, - ACTIONS(59), 1, - anon_sym_RBRACE, - STATE(49), 1, - sym_body, - STATE(23), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [426] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(63), 1, - sym_identifier, - ACTIONS(61), 2, - ts_builtin_sym_end, - anon_sym_RBRACE, - STATE(25), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [442] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(66), 6, + ACTIONS(65), 1, + anon_sym_DOT, + STATE(16), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(63), 9, ts_builtin_sym_end, + anon_sym_EQ, anon_sym_RBRACE, sym_identifier, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, - [454] = 6, + anon_sym_COLON, + [591] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(17), 1, - anon_sym_DQUOTE, - ACTIONS(68), 1, + ACTIONS(68), 12, + ts_builtin_sym_end, anon_sym_EQ, - ACTIONS(70), 1, anon_sym_LBRACE, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_DQUOTE, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [609] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(72), 1, - sym_identifier, - STATE(30), 2, - sym_string_lit, - aux_sym_block_repeat1, - [474] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(5), 1, - sym_identifier, - ACTIONS(74), 1, + anon_sym_DOT, + STATE(19), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(70), 9, + ts_builtin_sym_end, + anon_sym_EQ, anon_sym_RBRACE, - STATE(51), 1, - sym_body, - STATE(23), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [492] = 5, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + [631] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(76), 1, - anon_sym_LBRACE, - ACTIONS(78), 1, + ACTIONS(77), 1, + anon_sym_DOT, + STATE(16), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(75), 9, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, sym_identifier, - ACTIONS(81), 1, - anon_sym_DQUOTE, - STATE(29), 2, - sym_string_lit, - aux_sym_block_repeat1, - [509] = 5, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + [653] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(80), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [669] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(82), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [685] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(84), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [701] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(86), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [717] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(88), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [733] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(90), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [749] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(92), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [765] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(94), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [781] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(96), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [797] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(98), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [813] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(100), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [829] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(102), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [845] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(104), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [861] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(106), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [877] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(108), 10, + ts_builtin_sym_end, + anon_sym_EQ, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_DOT, + [893] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(110), 8, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_DOT, + [907] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(17), 1, anon_sym_DQUOTE, - ACTIONS(84), 1, + ACTIONS(112), 1, + anon_sym_EQ, + ACTIONS(114), 1, anon_sym_LBRACE, - ACTIONS(86), 1, + ACTIONS(116), 1, sym_identifier, - STATE(29), 2, + STATE(42), 2, sym_string_lit, aux_sym_block_repeat1, - [526] = 4, - ACTIONS(88), 1, - anon_sym_DQUOTE, - ACTIONS(92), 1, - sym_comment, - STATE(33), 1, - aux_sym_string_lit_repeat1, - ACTIONS(90), 2, - aux_sym_string_lit_token1, - aux_sym_string_lit_token2, - [540] = 4, - ACTIONS(92), 1, - sym_comment, - ACTIONS(94), 1, - anon_sym_DQUOTE, - STATE(31), 1, - aux_sym_string_lit_repeat1, - ACTIONS(96), 2, - aux_sym_string_lit_token1, - aux_sym_string_lit_token2, - [554] = 4, - ACTIONS(92), 1, - sym_comment, - ACTIONS(98), 1, - anon_sym_DQUOTE, - STATE(33), 1, - aux_sym_string_lit_repeat1, - ACTIONS(100), 2, - aux_sym_string_lit_token1, - aux_sym_string_lit_token2, - [568] = 4, + [927] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(103), 1, - anon_sym_RBRACE, - ACTIONS(105), 1, - anon_sym_COMMA, - STATE(39), 1, - aux_sym_object_repeat1, - [581] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(107), 3, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(118), 2, ts_builtin_sym_end, anon_sym_RBRACE, + STATE(38), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [943] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(122), 1, sym_identifier, - [590] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(109), 1, - anon_sym_COMMA, - ACTIONS(111), 1, - anon_sym_RBRACK, - STATE(40), 1, - aux_sym_tuple_repeat1, - [603] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(113), 3, + ACTIONS(120), 2, ts_builtin_sym_end, anon_sym_RBRACE, + STATE(38), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [959] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(5), 1, sym_identifier, - [612] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(115), 3, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - [621] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(105), 1, - anon_sym_COMMA, - ACTIONS(117), 1, - anon_sym_RBRACE, - STATE(42), 1, - aux_sym_object_repeat1, - [634] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(109), 1, - anon_sym_COMMA, - ACTIONS(119), 1, - anon_sym_RBRACK, - STATE(43), 1, - aux_sym_tuple_repeat1, - [647] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(121), 3, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - [656] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(123), 1, - anon_sym_RBRACE, ACTIONS(125), 1, - anon_sym_COMMA, - STATE(42), 1, - aux_sym_object_repeat1, - [669] = 4, + anon_sym_RBRACE, + STATE(64), 1, + sym_body, + STATE(37), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [977] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(128), 1, - anon_sym_COMMA, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(127), 1, + anon_sym_RBRACE, + STATE(66), 1, + sym_body, + STATE(37), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [995] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(129), 1, + anon_sym_LBRACE, ACTIONS(131), 1, - anon_sym_RBRACK, - STATE(43), 1, - aux_sym_tuple_repeat1, - [682] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(133), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [690] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(123), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [698] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(135), 2, - anon_sym_EQ, - anon_sym_COLON, - [706] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(131), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [714] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(137), 2, - anon_sym_EQ, - anon_sym_COLON, - [722] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(140), 1, - anon_sym_RBRACE, - [729] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(142), 1, - ts_builtin_sym_end, - [736] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(59), 1, - anon_sym_RBRACE, - [743] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(144), 1, - ts_builtin_sym_end, - [750] = 2, + sym_identifier, + ACTIONS(134), 1, + anon_sym_DQUOTE, + STATE(41), 2, + sym_string_lit, + aux_sym_block_repeat1, + [1012] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(17), 1, + anon_sym_DQUOTE, + ACTIONS(137), 1, + anon_sym_LBRACE, + ACTIONS(139), 1, + sym_identifier, + STATE(41), 2, + sym_string_lit, + aux_sym_block_repeat1, + [1029] = 4, + ACTIONS(141), 1, + anon_sym_DQUOTE, ACTIONS(146), 1, + sym_comment, + STATE(43), 1, + aux_sym_string_lit_repeat1, + ACTIONS(143), 2, + aux_sym_string_lit_token1, + aux_sym_string_lit_token2, + [1043] = 4, + ACTIONS(146), 1, + sym_comment, + ACTIONS(148), 1, + anon_sym_DQUOTE, + STATE(46), 1, + aux_sym_string_lit_repeat1, + ACTIONS(150), 2, + aux_sym_string_lit_token1, + aux_sym_string_lit_token2, + [1057] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(110), 2, + anon_sym_LBRACK, + anon_sym_DOT, + ACTIONS(152), 2, + anon_sym_EQ, + anon_sym_COLON, + [1069] = 4, + ACTIONS(146), 1, + sym_comment, + ACTIONS(155), 1, + anon_sym_DQUOTE, + STATE(43), 1, + aux_sym_string_lit_repeat1, + ACTIONS(157), 2, + aux_sym_string_lit_token1, + aux_sym_string_lit_token2, + [1083] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(159), 1, + anon_sym_COMMA, + ACTIONS(161), 1, + anon_sym_RBRACK, + STATE(49), 1, + aux_sym_tuple_repeat1, + [1096] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(163), 1, + anon_sym_RBRACE, + ACTIONS(165), 1, + anon_sym_COMMA, + STATE(48), 1, + aux_sym_object_repeat1, + [1109] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(159), 1, + anon_sym_COMMA, + ACTIONS(168), 1, + anon_sym_RBRACK, + STATE(55), 1, + aux_sym_tuple_repeat1, + [1122] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(170), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [1131] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(172), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [1140] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(174), 1, + anon_sym_RBRACE, + ACTIONS(176), 1, + anon_sym_COMMA, + STATE(56), 1, + aux_sym_object_repeat1, + [1153] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(178), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [1162] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(180), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [1171] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(182), 1, + anon_sym_COMMA, + ACTIONS(185), 1, + anon_sym_RBRACK, + STATE(55), 1, + aux_sym_tuple_repeat1, + [1184] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(176), 1, + anon_sym_COMMA, + ACTIONS(187), 1, + anon_sym_RBRACE, + STATE(48), 1, + aux_sym_object_repeat1, + [1197] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(163), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [1205] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(185), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [1213] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(189), 1, + sym_identifier, + ACTIONS(191), 1, + anon_sym_STAR, + [1223] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(193), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [1231] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(195), 2, + anon_sym_EQ, + anon_sym_COLON, + [1239] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(197), 1, + ts_builtin_sym_end, + [1246] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(199), 1, anon_sym_RPAREN, + [1253] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(201), 1, + anon_sym_RBRACE, + [1260] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(189), 1, + sym_identifier, + [1267] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(125), 1, + anon_sym_RBRACE, + [1274] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(203), 1, + anon_sym_RBRACK, + [1281] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(205), 1, + anon_sym_RBRACK, + [1288] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(207), 1, + ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(5)] = 0, - [SMALL_STATE(6)] = 48, - [SMALL_STATE(7)] = 96, - [SMALL_STATE(8)] = 144, - [SMALL_STATE(9)] = 192, - [SMALL_STATE(10)] = 208, - [SMALL_STATE(11)] = 224, - [SMALL_STATE(12)] = 238, - [SMALL_STATE(13)] = 252, - [SMALL_STATE(14)] = 266, - [SMALL_STATE(15)] = 280, - [SMALL_STATE(16)] = 294, - [SMALL_STATE(17)] = 308, - [SMALL_STATE(18)] = 322, - [SMALL_STATE(19)] = 336, - [SMALL_STATE(20)] = 350, - [SMALL_STATE(21)] = 364, - [SMALL_STATE(22)] = 378, - [SMALL_STATE(23)] = 392, - [SMALL_STATE(24)] = 408, - [SMALL_STATE(25)] = 426, - [SMALL_STATE(26)] = 442, - [SMALL_STATE(27)] = 454, - [SMALL_STATE(28)] = 474, - [SMALL_STATE(29)] = 492, - [SMALL_STATE(30)] = 509, - [SMALL_STATE(31)] = 526, - [SMALL_STATE(32)] = 540, - [SMALL_STATE(33)] = 554, - [SMALL_STATE(34)] = 568, - [SMALL_STATE(35)] = 581, - [SMALL_STATE(36)] = 590, - [SMALL_STATE(37)] = 603, - [SMALL_STATE(38)] = 612, - [SMALL_STATE(39)] = 621, - [SMALL_STATE(40)] = 634, - [SMALL_STATE(41)] = 647, - [SMALL_STATE(42)] = 656, - [SMALL_STATE(43)] = 669, - [SMALL_STATE(44)] = 682, - [SMALL_STATE(45)] = 690, - [SMALL_STATE(46)] = 698, - [SMALL_STATE(47)] = 706, - [SMALL_STATE(48)] = 714, - [SMALL_STATE(49)] = 722, - [SMALL_STATE(50)] = 729, - [SMALL_STATE(51)] = 736, - [SMALL_STATE(52)] = 743, - [SMALL_STATE(53)] = 750, + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 54, + [SMALL_STATE(4)] = 105, + [SMALL_STATE(5)] = 156, + [SMALL_STATE(6)] = 207, + [SMALL_STATE(7)] = 255, + [SMALL_STATE(8)] = 303, + [SMALL_STATE(9)] = 351, + [SMALL_STATE(10)] = 399, + [SMALL_STATE(11)] = 447, + [SMALL_STATE(12)] = 476, + [SMALL_STATE(13)] = 501, + [SMALL_STATE(14)] = 526, + [SMALL_STATE(15)] = 551, + [SMALL_STATE(16)] = 569, + [SMALL_STATE(17)] = 591, + [SMALL_STATE(18)] = 609, + [SMALL_STATE(19)] = 631, + [SMALL_STATE(20)] = 653, + [SMALL_STATE(21)] = 669, + [SMALL_STATE(22)] = 685, + [SMALL_STATE(23)] = 701, + [SMALL_STATE(24)] = 717, + [SMALL_STATE(25)] = 733, + [SMALL_STATE(26)] = 749, + [SMALL_STATE(27)] = 765, + [SMALL_STATE(28)] = 781, + [SMALL_STATE(29)] = 797, + [SMALL_STATE(30)] = 813, + [SMALL_STATE(31)] = 829, + [SMALL_STATE(32)] = 845, + [SMALL_STATE(33)] = 861, + [SMALL_STATE(34)] = 877, + [SMALL_STATE(35)] = 893, + [SMALL_STATE(36)] = 907, + [SMALL_STATE(37)] = 927, + [SMALL_STATE(38)] = 943, + [SMALL_STATE(39)] = 959, + [SMALL_STATE(40)] = 977, + [SMALL_STATE(41)] = 995, + [SMALL_STATE(42)] = 1012, + [SMALL_STATE(43)] = 1029, + [SMALL_STATE(44)] = 1043, + [SMALL_STATE(45)] = 1057, + [SMALL_STATE(46)] = 1069, + [SMALL_STATE(47)] = 1083, + [SMALL_STATE(48)] = 1096, + [SMALL_STATE(49)] = 1109, + [SMALL_STATE(50)] = 1122, + [SMALL_STATE(51)] = 1131, + [SMALL_STATE(52)] = 1140, + [SMALL_STATE(53)] = 1153, + [SMALL_STATE(54)] = 1162, + [SMALL_STATE(55)] = 1171, + [SMALL_STATE(56)] = 1184, + [SMALL_STATE(57)] = 1197, + [SMALL_STATE(58)] = 1205, + [SMALL_STATE(59)] = 1213, + [SMALL_STATE(60)] = 1223, + [SMALL_STATE(61)] = 1231, + [SMALL_STATE(62)] = 1239, + [SMALL_STATE(63)] = 1246, + [SMALL_STATE(64)] = 1253, + [SMALL_STATE(65)] = 1260, + [SMALL_STATE(66)] = 1267, + [SMALL_STATE(67)] = 1274, + [SMALL_STATE(68)] = 1281, + [SMALL_STATE(69)] = 1288, }; 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}}, SHIFT_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [29] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 3), - [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 2), - [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal_value, 1), - [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 3), - [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 4), - [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 4), - [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3), - [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_lit, 1), - [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 3), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 1), - [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_collection_value, 1), - [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), - [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 2), - [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 1), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), - [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), SHIFT_REPEAT(27), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expr, 1), - [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [78] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(29), - [81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(32), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_lit_repeat1, 2), - [100] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_lit_repeat1, 2), SHIFT_REPEAT(33), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 1), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 1), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 1), - [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 1), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), - [125] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), SHIFT_REPEAT(3), - [128] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), SHIFT_REPEAT(5), - [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object_elem, 3), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [137] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_variable_expr, 1), SHIFT(6), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config_file, 1), - [144] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 3), + [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(10), + [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(65), + [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), + [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(10), + [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(65), + [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 4), + [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(10), + [58] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(65), + [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 2), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(65), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 3), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 2), + [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_attr_splat, 2), SHIFT(65), + [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 3), + [77] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_attr_splat, 3), SHIFT(65), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal_value, 1), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 2), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 1), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_collection_value, 1), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_get_attr, 2), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 3), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 2), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 3), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_splat, 1), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 4), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_lit, 1), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 4), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expr, 1), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 1), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), + [122] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), SHIFT_REPEAT(36), + [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [131] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(41), + [134] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(44), + [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_lit_repeat1, 2), + [143] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_lit_repeat1, 2), SHIFT_REPEAT(43), + [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [148] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), + [152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_variable_expr, 1), SHIFT(8), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), + [165] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), SHIFT_REPEAT(3), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 1), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 1), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 1), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 1), + [182] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), SHIFT_REPEAT(6), + [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object_elem, 3), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [197] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config_file, 1), }; #ifdef __cplusplus