From 2226687dd727a438259e0c892074659652a5e2f8 Mon Sep 17 00:00:00 2001 From: mhoffm Date: Fri, 11 Jun 2021 23:32:22 +0200 Subject: [PATCH] more tests; add function expressions --- grammar.js | 10 +- src/grammar.json | 79 + src/node-types.json | 38 + src/parser.c | 3717 +++++++++-------- test/corpus/collections.txt | 43 + test/corpus/function_calls.txt | 86 + test/corpus/{expressions.txt => literals.txt} | 37 +- test/corpus/splat.txt | 86 + 8 files changed, 2413 insertions(+), 1683 deletions(-) create mode 100644 test/corpus/collections.txt create mode 100644 test/corpus/function_calls.txt rename test/corpus/{expressions.txt => literals.txt} (86%) create mode 100644 test/corpus/splat.txt diff --git a/grammar.js b/grammar.js index 877ea5b..414d90e 100644 --- a/grammar.js +++ b/grammar.js @@ -58,7 +58,7 @@ module.exports = grammar({ $.literal_value, $.collection_value, $.variable_expr, - // $.function_call, + $.function_call, $.for_expr, seq($.expr_term, $.index), seq($.expr_term, $.get_attr), @@ -154,6 +154,14 @@ module.exports = grammar({ variable_expr: $ => $.identifier, + function_call: $ => seq($.identifier, '(', optional($.function_arguments), ')'), + + function_arguments: $ => seq( + $.expression, + repeat(seq(',', $.expression)), + optional(choice(',', '...')) + ), + // http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890 comment: $ => token(choice( seq('#', /.*/), diff --git a/src/grammar.json b/src/grammar.json index fec3044..b6df5c8 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -152,6 +152,10 @@ "type": "SYMBOL", "name": "variable_expr" }, + { + "type": "SYMBOL", + "name": "function_call" + }, { "type": "SYMBOL", "name": "for_expr" @@ -686,6 +690,81 @@ "type": "SYMBOL", "name": "identifier" }, + "function_call": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "function_arguments" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "function_arguments": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "STRING", + "value": "..." + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, "comment": { "type": "TOKEN", "content": { diff --git a/src/node-types.json b/src/node-types.json index d60fe70..219377c 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -156,6 +156,10 @@ "type": "for_expr", "named": true }, + { + "type": "function_call", + "named": true + }, { "type": "get_attr", "named": true @@ -312,6 +316,40 @@ ] } }, + { + "type": "function_arguments", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expression", + "named": true + } + ] + } + }, + { + "type": "function_call", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "function_arguments", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, { "type": "get_attr", "named": true, diff --git a/src/parser.c b/src/parser.c index 63f99c2..9e44d67 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,9 +6,9 @@ #endif #define LANGUAGE_VERSION 13 -#define STATE_COUNT 152 +#define STATE_COUNT 166 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 55 +#define SYMBOL_COUNT 57 #define ALIAS_COUNT 0 #define TOKEN_COUNT 25 #define EXTERNAL_TOKEN_COUNT 0 @@ -65,12 +65,14 @@ enum { sym_for_intro = 46, sym_for_cond = 47, sym_variable_expr = 48, - aux_sym_body_repeat1 = 49, - aux_sym_block_repeat1 = 50, - aux_sym_tuple_repeat1 = 51, - aux_sym_object_repeat1 = 52, - aux_sym_attr_splat_repeat1 = 53, - aux_sym_full_splat_repeat1 = 54, + sym_function_call = 49, + sym_function_arguments = 50, + aux_sym_body_repeat1 = 51, + aux_sym_block_repeat1 = 52, + aux_sym_tuple_repeat1 = 53, + aux_sym_object_repeat1 = 54, + aux_sym_attr_splat_repeat1 = 55, + aux_sym_full_splat_repeat1 = 56, }; static const char * const ts_symbol_names[] = { @@ -123,6 +125,8 @@ static const char * const ts_symbol_names[] = { [sym_for_intro] = "for_intro", [sym_for_cond] = "for_cond", [sym_variable_expr] = "variable_expr", + [sym_function_call] = "function_call", + [sym_function_arguments] = "function_arguments", [aux_sym_body_repeat1] = "body_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym_tuple_repeat1] = "tuple_repeat1", @@ -181,6 +185,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_for_intro] = sym_for_intro, [sym_for_cond] = sym_for_cond, [sym_variable_expr] = sym_variable_expr, + [sym_function_call] = sym_function_call, + [sym_function_arguments] = sym_function_arguments, [aux_sym_body_repeat1] = aux_sym_body_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym_tuple_repeat1] = aux_sym_tuple_repeat1, @@ -386,6 +392,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_function_call] = { + .visible = true, + .named = true, + }, + [sym_function_arguments] = { + .visible = true, + .named = true, + }, [aux_sym_body_repeat1] = { .visible = false, .named = false, @@ -2014,6 +2028,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '"') ADVANCE(51); if (lookahead == '#') ADVANCE(79); if (lookahead == '(') ADVANCE(46); + if (lookahead == ')') ADVANCE(47); if (lookahead == '*') ADVANCE(70); if (lookahead == '/') ADVANCE(4); if (lookahead == '=') ADVANCE(8); @@ -2146,7 +2161,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(47); if (lookahead == '*') ADVANCE(70); if (lookahead == ',') ADVANCE(65); - if (lookahead == '.') ADVANCE(68); + if (lookahead == '.') ADVANCE(69); if (lookahead == '/') ADVANCE(4); if (lookahead == ':') ADVANCE(67); if (lookahead == '=') ADVANCE(30); @@ -2163,9 +2178,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 27: if (eof) ADVANCE(28); if (lookahead == '#') ADVANCE(79); + if (lookahead == '(') ADVANCE(46); if (lookahead == ')') ADVANCE(47); if (lookahead == ',') ADVANCE(65); - if (lookahead == '.') ADVANCE(68); + if (lookahead == '.') ADVANCE(69); if (lookahead == '/') ADVANCE(4); if (lookahead == ':') ADVANCE(67); if (lookahead == '=') ADVANCE(8); @@ -2441,10 +2457,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [22] = {.lex_state = 1}, [23] = {.lex_state = 1}, [24] = {.lex_state = 1}, - [25] = {.lex_state = 26}, - [26] = {.lex_state = 26}, - [27] = {.lex_state = 26}, - [28] = {.lex_state = 26}, + [25] = {.lex_state = 1}, + [26] = {.lex_state = 1}, + [27] = {.lex_state = 1}, + [28] = {.lex_state = 1}, [29] = {.lex_state = 26}, [30] = {.lex_state = 26}, [31] = {.lex_state = 26}, @@ -2459,7 +2475,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [40] = {.lex_state = 26}, [41] = {.lex_state = 26}, [42] = {.lex_state = 26}, - [43] = {.lex_state = 0}, + [43] = {.lex_state = 26}, [44] = {.lex_state = 26}, [45] = {.lex_state = 26}, [46] = {.lex_state = 26}, @@ -2470,86 +2486,86 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [51] = {.lex_state = 26}, [52] = {.lex_state = 26}, [53] = {.lex_state = 26}, - [54] = {.lex_state = 26}, - [55] = {.lex_state = 27}, - [56] = {.lex_state = 1}, - [57] = {.lex_state = 0}, - [58] = {.lex_state = 0}, - [59] = {.lex_state = 1}, - [60] = {.lex_state = 0}, + [54] = {.lex_state = 27}, + [55] = {.lex_state = 26}, + [56] = {.lex_state = 26}, + [57] = {.lex_state = 26}, + [58] = {.lex_state = 26}, + [59] = {.lex_state = 26}, + [60] = {.lex_state = 26}, [61] = {.lex_state = 0}, [62] = {.lex_state = 0}, [63] = {.lex_state = 0}, - [64] = {.lex_state = 0}, - [65] = {.lex_state = 3}, - [66] = {.lex_state = 26}, - [67] = {.lex_state = 26}, + [64] = {.lex_state = 1}, + [65] = {.lex_state = 1}, + [66] = {.lex_state = 0}, + [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, - [70] = {.lex_state = 26}, + [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, [72] = {.lex_state = 0}, [73] = {.lex_state = 0}, [74] = {.lex_state = 0}, - [75] = {.lex_state = 26}, + [75] = {.lex_state = 0}, [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, - [78] = {.lex_state = 0}, + [78] = {.lex_state = 26}, [79] = {.lex_state = 0}, [80] = {.lex_state = 0}, - [81] = {.lex_state = 0}, + [81] = {.lex_state = 26}, [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, - [84] = {.lex_state = 0}, + [84] = {.lex_state = 3}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, - [90] = {.lex_state = 0}, + [90] = {.lex_state = 26}, [91] = {.lex_state = 0}, - [92] = {.lex_state = 26}, - [93] = {.lex_state = 26}, - [94] = {.lex_state = 2}, + [92] = {.lex_state = 0}, + [93] = {.lex_state = 0}, + [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, - [96] = {.lex_state = 0}, - [97] = {.lex_state = 26}, + [96] = {.lex_state = 26}, + [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, - [99] = {.lex_state = 26}, - [100] = {.lex_state = 0}, - [101] = {.lex_state = 0}, + [99] = {.lex_state = 0}, + [100] = {.lex_state = 26}, + [101] = {.lex_state = 2}, [102] = {.lex_state = 0}, - [103] = {.lex_state = 0}, + [103] = {.lex_state = 26}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, - [108] = {.lex_state = 26}, - [109] = {.lex_state = 0}, + [108] = {.lex_state = 0}, + [109] = {.lex_state = 26}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 0}, + [111] = {.lex_state = 26}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 26}, + [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 2}, - [117] = {.lex_state = 26}, + [116] = {.lex_state = 0}, + [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 26}, - [120] = {.lex_state = 0}, + [119] = {.lex_state = 0}, + [120] = {.lex_state = 26}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, - [124] = {.lex_state = 0}, + [124] = {.lex_state = 26}, [125] = {.lex_state = 0}, - [126] = {.lex_state = 1}, + [126] = {.lex_state = 0}, [127] = {.lex_state = 0}, - [128] = {.lex_state = 0}, - [129] = {.lex_state = 0}, + [128] = {.lex_state = 2}, + [129] = {.lex_state = 26}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, + [131] = {.lex_state = 26}, [132] = {.lex_state = 0}, - [133] = {.lex_state = 26}, + [133] = {.lex_state = 0}, [134] = {.lex_state = 0}, [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, @@ -2557,17 +2573,31 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, [140] = {.lex_state = 26}, - [141] = {.lex_state = 26}, + [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, - [145] = {.lex_state = 53}, - [146] = {.lex_state = 53}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, - [149] = {.lex_state = 0}, - [150] = {.lex_state = 1}, + [149] = {.lex_state = 1}, + [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 26}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 0}, + [159] = {.lex_state = 53}, + [160] = {.lex_state = 53}, + [161] = {.lex_state = 0}, + [162] = {.lex_state = 26}, + [163] = {.lex_state = 0}, + [164] = {.lex_state = 1}, + [165] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2597,11 +2627,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [1] = { - [sym_config_file] = STATE(151), - [sym_body] = STATE(149), - [sym_attribute] = STATE(66), - [sym_block] = STATE(66), - [aux_sym_body_repeat1] = STATE(66), + [sym_config_file] = STATE(165), + [sym_body] = STATE(163), + [sym_attribute] = STATE(81), + [sym_block] = STATE(81), + [aux_sym_body_repeat1] = STATE(81), [sym_identifier] = ACTIONS(5), [sym_comment] = ACTIONS(3), }, @@ -2629,32 +2659,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(25), 1, anon_sym_for, - STATE(15), 1, + STATE(28), 1, sym_for_intro, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(107), 1, + STATE(112), 1, sym_object_elem, - STATE(116), 1, + STATE(128), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [65] = 19, + sym_function_call, + [66] = 19, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2675,32 +2706,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, ACTIONS(27), 1, anon_sym_RBRACE, - STATE(16), 1, + STATE(20), 1, sym_for_intro, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(105), 1, + STATE(113), 1, sym_object_elem, - STATE(116), 1, + STATE(128), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [130] = 18, + sym_function_call, + [132] = 18, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2721,30 +2753,31 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(31), 1, anon_sym_RBRACK, - STATE(24), 1, - sym_for_intro, STATE(25), 1, + sym_for_intro, + STATE(29), 1, sym_expr_term, - STATE(106), 1, + STATE(123), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [192] = 18, + sym_function_call, + [195] = 18, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2765,70 +2798,31 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(33), 1, anon_sym_RBRACK, - STATE(20), 1, + STATE(21), 1, sym_for_intro, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(102), 1, + STATE(117), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [254] = 16, - 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(25), 1, - sym_expr_term, - STATE(116), 1, - sym_expression, - STATE(120), 1, - sym_object_elem, - ACTIONS(19), 2, - anon_sym_true, - anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(53), 2, - sym_tuple, - sym_object, - STATE(54), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [310] = 16, + sym_function_call, + [258] = 17, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2846,29 +2840,32 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 1, sym_identifier, ACTIONS(35), 1, - anon_sym_STAR, - STATE(25), 1, + anon_sym_RPAREN, + STATE(29), 1, sym_expr_term, - STATE(136), 1, + STATE(107), 1, sym_expression, + STATE(147), 1, + sym_function_arguments, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [366] = 16, + sym_function_call, + [318] = 17, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2886,67 +2883,354 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 1, sym_identifier, ACTIONS(37), 1, - anon_sym_STAR, - STATE(25), 1, + anon_sym_RPAREN, + STATE(29), 1, sym_expr_term, - STATE(148), 1, + STATE(107), 1, sym_expression, + STATE(148), 1, + sym_function_arguments, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [422] = 15, + sym_function_call, + [378] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(39), 1, + 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(29), 1, + sym_expr_term, + STATE(127), 1, + sym_object_elem, + STATE(128), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [435] = 16, + 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(29), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_STAR, + STATE(29), 1, + sym_expr_term, + STATE(152), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [492] = 16, + 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(29), 1, + sym_identifier, ACTIONS(41), 1, + anon_sym_RPAREN, + STATE(29), 1, + sym_expr_term, + STATE(105), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [549] = 16, + 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(29), 1, sym_identifier, ACTIONS(43), 1, + anon_sym_STAR, + STATE(29), 1, + sym_expr_term, + STATE(143), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [606] = 16, + 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(29), 1, + sym_identifier, ACTIONS(45), 1, + anon_sym_RPAREN, + STATE(29), 1, + sym_expr_term, + STATE(105), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [663] = 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(29), 1, + sym_identifier, + STATE(29), 1, + sym_expr_term, + STATE(132), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [717] = 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(29), 1, + sym_identifier, + STATE(29), 1, + sym_expr_term, + STATE(120), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [771] = 15, + ACTIONS(3), 1, + sym_comment, ACTIONS(47), 1, - anon_sym_DQUOTE, + anon_sym_LBRACE, + ACTIONS(49), 1, + sym_identifier, ACTIONS(51), 1, - sym_null_lit, + anon_sym_LPAREN, ACTIONS(53), 1, + sym_numeric_lit, + ACTIONS(55), 1, + anon_sym_DQUOTE, + ACTIONS(59), 1, + sym_null_lit, + ACTIONS(61), 1, anon_sym_LBRACK, - STATE(43), 1, + STATE(61), 1, sym_expr_term, - STATE(95), 1, + STATE(108), 1, sym_expression, - ACTIONS(49), 2, + ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(80), 2, + STATE(71), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(81), 2, - sym_string_lit, - sym_bool_lit, - STATE(91), 2, + STATE(92), 2, sym_tuple, sym_object, - STATE(90), 4, + STATE(95), 2, + sym_string_lit, + sym_bool_lit, + STATE(93), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [475] = 15, + sym_function_call, + [825] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -2963,28 +3247,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(29), 1, sym_identifier, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(136), 1, + STATE(146), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [528] = 15, + sym_function_call, + [879] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_LBRACE, + ACTIONS(49), 1, + sym_identifier, + ACTIONS(51), 1, + anon_sym_LPAREN, + ACTIONS(53), 1, + sym_numeric_lit, + ACTIONS(55), 1, + anon_sym_DQUOTE, + ACTIONS(59), 1, + sym_null_lit, + ACTIONS(61), 1, + anon_sym_LBRACK, + STATE(61), 1, + sym_expr_term, + STATE(106), 1, + sym_expression, + ACTIONS(57), 2, + anon_sym_true, + anon_sym_false, + STATE(71), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(92), 2, + sym_tuple, + sym_object, + STATE(95), 2, + sym_string_lit, + sym_bool_lit, + STATE(93), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [933] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -3001,28 +3325,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(29), 1, sym_identifier, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(122), 1, + STATE(156), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [581] = 15, + sym_function_call, + [987] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -3039,66 +3364,263 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(29), 1, sym_identifier, - STATE(25), 1, + STATE(29), 1, + sym_expr_term, + STATE(143), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [1041] = 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(29), 1, + sym_identifier, + STATE(29), 1, + sym_expr_term, + STATE(164), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [1095] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_LBRACE, + ACTIONS(49), 1, + sym_identifier, + ACTIONS(51), 1, + anon_sym_LPAREN, + ACTIONS(53), 1, + sym_numeric_lit, + ACTIONS(55), 1, + anon_sym_DQUOTE, + ACTIONS(59), 1, + sym_null_lit, + ACTIONS(61), 1, + anon_sym_LBRACK, + STATE(61), 1, + sym_expr_term, + STATE(115), 1, + sym_expression, + ACTIONS(57), 2, + anon_sym_true, + anon_sym_false, + STATE(71), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(92), 2, + sym_tuple, + sym_object, + STATE(95), 2, + sym_string_lit, + sym_bool_lit, + STATE(93), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [1149] = 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(29), 1, + sym_identifier, + STATE(29), 1, + sym_expr_term, + STATE(152), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [1203] = 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(29), 1, + sym_identifier, + STATE(29), 1, + sym_expr_term, + STATE(144), 1, + sym_expression, + ACTIONS(19), 2, + anon_sym_true, + anon_sym_false, + STATE(38), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, + STATE(53), 2, + sym_tuple, + sym_object, + STATE(50), 5, + sym_literal_value, + sym_collection_value, + sym_for_expr, + sym_variable_expr, + sym_function_call, + [1257] = 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(29), 1, + sym_identifier, + STATE(29), 1, sym_expr_term, STATE(135), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [634] = 15, + sym_function_call, + [1311] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(47), 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(29), 1, + ACTIONS(49), 1, sym_identifier, - STATE(25), 1, + ACTIONS(51), 1, + anon_sym_LPAREN, + ACTIONS(53), 1, + sym_numeric_lit, + ACTIONS(55), 1, + anon_sym_DQUOTE, + ACTIONS(59), 1, + sym_null_lit, + ACTIONS(61), 1, + anon_sym_LBRACK, + STATE(61), 1, sym_expr_term, - STATE(134), 1, + STATE(110), 1, sym_expression, - ACTIONS(19), 2, + ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(71), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(53), 2, + STATE(92), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(95), 2, + sym_string_lit, + sym_bool_lit, + STATE(93), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [687] = 15, + sym_function_call, + [1365] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -3115,104 +3637,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(29), 1, sym_identifier, - STATE(25), 1, - sym_expr_term, - STATE(131), 1, - sym_expression, - ACTIONS(19), 2, - anon_sym_true, - anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(53), 2, - sym_tuple, - sym_object, - STATE(54), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [740] = 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(29), 1, - sym_identifier, - STATE(25), 1, - sym_expr_term, - STATE(150), 1, - sym_expression, - ACTIONS(19), 2, - anon_sym_true, - anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(53), 2, - sym_tuple, - sym_object, - STATE(54), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [793] = 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(29), 1, - sym_identifier, - STATE(25), 1, + STATE(29), 1, sym_expr_term, STATE(126), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [846] = 15, + sym_function_call, + [1419] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -3229,66 +3676,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(29), 1, sym_identifier, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(97), 1, + STATE(105), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [899] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(39), 1, - anon_sym_LBRACE, - ACTIONS(41), 1, - sym_identifier, - ACTIONS(43), 1, - anon_sym_LPAREN, - ACTIONS(45), 1, - sym_numeric_lit, - ACTIONS(47), 1, - anon_sym_DQUOTE, - ACTIONS(51), 1, - sym_null_lit, - ACTIONS(53), 1, - anon_sym_LBRACK, - STATE(43), 1, - sym_expr_term, - STATE(96), 1, - sym_expression, - ACTIONS(49), 2, - anon_sym_true, - anon_sym_false, - STATE(80), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(81), 2, - sym_string_lit, - sym_bool_lit, - STATE(91), 2, - sym_tuple, - sym_object, - STATE(90), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [952] = 15, + sym_function_call, + [1473] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -3305,256 +3715,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(29), 1, sym_identifier, - STATE(25), 1, + STATE(29), 1, sym_expr_term, - STATE(148), 1, + STATE(149), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(38), 2, sym_for_tuple_expr, sym_for_object_expr, + STATE(49), 2, + sym_string_lit, + sym_bool_lit, STATE(53), 2, sym_tuple, sym_object, - STATE(54), 4, + STATE(50), 5, sym_literal_value, sym_collection_value, sym_for_expr, sym_variable_expr, - [1005] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(39), 1, - anon_sym_LBRACE, - ACTIONS(41), 1, - sym_identifier, - ACTIONS(43), 1, - anon_sym_LPAREN, - ACTIONS(45), 1, - sym_numeric_lit, - ACTIONS(47), 1, - anon_sym_DQUOTE, - ACTIONS(51), 1, - sym_null_lit, - ACTIONS(53), 1, - anon_sym_LBRACK, - STATE(43), 1, - sym_expr_term, - STATE(109), 1, - sym_expression, - ACTIONS(49), 2, - anon_sym_true, - anon_sym_false, - STATE(80), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(81), 2, - sym_string_lit, - sym_bool_lit, - STATE(91), 2, - sym_tuple, - sym_object, - STATE(90), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [1058] = 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(29), 1, - sym_identifier, - STATE(25), 1, - sym_expr_term, - STATE(121), 1, - sym_expression, - ACTIONS(19), 2, - anon_sym_true, - anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(53), 2, - sym_tuple, - sym_object, - STATE(54), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [1111] = 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(29), 1, - sym_identifier, - STATE(25), 1, - sym_expr_term, - STATE(118), 1, - sym_expression, - ACTIONS(19), 2, - anon_sym_true, - anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(53), 2, - sym_tuple, - sym_object, - STATE(54), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [1164] = 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(29), 1, - sym_identifier, - STATE(25), 1, - sym_expr_term, - STATE(142), 1, - sym_expression, - ACTIONS(19), 2, - anon_sym_true, - anon_sym_false, - STATE(35), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(53), 2, - sym_tuple, - sym_object, - STATE(54), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [1217] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(39), 1, - anon_sym_LBRACE, - ACTIONS(41), 1, - sym_identifier, - ACTIONS(43), 1, - anon_sym_LPAREN, - ACTIONS(45), 1, - sym_numeric_lit, - ACTIONS(47), 1, - anon_sym_DQUOTE, - ACTIONS(51), 1, - sym_null_lit, - ACTIONS(53), 1, - anon_sym_LBRACK, - STATE(43), 1, - sym_expr_term, - STATE(101), 1, - sym_expression, - ACTIONS(49), 2, - anon_sym_true, - anon_sym_false, - STATE(80), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(81), 2, - sym_string_lit, - sym_bool_lit, - STATE(91), 2, - sym_tuple, - sym_object, - STATE(90), 4, - sym_literal_value, - sym_collection_value, - sym_for_expr, - sym_variable_expr, - [1270] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(57), 1, - anon_sym_EQ, - ACTIONS(59), 1, - anon_sym_LBRACK, - ACTIONS(61), 1, - anon_sym_DOT, - STATE(40), 2, - sym_attr_splat, - sym_full_splat, - STATE(39), 3, - sym_index, - sym_get_attr, - sym_splat, - ACTIONS(55), 8, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_EQ_GT, - [1302] = 6, + sym_function_call, + [1527] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(65), 1, anon_sym_EQ, ACTIONS(67), 1, anon_sym_LBRACK, - ACTIONS(70), 1, + ACTIONS(69), 1, anon_sym_DOT, - STATE(26), 3, + STATE(52), 2, + sym_attr_splat, + sym_full_splat, + STATE(51), 3, sym_index, sym_get_attr, - aux_sym_full_splat_repeat1, - ACTIONS(63), 8, + sym_splat, + ACTIONS(63), 9, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -3563,20 +3762,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COLON, anon_sym_EQ_GT, - [1330] = 6, + anon_sym_DOT_DOT_DOT, + [1560] = 6, ACTIONS(3), 1, sym_comment, + ACTIONS(73), 1, + anon_sym_EQ, ACTIONS(75), 1, - anon_sym_EQ, - ACTIONS(77), 1, anon_sym_LBRACK, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_DOT, - STATE(28), 3, + STATE(32), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, - ACTIONS(73), 8, + ACTIONS(71), 9, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -3585,20 +3785,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COLON, anon_sym_EQ_GT, - [1358] = 6, + anon_sym_DOT_DOT_DOT, + [1589] = 6, ACTIONS(3), 1, sym_comment, + ACTIONS(83), 1, + anon_sym_EQ, ACTIONS(85), 1, - anon_sym_EQ, - ACTIONS(87), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_DOT, - STATE(26), 3, + STATE(30), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, - ACTIONS(83), 8, + ACTIONS(81), 9, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -3607,52 +3808,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COLON, anon_sym_EQ_GT, - [1386] = 5, + anon_sym_DOT_DOT_DOT, + [1618] = 6, ACTIONS(3), 1, sym_comment, + ACTIONS(93), 1, + anon_sym_EQ, ACTIONS(95), 1, - anon_sym_EQ, - ACTIONS(97), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, anon_sym_DOT, - STATE(32), 2, + STATE(32), 3, + sym_index, sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(93), 9, + aux_sym_full_splat_repeat1, + ACTIONS(91), 9, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, anon_sym_EQ_GT, - [1411] = 5, + anon_sym_DOT_DOT_DOT, + [1647] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(102), 1, + ACTIONS(103), 2, anon_sym_EQ, - ACTIONS(104), 1, anon_sym_DOT, - STATE(30), 2, - sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(100), 9, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, - anon_sym_EQ_GT, - [1436] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(109), 1, - anon_sym_EQ, - ACTIONS(107), 12, + ACTIONS(101), 12, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -3663,19 +3849,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1457] = 5, + anon_sym_DOT_DOT_DOT, + [1669] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(113), 1, + ACTIONS(107), 1, anon_sym_EQ, - ACTIONS(115), 1, + ACTIONS(109), 1, anon_sym_DOT, - STATE(30), 2, + STATE(35), 2, sym_get_attr, aux_sym_attr_splat_repeat1, - ACTIONS(111), 9, + ACTIONS(105), 10, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -3685,28 +3871,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COLON, anon_sym_EQ_GT, - [1482] = 3, + anon_sym_DOT_DOT_DOT, + [1695] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(120), 1, + ACTIONS(114), 1, anon_sym_EQ, - ACTIONS(118), 10, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_COLON, + ACTIONS(116), 1, anon_sym_DOT, - anon_sym_EQ_GT, - [1501] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(124), 1, - anon_sym_EQ, - ACTIONS(122), 10, + STATE(36), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(112), 10, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -3715,13 +3891,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1520] = 3, + anon_sym_DOT_DOT_DOT, + [1721] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(128), 1, + ACTIONS(121), 1, anon_sym_EQ, + ACTIONS(123), 1, + anon_sym_DOT, + STATE(36), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(119), 10, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_EQ_GT, + anon_sym_DOT_DOT_DOT, + [1747] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(128), 2, + anon_sym_EQ, + anon_sym_DOT, ACTIONS(126), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3731,13 +3929,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1539] = 3, + anon_sym_DOT_DOT_DOT, + [1767] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(132), 1, + ACTIONS(132), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(130), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3747,13 +3946,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1558] = 3, + anon_sym_DOT_DOT_DOT, + [1787] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(136), 1, + ACTIONS(136), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(134), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3763,13 +3963,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1577] = 3, + anon_sym_DOT_DOT_DOT, + [1807] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(140), 1, + ACTIONS(140), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(138), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3779,13 +3980,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1596] = 3, + anon_sym_DOT_DOT_DOT, + [1827] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(144), 1, + ACTIONS(144), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(142), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3795,13 +3997,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1615] = 3, + anon_sym_DOT_DOT_DOT, + [1847] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(148), 1, + ACTIONS(148), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(146), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3811,13 +4014,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1634] = 3, + anon_sym_DOT_DOT_DOT, + [1867] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(152), 1, + ACTIONS(152), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(150), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3827,13 +4031,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1653] = 3, + anon_sym_DOT_DOT_DOT, + [1887] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(156), 1, + ACTIONS(156), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(154), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3843,32 +4048,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1672] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(158), 1, - anon_sym_LBRACK, - ACTIONS(160), 1, - anon_sym_DOT, - STATE(89), 2, - sym_attr_splat, - sym_full_splat, - STATE(69), 3, - sym_index, - sym_get_attr, - sym_splat, - ACTIONS(55), 4, - anon_sym_RBRACE, - anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, - anon_sym_if, - [1697] = 3, + [1907] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(164), 1, + ACTIONS(160), 2, anon_sym_EQ, + anon_sym_DOT, + ACTIONS(158), 10, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_EQ_GT, + anon_sym_DOT_DOT_DOT, + [1927] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(164), 2, + anon_sym_EQ, + anon_sym_DOT, ACTIONS(162), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3878,13 +4082,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1716] = 3, + anon_sym_DOT_DOT_DOT, + [1947] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(168), 1, + ACTIONS(168), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(166), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3894,13 +4099,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1735] = 3, + anon_sym_DOT_DOT_DOT, + [1967] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(172), 1, + ACTIONS(172), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(170), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3910,13 +4116,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1754] = 3, + anon_sym_DOT_DOT_DOT, + [1987] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(176), 1, + ACTIONS(176), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(174), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3926,13 +4133,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1773] = 3, + anon_sym_DOT_DOT_DOT, + [2007] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(180), 1, + ACTIONS(180), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(178), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3942,13 +4150,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1792] = 3, + anon_sym_DOT_DOT_DOT, + [2027] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(184), 1, + ACTIONS(184), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(182), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3958,13 +4167,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1811] = 3, + anon_sym_DOT_DOT_DOT, + [2047] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(188), 1, + ACTIONS(188), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(186), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3974,13 +4184,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1830] = 3, + anon_sym_DOT_DOT_DOT, + [2067] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(192), 1, + ACTIONS(192), 2, anon_sym_EQ, + anon_sym_DOT, ACTIONS(190), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -3990,13 +4201,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1849] = 3, + anon_sym_DOT_DOT_DOT, + [2087] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(196), 1, - anon_sym_EQ, + anon_sym_LPAREN, + ACTIONS(198), 1, + anon_sym_DOT, ACTIONS(194), 10, ts_builtin_sym_end, anon_sym_RBRACE, @@ -4006,14 +4219,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1868] = 3, + anon_sym_DOT_DOT_DOT, + [2109] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(200), 1, + ACTIONS(202), 2, anon_sym_EQ, - ACTIONS(198), 10, + anon_sym_DOT, + ACTIONS(200), 10, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -4022,14 +4236,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1887] = 3, + anon_sym_DOT_DOT_DOT, + [2129] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(204), 1, + ACTIONS(206), 2, anon_sym_EQ, - ACTIONS(202), 10, + anon_sym_DOT, + ACTIONS(204), 10, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -4038,12 +4253,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1906] = 2, + anon_sym_DOT_DOT_DOT, + [2149] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(206), 10, + ACTIONS(210), 2, + anon_sym_EQ, + anon_sym_DOT, + ACTIONS(208), 10, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -4052,222 +4270,210 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_RBRACK, anon_sym_COLON, - anon_sym_DOT, anon_sym_EQ_GT, - [1922] = 3, + anon_sym_DOT_DOT_DOT, + [2169] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(210), 4, - sym_identifier, - anon_sym_true, - anon_sym_false, - sym_null_lit, - ACTIONS(208), 5, - anon_sym_LBRACE, - anon_sym_LPAREN, - sym_numeric_lit, - anon_sym_DQUOTE, - anon_sym_LBRACK, - [1939] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(212), 1, - anon_sym_LBRACK, - ACTIONS(215), 1, + ACTIONS(214), 2, + anon_sym_EQ, anon_sym_DOT, - STATE(57), 3, + ACTIONS(212), 10, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_EQ_GT, + anon_sym_DOT_DOT_DOT, + [2189] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(218), 2, + anon_sym_EQ, + anon_sym_DOT, + ACTIONS(216), 10, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_EQ_GT, + anon_sym_DOT_DOT_DOT, + [2209] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(222), 2, + anon_sym_EQ, + anon_sym_DOT, + ACTIONS(220), 10, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_COLON, + anon_sym_EQ_GT, + anon_sym_DOT_DOT_DOT, + [2229] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(224), 1, + anon_sym_LBRACK, + ACTIONS(226), 1, + anon_sym_DOT, + STATE(87), 2, + sym_attr_splat, + sym_full_splat, + STATE(88), 3, sym_index, sym_get_attr, - aux_sym_full_splat_repeat1, + sym_splat, ACTIONS(63), 4, anon_sym_RBRACE, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [1960] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(218), 1, - anon_sym_LBRACK, - ACTIONS(221), 1, - anon_sym_DOT, - STATE(57), 3, - sym_index, - sym_get_attr, - aux_sym_full_splat_repeat1, - ACTIONS(83), 4, - anon_sym_RBRACE, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [1981] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(226), 4, - sym_identifier, - anon_sym_true, - anon_sym_false, - sym_null_lit, - ACTIONS(224), 5, - anon_sym_LBRACE, - anon_sym_LPAREN, - sym_numeric_lit, - anon_sym_DQUOTE, - anon_sym_LBRACK, - [1998] = 5, + [2254] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(228), 1, anon_sym_LBRACK, ACTIONS(231), 1, anon_sym_DOT, - STATE(58), 3, + STATE(62), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, - ACTIONS(73), 4, + ACTIONS(91), 4, anon_sym_RBRACE, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2019] = 4, + [2275] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(234), 1, - anon_sym_DOT, - STATE(61), 2, - sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(100), 5, - anon_sym_RBRACE, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2037] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(237), 1, anon_sym_DOT, - STATE(61), 2, + STATE(62), 3, + sym_index, sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(111), 5, + aux_sym_full_splat_repeat1, + ACTIONS(71), 4, anon_sym_RBRACE, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2055] = 4, + [2296] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(240), 1, - anon_sym_DOT, - STATE(62), 2, - sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(93), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2073] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(164), 1, - anon_sym_DOT, - ACTIONS(162), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2087] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(17), 1, - anon_sym_DQUOTE, - ACTIONS(243), 1, - anon_sym_EQ, - ACTIONS(245), 1, + ACTIONS(242), 4, + sym_identifier, + anon_sym_true, + anon_sym_false, + sym_null_lit, + ACTIONS(240), 5, anon_sym_LBRACE, - ACTIONS(247), 1, - sym_identifier, - STATE(93), 2, - sym_string_lit, - aux_sym_block_repeat1, - [2107] = 4, + anon_sym_LPAREN, + sym_numeric_lit, + anon_sym_DQUOTE, + anon_sym_LBRACK, + [2313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(5), 1, + ACTIONS(246), 4, sym_identifier, - ACTIONS(249), 2, - ts_builtin_sym_end, - anon_sym_RBRACE, - STATE(70), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [2123] = 5, + anon_sym_true, + anon_sym_false, + sym_null_lit, + ACTIONS(244), 5, + anon_sym_LBRACE, + anon_sym_LPAREN, + sym_numeric_lit, + anon_sym_DQUOTE, + anon_sym_LBRACK, + [2330] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(5), 1, - sym_identifier, + ACTIONS(248), 1, + anon_sym_LBRACK, ACTIONS(251), 1, + anon_sym_DOT, + STATE(63), 3, + sym_index, + sym_get_attr, + aux_sym_full_splat_repeat1, + ACTIONS(81), 4, anon_sym_RBRACE, - STATE(138), 1, - sym_body, - STATE(66), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [2141] = 3, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2351] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(253), 1, + ACTIONS(254), 1, anon_sym_DOT, - ACTIONS(206), 5, + STATE(67), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(119), 5, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2155] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(144), 1, - anon_sym_DOT, - ACTIONS(142), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2169] = 4, + [2369] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(257), 1, - sym_identifier, - ACTIONS(255), 2, - ts_builtin_sym_end, - anon_sym_RBRACE, - STATE(70), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [2185] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(152), 1, anon_sym_DOT, - ACTIONS(150), 5, + STATE(67), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(112), 5, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2199] = 3, + [2387] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(260), 1, + anon_sym_DOT, + STATE(68), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(105), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2405] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(198), 1, + anon_sym_DOT, + ACTIONS(263), 1, + anon_sym_LPAREN, + ACTIONS(194), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2422] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(132), 1, @@ -4278,152 +4484,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2213] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(138), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2227] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(192), 1, - anon_sym_DOT, - ACTIONS(190), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2241] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(5), 1, - sym_identifier, - ACTIONS(260), 1, - anon_sym_RBRACE, - STATE(130), 1, - sym_body, - STATE(66), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [2259] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(180), 1, - anon_sym_DOT, - ACTIONS(178), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2273] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(136), 1, - anon_sym_DOT, - ACTIONS(134), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2287] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(176), 1, - anon_sym_DOT, - ACTIONS(174), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2301] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(168), 1, - anon_sym_DOT, - ACTIONS(166), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2315] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(196), 1, - anon_sym_DOT, - ACTIONS(194), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2329] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(128), 1, - anon_sym_DOT, - ACTIONS(126), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2343] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(124), 1, - anon_sym_DOT, - ACTIONS(122), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2357] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(156), 1, - anon_sym_DOT, - ACTIONS(154), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2371] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(188), 1, - anon_sym_DOT, - ACTIONS(186), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2385] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(184), 1, - anon_sym_DOT, - ACTIONS(182), 5, - anon_sym_RBRACE, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_DOT_DOT_DOT, - anon_sym_if, - [2399] = 3, + [2436] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(172), 1, @@ -4434,29 +4495,212 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2413] = 3, + [2450] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(109), 1, + ACTIONS(210), 1, anon_sym_DOT, - ACTIONS(107), 5, + ACTIONS(208), 5, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2427] = 3, + [2464] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(120), 1, + ACTIONS(136), 1, anon_sym_DOT, - ACTIONS(118), 5, + ACTIONS(134), 5, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2441] = 3, + [2478] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(152), 1, + anon_sym_DOT, + ACTIONS(150), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2492] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(144), 1, + anon_sym_DOT, + ACTIONS(142), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2506] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(160), 1, + anon_sym_DOT, + ACTIONS(158), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2520] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(265), 1, + anon_sym_RBRACE, + STATE(154), 1, + sym_body, + STATE(81), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [2538] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(140), 1, + anon_sym_DOT, + ACTIONS(138), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2552] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(214), 1, + anon_sym_DOT, + ACTIONS(212), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2566] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(267), 2, + ts_builtin_sym_end, + anon_sym_RBRACE, + STATE(90), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [2582] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(222), 1, + anon_sym_DOT, + ACTIONS(220), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2596] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(168), 1, + anon_sym_DOT, + ACTIONS(166), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2610] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(17), 1, + anon_sym_DQUOTE, + ACTIONS(269), 1, + anon_sym_EQ, + ACTIONS(271), 1, + anon_sym_LBRACE, + ACTIONS(273), 1, + sym_identifier, + STATE(100), 2, + sym_string_lit, + aux_sym_block_repeat1, + [2630] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(218), 1, + anon_sym_DOT, + ACTIONS(216), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2644] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(103), 1, + anon_sym_DOT, + ACTIONS(101), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2658] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(188), 1, + anon_sym_DOT, + ACTIONS(186), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2672] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(184), 1, + anon_sym_DOT, + ACTIONS(182), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2686] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(202), 1, + anon_sym_DOT, + ACTIONS(200), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2700] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + sym_identifier, + ACTIONS(275), 2, + ts_builtin_sym_end, + anon_sym_RBRACE, + STATE(90), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [2716] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(148), 1, @@ -4467,778 +4711,925 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2455] = 3, + [2730] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(204), 1, + ACTIONS(192), 1, anon_sym_DOT, - ACTIONS(202), 5, + ACTIONS(190), 5, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2469] = 3, + [2744] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(200), 1, + ACTIONS(180), 1, anon_sym_DOT, - ACTIONS(198), 5, + ACTIONS(178), 5, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_DOT_DOT_DOT, anon_sym_if, - [2483] = 5, + [2758] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(262), 1, - anon_sym_LBRACE, - ACTIONS(264), 1, + ACTIONS(164), 1, + anon_sym_DOT, + ACTIONS(162), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2772] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(176), 1, + anon_sym_DOT, + ACTIONS(174), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2786] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(5), 1, sym_identifier, - ACTIONS(267), 1, - anon_sym_DQUOTE, - STATE(92), 2, - sym_string_lit, - aux_sym_block_repeat1, - [2500] = 5, + ACTIONS(280), 1, + anon_sym_RBRACE, + STATE(142), 1, + sym_body, + STATE(81), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [2804] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(128), 1, + anon_sym_DOT, + ACTIONS(126), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2818] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(206), 1, + anon_sym_DOT, + ACTIONS(204), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2832] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(156), 1, + anon_sym_DOT, + ACTIONS(154), 5, + anon_sym_RBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + anon_sym_if, + [2846] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(17), 1, anon_sym_DQUOTE, - ACTIONS(270), 1, + ACTIONS(282), 1, anon_sym_LBRACE, - ACTIONS(272), 1, + ACTIONS(284), 1, sym_identifier, - STATE(92), 2, + STATE(103), 2, sym_string_lit, aux_sym_block_repeat1, - [2517] = 3, + [2863] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(206), 2, + ACTIONS(196), 1, + anon_sym_LPAREN, + ACTIONS(194), 2, anon_sym_LBRACK, anon_sym_DOT, - ACTIONS(274), 2, + ACTIONS(286), 2, anon_sym_EQ, anon_sym_COLON, - [2529] = 5, + [2878] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(277), 1, - anon_sym_RBRACE, - ACTIONS(279), 1, - anon_sym_DOT_DOT_DOT, - ACTIONS(281), 1, - anon_sym_if, - STATE(127), 1, - sym_for_cond, - [2545] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(281), 1, - anon_sym_if, - ACTIONS(283), 1, - anon_sym_RBRACE, - ACTIONS(285), 1, - anon_sym_DOT_DOT_DOT, - STATE(143), 1, - sym_for_cond, - [2561] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(287), 3, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - [2570] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(289), 1, + ACTIONS(291), 1, anon_sym_COMMA, - ACTIONS(292), 1, - anon_sym_RBRACK, - STATE(98), 1, + STATE(102), 1, aux_sym_tuple_repeat1, - [2583] = 2, + ACTIONS(289), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + [2893] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(294), 3, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - [2592] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(281), 1, - anon_sym_if, + ACTIONS(294), 1, + anon_sym_LBRACE, ACTIONS(296), 1, - anon_sym_RBRACE, - STATE(144), 1, - sym_for_cond, - [2605] = 4, + sym_identifier, + ACTIONS(299), 1, + anon_sym_DQUOTE, + STATE(103), 2, + sym_string_lit, + aux_sym_block_repeat1, + [2910] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(281), 1, - anon_sym_if, - ACTIONS(298), 1, - anon_sym_RBRACK, - STATE(139), 1, - sym_for_cond, - [2618] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(300), 1, - anon_sym_COMMA, + ACTIONS(41), 1, + anon_sym_RPAREN, ACTIONS(302), 1, - anon_sym_RBRACK, - STATE(114), 1, - aux_sym_tuple_repeat1, - [2631] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(300), 1, anon_sym_COMMA, ACTIONS(304), 1, - anon_sym_RBRACK, - STATE(98), 1, + anon_sym_DOT_DOT_DOT, + STATE(102), 1, aux_sym_tuple_repeat1, - [2644] = 4, + [2926] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(289), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_DOT_DOT_DOT, + [2936] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(306), 1, anon_sym_RBRACE, ACTIONS(308), 1, - anon_sym_COMMA, - STATE(112), 1, - aux_sym_object_repeat1, - [2657] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(308), 1, - anon_sym_COMMA, + anon_sym_DOT_DOT_DOT, ACTIONS(310), 1, - anon_sym_RBRACE, - STATE(111), 1, - aux_sym_object_repeat1, - [2670] = 4, + anon_sym_if, + STATE(157), 1, + sym_for_cond, + [2952] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(300), 1, - anon_sym_COMMA, ACTIONS(312), 1, - anon_sym_RBRACK, - STATE(103), 1, - aux_sym_tuple_repeat1, - [2683] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(308), 1, - anon_sym_COMMA, + anon_sym_RPAREN, ACTIONS(314), 1, - anon_sym_RBRACE, + anon_sym_COMMA, + ACTIONS(316), 1, + anon_sym_DOT_DOT_DOT, STATE(104), 1, - aux_sym_object_repeat1, - [2696] = 2, + aux_sym_tuple_repeat1, + [2968] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(316), 3, - ts_builtin_sym_end, - anon_sym_RBRACE, - sym_identifier, - [2705] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(281), 1, + ACTIONS(310), 1, anon_sym_if, ACTIONS(318), 1, - anon_sym_RBRACK, - STATE(128), 1, - sym_for_cond, - [2718] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(281), 1, - anon_sym_if, + anon_sym_RBRACE, ACTIONS(320), 1, - anon_sym_RBRACE, - STATE(124), 1, + anon_sym_DOT_DOT_DOT, + STATE(134), 1, sym_for_cond, - [2731] = 4, + [2984] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(308), 1, - anon_sym_COMMA, - ACTIONS(322), 1, - anon_sym_RBRACE, - STATE(112), 1, - aux_sym_object_repeat1, - [2744] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(324), 1, - anon_sym_RBRACE, - ACTIONS(326), 1, - anon_sym_COMMA, - STATE(112), 1, - aux_sym_object_repeat1, - [2757] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(329), 3, + ACTIONS(322), 3, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, - [2766] = 4, + [2993] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(300), 1, - anon_sym_COMMA, - ACTIONS(331), 1, + ACTIONS(310), 1, + anon_sym_if, + ACTIONS(324), 1, anon_sym_RBRACK, - STATE(98), 1, - aux_sym_tuple_repeat1, - [2779] = 3, + STATE(138), 1, + sym_for_cond, + [3006] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(333), 1, + ACTIONS(326), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [3015] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(328), 1, + anon_sym_RBRACE, + ACTIONS(330), 1, anon_sym_COMMA, - ACTIONS(335), 1, - anon_sym_in, - [2789] = 2, + STATE(125), 1, + aux_sym_object_repeat1, + [3028] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(337), 2, + ACTIONS(330), 1, + anon_sym_COMMA, + ACTIONS(332), 1, + anon_sym_RBRACE, + STATE(119), 1, + aux_sym_object_repeat1, + [3041] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(334), 1, + anon_sym_COMMA, + ACTIONS(336), 1, + anon_sym_RBRACK, + STATE(102), 1, + aux_sym_tuple_repeat1, + [3054] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(310), 1, + anon_sym_if, + ACTIONS(338), 1, + anon_sym_RBRACK, + STATE(153), 1, + sym_for_cond, + [3067] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(310), 1, + anon_sym_if, + ACTIONS(340), 1, + anon_sym_RBRACE, + STATE(145), 1, + sym_for_cond, + [3080] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(334), 1, + anon_sym_COMMA, + ACTIONS(342), 1, + anon_sym_RBRACK, + STATE(114), 1, + aux_sym_tuple_repeat1, + [3093] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(334), 1, + anon_sym_COMMA, + ACTIONS(344), 1, + anon_sym_RBRACK, + STATE(102), 1, + aux_sym_tuple_repeat1, + [3106] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(330), 1, + anon_sym_COMMA, + ACTIONS(346), 1, + anon_sym_RBRACE, + STATE(122), 1, + aux_sym_object_repeat1, + [3119] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(348), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [3128] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(310), 1, + anon_sym_if, + ACTIONS(350), 1, + anon_sym_RBRACE, + STATE(158), 1, + sym_for_cond, + [3141] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(352), 1, + anon_sym_RBRACE, + ACTIONS(354), 1, + anon_sym_COMMA, + STATE(122), 1, + aux_sym_object_repeat1, + [3154] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(334), 1, + anon_sym_COMMA, + ACTIONS(357), 1, + anon_sym_RBRACK, + STATE(118), 1, + aux_sym_tuple_repeat1, + [3167] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(359), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [3176] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(330), 1, + anon_sym_COMMA, + ACTIONS(361), 1, + anon_sym_RBRACE, + STATE(122), 1, + aux_sym_object_repeat1, + [3189] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(363), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [3197] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(352), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [3205] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(365), 2, anon_sym_EQ, anon_sym_COLON, - [2797] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(339), 1, - sym_identifier, - ACTIONS(341), 1, - anon_sym_STAR, - [2807] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(343), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [2815] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(345), 1, - sym_identifier, - ACTIONS(347), 1, - anon_sym_STAR, - [2825] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(324), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [2833] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(292), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [2841] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(349), 2, - anon_sym_RBRACE, - anon_sym_RBRACK, - [2849] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(351), 1, - anon_sym_RBRACK, - [2856] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(353), 1, - anon_sym_RBRACE, - [2863] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(355), 1, - anon_sym_DQUOTE, - [2870] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(357), 1, - anon_sym_EQ_GT, - [2877] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(320), 1, - anon_sym_RBRACE, - [2884] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(359), 1, - anon_sym_RBRACK, - [2891] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(361), 1, - anon_sym_DQUOTE, - [2898] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(363), 1, - anon_sym_RBRACE, - [2905] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(365), 1, - anon_sym_RPAREN, - [2912] = 2, + [3213] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(367), 1, - anon_sym_RBRACK, - [2919] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(339), 1, sym_identifier, - [2926] = 2, - ACTIONS(3), 1, - sym_comment, ACTIONS(369), 1, - anon_sym_COLON, - [2933] = 2, + anon_sym_STAR, + [3223] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(371), 1, - anon_sym_RPAREN, - [2940] = 2, - ACTIONS(3), 1, - sym_comment, + anon_sym_COMMA, ACTIONS(373), 1, - anon_sym_RBRACK, - [2947] = 2, + anon_sym_in, + [3233] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(375), 1, sym_identifier, - [2954] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(260), 1, - anon_sym_RBRACE, - [2961] = 2, - ACTIONS(3), 1, - sym_comment, ACTIONS(377), 1, + anon_sym_STAR, + [3243] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(379), 2, + anon_sym_RBRACE, anon_sym_RBRACK, - [2968] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(379), 1, - sym_identifier, - [2975] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(345), 1, - sym_identifier, - [2982] = 2, + [3251] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(381), 1, - anon_sym_COLON, - [2989] = 2, + anon_sym_RBRACK, + [3258] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(296), 1, + ACTIONS(340), 1, anon_sym_RBRACE, - [2996] = 2, + [3265] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(383), 1, - anon_sym_RBRACE, - [3003] = 2, - ACTIONS(385), 1, - aux_sym_string_lit_token1, - ACTIONS(387), 1, + anon_sym_COLON, + [3272] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(385), 1, + anon_sym_in, + [3279] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(367), 1, + sym_identifier, + [3286] = 2, + ACTIONS(3), 1, sym_comment, - [3010] = 2, ACTIONS(387), 1, + anon_sym_RBRACK, + [3293] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(41), 1, + anon_sym_RPAREN, + [3300] = 2, + ACTIONS(3), 1, sym_comment, ACTIONS(389), 1, - aux_sym_string_lit_token1, - [3017] = 2, + sym_identifier, + [3307] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(391), 1, - anon_sym_in, - [3024] = 2, + anon_sym_DQUOTE, + [3314] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(265), 1, + anon_sym_RBRACE, + [3321] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(393), 1, anon_sym_RBRACK, - [3031] = 2, + [3328] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(395), 1, - ts_builtin_sym_end, - [3038] = 2, + anon_sym_RPAREN, + [3335] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(397), 1, - anon_sym_EQ_GT, - [3045] = 2, + anon_sym_RBRACE, + [3342] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(399), 1, + anon_sym_COLON, + [3349] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(401), 1, + anon_sym_RPAREN, + [3356] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(403), 1, + anon_sym_RPAREN, + [3363] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(405), 1, + anon_sym_EQ_GT, + [3370] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(45), 1, + anon_sym_RPAREN, + [3377] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(407), 1, + anon_sym_RBRACK, + [3384] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(409), 1, + anon_sym_RBRACK, + [3391] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(411), 1, + anon_sym_RBRACK, + [3398] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(413), 1, + anon_sym_RBRACE, + [3405] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(375), 1, + sym_identifier, + [3412] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(415), 1, + anon_sym_RPAREN, + [3419] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(350), 1, + anon_sym_RBRACE, + [3426] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(417), 1, + anon_sym_RBRACE, + [3433] = 2, + ACTIONS(419), 1, + aux_sym_string_lit_token1, + ACTIONS(421), 1, + sym_comment, + [3440] = 2, + ACTIONS(421), 1, + sym_comment, + ACTIONS(423), 1, + aux_sym_string_lit_token1, + [3447] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(425), 1, + anon_sym_DQUOTE, + [3454] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(427), 1, + sym_identifier, + [3461] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(429), 1, + ts_builtin_sym_end, + [3468] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(431), 1, + anon_sym_EQ_GT, + [3475] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(433), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 65, - [SMALL_STATE(4)] = 130, - [SMALL_STATE(5)] = 192, - [SMALL_STATE(6)] = 254, - [SMALL_STATE(7)] = 310, - [SMALL_STATE(8)] = 366, - [SMALL_STATE(9)] = 422, - [SMALL_STATE(10)] = 475, - [SMALL_STATE(11)] = 528, - [SMALL_STATE(12)] = 581, - [SMALL_STATE(13)] = 634, - [SMALL_STATE(14)] = 687, - [SMALL_STATE(15)] = 740, - [SMALL_STATE(16)] = 793, - [SMALL_STATE(17)] = 846, - [SMALL_STATE(18)] = 899, - [SMALL_STATE(19)] = 952, - [SMALL_STATE(20)] = 1005, - [SMALL_STATE(21)] = 1058, - [SMALL_STATE(22)] = 1111, - [SMALL_STATE(23)] = 1164, - [SMALL_STATE(24)] = 1217, - [SMALL_STATE(25)] = 1270, - [SMALL_STATE(26)] = 1302, - [SMALL_STATE(27)] = 1330, - [SMALL_STATE(28)] = 1358, - [SMALL_STATE(29)] = 1386, - [SMALL_STATE(30)] = 1411, - [SMALL_STATE(31)] = 1436, - [SMALL_STATE(32)] = 1457, - [SMALL_STATE(33)] = 1482, - [SMALL_STATE(34)] = 1501, - [SMALL_STATE(35)] = 1520, - [SMALL_STATE(36)] = 1539, - [SMALL_STATE(37)] = 1558, - [SMALL_STATE(38)] = 1577, - [SMALL_STATE(39)] = 1596, - [SMALL_STATE(40)] = 1615, - [SMALL_STATE(41)] = 1634, - [SMALL_STATE(42)] = 1653, - [SMALL_STATE(43)] = 1672, - [SMALL_STATE(44)] = 1697, - [SMALL_STATE(45)] = 1716, - [SMALL_STATE(46)] = 1735, - [SMALL_STATE(47)] = 1754, - [SMALL_STATE(48)] = 1773, - [SMALL_STATE(49)] = 1792, - [SMALL_STATE(50)] = 1811, - [SMALL_STATE(51)] = 1830, - [SMALL_STATE(52)] = 1849, - [SMALL_STATE(53)] = 1868, - [SMALL_STATE(54)] = 1887, - [SMALL_STATE(55)] = 1906, - [SMALL_STATE(56)] = 1922, - [SMALL_STATE(57)] = 1939, - [SMALL_STATE(58)] = 1960, - [SMALL_STATE(59)] = 1981, - [SMALL_STATE(60)] = 1998, - [SMALL_STATE(61)] = 2019, - [SMALL_STATE(62)] = 2037, - [SMALL_STATE(63)] = 2055, - [SMALL_STATE(64)] = 2073, - [SMALL_STATE(65)] = 2087, - [SMALL_STATE(66)] = 2107, - [SMALL_STATE(67)] = 2123, - [SMALL_STATE(68)] = 2141, - [SMALL_STATE(69)] = 2155, - [SMALL_STATE(70)] = 2169, - [SMALL_STATE(71)] = 2185, - [SMALL_STATE(72)] = 2199, - [SMALL_STATE(73)] = 2213, - [SMALL_STATE(74)] = 2227, - [SMALL_STATE(75)] = 2241, - [SMALL_STATE(76)] = 2259, - [SMALL_STATE(77)] = 2273, - [SMALL_STATE(78)] = 2287, - [SMALL_STATE(79)] = 2301, - [SMALL_STATE(80)] = 2315, - [SMALL_STATE(81)] = 2329, - [SMALL_STATE(82)] = 2343, - [SMALL_STATE(83)] = 2357, - [SMALL_STATE(84)] = 2371, - [SMALL_STATE(85)] = 2385, - [SMALL_STATE(86)] = 2399, - [SMALL_STATE(87)] = 2413, - [SMALL_STATE(88)] = 2427, - [SMALL_STATE(89)] = 2441, - [SMALL_STATE(90)] = 2455, - [SMALL_STATE(91)] = 2469, - [SMALL_STATE(92)] = 2483, - [SMALL_STATE(93)] = 2500, - [SMALL_STATE(94)] = 2517, - [SMALL_STATE(95)] = 2529, - [SMALL_STATE(96)] = 2545, - [SMALL_STATE(97)] = 2561, - [SMALL_STATE(98)] = 2570, - [SMALL_STATE(99)] = 2583, - [SMALL_STATE(100)] = 2592, - [SMALL_STATE(101)] = 2605, - [SMALL_STATE(102)] = 2618, - [SMALL_STATE(103)] = 2631, - [SMALL_STATE(104)] = 2644, - [SMALL_STATE(105)] = 2657, - [SMALL_STATE(106)] = 2670, - [SMALL_STATE(107)] = 2683, - [SMALL_STATE(108)] = 2696, - [SMALL_STATE(109)] = 2705, - [SMALL_STATE(110)] = 2718, - [SMALL_STATE(111)] = 2731, - [SMALL_STATE(112)] = 2744, - [SMALL_STATE(113)] = 2757, - [SMALL_STATE(114)] = 2766, - [SMALL_STATE(115)] = 2779, - [SMALL_STATE(116)] = 2789, - [SMALL_STATE(117)] = 2797, - [SMALL_STATE(118)] = 2807, - [SMALL_STATE(119)] = 2815, - [SMALL_STATE(120)] = 2825, - [SMALL_STATE(121)] = 2833, - [SMALL_STATE(122)] = 2841, - [SMALL_STATE(123)] = 2849, - [SMALL_STATE(124)] = 2856, - [SMALL_STATE(125)] = 2863, - [SMALL_STATE(126)] = 2870, - [SMALL_STATE(127)] = 2877, - [SMALL_STATE(128)] = 2884, - [SMALL_STATE(129)] = 2891, - [SMALL_STATE(130)] = 2898, - [SMALL_STATE(131)] = 2905, - [SMALL_STATE(132)] = 2912, - [SMALL_STATE(133)] = 2919, - [SMALL_STATE(134)] = 2926, - [SMALL_STATE(135)] = 2933, - [SMALL_STATE(136)] = 2940, - [SMALL_STATE(137)] = 2947, - [SMALL_STATE(138)] = 2954, - [SMALL_STATE(139)] = 2961, - [SMALL_STATE(140)] = 2968, - [SMALL_STATE(141)] = 2975, - [SMALL_STATE(142)] = 2982, - [SMALL_STATE(143)] = 2989, - [SMALL_STATE(144)] = 2996, - [SMALL_STATE(145)] = 3003, - [SMALL_STATE(146)] = 3010, - [SMALL_STATE(147)] = 3017, - [SMALL_STATE(148)] = 3024, - [SMALL_STATE(149)] = 3031, - [SMALL_STATE(150)] = 3038, - [SMALL_STATE(151)] = 3045, + [SMALL_STATE(3)] = 66, + [SMALL_STATE(4)] = 132, + [SMALL_STATE(5)] = 195, + [SMALL_STATE(6)] = 258, + [SMALL_STATE(7)] = 318, + [SMALL_STATE(8)] = 378, + [SMALL_STATE(9)] = 435, + [SMALL_STATE(10)] = 492, + [SMALL_STATE(11)] = 549, + [SMALL_STATE(12)] = 606, + [SMALL_STATE(13)] = 663, + [SMALL_STATE(14)] = 717, + [SMALL_STATE(15)] = 771, + [SMALL_STATE(16)] = 825, + [SMALL_STATE(17)] = 879, + [SMALL_STATE(18)] = 933, + [SMALL_STATE(19)] = 987, + [SMALL_STATE(20)] = 1041, + [SMALL_STATE(21)] = 1095, + [SMALL_STATE(22)] = 1149, + [SMALL_STATE(23)] = 1203, + [SMALL_STATE(24)] = 1257, + [SMALL_STATE(25)] = 1311, + [SMALL_STATE(26)] = 1365, + [SMALL_STATE(27)] = 1419, + [SMALL_STATE(28)] = 1473, + [SMALL_STATE(29)] = 1527, + [SMALL_STATE(30)] = 1560, + [SMALL_STATE(31)] = 1589, + [SMALL_STATE(32)] = 1618, + [SMALL_STATE(33)] = 1647, + [SMALL_STATE(34)] = 1669, + [SMALL_STATE(35)] = 1695, + [SMALL_STATE(36)] = 1721, + [SMALL_STATE(37)] = 1747, + [SMALL_STATE(38)] = 1767, + [SMALL_STATE(39)] = 1787, + [SMALL_STATE(40)] = 1807, + [SMALL_STATE(41)] = 1827, + [SMALL_STATE(42)] = 1847, + [SMALL_STATE(43)] = 1867, + [SMALL_STATE(44)] = 1887, + [SMALL_STATE(45)] = 1907, + [SMALL_STATE(46)] = 1927, + [SMALL_STATE(47)] = 1947, + [SMALL_STATE(48)] = 1967, + [SMALL_STATE(49)] = 1987, + [SMALL_STATE(50)] = 2007, + [SMALL_STATE(51)] = 2027, + [SMALL_STATE(52)] = 2047, + [SMALL_STATE(53)] = 2067, + [SMALL_STATE(54)] = 2087, + [SMALL_STATE(55)] = 2109, + [SMALL_STATE(56)] = 2129, + [SMALL_STATE(57)] = 2149, + [SMALL_STATE(58)] = 2169, + [SMALL_STATE(59)] = 2189, + [SMALL_STATE(60)] = 2209, + [SMALL_STATE(61)] = 2229, + [SMALL_STATE(62)] = 2254, + [SMALL_STATE(63)] = 2275, + [SMALL_STATE(64)] = 2296, + [SMALL_STATE(65)] = 2313, + [SMALL_STATE(66)] = 2330, + [SMALL_STATE(67)] = 2351, + [SMALL_STATE(68)] = 2369, + [SMALL_STATE(69)] = 2387, + [SMALL_STATE(70)] = 2405, + [SMALL_STATE(71)] = 2422, + [SMALL_STATE(72)] = 2436, + [SMALL_STATE(73)] = 2450, + [SMALL_STATE(74)] = 2464, + [SMALL_STATE(75)] = 2478, + [SMALL_STATE(76)] = 2492, + [SMALL_STATE(77)] = 2506, + [SMALL_STATE(78)] = 2520, + [SMALL_STATE(79)] = 2538, + [SMALL_STATE(80)] = 2552, + [SMALL_STATE(81)] = 2566, + [SMALL_STATE(82)] = 2582, + [SMALL_STATE(83)] = 2596, + [SMALL_STATE(84)] = 2610, + [SMALL_STATE(85)] = 2630, + [SMALL_STATE(86)] = 2644, + [SMALL_STATE(87)] = 2658, + [SMALL_STATE(88)] = 2672, + [SMALL_STATE(89)] = 2686, + [SMALL_STATE(90)] = 2700, + [SMALL_STATE(91)] = 2716, + [SMALL_STATE(92)] = 2730, + [SMALL_STATE(93)] = 2744, + [SMALL_STATE(94)] = 2758, + [SMALL_STATE(95)] = 2772, + [SMALL_STATE(96)] = 2786, + [SMALL_STATE(97)] = 2804, + [SMALL_STATE(98)] = 2818, + [SMALL_STATE(99)] = 2832, + [SMALL_STATE(100)] = 2846, + [SMALL_STATE(101)] = 2863, + [SMALL_STATE(102)] = 2878, + [SMALL_STATE(103)] = 2893, + [SMALL_STATE(104)] = 2910, + [SMALL_STATE(105)] = 2926, + [SMALL_STATE(106)] = 2936, + [SMALL_STATE(107)] = 2952, + [SMALL_STATE(108)] = 2968, + [SMALL_STATE(109)] = 2984, + [SMALL_STATE(110)] = 2993, + [SMALL_STATE(111)] = 3006, + [SMALL_STATE(112)] = 3015, + [SMALL_STATE(113)] = 3028, + [SMALL_STATE(114)] = 3041, + [SMALL_STATE(115)] = 3054, + [SMALL_STATE(116)] = 3067, + [SMALL_STATE(117)] = 3080, + [SMALL_STATE(118)] = 3093, + [SMALL_STATE(119)] = 3106, + [SMALL_STATE(120)] = 3119, + [SMALL_STATE(121)] = 3128, + [SMALL_STATE(122)] = 3141, + [SMALL_STATE(123)] = 3154, + [SMALL_STATE(124)] = 3167, + [SMALL_STATE(125)] = 3176, + [SMALL_STATE(126)] = 3189, + [SMALL_STATE(127)] = 3197, + [SMALL_STATE(128)] = 3205, + [SMALL_STATE(129)] = 3213, + [SMALL_STATE(130)] = 3223, + [SMALL_STATE(131)] = 3233, + [SMALL_STATE(132)] = 3243, + [SMALL_STATE(133)] = 3251, + [SMALL_STATE(134)] = 3258, + [SMALL_STATE(135)] = 3265, + [SMALL_STATE(136)] = 3272, + [SMALL_STATE(137)] = 3279, + [SMALL_STATE(138)] = 3286, + [SMALL_STATE(139)] = 3293, + [SMALL_STATE(140)] = 3300, + [SMALL_STATE(141)] = 3307, + [SMALL_STATE(142)] = 3314, + [SMALL_STATE(143)] = 3321, + [SMALL_STATE(144)] = 3328, + [SMALL_STATE(145)] = 3335, + [SMALL_STATE(146)] = 3342, + [SMALL_STATE(147)] = 3349, + [SMALL_STATE(148)] = 3356, + [SMALL_STATE(149)] = 3363, + [SMALL_STATE(150)] = 3370, + [SMALL_STATE(151)] = 3377, + [SMALL_STATE(152)] = 3384, + [SMALL_STATE(153)] = 3391, + [SMALL_STATE(154)] = 3398, + [SMALL_STATE(155)] = 3405, + [SMALL_STATE(156)] = 3412, + [SMALL_STATE(157)] = 3419, + [SMALL_STATE(158)] = 3426, + [SMALL_STATE(159)] = 3433, + [SMALL_STATE(160)] = 3440, + [SMALL_STATE(161)] = 3447, + [SMALL_STATE(162)] = 3454, + [SMALL_STATE(163)] = 3461, + [SMALL_STATE(164)] = 3468, + [SMALL_STATE(165)] = 3475, }; 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(65), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), - [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), - [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(19), - [70] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(133), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 3), - [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_full_splat, 3), - [77] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(19), - [80] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(133), - [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 4), - [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_full_splat, 4), - [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(19), - [90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(133), - [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 2), - [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 2), - [97] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_attr_splat, 2), SHIFT(133), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), - [104] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(133), - [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 3), - [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_lit, 3), - [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 3), - [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 3), - [115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_attr_splat, 3), SHIFT(133), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_lit, 1), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_lit, 1), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 4), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 4), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal_value, 1), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal_value, 1), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 7), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 7), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 6), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 6), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 2), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 2), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_splat, 1), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_splat, 1), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 2), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 3), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [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(11), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), + [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 4), + [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_full_splat, 4), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(19), + [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(137), + [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 3), + [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_full_splat, 3), + [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(19), + [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(137), + [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), + [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), + [95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(19), + [98] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(137), + [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 3), + [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_lit, 3), + [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 2), + [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 2), + [109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(137), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 3), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 3), + [116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 3), SHIFT(137), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), + [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), + [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(137), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 3), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expr, 1), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_expr, 1), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 4), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 4), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_get_attr, 2), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_get_attr, 2), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 4), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 4), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 2), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 2), [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 8), [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 8), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_get_attr, 2), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_get_attr, 2), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 4), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 4), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 2), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 2), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 3), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 3), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 4), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 4), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 3), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 3), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 3), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 5), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 5), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expr, 1), - [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_expr, 1), - [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_collection_value, 1), - [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_collection_value, 1), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 1), - [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 1), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expr, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 5), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 5), - [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(10), - [215] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(141), - [218] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(10), - [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(141), - [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 7), - [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 7), - [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(10), - [231] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(141), - [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(141), - [237] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 3), SHIFT(141), - [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(141), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 1), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_expr, 1), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), - [257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), SHIFT_REPEAT(65), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [264] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(92), - [267] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(146), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [274] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_variable_expr, 1), SHIFT(22), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 1), - [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), SHIFT_REPEAT(21), - [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 1), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 1), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 7), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 7), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_lit, 1), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_lit, 1), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 6), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 6), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal_value, 1), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal_value, 1), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 1), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 1), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 2), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 2), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_splat, 1), + [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_splat, 1), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_collection_value, 1), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_collection_value, 1), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expr, 1), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_expr, 1), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 5), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 5), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 3), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 3), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 4), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 4), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3), + [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3), + [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 3), + [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 3), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(22), + [231] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(155), + [234] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(22), + [237] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(155), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 5), + [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 5), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 7), + [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 7), + [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(22), + [251] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(155), + [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(155), + [257] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 3), SHIFT(155), + [260] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(155), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 1), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), + [277] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), SHIFT_REPEAT(84), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [286] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_variable_expr, 1), SHIFT(26), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), + [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), SHIFT_REPEAT(27), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(103), + [299] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(160), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 1), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), - [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), SHIFT_REPEAT(6), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 1), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object_elem, 3), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_cond, 2), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [385] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), - [387] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [389] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config_file, 1), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [399] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 1), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 1), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 1), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), + [354] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), SHIFT_REPEAT(8), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 1), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object_elem, 3), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_cond, 2), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [419] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [421] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [423] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config_file, 1), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [433] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus diff --git a/test/corpus/collections.txt b/test/corpus/collections.txt new file mode 100644 index 0000000..f6c27f4 --- /dev/null +++ b/test/corpus/collections.txt @@ -0,0 +1,43 @@ +================== +collection value tuple +================== + +foo = [1, 2, "foo"] + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (collection_value + (tuple + (expression (expr_term (literal_value (numeric_lit)))) + (expression (expr_term (literal_value (numeric_lit)))) + (expression (expr_term (literal_value (string_lit))))))))))) + +================== +collection value object +================== + +foo = {1: 2, "foo"="bar"} + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (collection_value + (object + (object_elem + (expression (expr_term (literal_value (numeric_lit)))) + (expression (expr_term (literal_value (numeric_lit))))) + (object_elem + (expression (expr_term (literal_value (string_lit)))) + (expression (expr_term (literal_value (string_lit)))))))))))) + diff --git a/test/corpus/function_calls.txt b/test/corpus/function_calls.txt new file mode 100644 index 0000000..989dfba --- /dev/null +++ b/test/corpus/function_calls.txt @@ -0,0 +1,86 @@ +================== +nonary function call +================== + +foo = bar() + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (function_call + (identifier))))))) + +================== +unary function call +================== + +foo = bar("foo") + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (function_call + (identifier) + (function_arguments + (expression + (expr_term + (literal_value + (string_lit))))))))))) + +================== +variadic function call +================== + +foo = bar(x...) + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (function_call + (identifier) + (function_arguments + (expression + (expr_term + (variable_expr + (identifier))))))))))) + +================== +multiline function call +================== + +foo = bar( + "a", + "b", + "c" +) + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (function_call + (identifier) + (function_arguments + (expression (expr_term (literal_value (string_lit)))) + (expression (expr_term (literal_value (string_lit)))) + (expression (expr_term (literal_value (string_lit))))))))))) + diff --git a/test/corpus/expressions.txt b/test/corpus/literals.txt similarity index 86% rename from test/corpus/expressions.txt rename to test/corpus/literals.txt index 6724337..1f18c89 100644 --- a/test/corpus/expressions.txt +++ b/test/corpus/literals.txt @@ -118,6 +118,24 @@ foo = "bar" (literal_value (string_lit))))))) +================== +string literal escaped newline +================== + +foo = "bar\nbaz" + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (literal_value + (string_lit))))))) + + ================== string literal multi line error ================== @@ -187,22 +205,3 @@ foo = null (literal_value (null_lit))))))) -================== -collection value tuple -================== - -foo = [1, 2, "foo"] - ---- - -(config_file - (body - (attribute - (identifier) - (expression - (expr_term - (collection_value - (tuple - (expression (expr_term (literal_value (numeric_lit)))) - (expression (expr_term (literal_value (numeric_lit)))) - (expression (expr_term (literal_value (string_lit))))))))))) diff --git a/test/corpus/splat.txt b/test/corpus/splat.txt new file mode 100644 index 0000000..d17037e --- /dev/null +++ b/test/corpus/splat.txt @@ -0,0 +1,86 @@ +================== +get attr +================== + +foo = bar.baz + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (expr_term + (variable_expr + (identifier))) + (get_attr + (identifier))))))) + +================== +get index +================== + +foo = bar[1] + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (expr_term + (variable_expr + (identifier))) + (index + (expression + (expr_term + (literal_value + (numeric_lit)))))))))) + +================== +attr splat +================== + +foo = bar.*.foo + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (expr_term + (variable_expr + (identifier))) + (splat + (attr_splat + (get_attr + (identifier))))))))) + +================== +full splat +================== + +foo = bar[*].foo + +--- + +(config_file + (body + (attribute + (identifier) + (expression + (expr_term + (expr_term + (variable_expr + (identifier))) + (splat + (full_splat + (get_attr + (identifier)))))))))