diff --git a/README.md b/README.md index f6070d3..6cbd293 100644 --- a/README.md +++ b/README.md @@ -14,4 +14,4 @@ To run tests simply run `nix-shell --run 'tree-sitter test'`. * use [UnicodeĀ® Standard Annex #31](https://www.unicode.org/reports/tr31/) (augmented with '-')for identifiers * add [operations](https://github.com/hashicorp/hcl/blob/main/hclsyntax/spec.md#operations) -* add [template expressions](https://github.com/hashicorp/hcl/blob/main/hclsyntax/spec.md#template-expressions) and express string literals using them +* add [template expressions](https://github.com/hashicorp/hcl/blob/main/hclsyntax/spec.md#template-expressions) diff --git a/grammar.js b/grammar.js index aeb7df7..94014ca 100644 --- a/grammar.js +++ b/grammar.js @@ -76,7 +76,24 @@ module.exports = grammar({ numeric_lit: $ => /[0-9]+(\.[0-9]+([eE][-+]?[0-9]+)?)?/, - string_lit: $ => (seq('"', token.immediate(repeat(choice(/[^\\"\n]/, /\\(.|\n)/))), '"')), + string_lit: $ => seq( + '"', + repeat(choice(token.immediate(prec(1, /[^\\"\n\r\t]+/)), $.escape_sequence)), + '"', + ), + + escape_sequence: $ => token.immediate(seq( + '\\', + choice( + '\\', + '"', + 'n', + 'r', + 't', + /u[0-9a-fA-F]{4}/, + /U[0-9a-fA-F]{8}/ + ) + )), bool_lit: $ => choice('true', 'false'), diff --git a/src/grammar.json b/src/grammar.json index c7ff81b..a88f605 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -255,22 +255,26 @@ "value": "\"" }, { - "type": "IMMEDIATE_TOKEN", + "type": "REPEAT", "content": { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "[^\\\\\"\\n]" - }, - { - "type": "PATTERN", - "value": "\\\\(.|\\n)" + "type": "CHOICE", + "members": [ + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^\\\\\"\\n\\r\\t]+" + } } - ] - } + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + } + ] } }, { @@ -279,6 +283,51 @@ } ] }, + "escape_sequence": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "STRING", + "value": "\"" + }, + { + "type": "STRING", + "value": "n" + }, + { + "type": "STRING", + "value": "r" + }, + { + "type": "STRING", + "value": "t" + }, + { + "type": "PATTERN", + "value": "u[0-9a-fA-F]{4}" + }, + { + "type": "PATTERN", + "value": "U[0-9a-fA-F]{8}" + } + ] + } + ] + } + }, "bool_lit": { "type": "CHOICE", "members": [ diff --git a/src/node-types.json b/src/node-types.json index ca5f579..21518cc 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -497,7 +497,17 @@ { "type": "string_lit", "named": true, - "fields": {} + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "escape_sequence", + "named": true + } + ] + } }, { "type": "tuple", @@ -585,6 +595,10 @@ "type": "ellipsis", "named": true }, + { + "type": "escape_sequence", + "named": true + }, { "type": "false", "named": false diff --git a/src/parser.c b/src/parser.c index 05c41c7..79d6aed 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 13 -#define STATE_COUNT 176 +#define STATE_COUNT 179 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 59 +#define SYMBOL_COUNT 61 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 26 +#define TOKEN_COUNT 27 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 1 #define MAX_ALIAS_SEQUENCE_LENGTH 8 @@ -26,55 +26,57 @@ enum { sym_numeric_lit = 7, anon_sym_DQUOTE = 8, aux_sym_string_lit_token1 = 9, - anon_sym_true = 10, - anon_sym_false = 11, - sym_null_lit = 12, - anon_sym_LBRACK = 13, - anon_sym_COMMA = 14, - anon_sym_RBRACK = 15, - anon_sym_COLON = 16, - anon_sym_DOT = 17, - anon_sym_STAR = 18, - anon_sym_EQ_GT = 19, - anon_sym_for = 20, - anon_sym_in = 21, - anon_sym_if = 22, - sym_ellipsis = 23, - anon_sym_QMARK = 24, - sym_comment = 25, - sym_config_file = 26, - sym_body = 27, - sym_attribute = 28, - sym_block = 29, - sym_expression = 30, - sym_expr_term = 31, - sym_literal_value = 32, - sym_string_lit = 33, - sym_bool_lit = 34, - sym_collection_value = 35, - sym_tuple = 36, - sym_object = 37, - sym_object_elem = 38, - sym_index = 39, - sym_get_attr = 40, - sym_splat = 41, - sym_attr_splat = 42, - sym_full_splat = 43, - sym_for_expr = 44, - sym_for_tuple_expr = 45, - sym_for_object_expr = 46, - sym_for_intro = 47, - sym_for_cond = 48, - sym_variable_expr = 49, - sym_function_call = 50, - sym_function_arguments = 51, - sym_conditional = 52, - aux_sym_body_repeat1 = 53, - aux_sym_block_repeat1 = 54, - aux_sym_tuple_repeat1 = 55, - aux_sym_object_repeat1 = 56, - aux_sym_attr_splat_repeat1 = 57, - aux_sym_full_splat_repeat1 = 58, + sym_escape_sequence = 10, + anon_sym_true = 11, + anon_sym_false = 12, + sym_null_lit = 13, + anon_sym_LBRACK = 14, + anon_sym_COMMA = 15, + anon_sym_RBRACK = 16, + anon_sym_COLON = 17, + anon_sym_DOT = 18, + anon_sym_STAR = 19, + anon_sym_EQ_GT = 20, + anon_sym_for = 21, + anon_sym_in = 22, + anon_sym_if = 23, + sym_ellipsis = 24, + anon_sym_QMARK = 25, + sym_comment = 26, + sym_config_file = 27, + sym_body = 28, + sym_attribute = 29, + sym_block = 30, + sym_expression = 31, + sym_expr_term = 32, + sym_literal_value = 33, + sym_string_lit = 34, + sym_bool_lit = 35, + sym_collection_value = 36, + sym_tuple = 37, + sym_object = 38, + sym_object_elem = 39, + sym_index = 40, + sym_get_attr = 41, + sym_splat = 42, + sym_attr_splat = 43, + sym_full_splat = 44, + sym_for_expr = 45, + sym_for_tuple_expr = 46, + sym_for_object_expr = 47, + sym_for_intro = 48, + sym_for_cond = 49, + sym_variable_expr = 50, + sym_function_call = 51, + sym_function_arguments = 52, + sym_conditional = 53, + aux_sym_body_repeat1 = 54, + aux_sym_block_repeat1 = 55, + aux_sym_string_lit_repeat1 = 56, + aux_sym_tuple_repeat1 = 57, + aux_sym_object_repeat1 = 58, + aux_sym_attr_splat_repeat1 = 59, + aux_sym_full_splat_repeat1 = 60, }; static const char * const ts_symbol_names[] = { @@ -88,6 +90,7 @@ static const char * const ts_symbol_names[] = { [sym_numeric_lit] = "numeric_lit", [anon_sym_DQUOTE] = "\"", [aux_sym_string_lit_token1] = "string_lit_token1", + [sym_escape_sequence] = "escape_sequence", [anon_sym_true] = "true", [anon_sym_false] = "false", [sym_null_lit] = "null_lit", @@ -133,6 +136,7 @@ static const char * const ts_symbol_names[] = { [sym_conditional] = "conditional", [aux_sym_body_repeat1] = "body_repeat1", [aux_sym_block_repeat1] = "block_repeat1", + [aux_sym_string_lit_repeat1] = "string_lit_repeat1", [aux_sym_tuple_repeat1] = "tuple_repeat1", [aux_sym_object_repeat1] = "object_repeat1", [aux_sym_attr_splat_repeat1] = "attr_splat_repeat1", @@ -150,6 +154,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_numeric_lit] = sym_numeric_lit, [anon_sym_DQUOTE] = anon_sym_DQUOTE, [aux_sym_string_lit_token1] = aux_sym_string_lit_token1, + [sym_escape_sequence] = sym_escape_sequence, [anon_sym_true] = anon_sym_true, [anon_sym_false] = anon_sym_false, [sym_null_lit] = sym_null_lit, @@ -195,6 +200,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_conditional] = sym_conditional, [aux_sym_body_repeat1] = aux_sym_body_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, + [aux_sym_string_lit_repeat1] = aux_sym_string_lit_repeat1, [aux_sym_tuple_repeat1] = aux_sym_tuple_repeat1, [aux_sym_object_repeat1] = aux_sym_object_repeat1, [aux_sym_attr_splat_repeat1] = aux_sym_attr_splat_repeat1, @@ -242,6 +248,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [sym_escape_sequence] = { + .visible = true, + .named = true, + }, [anon_sym_true] = { .visible = true, .named = false, @@ -422,6 +432,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_string_lit_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_tuple_repeat1] = { .visible = false, .named = false, @@ -2013,421 +2027,509 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(27); - if (lookahead == '"') ADVANCE(50); - if (lookahead == '#') ADVANCE(79); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(69); - if (lookahead == ',') ADVANCE(64); - if (lookahead == '.') ADVANCE(68); - if (lookahead == '/') ADVANCE(4); - if (lookahead == ':') ADVANCE(66); - if (lookahead == '=') ADVANCE(29); - if (lookahead == '?') ADVANCE(76); - if (lookahead == '[') ADVANCE(63); - if (lookahead == ']') ADVANCE(65); - if (lookahead == 'f') ADVANCE(9); - if (lookahead == 'i') ADVANCE(12); - if (lookahead == 'n') ADVANCE(20); - if (lookahead == 't') ADVANCE(17); - if (lookahead == '{') ADVANCE(30); - if (lookahead == '}') ADVANCE(31); + if (eof) ADVANCE(37); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '(') ADVANCE(55); + if (lookahead == ')') ADVANCE(56); + if (lookahead == '*') ADVANCE(79); + if (lookahead == ',') ADVANCE(74); + if (lookahead == '.') ADVANCE(78); + if (lookahead == '/') ADVANCE(6); + if (lookahead == ':') ADVANCE(76); + if (lookahead == '=') ADVANCE(39); + if (lookahead == '?') ADVANCE(86); + if (lookahead == '[') ADVANCE(73); + if (lookahead == '\\') ADVANCE(24); + if (lookahead == ']') ADVANCE(75); + if (lookahead == 'f') ADVANCE(11); + if (lookahead == 'i') ADVANCE(14); + if (lookahead == 'n') ADVANCE(22); + if (lookahead == 't') ADVANCE(19); + if (lookahead == '{') ADVANCE(40); + if (lookahead == '}') ADVANCE(41); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); + lookahead == ' ') SKIP(35) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(57); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(50); - if (lookahead == '#') ADVANCE(79); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(69); - if (lookahead == '/') ADVANCE(4); - if (lookahead == '=') ADVANCE(8); - if (lookahead == '?') ADVANCE(76); - if (lookahead == '[') ADVANCE(63); - if (lookahead == 'f') ADVANCE(33); - if (lookahead == 'n') ADVANCE(43); - if (lookahead == 't') ADVANCE(40); - if (lookahead == '{') ADVANCE(30); + if (lookahead == ' ') ADVANCE(61); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(65); + if (lookahead == '/') ADVANCE(62); + if (lookahead == '\\') ADVANCE(24); if (lookahead == '\t' || lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + lookahead == '\r') SKIP(5) + if (lookahead != 0) ADVANCE(65); END_STATE(); case 2: - if (lookahead == '"') ADVANCE(50); - if (lookahead == '#') ADVANCE(79); - if (lookahead == '(') ADVANCE(45); - if (lookahead == '.') ADVANCE(67); - if (lookahead == '/') ADVANCE(4); - if (lookahead == ':') ADVANCE(66); - if (lookahead == '=') ADVANCE(28); - if (lookahead == '?') ADVANCE(76); - if (lookahead == '[') ADVANCE(63); - if (lookahead == ']') ADVANCE(65); - if (lookahead == 'f') ADVANCE(32); - if (lookahead == 'n') ADVANCE(43); - if (lookahead == 't') ADVANCE(40); - if (lookahead == '{') ADVANCE(30); - if (lookahead == '}') ADVANCE(31); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '(') ADVANCE(55); + if (lookahead == ')') ADVANCE(56); + if (lookahead == '*') ADVANCE(79); + if (lookahead == '/') ADVANCE(6); + if (lookahead == '=') ADVANCE(10); + if (lookahead == '?') ADVANCE(86); + if (lookahead == '[') ADVANCE(73); + if (lookahead == 'f') ADVANCE(43); + if (lookahead == 'n') ADVANCE(53); + if (lookahead == 't') ADVANCE(50); + if (lookahead == '{') ADVANCE(40); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(57); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); END_STATE(); case 3: - if (lookahead == '"') ADVANCE(50); - if (lookahead == '#') ADVANCE(79); - if (lookahead == '/') ADVANCE(4); - if (lookahead == '=') ADVANCE(28); - if (lookahead == '{') ADVANCE(30); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '(') ADVANCE(55); + if (lookahead == '.') ADVANCE(77); + if (lookahead == '/') ADVANCE(6); + if (lookahead == ':') ADVANCE(76); + if (lookahead == '=') ADVANCE(38); + if (lookahead == '?') ADVANCE(86); + if (lookahead == '[') ADVANCE(73); + if (lookahead == ']') ADVANCE(75); + if (lookahead == 'f') ADVANCE(42); + if (lookahead == 'n') ADVANCE(53); + if (lookahead == 't') ADVANCE(50); + if (lookahead == '{') ADVANCE(40); + if (lookahead == '}') ADVANCE(41); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(3) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(57); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); END_STATE(); case 4: - if (lookahead == '*') ADVANCE(6); - if (lookahead == '/') ADVANCE(79); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '/') ADVANCE(6); + if (lookahead == '=') ADVANCE(38); + if (lookahead == '{') ADVANCE(40); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(4) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); END_STATE(); case 5: - if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(77); - if (lookahead != 0) ADVANCE(6); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '/') ADVANCE(6); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(5) END_STATE(); case 6: - if (lookahead == '*') ADVANCE(5); - if (lookahead != 0) ADVANCE(6); + if (lookahead == '*') ADVANCE(8); + if (lookahead == '/') ADVANCE(88); END_STATE(); case 7: - if (lookahead == '.') ADVANCE(75); + if (lookahead == '*') ADVANCE(7); + if (lookahead == '/') ADVANCE(87); + if (lookahead != 0) ADVANCE(8); END_STATE(); case 8: - if (lookahead == '>') ADVANCE(70); + if (lookahead == '*') ADVANCE(7); + if (lookahead != 0) ADVANCE(8); END_STATE(); case 9: - if (lookahead == 'a') ADVANCE(13); - if (lookahead == 'o') ADVANCE(16); + if (lookahead == '.') ADVANCE(85); END_STATE(); case 10: - if (lookahead == 'e') ADVANCE(57); + if (lookahead == '>') ADVANCE(80); END_STATE(); case 11: - if (lookahead == 'e') ADVANCE(59); + if (lookahead == 'a') ADVANCE(15); + if (lookahead == 'o') ADVANCE(18); END_STATE(); case 12: - if (lookahead == 'f') ADVANCE(74); - if (lookahead == 'n') ADVANCE(73); + if (lookahead == 'e') ADVANCE(67); END_STATE(); case 13: - if (lookahead == 'l') ADVANCE(18); + if (lookahead == 'e') ADVANCE(69); END_STATE(); case 14: - if (lookahead == 'l') ADVANCE(61); + if (lookahead == 'f') ADVANCE(84); + if (lookahead == 'n') ADVANCE(83); END_STATE(); case 15: - if (lookahead == 'l') ADVANCE(14); + if (lookahead == 'l') ADVANCE(20); END_STATE(); case 16: - if (lookahead == 'r') ADVANCE(71); + if (lookahead == 'l') ADVANCE(71); END_STATE(); case 17: - if (lookahead == 'r') ADVANCE(19); + if (lookahead == 'l') ADVANCE(16); END_STATE(); case 18: - if (lookahead == 's') ADVANCE(11); + if (lookahead == 'r') ADVANCE(81); END_STATE(); case 19: - if (lookahead == 'u') ADVANCE(10); + if (lookahead == 'r') ADVANCE(21); END_STATE(); case 20: - if (lookahead == 'u') ADVANCE(15); + if (lookahead == 's') ADVANCE(13); END_STATE(); case 21: - if (lookahead == '+' || - lookahead == '-') ADVANCE(23); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); + if (lookahead == 'u') ADVANCE(12); END_STATE(); case 22: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48); + if (lookahead == 'u') ADVANCE(17); END_STATE(); case 23: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); + if (lookahead == '+' || + lookahead == '-') ADVANCE(26); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(59); END_STATE(); case 24: - if (lookahead != 0 && - lookahead != '*') ADVANCE(55); - if (lookahead == '*') ADVANCE(54); + if (lookahead == '"' || + lookahead == '\\' || + lookahead == 'n' || + lookahead == 'r' || + lookahead == 't') ADVANCE(66); + if (lookahead == 'U') ADVANCE(34); + if (lookahead == 'u') ADVANCE(30); END_STATE(); case 25: - if (lookahead != 0) ADVANCE(56); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(58); END_STATE(); case 26: - if (eof) ADVANCE(27); - if (lookahead == '"') ADVANCE(50); - if (lookahead == '#') ADVANCE(79); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(69); - if (lookahead == ',') ADVANCE(64); - if (lookahead == '.') ADVANCE(68); - if (lookahead == '/') ADVANCE(4); - if (lookahead == ':') ADVANCE(66); - if (lookahead == '=') ADVANCE(29); - if (lookahead == '?') ADVANCE(76); - if (lookahead == '[') ADVANCE(63); - if (lookahead == ']') ADVANCE(65); - if (lookahead == '{') ADVANCE(30); - if (lookahead == '}') ADVANCE(31); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(26) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(59); END_STATE(); case 27: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(66); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_EQ); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(27); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '>') ADVANCE(70); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(28); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_LBRACE); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(29); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_RBRACE); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(30); END_STATE(); case 32: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(36); - if (lookahead == 'o') ADVANCE(39); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(31); END_STATE(); case 33: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(36); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(32); END_STATE(); case 34: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(58); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(33); END_STATE(); case 35: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(60); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (eof) ADVANCE(37); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '(') ADVANCE(55); + if (lookahead == ')') ADVANCE(56); + if (lookahead == '*') ADVANCE(79); + if (lookahead == ',') ADVANCE(74); + if (lookahead == '.') ADVANCE(78); + if (lookahead == '/') ADVANCE(6); + if (lookahead == ':') ADVANCE(76); + if (lookahead == '=') ADVANCE(39); + if (lookahead == '?') ADVANCE(86); + if (lookahead == '[') ADVANCE(73); + if (lookahead == ']') ADVANCE(75); + if (lookahead == 'f') ADVANCE(11); + if (lookahead == 'i') ADVANCE(14); + if (lookahead == 'n') ADVANCE(22); + if (lookahead == 't') ADVANCE(19); + if (lookahead == '{') ADVANCE(40); + if (lookahead == '}') ADVANCE(41); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(35) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(57); END_STATE(); case 36: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(41); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (eof) ADVANCE(37); + if (lookahead == '"') ADVANCE(60); + if (lookahead == '#') ADVANCE(88); + if (lookahead == '(') ADVANCE(55); + if (lookahead == ')') ADVANCE(56); + if (lookahead == '*') ADVANCE(79); + if (lookahead == ',') ADVANCE(74); + if (lookahead == '.') ADVANCE(78); + if (lookahead == '/') ADVANCE(6); + if (lookahead == ':') ADVANCE(76); + if (lookahead == '=') ADVANCE(39); + if (lookahead == '?') ADVANCE(86); + if (lookahead == '[') ADVANCE(73); + if (lookahead == ']') ADVANCE(75); + if (lookahead == '{') ADVANCE(40); + if (lookahead == '}') ADVANCE(41); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(36) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); END_STATE(); case 37: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(62); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 38: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(37); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 39: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(72); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '>') ADVANCE(80); END_STATE(); case 40: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(42); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 41: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(35); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 42: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'u') ADVANCE(34); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (lookahead == 'a') ADVANCE(46); + if (lookahead == 'o') ADVANCE(49); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(54); END_STATE(); case 43: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'u') ADVANCE(38); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (lookahead == 'a') ADVANCE(46); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(54); END_STATE(); case 44: ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (lookahead == 'e') ADVANCE(68); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(70); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 46: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(51); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 47: - ACCEPT_TOKEN(sym_numeric_lit); - if (lookahead == '.') ADVANCE(22); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(72); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 48: - ACCEPT_TOKEN(sym_numeric_lit); - if (lookahead == 'E' || - lookahead == 'e') ADVANCE(21); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(47); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 49: - ACCEPT_TOKEN(sym_numeric_lit); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(82); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 50: - ACCEPT_TOKEN(anon_sym_DQUOTE); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(52); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 51: - ACCEPT_TOKEN(aux_sym_string_lit_token1); - if (lookahead == '"') ADVANCE(79); - if (lookahead == '\\') ADVANCE(78); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(51); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(45); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); case 52: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(44); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 53: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(48); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 54: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 55: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 56: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 57: + ACCEPT_TOKEN(sym_numeric_lit); + if (lookahead == '.') ADVANCE(25); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(57); + END_STATE(); + case 58: + ACCEPT_TOKEN(sym_numeric_lit); + if (lookahead == 'E' || + lookahead == 'e') ADVANCE(23); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(58); + END_STATE(); + case 59: + ACCEPT_TOKEN(sym_numeric_lit); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(59); + END_STATE(); + case 60: + ACCEPT_TOKEN(anon_sym_DQUOTE); + END_STATE(); + case 61: ACCEPT_TOKEN(aux_sym_string_lit_token1); - if (lookahead == '#') ADVANCE(51); - if (lookahead == '/') ADVANCE(53); - if (lookahead == '\\') ADVANCE(25); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') ADVANCE(52); + if (lookahead == ' ') ADVANCE(61); + if (lookahead == '#') ADVANCE(65); + if (lookahead == '/') ADVANCE(62); if (lookahead != 0 && + lookahead != '\t' && lookahead != '\n' && - lookahead != '"') ADVANCE(56); + lookahead != '\r' && + lookahead != '"' && + lookahead != '\\') ADVANCE(65); END_STATE(); - case 53: + case 62: ACCEPT_TOKEN(aux_sym_string_lit_token1); - if (lookahead == '*') ADVANCE(55); - if (lookahead == '/') ADVANCE(51); - if (lookahead == '\\') ADVANCE(25); + if (lookahead == '*') ADVANCE(64); + if (lookahead == '/') ADVANCE(65); if (lookahead != 0 && + lookahead != '\t' && lookahead != '\n' && - lookahead != '"') ADVANCE(56); + lookahead != '\r' && + lookahead != '"' && + lookahead != '\\') ADVANCE(65); END_STATE(); - case 54: + case 63: ACCEPT_TOKEN(aux_sym_string_lit_token1); - if (lookahead == '*') ADVANCE(54); - if (lookahead == '/') ADVANCE(56); - if (lookahead == '\\') ADVANCE(24); - if (lookahead == '\n' || - lookahead == '"') ADVANCE(6); - if (lookahead != 0) ADVANCE(55); + if (lookahead == '*') ADVANCE(63); + if (lookahead == '/') ADVANCE(65); + if (lookahead != 0 && + lookahead != '\t' && + lookahead != '\n' && + lookahead != '\r' && + lookahead != '"' && + lookahead != '\\') ADVANCE(64); END_STATE(); - case 55: + case 64: ACCEPT_TOKEN(aux_sym_string_lit_token1); - if (lookahead == '*') ADVANCE(54); - if (lookahead == '\\') ADVANCE(24); - if (lookahead == '\n' || - lookahead == '"') ADVANCE(6); - if (lookahead != 0) ADVANCE(55); + if (lookahead == '*') ADVANCE(63); + if (lookahead != 0 && + lookahead != '\t' && + lookahead != '\n' && + lookahead != '\r' && + lookahead != '"' && + lookahead != '\\') ADVANCE(64); END_STATE(); - case 56: + case 65: ACCEPT_TOKEN(aux_sym_string_lit_token1); - if (lookahead == '\\') ADVANCE(25); if (lookahead != 0 && + lookahead != '\t' && lookahead != '\n' && - lookahead != '"') ADVANCE(56); + lookahead != '\r' && + lookahead != '"' && + lookahead != '\\') ADVANCE(65); END_STATE(); - case 57: + case 66: + ACCEPT_TOKEN(sym_escape_sequence); + END_STATE(); + case 67: ACCEPT_TOKEN(anon_sym_true); END_STATE(); - case 58: + case 68: ACCEPT_TOKEN(anon_sym_true); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); - case 59: + case 69: ACCEPT_TOKEN(anon_sym_false); END_STATE(); - case 60: + case 70: ACCEPT_TOKEN(anon_sym_false); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); - case 61: + case 71: ACCEPT_TOKEN(sym_null_lit); END_STATE(); - case 62: + case 72: ACCEPT_TOKEN(sym_null_lit); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); - case 63: + case 73: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 64: + case 74: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 65: + case 75: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 66: + case 76: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 67: + case 77: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); - case 68: + case 78: ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(7); + if (lookahead == '.') ADVANCE(9); END_STATE(); - case 69: + case 79: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 70: + case 80: ACCEPT_TOKEN(anon_sym_EQ_GT); END_STATE(); - case 71: + case 81: ACCEPT_TOKEN(anon_sym_for); END_STATE(); - case 72: + case 82: ACCEPT_TOKEN(anon_sym_for); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(44); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); END_STATE(); - case 73: + case 83: ACCEPT_TOKEN(anon_sym_in); END_STATE(); - case 74: + case 84: ACCEPT_TOKEN(anon_sym_if); END_STATE(); - case 75: + case 85: ACCEPT_TOKEN(sym_ellipsis); END_STATE(); - case 76: + case 86: ACCEPT_TOKEN(anon_sym_QMARK); END_STATE(); - case 77: - ACCEPT_TOKEN(sym_comment); - END_STATE(); - case 78: + case 87: ACCEPT_TOKEN(sym_comment); - if (lookahead == '\n') ADVANCE(56); - if (lookahead != 0) ADVANCE(51); END_STATE(); - case 79: + case 88: ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(79); + lookahead != '\n') ADVANCE(88); END_STATE(); default: return false; @@ -2436,81 +2538,81 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 26}, - [2] = {.lex_state = 2}, - [3] = {.lex_state = 2}, - [4] = {.lex_state = 2}, - [5] = {.lex_state = 2}, - [6] = {.lex_state = 1}, - [7] = {.lex_state = 1}, - [8] = {.lex_state = 1}, - [9] = {.lex_state = 1}, - [10] = {.lex_state = 1}, - [11] = {.lex_state = 1}, - [12] = {.lex_state = 1}, - [13] = {.lex_state = 1}, - [14] = {.lex_state = 1}, - [15] = {.lex_state = 1}, - [16] = {.lex_state = 1}, - [17] = {.lex_state = 1}, - [18] = {.lex_state = 1}, - [19] = {.lex_state = 1}, - [20] = {.lex_state = 1}, - [21] = {.lex_state = 1}, - [22] = {.lex_state = 1}, - [23] = {.lex_state = 1}, - [24] = {.lex_state = 1}, - [25] = {.lex_state = 1}, - [26] = {.lex_state = 1}, - [27] = {.lex_state = 1}, - [28] = {.lex_state = 1}, - [29] = {.lex_state = 1}, - [30] = {.lex_state = 1}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, - [33] = {.lex_state = 26}, - [34] = {.lex_state = 26}, - [35] = {.lex_state = 26}, - [36] = {.lex_state = 26}, - [37] = {.lex_state = 26}, - [38] = {.lex_state = 26}, - [39] = {.lex_state = 26}, - [40] = {.lex_state = 26}, - [41] = {.lex_state = 26}, - [42] = {.lex_state = 26}, - [43] = {.lex_state = 26}, - [44] = {.lex_state = 26}, - [45] = {.lex_state = 26}, - [46] = {.lex_state = 26}, - [47] = {.lex_state = 26}, - [48] = {.lex_state = 26}, - [49] = {.lex_state = 26}, - [50] = {.lex_state = 26}, - [51] = {.lex_state = 26}, - [52] = {.lex_state = 26}, - [53] = {.lex_state = 26}, - [54] = {.lex_state = 26}, - [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 = 26}, - [62] = {.lex_state = 26}, - [63] = {.lex_state = 26}, - [64] = {.lex_state = 26}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 26}, - [67] = {.lex_state = 26}, - [68] = {.lex_state = 0}, + [1] = {.lex_state = 36}, + [2] = {.lex_state = 3}, + [3] = {.lex_state = 3}, + [4] = {.lex_state = 3}, + [5] = {.lex_state = 3}, + [6] = {.lex_state = 2}, + [7] = {.lex_state = 2}, + [8] = {.lex_state = 2}, + [9] = {.lex_state = 2}, + [10] = {.lex_state = 2}, + [11] = {.lex_state = 2}, + [12] = {.lex_state = 2}, + [13] = {.lex_state = 2}, + [14] = {.lex_state = 2}, + [15] = {.lex_state = 2}, + [16] = {.lex_state = 2}, + [17] = {.lex_state = 2}, + [18] = {.lex_state = 2}, + [19] = {.lex_state = 2}, + [20] = {.lex_state = 2}, + [21] = {.lex_state = 2}, + [22] = {.lex_state = 2}, + [23] = {.lex_state = 2}, + [24] = {.lex_state = 2}, + [25] = {.lex_state = 2}, + [26] = {.lex_state = 2}, + [27] = {.lex_state = 2}, + [28] = {.lex_state = 2}, + [29] = {.lex_state = 2}, + [30] = {.lex_state = 2}, + [31] = {.lex_state = 2}, + [32] = {.lex_state = 2}, + [33] = {.lex_state = 36}, + [34] = {.lex_state = 36}, + [35] = {.lex_state = 36}, + [36] = {.lex_state = 36}, + [37] = {.lex_state = 36}, + [38] = {.lex_state = 36}, + [39] = {.lex_state = 36}, + [40] = {.lex_state = 36}, + [41] = {.lex_state = 36}, + [42] = {.lex_state = 36}, + [43] = {.lex_state = 36}, + [44] = {.lex_state = 36}, + [45] = {.lex_state = 36}, + [46] = {.lex_state = 36}, + [47] = {.lex_state = 36}, + [48] = {.lex_state = 36}, + [49] = {.lex_state = 36}, + [50] = {.lex_state = 36}, + [51] = {.lex_state = 36}, + [52] = {.lex_state = 36}, + [53] = {.lex_state = 36}, + [54] = {.lex_state = 36}, + [55] = {.lex_state = 36}, + [56] = {.lex_state = 36}, + [57] = {.lex_state = 36}, + [58] = {.lex_state = 36}, + [59] = {.lex_state = 36}, + [60] = {.lex_state = 36}, + [61] = {.lex_state = 36}, + [62] = {.lex_state = 36}, + [63] = {.lex_state = 36}, + [64] = {.lex_state = 36}, + [65] = {.lex_state = 36}, + [66] = {.lex_state = 0}, + [67] = {.lex_state = 36}, + [68] = {.lex_state = 36}, [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, - [72] = {.lex_state = 0}, - [73] = {.lex_state = 0}, - [74] = {.lex_state = 1}, - [75] = {.lex_state = 1}, + [72] = {.lex_state = 2}, + [73] = {.lex_state = 2}, + [74] = {.lex_state = 0}, + [75] = {.lex_state = 0}, [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, @@ -2536,66 +2638,66 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, - [101] = {.lex_state = 2}, - [102] = {.lex_state = 26}, - [103] = {.lex_state = 26}, - [104] = {.lex_state = 3}, - [105] = {.lex_state = 26}, - [106] = {.lex_state = 26}, - [107] = {.lex_state = 0}, - [108] = {.lex_state = 0}, - [109] = {.lex_state = 26}, - [110] = {.lex_state = 0}, + [101] = {.lex_state = 0}, + [102] = {.lex_state = 0}, + [103] = {.lex_state = 36}, + [104] = {.lex_state = 4}, + [105] = {.lex_state = 3}, + [106] = {.lex_state = 36}, + [107] = {.lex_state = 36}, + [108] = {.lex_state = 36}, + [109] = {.lex_state = 0}, + [110] = {.lex_state = 36}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, + [113] = {.lex_state = 36}, [114] = {.lex_state = 0}, - [115] = {.lex_state = 26}, + [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, - [117] = {.lex_state = 26}, - [118] = {.lex_state = 0}, - [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, + [117] = {.lex_state = 0}, + [118] = {.lex_state = 1}, + [119] = {.lex_state = 1}, + [120] = {.lex_state = 1}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, - [124] = {.lex_state = 26}, + [123] = {.lex_state = 36}, + [124] = {.lex_state = 1}, [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, - [127] = {.lex_state = 26}, - [128] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 1}, [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, + [130] = {.lex_state = 3}, + [131] = {.lex_state = 36}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 2}, - [135] = {.lex_state = 0}, - [136] = {.lex_state = 26}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 36}, + [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 1}, - [139] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 36}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, - [145] = {.lex_state = 0}, - [146] = {.lex_state = 0}, - [147] = {.lex_state = 26}, - [148] = {.lex_state = 1}, + [145] = {.lex_state = 36}, + [146] = {.lex_state = 2}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, - [150] = {.lex_state = 26}, - [151] = {.lex_state = 26}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 2}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, [156] = {.lex_state = 0}, - [157] = {.lex_state = 0}, - [158] = {.lex_state = 26}, + [157] = {.lex_state = 36}, + [158] = {.lex_state = 0}, [159] = {.lex_state = 0}, - [160] = {.lex_state = 0}, + [160] = {.lex_state = 36}, [161] = {.lex_state = 0}, [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, @@ -2603,14 +2705,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [165] = {.lex_state = 0}, [166] = {.lex_state = 0}, [167] = {.lex_state = 0}, - [168] = {.lex_state = 52}, - [169] = {.lex_state = 26}, - [170] = {.lex_state = 52}, + [168] = {.lex_state = 36}, + [169] = {.lex_state = 0}, + [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, - [172] = {.lex_state = 26}, + [172] = {.lex_state = 36}, [173] = {.lex_state = 0}, [174] = {.lex_state = 0}, [175] = {.lex_state = 0}, + [176] = {.lex_state = 0}, + [177] = {.lex_state = 36}, + [178] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2623,6 +2728,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [sym_numeric_lit] = ACTIONS(1), [anon_sym_DQUOTE] = ACTIONS(1), + [sym_escape_sequence] = ACTIONS(1), [anon_sym_true] = ACTIONS(1), [anon_sym_false] = ACTIONS(1), [sym_null_lit] = ACTIONS(1), @@ -2641,11 +2747,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [1] = { - [sym_config_file] = STATE(175), - [sym_body] = STATE(173), - [sym_attribute] = STATE(102), - [sym_block] = STATE(102), - [aux_sym_body_repeat1] = STATE(102), + [sym_config_file] = STATE(178), + [sym_body] = STATE(176), + [sym_attribute] = STATE(108), + [sym_block] = STATE(108), + [aux_sym_body_repeat1] = STATE(108), [sym_identifier] = ACTIONS(5), [sym_comment] = ACTIONS(3), }, @@ -2673,29 +2779,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(25), 1, anon_sym_for, - STATE(23), 1, + STATE(29), 1, sym_for_intro, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(125), 1, - sym_object_elem, - STATE(134), 1, + STATE(130), 1, sym_expression, + STATE(142), 1, + sym_object_elem, ACTIONS(19), 2, anon_sym_true, anon_sym_false, STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2722,29 +2828,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, ACTIONS(27), 1, anon_sym_RBRACE, - STATE(32), 1, + STATE(24), 1, sym_for_intro, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(132), 1, - sym_object_elem, - STATE(134), 1, + STATE(130), 1, sym_expression, + STATE(141), 1, + sym_object_elem, ACTIONS(19), 2, anon_sym_true, anon_sym_false, STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2771,13 +2877,13 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(31), 1, anon_sym_RBRACK, - STATE(20), 1, + STATE(21), 1, sym_for_intro, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(120), 1, + STATE(127), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -2785,13 +2891,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2818,13 +2924,13 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(33), 1, anon_sym_RBRACK, - STATE(31), 1, + STATE(26), 1, sym_for_intro, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(118), 1, + STATE(122), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -2832,13 +2938,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2865,11 +2971,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(107), 1, + STATE(112), 1, sym_expression, - STATE(165), 1, + STATE(173), 1, sym_function_arguments, ACTIONS(19), 2, anon_sym_true, @@ -2877,13 +2983,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2910,11 +3016,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(107), 1, + STATE(112), 1, sym_expression, - STATE(156), 1, + STATE(161), 1, sym_function_arguments, ACTIONS(19), 2, anon_sym_true, @@ -2922,13 +3028,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2955,9 +3061,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(143), 1, + STATE(148), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -2965,13 +3071,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -2982,8 +3088,6 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(7), 1, anon_sym_LBRACE, - ACTIONS(11), 1, - sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, @@ -2994,27 +3098,29 @@ static const uint16_t ts_small_parse_table[] = { sym_null_lit, ACTIONS(23), 1, anon_sym_LBRACK, + ACTIONS(29), 1, + sym_identifier, + ACTIONS(41), 1, + anon_sym_STAR, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(134), 1, + STATE(152), 1, sym_expression, - STATE(137), 1, - sym_object_elem, ACTIONS(19), 2, anon_sym_true, anon_sym_false, STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3025,6 +3131,8 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(7), 1, anon_sym_LBRACE, + ACTIONS(11), 1, + sym_identifier, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, @@ -3035,29 +3143,27 @@ static const uint16_t ts_small_parse_table[] = { sym_null_lit, ACTIONS(23), 1, anon_sym_LBRACK, - ACTIONS(29), 1, - sym_identifier, - ACTIONS(41), 1, - anon_sym_STAR, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(139), 1, + STATE(130), 1, sym_expression, + STATE(150), 1, + sym_object_elem, ACTIONS(19), 2, anon_sym_true, anon_sym_false, STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3084,9 +3190,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(112), 1, + STATE(109), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3094,13 +3200,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3127,9 +3233,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(112), 1, + STATE(109), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3137,13 +3243,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3152,39 +3258,39 @@ static const uint16_t ts_small_parse_table[] = { [696] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(47), 1, + ACTIONS(7), 1, anon_sym_LBRACE, - ACTIONS(49), 1, - sym_identifier, - ACTIONS(51), 1, + ACTIONS(13), 1, anon_sym_LPAREN, - ACTIONS(53), 1, + ACTIONS(15), 1, sym_numeric_lit, - ACTIONS(55), 1, + ACTIONS(17), 1, anon_sym_DQUOTE, - ACTIONS(59), 1, + ACTIONS(21), 1, sym_null_lit, - ACTIONS(61), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - STATE(65), 1, + ACTIONS(29), 1, + sym_identifier, + STATE(33), 1, sym_expr_term, - STATE(110), 1, - sym_expression, - STATE(114), 1, + STATE(68), 1, sym_conditional, - ACTIONS(57), 2, + STATE(155), 1, + sym_expression, + ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(82), 2, + STATE(45), 2, + sym_string_lit, + sym_bool_lit, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(83), 2, + STATE(65), 2, sym_tuple, sym_object, - STATE(86), 2, - sym_string_lit, - sym_bool_lit, - STATE(84), 5, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3209,9 +3315,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(140), 1, + STATE(156), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3219,13 +3325,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3250,9 +3356,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(126), 1, + STATE(144), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3260,13 +3366,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3291,9 +3397,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(145), 1, + STATE(147), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3301,13 +3407,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3316,39 +3422,39 @@ static const uint16_t ts_small_parse_table[] = { [924] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(47), 1, anon_sym_LBRACE, - ACTIONS(13), 1, + ACTIONS(49), 1, + sym_identifier, + ACTIONS(51), 1, anon_sym_LPAREN, - ACTIONS(15), 1, + ACTIONS(53), 1, sym_numeric_lit, - ACTIONS(17), 1, + ACTIONS(55), 1, anon_sym_DQUOTE, - ACTIONS(21), 1, + ACTIONS(59), 1, sym_null_lit, - ACTIONS(23), 1, + ACTIONS(61), 1, anon_sym_LBRACK, - ACTIONS(29), 1, - sym_identifier, - STATE(33), 1, - sym_expr_term, STATE(66), 1, - sym_expression, - STATE(67), 1, + sym_expr_term, + STATE(111), 1, sym_conditional, - ACTIONS(19), 2, + STATE(115), 1, + sym_expression, + ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(45), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(88), 2, sym_tuple, sym_object, - STATE(55), 2, + STATE(91), 2, + sym_string_lit, + sym_bool_lit, + STATE(92), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(82), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3371,25 +3477,25 @@ static const uint16_t ts_small_parse_table[] = { sym_null_lit, ACTIONS(61), 1, anon_sym_LBRACK, - STATE(65), 1, + STATE(66), 1, sym_expr_term, - STATE(113), 1, - sym_expression, - STATE(114), 1, + STATE(111), 1, sym_conditional, + STATE(117), 1, + sym_expression, ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(82), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(83), 2, + STATE(88), 2, sym_tuple, sym_object, - STATE(86), 2, + STATE(91), 2, sym_string_lit, sym_bool_lit, - STATE(84), 5, + STATE(92), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(82), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3414,9 +3520,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(141), 1, + STATE(149), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3424,13 +3530,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3439,39 +3545,39 @@ static const uint16_t ts_small_parse_table[] = { [1095] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(47), 1, + ACTIONS(7), 1, anon_sym_LBRACE, - ACTIONS(49), 1, - sym_identifier, - ACTIONS(51), 1, + ACTIONS(13), 1, anon_sym_LPAREN, - ACTIONS(53), 1, + ACTIONS(15), 1, sym_numeric_lit, - ACTIONS(55), 1, + ACTIONS(17), 1, anon_sym_DQUOTE, - ACTIONS(59), 1, + ACTIONS(21), 1, sym_null_lit, - ACTIONS(61), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - STATE(65), 1, + ACTIONS(29), 1, + sym_identifier, + STATE(33), 1, sym_expr_term, - STATE(114), 1, - sym_conditional, - STATE(116), 1, + STATE(67), 1, sym_expression, - ACTIONS(57), 2, + STATE(68), 1, + sym_conditional, + ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(82), 2, + STATE(45), 2, + sym_string_lit, + sym_bool_lit, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(83), 2, + STATE(65), 2, sym_tuple, sym_object, - STATE(86), 2, - sym_string_lit, - sym_bool_lit, - STATE(84), 5, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3480,39 +3586,39 @@ static const uint16_t ts_small_parse_table[] = { [1152] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(47), 1, anon_sym_LBRACE, - ACTIONS(13), 1, + ACTIONS(49), 1, + sym_identifier, + ACTIONS(51), 1, anon_sym_LPAREN, - ACTIONS(15), 1, + ACTIONS(53), 1, sym_numeric_lit, - ACTIONS(17), 1, + ACTIONS(55), 1, anon_sym_DQUOTE, - ACTIONS(21), 1, + ACTIONS(59), 1, sym_null_lit, - ACTIONS(23), 1, + ACTIONS(61), 1, anon_sym_LBRACK, - ACTIONS(29), 1, - sym_identifier, - STATE(33), 1, + STATE(66), 1, sym_expr_term, - STATE(67), 1, + STATE(111), 1, sym_conditional, - STATE(129), 1, + STATE(126), 1, sym_expression, - ACTIONS(19), 2, + ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(45), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(88), 2, sym_tuple, sym_object, - STATE(55), 2, + STATE(91), 2, + sym_string_lit, + sym_bool_lit, + STATE(92), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(82), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3537,9 +3643,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(144), 1, + STATE(154), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3547,13 +3653,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3578,7 +3684,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, STATE(148), 1, sym_expression, @@ -3588,13 +3694,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3619,9 +3725,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(142), 1, + STATE(146), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3629,13 +3735,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3660,9 +3766,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(139), 1, + STATE(123), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3670,13 +3776,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3685,39 +3791,39 @@ static const uint16_t ts_small_parse_table[] = { [1437] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(47), 1, anon_sym_LBRACE, - ACTIONS(13), 1, + ACTIONS(49), 1, + sym_identifier, + ACTIONS(51), 1, anon_sym_LPAREN, - ACTIONS(15), 1, + ACTIONS(53), 1, sym_numeric_lit, - ACTIONS(17), 1, + ACTIONS(55), 1, anon_sym_DQUOTE, - ACTIONS(21), 1, + ACTIONS(59), 1, sym_null_lit, - ACTIONS(23), 1, + ACTIONS(61), 1, anon_sym_LBRACK, - ACTIONS(29), 1, - sym_identifier, - STATE(33), 1, + STATE(66), 1, sym_expr_term, - STATE(67), 1, + STATE(111), 1, sym_conditional, - STATE(149), 1, + STATE(121), 1, sym_expression, - ACTIONS(19), 2, + ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(45), 2, - sym_string_lit, - sym_bool_lit, - STATE(52), 2, + STATE(88), 2, sym_tuple, sym_object, - STATE(55), 2, + STATE(91), 2, + sym_string_lit, + sym_bool_lit, + STATE(92), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(82), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3742,9 +3848,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(143), 1, + STATE(152), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3752,13 +3858,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3783,9 +3889,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(117), 1, + STATE(129), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3793,13 +3899,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3824,9 +3930,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(112), 1, + STATE(151), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3834,13 +3940,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3863,25 +3969,25 @@ static const uint16_t ts_small_parse_table[] = { sym_null_lit, ACTIONS(61), 1, anon_sym_LBRACK, - STATE(65), 1, + STATE(66), 1, sym_expr_term, - STATE(108), 1, - sym_expression, - STATE(114), 1, + STATE(111), 1, sym_conditional, + STATE(114), 1, + sym_expression, ACTIONS(57), 2, anon_sym_true, anon_sym_false, - STATE(82), 2, - sym_for_tuple_expr, - sym_for_object_expr, - STATE(83), 2, + STATE(88), 2, sym_tuple, sym_object, - STATE(86), 2, + STATE(91), 2, sym_string_lit, sym_bool_lit, - STATE(84), 5, + STATE(92), 2, + sym_for_tuple_expr, + sym_for_object_expr, + STATE(82), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3890,39 +3996,39 @@ static const uint16_t ts_small_parse_table[] = { [1722] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(47), 1, + ACTIONS(7), 1, anon_sym_LBRACE, - ACTIONS(49), 1, - sym_identifier, - ACTIONS(51), 1, + ACTIONS(13), 1, anon_sym_LPAREN, - ACTIONS(53), 1, + ACTIONS(15), 1, sym_numeric_lit, - ACTIONS(55), 1, + ACTIONS(17), 1, anon_sym_DQUOTE, - ACTIONS(59), 1, + ACTIONS(21), 1, sym_null_lit, - ACTIONS(61), 1, + ACTIONS(23), 1, anon_sym_LBRACK, - STATE(65), 1, + ACTIONS(29), 1, + sym_identifier, + STATE(33), 1, sym_expr_term, - STATE(114), 1, + STATE(68), 1, sym_conditional, - STATE(119), 1, + STATE(109), 1, sym_expression, - ACTIONS(57), 2, + ACTIONS(19), 2, anon_sym_true, anon_sym_false, - STATE(82), 2, + STATE(45), 2, + sym_string_lit, + sym_bool_lit, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(83), 2, + STATE(65), 2, sym_tuple, sym_object, - STATE(86), 2, - sym_string_lit, - sym_bool_lit, - STATE(84), 5, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3947,9 +4053,9 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, STATE(33), 1, sym_expr_term, - STATE(67), 1, + STATE(68), 1, sym_conditional, - STATE(138), 1, + STATE(132), 1, sym_expression, ACTIONS(19), 2, anon_sym_true, @@ -3957,13 +4063,13 @@ static const uint16_t ts_small_parse_table[] = { STATE(45), 2, sym_string_lit, sym_bool_lit, - STATE(52), 2, - sym_tuple, - sym_object, - STATE(55), 2, + STATE(58), 2, sym_for_tuple_expr, sym_for_object_expr, - STATE(42), 5, + STATE(65), 2, + sym_tuple, + sym_object, + STATE(54), 5, sym_literal_value, sym_collection_value, sym_for_expr, @@ -3978,10 +4084,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(69), 1, anon_sym_DOT, - STATE(63), 2, + STATE(56), 2, sym_attr_splat, sym_full_splat, - STATE(47), 3, + STATE(55), 3, sym_index, sym_get_attr, sym_splat, @@ -4005,7 +4111,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(78), 1, anon_sym_DOT, - STATE(36), 3, + STATE(35), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, @@ -4029,7 +4135,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(88), 1, anon_sym_DOT, - STATE(34), 3, + STATE(36), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, @@ -4075,7 +4181,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, ACTIONS(105), 1, anon_sym_DOT, - STATE(37), 2, + STATE(39), 2, sym_get_attr, aux_sym_attr_splat_repeat1, ACTIONS(101), 11, @@ -4090,21 +4196,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [1987] = 5, + [1987] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(110), 1, + ACTIONS(110), 2, anon_sym_EQ, - ACTIONS(112), 1, anon_sym_DOT, - STATE(40), 2, - sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(108), 11, + ACTIONS(108), 13, ts_builtin_sym_end, + anon_sym_LBRACE, anon_sym_RBRACE, sym_identifier, anon_sym_RPAREN, + anon_sym_DQUOTE, anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, @@ -4112,19 +4216,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2014] = 3, + [2010] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(117), 2, + ACTIONS(114), 1, anon_sym_EQ, + ACTIONS(116), 1, anon_sym_DOT, - ACTIONS(115), 13, - ts_builtin_sym_end, - anon_sym_LBRACE, + STATE(41), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(112), 11, + ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, anon_sym_RPAREN, - anon_sym_DQUOTE, anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, @@ -4132,21 +4238,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2037] = 5, + [2037] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(121), 1, + ACTIONS(121), 2, anon_sym_EQ, - ACTIONS(123), 1, anon_sym_DOT, - STATE(37), 2, - sym_get_attr, - aux_sym_attr_splat_repeat1, - ACTIONS(119), 11, + ACTIONS(119), 13, ts_builtin_sym_end, + anon_sym_LBRACE, anon_sym_RBRACE, sym_identifier, anon_sym_RPAREN, + anon_sym_DQUOTE, anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, @@ -4154,15 +4258,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2064] = 4, + [2060] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(130), 1, - anon_sym_LPAREN, - ACTIONS(128), 2, + ACTIONS(125), 1, anon_sym_EQ, + ACTIONS(127), 1, anon_sym_DOT, - ACTIONS(126), 11, + STATE(41), 2, + sym_get_attr, + aux_sym_attr_splat_repeat1, + ACTIONS(123), 11, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -4174,13 +4280,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2088] = 3, + [2087] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(134), 2, + ACTIONS(134), 1, + anon_sym_LPAREN, + ACTIONS(132), 2, anon_sym_EQ, anon_sym_DOT, - ACTIONS(132), 11, + ACTIONS(130), 11, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -4192,7 +4300,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2109] = 3, + [2111] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(138), 2, @@ -4210,7 +4318,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2130] = 3, + [2132] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(142), 2, @@ -4228,7 +4336,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2151] = 3, + [2153] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(146), 2, @@ -4246,7 +4354,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2172] = 3, + [2174] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(150), 2, @@ -4264,7 +4372,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2193] = 3, + [2195] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(154), 2, @@ -4282,7 +4390,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2214] = 3, + [2216] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(158), 2, @@ -4300,7 +4408,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2235] = 3, + [2237] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(162), 2, @@ -4318,7 +4426,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2256] = 3, + [2258] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(166), 2, @@ -4336,7 +4444,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2277] = 3, + [2279] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(170), 2, @@ -4354,7 +4462,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2298] = 3, + [2300] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(174), 2, @@ -4372,7 +4480,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2319] = 3, + [2321] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(178), 2, @@ -4390,7 +4498,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2340] = 3, + [2342] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(182), 2, @@ -4408,7 +4516,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2361] = 3, + [2363] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(186), 2, @@ -4426,7 +4534,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2382] = 3, + [2384] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(190), 2, @@ -4444,7 +4552,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2403] = 3, + [2405] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(194), 2, @@ -4462,7 +4570,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2424] = 3, + [2426] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(198), 2, @@ -4480,7 +4588,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2445] = 3, + [2447] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(202), 2, @@ -4498,7 +4606,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2466] = 3, + [2468] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(206), 2, @@ -4516,7 +4624,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2487] = 3, + [2489] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(210), 2, @@ -4534,7 +4642,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2508] = 3, + [2510] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(214), 2, @@ -4552,7 +4660,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2529] = 3, + [2531] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(218), 2, @@ -4570,7 +4678,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2550] = 3, + [2552] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(222), 2, @@ -4588,17 +4696,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2571] = 6, + [2573] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(226), 2, + anon_sym_EQ, + anon_sym_DOT, + ACTIONS(224), 11, + 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, + sym_ellipsis, + anon_sym_QMARK, + [2594] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(224), 1, + ACTIONS(228), 1, anon_sym_LBRACK, - ACTIONS(226), 1, + ACTIONS(230), 1, anon_sym_DOT, STATE(100), 2, sym_attr_splat, sym_full_splat, - STATE(79), 3, + STATE(80), 3, sym_index, sym_get_attr, sym_splat, @@ -4608,14 +4734,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2597] = 4, + [2620] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(230), 1, + ACTIONS(234), 1, anon_sym_EQ, - ACTIONS(232), 1, + ACTIONS(236), 1, anon_sym_QMARK, - ACTIONS(228), 9, + ACTIONS(232), 9, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, @@ -4625,7 +4751,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_EQ_GT, sym_ellipsis, - [2618] = 3, + [2641] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(65), 1, @@ -4641,14 +4767,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ_GT, sym_ellipsis, anon_sym_QMARK, - [2637] = 5, + [2660] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(235), 1, + ACTIONS(239), 1, anon_sym_LBRACK, - ACTIONS(238), 1, + ACTIONS(242), 1, anon_sym_DOT, - STATE(69), 3, + STATE(70), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, @@ -4658,46 +4784,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2659] = 5, + [2682] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(241), 1, + ACTIONS(245), 1, anon_sym_LBRACK, - ACTIONS(244), 1, + ACTIONS(248), 1, anon_sym_DOT, - STATE(69), 3, + STATE(71), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, - ACTIONS(91), 5, + ACTIONS(81), 5, anon_sym_RBRACE, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2681] = 5, + [2704] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(247), 1, + ACTIONS(251), 1, anon_sym_LBRACK, - ACTIONS(250), 1, + ACTIONS(254), 1, anon_sym_DOT, - STATE(68), 3, + STATE(71), 3, sym_index, sym_get_attr, aux_sym_full_splat_repeat1, - ACTIONS(81), 5, + ACTIONS(91), 5, anon_sym_RBRACE, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2703] = 4, + [2726] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(259), 4, + sym_identifier, + anon_sym_true, + anon_sym_false, + sym_null_lit, + ACTIONS(257), 5, + anon_sym_LBRACE, + anon_sym_LPAREN, + sym_numeric_lit, + anon_sym_DQUOTE, + anon_sym_LBRACK, + [2743] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(253), 1, + ACTIONS(263), 4, + sym_identifier, + anon_sym_true, + anon_sym_false, + sym_null_lit, + ACTIONS(261), 5, + anon_sym_LBRACE, + anon_sym_LPAREN, + sym_numeric_lit, + anon_sym_DQUOTE, + anon_sym_LBRACK, + [2760] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(265), 1, anon_sym_DOT, - STATE(71), 2, + STATE(75), 2, sym_get_attr, aux_sym_attr_splat_repeat1, ACTIONS(101), 6, @@ -4707,175 +4861,147 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2722] = 4, + [2779] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(256), 1, + ACTIONS(268), 1, anon_sym_DOT, - STATE(71), 2, + STATE(76), 2, sym_get_attr, aux_sym_attr_splat_repeat1, - ACTIONS(119), 6, + ACTIONS(112), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2741] = 4, + [2798] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(259), 1, + ACTIONS(271), 1, anon_sym_DOT, - STATE(72), 2, + STATE(76), 2, sym_get_attr, aux_sym_attr_splat_repeat1, - ACTIONS(108), 6, + ACTIONS(123), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2760] = 3, + [2817] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(264), 4, - sym_identifier, - anon_sym_true, - anon_sym_false, - sym_null_lit, - ACTIONS(262), 5, - anon_sym_LBRACE, - anon_sym_LPAREN, - sym_numeric_lit, - anon_sym_DQUOTE, - anon_sym_LBRACK, - [2777] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(268), 4, - sym_identifier, - anon_sym_true, - anon_sym_false, - sym_null_lit, - ACTIONS(266), 5, - anon_sym_LBRACE, - anon_sym_LPAREN, - sym_numeric_lit, - anon_sym_DQUOTE, - anon_sym_LBRACK, - [2794] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(128), 1, + ACTIONS(132), 1, anon_sym_DOT, - ACTIONS(270), 1, + ACTIONS(274), 1, anon_sym_LPAREN, - ACTIONS(126), 6, + ACTIONS(130), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2812] = 3, + [2835] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(138), 1, + ACTIONS(166), 1, anon_sym_DOT, - ACTIONS(136), 6, + ACTIONS(164), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2827] = 3, + [2850] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(162), 1, + ACTIONS(170), 1, anon_sym_DOT, - ACTIONS(160), 6, + ACTIONS(168), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2842] = 3, + [2865] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(154), 1, + ACTIONS(186), 1, anon_sym_DOT, - ACTIONS(152), 6, + ACTIONS(184), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2857] = 3, + [2880] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(182), 1, + ACTIONS(174), 1, anon_sym_DOT, - ACTIONS(180), 6, + ACTIONS(172), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2872] = 3, + [2895] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(206), 1, + ACTIONS(182), 1, anon_sym_DOT, - ACTIONS(204), 6, + ACTIONS(180), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2887] = 3, + [2910] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(186), 1, + ACTIONS(150), 1, anon_sym_DOT, - ACTIONS(184), 6, + ACTIONS(148), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2902] = 3, + [2925] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(174), 1, + ACTIONS(210), 1, anon_sym_DOT, - ACTIONS(172), 6, + ACTIONS(208), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2917] = 3, + [2940] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(134), 1, + ACTIONS(121), 1, anon_sym_DOT, - ACTIONS(132), 6, + ACTIONS(119), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2932] = 3, + [2955] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(142), 1, @@ -4887,776 +5013,818 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2947] = 3, + [2970] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(146), 1, + ACTIONS(218), 1, anon_sym_DOT, - ACTIONS(144), 6, + ACTIONS(216), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2962] = 3, + [2985] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(178), 1, + ACTIONS(226), 1, anon_sym_DOT, - ACTIONS(176), 6, + ACTIONS(224), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2977] = 3, + [3000] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(210), 1, + ACTIONS(154), 1, anon_sym_DOT, - ACTIONS(208), 6, + ACTIONS(152), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [2992] = 3, + [3015] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(117), 1, + ACTIONS(214), 1, anon_sym_DOT, - ACTIONS(115), 6, + ACTIONS(212), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3007] = 3, + [3030] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(158), 1, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(156), 6, + ACTIONS(144), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3022] = 3, + [3045] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(190), 1, + ACTIONS(198), 1, anon_sym_DOT, - ACTIONS(188), 6, + ACTIONS(196), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3037] = 3, + [3060] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(198), 1, + ACTIONS(222), 1, anon_sym_DOT, - ACTIONS(196), 6, + ACTIONS(220), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3052] = 3, + [3075] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(150), 1, + ACTIONS(138), 1, anon_sym_DOT, - ACTIONS(148), 6, + ACTIONS(136), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3067] = 3, + [3090] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(170), 1, + ACTIONS(110), 1, anon_sym_DOT, - ACTIONS(168), 6, + ACTIONS(108), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3082] = 3, + [3105] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(222), 1, + ACTIONS(162), 1, anon_sym_DOT, - ACTIONS(220), 6, + ACTIONS(160), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3097] = 3, + [3120] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(194), 1, + ACTIONS(178), 1, anon_sym_DOT, - ACTIONS(192), 6, + ACTIONS(176), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3112] = 3, + [3135] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(166), 1, + ACTIONS(158), 1, anon_sym_DOT, - ACTIONS(164), 6, + ACTIONS(156), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3127] = 3, + [3150] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(202), 1, + ACTIONS(194), 1, anon_sym_DOT, - ACTIONS(200), 6, + ACTIONS(192), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3142] = 3, + [3165] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(214), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(212), 6, + ACTIONS(188), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3157] = 3, + [3180] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(218), 1, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(216), 6, + ACTIONS(200), 6, anon_sym_RBRACE, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, anon_sym_QMARK, - [3172] = 4, + [3195] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(130), 1, - anon_sym_LPAREN, - ACTIONS(272), 2, - anon_sym_EQ, - anon_sym_COLON, - ACTIONS(126), 3, - anon_sym_LBRACK, + ACTIONS(206), 1, anon_sym_DOT, - anon_sym_QMARK, - [3188] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(5), 1, - sym_identifier, - ACTIONS(275), 2, - ts_builtin_sym_end, + ACTIONS(204), 6, anon_sym_RBRACE, - STATE(105), 3, - sym_attribute, - sym_block, - aux_sym_body_repeat1, - [3204] = 5, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_if, + sym_ellipsis, + anon_sym_QMARK, + [3210] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(5), 1, sym_identifier, - ACTIONS(277), 1, + ACTIONS(276), 1, anon_sym_RBRACE, - STATE(171), 1, + STATE(165), 1, sym_body, - STATE(102), 3, + STATE(108), 3, sym_attribute, sym_block, aux_sym_body_repeat1, - [3222] = 6, + [3228] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(17), 1, anon_sym_DQUOTE, - ACTIONS(279), 1, + ACTIONS(278), 1, anon_sym_EQ, - ACTIONS(281), 1, + ACTIONS(280), 1, anon_sym_LBRACE, - ACTIONS(283), 1, + ACTIONS(282), 1, sym_identifier, - STATE(115), 2, + STATE(113), 2, sym_string_lit, aux_sym_block_repeat1, - [3242] = 4, + [3248] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(134), 1, + anon_sym_LPAREN, + ACTIONS(284), 2, + anon_sym_EQ, + anon_sym_COLON, + ACTIONS(130), 3, + anon_sym_LBRACK, + anon_sym_DOT, + anon_sym_QMARK, + [3264] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(287), 1, + ACTIONS(289), 1, sym_identifier, - ACTIONS(285), 2, + ACTIONS(287), 2, ts_builtin_sym_end, anon_sym_RBRACE, - STATE(105), 3, + STATE(106), 3, sym_attribute, sym_block, aux_sym_body_repeat1, - [3258] = 5, + [3280] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(5), 1, sym_identifier, - ACTIONS(290), 1, + ACTIONS(292), 1, anon_sym_RBRACE, - STATE(155), 1, + STATE(169), 1, sym_body, - STATE(102), 3, + STATE(108), 3, sym_attribute, sym_block, aux_sym_body_repeat1, - [3276] = 6, + [3298] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(292), 1, + ACTIONS(5), 1, + sym_identifier, + ACTIONS(294), 2, + ts_builtin_sym_end, + anon_sym_RBRACE, + STATE(106), 3, + sym_attribute, + sym_block, + aux_sym_body_repeat1, + [3314] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(298), 1, + anon_sym_QMARK, + ACTIONS(296), 4, anon_sym_RPAREN, - ACTIONS(294), 1, anon_sym_COMMA, - ACTIONS(296), 1, + anon_sym_RBRACK, sym_ellipsis, - ACTIONS(298), 1, - anon_sym_QMARK, - STATE(121), 1, - aux_sym_tuple_repeat1, - [3295] = 3, + [3327] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(300), 1, - anon_sym_QMARK, - ACTIONS(228), 4, + anon_sym_LBRACE, + ACTIONS(302), 1, + sym_identifier, + ACTIONS(305), 1, + anon_sym_DQUOTE, + STATE(110), 2, + sym_string_lit, + aux_sym_block_repeat1, + [3344] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(63), 5, anon_sym_RBRACE, anon_sym_RBRACK, anon_sym_if, sym_ellipsis, - [3308] = 5, + anon_sym_QMARK, + [3355] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(303), 1, - anon_sym_LBRACE, - ACTIONS(305), 1, - sym_identifier, + ACTIONS(298), 1, + anon_sym_QMARK, ACTIONS(308), 1, + anon_sym_RPAREN, + ACTIONS(310), 1, + anon_sym_COMMA, + ACTIONS(312), 1, + sym_ellipsis, + STATE(125), 1, + aux_sym_tuple_repeat1, + [3374] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(17), 1, anon_sym_DQUOTE, - STATE(109), 2, + ACTIONS(314), 1, + anon_sym_LBRACE, + ACTIONS(316), 1, + sym_identifier, + STATE(110), 2, sym_string_lit, aux_sym_block_repeat1, - [3325] = 6, + [3391] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(311), 1, + ACTIONS(318), 1, anon_sym_RBRACE, - ACTIONS(313), 1, + ACTIONS(320), 1, anon_sym_if, - ACTIONS(315), 1, + ACTIONS(322), 1, sym_ellipsis, - ACTIONS(317), 1, + ACTIONS(324), 1, anon_sym_QMARK, STATE(174), 1, sym_for_cond, - [3344] = 4, + [3410] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(321), 1, - anon_sym_COMMA, - STATE(111), 1, - aux_sym_tuple_repeat1, - ACTIONS(319), 3, - anon_sym_RPAREN, + ACTIONS(326), 1, + anon_sym_QMARK, + ACTIONS(232), 4, + anon_sym_RBRACE, anon_sym_RBRACK, + anon_sym_if, sym_ellipsis, - [3359] = 3, + [3423] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 1, - anon_sym_QMARK, - ACTIONS(319), 4, - anon_sym_RPAREN, + ACTIONS(329), 1, anon_sym_COMMA, + STATE(116), 1, + aux_sym_tuple_repeat1, + ACTIONS(296), 3, + anon_sym_RPAREN, anon_sym_RBRACK, sym_ellipsis, - [3372] = 6, + [3438] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(313), 1, + ACTIONS(320), 1, anon_sym_if, - ACTIONS(317), 1, - anon_sym_QMARK, ACTIONS(324), 1, + anon_sym_QMARK, + ACTIONS(332), 1, anon_sym_RBRACE, - ACTIONS(326), 1, + ACTIONS(334), 1, sym_ellipsis, - STATE(166), 1, + STATE(170), 1, sym_for_cond, - [3391] = 2, - ACTIONS(3), 1, + [3457] = 4, + ACTIONS(336), 1, + anon_sym_DQUOTE, + ACTIONS(340), 1, sym_comment, - ACTIONS(63), 5, - anon_sym_RBRACE, - anon_sym_RBRACK, - anon_sym_if, - sym_ellipsis, - anon_sym_QMARK, - [3402] = 5, - ACTIONS(3), 1, + STATE(128), 1, + aux_sym_string_lit_repeat1, + ACTIONS(338), 2, + aux_sym_string_lit_token1, + sym_escape_sequence, + [3471] = 4, + ACTIONS(340), 1, sym_comment, - ACTIONS(17), 1, + ACTIONS(342), 1, anon_sym_DQUOTE, - ACTIONS(328), 1, - anon_sym_LBRACE, - ACTIONS(330), 1, - sym_identifier, - STATE(109), 2, - sym_string_lit, - aux_sym_block_repeat1, - [3419] = 5, + STATE(128), 1, + aux_sym_string_lit_repeat1, + ACTIONS(338), 2, + aux_sym_string_lit_token1, + sym_escape_sequence, + [3485] = 4, + ACTIONS(340), 1, + sym_comment, + ACTIONS(344), 1, + anon_sym_DQUOTE, + STATE(119), 1, + aux_sym_string_lit_repeat1, + ACTIONS(346), 2, + aux_sym_string_lit_token1, + sym_escape_sequence, + [3499] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(313), 1, + ACTIONS(320), 1, anon_sym_if, - ACTIONS(317), 1, + ACTIONS(324), 1, anon_sym_QMARK, - ACTIONS(332), 1, + ACTIONS(348), 1, anon_sym_RBRACK, - STATE(163), 1, + STATE(166), 1, sym_for_cond, - [3435] = 3, + [3515] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(334), 3, + ACTIONS(350), 1, + anon_sym_COMMA, + ACTIONS(352), 1, + anon_sym_RBRACK, + STATE(138), 1, + aux_sym_tuple_repeat1, + [3531] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(298), 1, + anon_sym_QMARK, + ACTIONS(354), 3, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, - [3447] = 5, + [3543] = 4, + ACTIONS(340), 1, + sym_comment, + ACTIONS(356), 1, + anon_sym_DQUOTE, + STATE(118), 1, + aux_sym_string_lit_repeat1, + ACTIONS(358), 2, + aux_sym_string_lit_token1, + sym_escape_sequence, + [3557] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 1, - anon_sym_QMARK, - ACTIONS(336), 1, + ACTIONS(43), 1, + anon_sym_RPAREN, + ACTIONS(360), 1, anon_sym_COMMA, - ACTIONS(338), 1, - anon_sym_RBRACK, - STATE(123), 1, + ACTIONS(362), 1, + sym_ellipsis, + STATE(116), 1, aux_sym_tuple_repeat1, - [3463] = 5, + [3573] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(313), 1, + ACTIONS(320), 1, anon_sym_if, - ACTIONS(317), 1, + ACTIONS(324), 1, anon_sym_QMARK, - ACTIONS(340), 1, + ACTIONS(364), 1, anon_sym_RBRACK, - STATE(162), 1, + STATE(175), 1, sym_for_cond, - [3479] = 5, + [3589] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(336), 1, + ACTIONS(350), 1, anon_sym_COMMA, - ACTIONS(342), 1, + ACTIONS(366), 1, anon_sym_RBRACK, - STATE(130), 1, + STATE(133), 1, aux_sym_tuple_repeat1, - [3495] = 5, - ACTIONS(3), 1, + [3605] = 4, + ACTIONS(340), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_RPAREN, - ACTIONS(344), 1, - anon_sym_COMMA, - ACTIONS(346), 1, - sym_ellipsis, - STATE(111), 1, - aux_sym_tuple_repeat1, - [3511] = 4, + ACTIONS(368), 1, + anon_sym_DQUOTE, + STATE(128), 1, + aux_sym_string_lit_repeat1, + ACTIONS(370), 2, + aux_sym_string_lit_token1, + sym_escape_sequence, + [3619] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(313), 1, - anon_sym_if, - ACTIONS(348), 1, + ACTIONS(298), 1, + anon_sym_QMARK, + ACTIONS(373), 2, anon_sym_RBRACE, - STATE(152), 1, - sym_for_cond, - [3524] = 4, + anon_sym_RBRACK, + [3630] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(336), 1, - anon_sym_COMMA, - ACTIONS(350), 1, - anon_sym_RBRACK, - STATE(111), 1, - aux_sym_tuple_repeat1, - [3537] = 2, + ACTIONS(298), 1, + anon_sym_QMARK, + ACTIONS(375), 2, + anon_sym_EQ, + anon_sym_COLON, + [3641] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(352), 3, + ACTIONS(377), 3, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, - [3546] = 4, + [3650] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(354), 1, + ACTIONS(298), 1, + anon_sym_QMARK, + ACTIONS(379), 2, anon_sym_RBRACE, - ACTIONS(356), 1, anon_sym_COMMA, - STATE(128), 1, - aux_sym_object_repeat1, - [3559] = 3, + [3661] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 1, - anon_sym_QMARK, - ACTIONS(358), 2, - anon_sym_RBRACE, + ACTIONS(350), 1, anon_sym_COMMA, - [3570] = 2, + ACTIONS(381), 1, + anon_sym_RBRACK, + STATE(116), 1, + aux_sym_tuple_repeat1, + [3674] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(360), 3, + ACTIONS(320), 1, + anon_sym_if, + ACTIONS(383), 1, + anon_sym_RBRACE, + STATE(171), 1, + sym_for_cond, + [3687] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(385), 3, ts_builtin_sym_end, anon_sym_RBRACE, sym_identifier, - [3579] = 4, + [3696] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(356), 1, - anon_sym_COMMA, - ACTIONS(362), 1, + ACTIONS(387), 1, anon_sym_RBRACE, - STATE(135), 1, + ACTIONS(389), 1, + anon_sym_COMMA, + STATE(136), 1, aux_sym_object_repeat1, - [3592] = 3, + [3709] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 1, - anon_sym_QMARK, - ACTIONS(364), 2, + ACTIONS(320), 1, + anon_sym_if, + ACTIONS(392), 1, anon_sym_RBRACE, - anon_sym_RBRACK, - [3603] = 4, + STATE(159), 1, + sym_for_cond, + [3722] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(336), 1, + ACTIONS(350), 1, anon_sym_COMMA, - ACTIONS(366), 1, + ACTIONS(394), 1, anon_sym_RBRACK, - STATE(111), 1, + STATE(116), 1, aux_sym_tuple_repeat1, - [3616] = 4, + [3735] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(356), 1, + ACTIONS(396), 3, + ts_builtin_sym_end, + anon_sym_RBRACE, + sym_identifier, + [3744] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(398), 1, + anon_sym_RBRACE, + ACTIONS(400), 1, anon_sym_COMMA, - ACTIONS(368), 1, + STATE(136), 1, + aux_sym_object_repeat1, + [3757] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(400), 1, + anon_sym_COMMA, + ACTIONS(402), 1, anon_sym_RBRACE, - STATE(135), 1, + STATE(140), 1, aux_sym_object_repeat1, - [3629] = 4, + [3770] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(356), 1, + ACTIONS(400), 1, anon_sym_COMMA, - ACTIONS(370), 1, + ACTIONS(404), 1, anon_sym_RBRACE, - STATE(131), 1, + STATE(143), 1, aux_sym_object_repeat1, - [3642] = 4, + [3783] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(313), 1, - anon_sym_if, - ACTIONS(372), 1, + ACTIONS(400), 1, + anon_sym_COMMA, + ACTIONS(406), 1, anon_sym_RBRACE, - STATE(167), 1, - sym_for_cond, - [3655] = 3, + STATE(136), 1, + aux_sym_object_repeat1, + [3796] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(374), 2, - anon_sym_EQ, + ACTIONS(408), 1, anon_sym_COLON, - [3666] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(376), 1, - anon_sym_RBRACE, - ACTIONS(378), 1, - anon_sym_COMMA, - STATE(135), 1, - aux_sym_object_repeat1, - [3679] = 2, + [3806] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(381), 3, - ts_builtin_sym_end, - anon_sym_RBRACE, + ACTIONS(410), 1, sym_identifier, - [3688] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(376), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [3696] = 3, + ACTIONS(412), 1, + anon_sym_STAR, + [3816] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(383), 1, + ACTIONS(414), 1, anon_sym_EQ_GT, - [3706] = 3, + [3826] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(385), 1, - anon_sym_RBRACK, - [3716] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(298), 1, - anon_sym_QMARK, - ACTIONS(387), 1, - anon_sym_COLON, - [3726] = 3, + ACTIONS(416), 1, + anon_sym_RPAREN, + [3836] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(389), 1, - anon_sym_COLON, - [3736] = 3, + ACTIONS(418), 1, + anon_sym_RBRACK, + [3846] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(391), 1, + ACTIONS(420), 1, anon_sym_COLON, - [3746] = 3, + [3856] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 1, - anon_sym_QMARK, - ACTIONS(393), 1, - anon_sym_RBRACK, - [3756] = 3, + ACTIONS(387), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [3864] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(395), 1, - anon_sym_COLON, - [3766] = 3, + ACTIONS(422), 1, + anon_sym_EQ_GT, + [3874] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(397), 1, - anon_sym_RPAREN, - [3776] = 3, + ACTIONS(424), 1, + anon_sym_RBRACK, + [3884] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(399), 1, + ACTIONS(426), 1, anon_sym_COMMA, - ACTIONS(401), 1, + ACTIONS(428), 1, anon_sym_in, - [3786] = 3, + [3894] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(403), 1, - sym_identifier, - ACTIONS(405), 1, - anon_sym_STAR, - [3796] = 3, + ACTIONS(298), 1, + anon_sym_QMARK, + ACTIONS(430), 1, + anon_sym_COLON, + [3904] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(407), 1, - anon_sym_EQ_GT, - [3806] = 3, + ACTIONS(432), 1, + anon_sym_COLON, + [3914] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(298), 1, anon_sym_QMARK, - ACTIONS(409), 1, + ACTIONS(434), 1, anon_sym_RPAREN, - [3816] = 3, + [3924] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(411), 1, + ACTIONS(436), 1, sym_identifier, - ACTIONS(413), 1, + ACTIONS(438), 1, anon_sym_STAR, - [3826] = 2, + [3934] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(415), 1, - sym_identifier, - [3833] = 2, + ACTIONS(440), 1, + anon_sym_RBRACK, + [3941] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(417), 1, + ACTIONS(442), 1, anon_sym_RBRACE, - [3840] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(419), 1, - anon_sym_in, - [3847] = 2, + [3948] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(421), 1, - anon_sym_DQUOTE, - [3854] = 2, + ACTIONS(410), 1, + sym_identifier, + [3955] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(277), 1, - anon_sym_RBRACE, - [3861] = 2, + ACTIONS(444), 1, + anon_sym_RPAREN, + [3962] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(423), 1, - anon_sym_RPAREN, - [3868] = 2, + ACTIONS(446), 1, + anon_sym_in, + [3969] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(43), 1, anon_sym_RPAREN, - [3875] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(411), 1, - sym_identifier, - [3882] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(425), 1, - anon_sym_DQUOTE, - [3889] = 2, + [3976] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(427), 1, + ACTIONS(448), 1, anon_sym_RBRACK, - [3896] = 2, + [3983] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(429), 1, - anon_sym_RBRACK, - [3903] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(431), 1, - anon_sym_RBRACK, - [3910] = 2, + ACTIONS(450), 1, + anon_sym_RBRACE, + [3990] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(433), 1, + ACTIONS(452), 1, anon_sym_RBRACK, - [3917] = 2, + [3997] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(45), 1, anon_sym_RPAREN, - [3924] = 2, + [4004] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(435), 1, - anon_sym_RPAREN, - [3931] = 2, + ACTIONS(454), 1, + sym_identifier, + [4011] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(372), 1, + ACTIONS(276), 1, anon_sym_RBRACE, - [3938] = 2, + [4018] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(437), 1, + ACTIONS(383), 1, anon_sym_RBRACE, - [3945] = 2, - ACTIONS(439), 1, - aux_sym_string_lit_token1, - ACTIONS(441), 1, + [4025] = 2, + ACTIONS(3), 1, sym_comment, - [3952] = 2, + ACTIONS(456), 1, + anon_sym_RBRACE, + [4032] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(403), 1, + ACTIONS(458), 1, sym_identifier, - [3959] = 2, - ACTIONS(441), 1, + [4039] = 2, + ACTIONS(3), 1, sym_comment, - ACTIONS(443), 1, - aux_sym_string_lit_token1, - [3966] = 2, + ACTIONS(460), 1, + anon_sym_RPAREN, + [4046] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(445), 1, + ACTIONS(392), 1, anon_sym_RBRACE, - [3973] = 2, + [4053] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(447), 1, - sym_identifier, - [3980] = 2, + ACTIONS(462), 1, + anon_sym_RBRACK, + [4060] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(449), 1, + ACTIONS(464), 1, ts_builtin_sym_end, - [3987] = 2, + [4067] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(348), 1, - anon_sym_RBRACE, - [3994] = 2, + ACTIONS(436), 1, + sym_identifier, + [4074] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(451), 1, + ACTIONS(466), 1, ts_builtin_sym_end, }; @@ -5698,143 +5866,146 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(36)] = 1930, [SMALL_STATE(37)] = 1960, [SMALL_STATE(38)] = 1987, - [SMALL_STATE(39)] = 2014, + [SMALL_STATE(39)] = 2010, [SMALL_STATE(40)] = 2037, - [SMALL_STATE(41)] = 2064, - [SMALL_STATE(42)] = 2088, - [SMALL_STATE(43)] = 2109, - [SMALL_STATE(44)] = 2130, - [SMALL_STATE(45)] = 2151, - [SMALL_STATE(46)] = 2172, - [SMALL_STATE(47)] = 2193, - [SMALL_STATE(48)] = 2214, - [SMALL_STATE(49)] = 2235, - [SMALL_STATE(50)] = 2256, - [SMALL_STATE(51)] = 2277, - [SMALL_STATE(52)] = 2298, - [SMALL_STATE(53)] = 2319, - [SMALL_STATE(54)] = 2340, - [SMALL_STATE(55)] = 2361, - [SMALL_STATE(56)] = 2382, - [SMALL_STATE(57)] = 2403, - [SMALL_STATE(58)] = 2424, - [SMALL_STATE(59)] = 2445, - [SMALL_STATE(60)] = 2466, - [SMALL_STATE(61)] = 2487, - [SMALL_STATE(62)] = 2508, - [SMALL_STATE(63)] = 2529, - [SMALL_STATE(64)] = 2550, - [SMALL_STATE(65)] = 2571, - [SMALL_STATE(66)] = 2597, - [SMALL_STATE(67)] = 2618, - [SMALL_STATE(68)] = 2637, - [SMALL_STATE(69)] = 2659, - [SMALL_STATE(70)] = 2681, - [SMALL_STATE(71)] = 2703, - [SMALL_STATE(72)] = 2722, - [SMALL_STATE(73)] = 2741, + [SMALL_STATE(41)] = 2060, + [SMALL_STATE(42)] = 2087, + [SMALL_STATE(43)] = 2111, + [SMALL_STATE(44)] = 2132, + [SMALL_STATE(45)] = 2153, + [SMALL_STATE(46)] = 2174, + [SMALL_STATE(47)] = 2195, + [SMALL_STATE(48)] = 2216, + [SMALL_STATE(49)] = 2237, + [SMALL_STATE(50)] = 2258, + [SMALL_STATE(51)] = 2279, + [SMALL_STATE(52)] = 2300, + [SMALL_STATE(53)] = 2321, + [SMALL_STATE(54)] = 2342, + [SMALL_STATE(55)] = 2363, + [SMALL_STATE(56)] = 2384, + [SMALL_STATE(57)] = 2405, + [SMALL_STATE(58)] = 2426, + [SMALL_STATE(59)] = 2447, + [SMALL_STATE(60)] = 2468, + [SMALL_STATE(61)] = 2489, + [SMALL_STATE(62)] = 2510, + [SMALL_STATE(63)] = 2531, + [SMALL_STATE(64)] = 2552, + [SMALL_STATE(65)] = 2573, + [SMALL_STATE(66)] = 2594, + [SMALL_STATE(67)] = 2620, + [SMALL_STATE(68)] = 2641, + [SMALL_STATE(69)] = 2660, + [SMALL_STATE(70)] = 2682, + [SMALL_STATE(71)] = 2704, + [SMALL_STATE(72)] = 2726, + [SMALL_STATE(73)] = 2743, [SMALL_STATE(74)] = 2760, - [SMALL_STATE(75)] = 2777, - [SMALL_STATE(76)] = 2794, - [SMALL_STATE(77)] = 2812, - [SMALL_STATE(78)] = 2827, - [SMALL_STATE(79)] = 2842, - [SMALL_STATE(80)] = 2857, - [SMALL_STATE(81)] = 2872, - [SMALL_STATE(82)] = 2887, - [SMALL_STATE(83)] = 2902, - [SMALL_STATE(84)] = 2917, - [SMALL_STATE(85)] = 2932, - [SMALL_STATE(86)] = 2947, - [SMALL_STATE(87)] = 2962, - [SMALL_STATE(88)] = 2977, - [SMALL_STATE(89)] = 2992, - [SMALL_STATE(90)] = 3007, - [SMALL_STATE(91)] = 3022, - [SMALL_STATE(92)] = 3037, - [SMALL_STATE(93)] = 3052, - [SMALL_STATE(94)] = 3067, - [SMALL_STATE(95)] = 3082, - [SMALL_STATE(96)] = 3097, - [SMALL_STATE(97)] = 3112, - [SMALL_STATE(98)] = 3127, - [SMALL_STATE(99)] = 3142, - [SMALL_STATE(100)] = 3157, - [SMALL_STATE(101)] = 3172, - [SMALL_STATE(102)] = 3188, - [SMALL_STATE(103)] = 3204, - [SMALL_STATE(104)] = 3222, - [SMALL_STATE(105)] = 3242, - [SMALL_STATE(106)] = 3258, - [SMALL_STATE(107)] = 3276, - [SMALL_STATE(108)] = 3295, - [SMALL_STATE(109)] = 3308, - [SMALL_STATE(110)] = 3325, + [SMALL_STATE(75)] = 2779, + [SMALL_STATE(76)] = 2798, + [SMALL_STATE(77)] = 2817, + [SMALL_STATE(78)] = 2835, + [SMALL_STATE(79)] = 2850, + [SMALL_STATE(80)] = 2865, + [SMALL_STATE(81)] = 2880, + [SMALL_STATE(82)] = 2895, + [SMALL_STATE(83)] = 2910, + [SMALL_STATE(84)] = 2925, + [SMALL_STATE(85)] = 2940, + [SMALL_STATE(86)] = 2955, + [SMALL_STATE(87)] = 2970, + [SMALL_STATE(88)] = 2985, + [SMALL_STATE(89)] = 3000, + [SMALL_STATE(90)] = 3015, + [SMALL_STATE(91)] = 3030, + [SMALL_STATE(92)] = 3045, + [SMALL_STATE(93)] = 3060, + [SMALL_STATE(94)] = 3075, + [SMALL_STATE(95)] = 3090, + [SMALL_STATE(96)] = 3105, + [SMALL_STATE(97)] = 3120, + [SMALL_STATE(98)] = 3135, + [SMALL_STATE(99)] = 3150, + [SMALL_STATE(100)] = 3165, + [SMALL_STATE(101)] = 3180, + [SMALL_STATE(102)] = 3195, + [SMALL_STATE(103)] = 3210, + [SMALL_STATE(104)] = 3228, + [SMALL_STATE(105)] = 3248, + [SMALL_STATE(106)] = 3264, + [SMALL_STATE(107)] = 3280, + [SMALL_STATE(108)] = 3298, + [SMALL_STATE(109)] = 3314, + [SMALL_STATE(110)] = 3327, [SMALL_STATE(111)] = 3344, - [SMALL_STATE(112)] = 3359, - [SMALL_STATE(113)] = 3372, + [SMALL_STATE(112)] = 3355, + [SMALL_STATE(113)] = 3374, [SMALL_STATE(114)] = 3391, - [SMALL_STATE(115)] = 3402, - [SMALL_STATE(116)] = 3419, - [SMALL_STATE(117)] = 3435, - [SMALL_STATE(118)] = 3447, - [SMALL_STATE(119)] = 3463, - [SMALL_STATE(120)] = 3479, - [SMALL_STATE(121)] = 3495, - [SMALL_STATE(122)] = 3511, - [SMALL_STATE(123)] = 3524, - [SMALL_STATE(124)] = 3537, - [SMALL_STATE(125)] = 3546, - [SMALL_STATE(126)] = 3559, - [SMALL_STATE(127)] = 3570, - [SMALL_STATE(128)] = 3579, - [SMALL_STATE(129)] = 3592, - [SMALL_STATE(130)] = 3603, - [SMALL_STATE(131)] = 3616, - [SMALL_STATE(132)] = 3629, - [SMALL_STATE(133)] = 3642, - [SMALL_STATE(134)] = 3655, - [SMALL_STATE(135)] = 3666, - [SMALL_STATE(136)] = 3679, - [SMALL_STATE(137)] = 3688, - [SMALL_STATE(138)] = 3696, - [SMALL_STATE(139)] = 3706, - [SMALL_STATE(140)] = 3716, - [SMALL_STATE(141)] = 3726, - [SMALL_STATE(142)] = 3736, - [SMALL_STATE(143)] = 3746, - [SMALL_STATE(144)] = 3756, - [SMALL_STATE(145)] = 3766, - [SMALL_STATE(146)] = 3776, - [SMALL_STATE(147)] = 3786, - [SMALL_STATE(148)] = 3796, - [SMALL_STATE(149)] = 3806, - [SMALL_STATE(150)] = 3816, - [SMALL_STATE(151)] = 3826, - [SMALL_STATE(152)] = 3833, - [SMALL_STATE(153)] = 3840, - [SMALL_STATE(154)] = 3847, - [SMALL_STATE(155)] = 3854, - [SMALL_STATE(156)] = 3861, - [SMALL_STATE(157)] = 3868, - [SMALL_STATE(158)] = 3875, - [SMALL_STATE(159)] = 3882, - [SMALL_STATE(160)] = 3889, - [SMALL_STATE(161)] = 3896, - [SMALL_STATE(162)] = 3903, - [SMALL_STATE(163)] = 3910, - [SMALL_STATE(164)] = 3917, - [SMALL_STATE(165)] = 3924, - [SMALL_STATE(166)] = 3931, - [SMALL_STATE(167)] = 3938, - [SMALL_STATE(168)] = 3945, - [SMALL_STATE(169)] = 3952, - [SMALL_STATE(170)] = 3959, - [SMALL_STATE(171)] = 3966, - [SMALL_STATE(172)] = 3973, - [SMALL_STATE(173)] = 3980, - [SMALL_STATE(174)] = 3987, - [SMALL_STATE(175)] = 3994, + [SMALL_STATE(115)] = 3410, + [SMALL_STATE(116)] = 3423, + [SMALL_STATE(117)] = 3438, + [SMALL_STATE(118)] = 3457, + [SMALL_STATE(119)] = 3471, + [SMALL_STATE(120)] = 3485, + [SMALL_STATE(121)] = 3499, + [SMALL_STATE(122)] = 3515, + [SMALL_STATE(123)] = 3531, + [SMALL_STATE(124)] = 3543, + [SMALL_STATE(125)] = 3557, + [SMALL_STATE(126)] = 3573, + [SMALL_STATE(127)] = 3589, + [SMALL_STATE(128)] = 3605, + [SMALL_STATE(129)] = 3619, + [SMALL_STATE(130)] = 3630, + [SMALL_STATE(131)] = 3641, + [SMALL_STATE(132)] = 3650, + [SMALL_STATE(133)] = 3661, + [SMALL_STATE(134)] = 3674, + [SMALL_STATE(135)] = 3687, + [SMALL_STATE(136)] = 3696, + [SMALL_STATE(137)] = 3709, + [SMALL_STATE(138)] = 3722, + [SMALL_STATE(139)] = 3735, + [SMALL_STATE(140)] = 3744, + [SMALL_STATE(141)] = 3757, + [SMALL_STATE(142)] = 3770, + [SMALL_STATE(143)] = 3783, + [SMALL_STATE(144)] = 3796, + [SMALL_STATE(145)] = 3806, + [SMALL_STATE(146)] = 3816, + [SMALL_STATE(147)] = 3826, + [SMALL_STATE(148)] = 3836, + [SMALL_STATE(149)] = 3846, + [SMALL_STATE(150)] = 3856, + [SMALL_STATE(151)] = 3864, + [SMALL_STATE(152)] = 3874, + [SMALL_STATE(153)] = 3884, + [SMALL_STATE(154)] = 3894, + [SMALL_STATE(155)] = 3904, + [SMALL_STATE(156)] = 3914, + [SMALL_STATE(157)] = 3924, + [SMALL_STATE(158)] = 3934, + [SMALL_STATE(159)] = 3941, + [SMALL_STATE(160)] = 3948, + [SMALL_STATE(161)] = 3955, + [SMALL_STATE(162)] = 3962, + [SMALL_STATE(163)] = 3969, + [SMALL_STATE(164)] = 3976, + [SMALL_STATE(165)] = 3983, + [SMALL_STATE(166)] = 3990, + [SMALL_STATE(167)] = 3997, + [SMALL_STATE(168)] = 4004, + [SMALL_STATE(169)] = 4011, + [SMALL_STATE(170)] = 4018, + [SMALL_STATE(171)] = 4025, + [SMALL_STATE(172)] = 4032, + [SMALL_STATE(173)] = 4039, + [SMALL_STATE(174)] = 4046, + [SMALL_STATE(175)] = 4053, + [SMALL_STATE(176)] = 4060, + [SMALL_STATE(177)] = 4067, + [SMALL_STATE(178)] = 4074, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -5842,216 +6013,223 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 3), - [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 2), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 2), + [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(77), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), [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(8), - [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), - [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(27), - [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(158), - [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(27), - [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(158), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 3), + [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_full_splat, 3), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(23), + [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(177), + [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_full_splat, 4), + [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_full_splat, 4), + [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(23), + [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(177), [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(27), - [98] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(158), - [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), - [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), - [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(158), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 2), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 2), - [112] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(158), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 3), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_lit, 3), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 3), - [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 3), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 3), SHIFT(158), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expr, 1), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_expr, 1), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 1), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 1), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 4), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 4), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_lit, 1), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_lit, 1), + [95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(23), + [98] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(177), + [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr_splat, 2), + [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attr_splat, 2), + [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(177), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 3), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_lit, 3), + [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(177), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_lit, 2), + [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_lit, 2), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attr_splat_repeat1, 2), + [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(177), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_expr, 1), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_expr, 1), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 3), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 8), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 8), [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal_value, 1), [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal_value, 1), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 7), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 7), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 2), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 2), - [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 8), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 8), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 3), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 3), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 1), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 1), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 6), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 6), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_collection_value, 1), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_collection_value, 1), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 1), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 1), - [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expr, 1), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_expr, 1), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 3), - [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 3), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 2), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 2), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_lit, 1), + [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_lit, 1), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 1), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 1), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 4), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 4), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 5), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 5), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_get_attr, 2), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_get_attr, 2), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 4), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 4), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 1), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 1), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 2), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 2), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_splat, 1), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_splat, 1), [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 4), [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 4), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 4), - [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 4), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 2), - [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 2), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index, 3), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_tuple_expr, 5), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_tuple_expr, 5), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_splat, 1), - [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_splat, 1), - [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_get_attr, 2), - [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_get_attr, 2), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 5), - [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional, 5), - [232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_conditional, 5), SHIFT(19), - [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(25), - [238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(169), - [241] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(25), - [244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(169), - [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(25), - [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(169), - [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(169), - [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 3), SHIFT(169), - [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(169), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 5), - [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 5), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 7), - [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 7), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [272] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_variable_expr, 1), SHIFT(15), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 1), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), - [287] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), SHIFT_REPEAT(104), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 1), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expr, 1), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_expr, 1), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_term, 3), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_term, 3), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object, 3), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_object, 3), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 6), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 6), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_object_expr, 7), + [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_object_expr, 7), + [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 1), + [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 1), + [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_collection_value, 1), + [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_collection_value, 1), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 5), + [234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional, 5), + [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_conditional, 5), SHIFT(19), + [239] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 3), SHIFT(27), + [242] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 3), SHIFT(160), + [245] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_full_splat, 4), SHIFT(27), + [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_full_splat, 4), SHIFT(160), + [251] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(27), + [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_full_splat_repeat1, 2), SHIFT_REPEAT(160), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 7), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 7), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_intro, 5), + [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_intro, 5), + [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 2), SHIFT(160), + [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_attr_splat, 3), SHIFT(160), + [271] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attr_splat_repeat1, 2), SHIFT_REPEAT(160), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [284] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_variable_expr, 1), SHIFT(32), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), + [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_body_repeat1, 2), SHIFT_REPEAT(104), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_body, 1), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_conditional, 5), SHIFT(24), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(109), - [308] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(170), - [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), - [321] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), SHIFT_REPEAT(29), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 1), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 1), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object_elem, 3), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 1), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_cond, 2), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), - [378] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), SHIFT_REPEAT(9), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 1), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), - [441] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [443] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config_file, 1), - [451] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [302] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(110), + [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(120), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 1), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_conditional, 5), SHIFT(22), + [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_repeat1, 2), SHIFT_REPEAT(31), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [336] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [340] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [342] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 1), + [356] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_lit_repeat1, 2), + [370] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_lit_repeat1, 2), SHIFT_REPEAT(128), + [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_cond, 2), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 1), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_object_elem, 3), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 1), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), + [389] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_object_repeat1, 2), SHIFT_REPEAT(10), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 1), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config_file, 1), + [466] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus diff --git a/test/corpus/literals.txt b/test/corpus/literals.txt index 1f18c89..d0d20b9 100644 --- a/test/corpus/literals.txt +++ b/test/corpus/literals.txt @@ -102,10 +102,10 @@ small_pi = 3.14E-10 (numeric_lit))))))) ================== -string literal one line +bool literal true ================== -foo = "bar" +foo = true --- @@ -116,13 +116,13 @@ foo = "bar" (expression (expr_term (literal_value - (string_lit))))))) + (bool_lit))))))) ================== -string literal escaped newline +bool literal false ================== -foo = "bar\nbaz" +foo = false --- @@ -133,15 +133,13 @@ foo = "bar\nbaz" (expression (expr_term (literal_value - (string_lit))))))) - + (bool_lit))))))) ================== -string literal multi line error +null literal ================== -foo = " -bar" +foo = null --- @@ -152,13 +150,13 @@ bar" (expression (expr_term (literal_value - (string_lit (ERROR (UNEXPECTED 'b'))))))))) + (null_lit))))))) ================== -bool literal true +string literal one line ================== -foo = true +foo = "bar" --- @@ -169,13 +167,13 @@ foo = true (expression (expr_term (literal_value - (bool_lit))))))) + (string_lit))))))) ================== -bool literal false +string literal escaped newline ================== -foo = false +foo = "bar\nbaz" --- @@ -183,16 +181,13 @@ foo = false (body (attribute (identifier) - (expression - (expr_term - (literal_value - (bool_lit))))))) + (expression (expr_term (literal_value (string_lit (escape_sequence)))))))) ================== -null literal +string literal escaped tab ================== -foo = null +foo = "bar\tbaz" --- @@ -200,8 +195,104 @@ foo = null (body (attribute (identifier) - (expression - (expr_term - (literal_value - (null_lit))))))) + (expression (expr_term (literal_value (string_lit (escape_sequence)))))))) + +================== +string literal escaped " +================== + +foo = "bar\"baz" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (escape_sequence)))))))) + +================== +string literal escaped \ +================== + +foo = "bar\\baz" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (escape_sequence)))))))) + +================== +string literal escaped \uFFFF +================== + +foo = "bar\uFFFFbaz" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (escape_sequence)))))))) + +================== +string bad escape sequence +================== + +foo = "bar\pbaz" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (ERROR (UNEXPECTED 'p'))))))))) + +================== +string bad escape sequence 2 +================== + +foo = "bar\uZZ" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (ERROR (UNEXPECTED 'Z'))))))))) + +================== +string literal multi line error +================== + +foo = " +bar" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (ERROR (UNEXPECTED 'b'))))))))) + +================== +string literal unescaped tab +================== + +foo = "foo bar" + +--- + +(config_file + (body + (attribute + (identifier) + (expression (expr_term (literal_value (string_lit (ERROR (UNEXPECTED 'b')))))))))