add ellipsis token

This commit is contained in:
mhoffm
2021-06-11 23:57:34 +02:00
parent 1b32606141
commit 94b188039a
6 changed files with 210 additions and 114 deletions

View File

@@ -136,7 +136,7 @@ module.exports = grammar({
$.expression, $.expression,
'=>', '=>',
$.expression, $.expression,
optional('...'), optional($.ellipsis),
optional($.for_cond), optional($.for_cond),
'}', '}',
), ),
@@ -164,9 +164,11 @@ module.exports = grammar({
function_arguments: $ => seq( function_arguments: $ => seq(
$.expression, $.expression,
repeat(seq(',', $.expression)), repeat(seq(',', $.expression)),
optional(choice(',', '...')) optional(choice(',', $.ellipsis))
), ),
ellipsis: $ => token('...'),
// http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890 // http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890
comment: $ => token(choice( comment: $ => token(choice(
seq('#', /.*/), seq('#', /.*/),

View File

@@ -601,8 +601,8 @@
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
"type": "STRING", "type": "SYMBOL",
"value": "..." "name": "ellipsis"
}, },
{ {
"type": "BLANK" "type": "BLANK"
@@ -757,8 +757,8 @@
"value": "," "value": ","
}, },
{ {
"type": "STRING", "type": "SYMBOL",
"value": "..." "name": "ellipsis"
} }
] ]
}, },
@@ -769,6 +769,13 @@
} }
] ]
}, },
"ellipsis": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "..."
}
},
"comment": { "comment": {
"type": "TOKEN", "type": "TOKEN",
"content": { "content": {

View File

@@ -259,6 +259,10 @@
"multiple": true, "multiple": true,
"required": true, "required": true,
"types": [ "types": [
{
"type": "ellipsis",
"named": true
},
{ {
"type": "expression", "type": "expression",
"named": true "named": true
@@ -324,6 +328,10 @@
"multiple": true, "multiple": true,
"required": true, "required": true,
"types": [ "types": [
{
"type": "ellipsis",
"named": true
},
{ {
"type": "expression", "type": "expression",
"named": true "named": true
@@ -526,10 +534,6 @@
"type": ".", "type": ".",
"named": false "named": false
}, },
{
"type": "...",
"named": false
},
{ {
"type": ":", "type": ":",
"named": false "named": false
@@ -554,6 +558,10 @@
"type": "comment", "type": "comment",
"named": true "named": true
}, },
{
"type": "ellipsis",
"named": true
},
{ {
"type": "false", "type": "false",
"named": false "named": false

View File

@@ -36,10 +36,10 @@ enum {
anon_sym_DOT = 17, anon_sym_DOT = 17,
anon_sym_STAR = 18, anon_sym_STAR = 18,
anon_sym_EQ_GT = 19, anon_sym_EQ_GT = 19,
anon_sym_DOT_DOT_DOT = 20, anon_sym_for = 20,
anon_sym_for = 21, anon_sym_in = 21,
anon_sym_in = 22, anon_sym_if = 22,
anon_sym_if = 23, sym_ellipsis = 23,
sym_comment = 24, sym_comment = 24,
sym_config_file = 25, sym_config_file = 25,
sym_body = 26, sym_body = 26,
@@ -96,10 +96,10 @@ static const char * const ts_symbol_names[] = {
[anon_sym_DOT] = ".", [anon_sym_DOT] = ".",
[anon_sym_STAR] = "*", [anon_sym_STAR] = "*",
[anon_sym_EQ_GT] = "=>", [anon_sym_EQ_GT] = "=>",
[anon_sym_DOT_DOT_DOT] = "...",
[anon_sym_for] = "for", [anon_sym_for] = "for",
[anon_sym_in] = "in", [anon_sym_in] = "in",
[anon_sym_if] = "if", [anon_sym_if] = "if",
[sym_ellipsis] = "ellipsis",
[sym_comment] = "comment", [sym_comment] = "comment",
[sym_config_file] = "config_file", [sym_config_file] = "config_file",
[sym_body] = "body", [sym_body] = "body",
@@ -156,10 +156,10 @@ static const TSSymbol ts_symbol_map[] = {
[anon_sym_DOT] = anon_sym_DOT, [anon_sym_DOT] = anon_sym_DOT,
[anon_sym_STAR] = anon_sym_STAR, [anon_sym_STAR] = anon_sym_STAR,
[anon_sym_EQ_GT] = anon_sym_EQ_GT, [anon_sym_EQ_GT] = anon_sym_EQ_GT,
[anon_sym_DOT_DOT_DOT] = anon_sym_DOT_DOT_DOT,
[anon_sym_for] = anon_sym_for, [anon_sym_for] = anon_sym_for,
[anon_sym_in] = anon_sym_in, [anon_sym_in] = anon_sym_in,
[anon_sym_if] = anon_sym_if, [anon_sym_if] = anon_sym_if,
[sym_ellipsis] = sym_ellipsis,
[sym_comment] = sym_comment, [sym_comment] = sym_comment,
[sym_config_file] = sym_config_file, [sym_config_file] = sym_config_file,
[sym_body] = sym_body, [sym_body] = sym_body,
@@ -276,10 +276,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
.visible = true, .visible = true,
.named = false, .named = false,
}, },
[anon_sym_DOT_DOT_DOT] = {
.visible = true,
.named = false,
},
[anon_sym_for] = { [anon_sym_for] = {
.visible = true, .visible = true,
.named = false, .named = false,
@@ -292,6 +288,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
.visible = true, .visible = true,
.named = false, .named = false,
}, },
[sym_ellipsis] = {
.visible = true,
.named = true,
},
[sym_comment] = { [sym_comment] = {
.visible = true, .visible = true,
.named = true, .named = true,
@@ -2092,7 +2092,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead != 0) ADVANCE(6); if (lookahead != 0) ADVANCE(6);
END_STATE(); END_STATE();
case 7: case 7:
if (lookahead == '.') ADVANCE(72); if (lookahead == '.') ADVANCE(76);
END_STATE(); END_STATE();
case 8: case 8:
if (lookahead == '>') ADVANCE(71); if (lookahead == '>') ADVANCE(71);
@@ -2108,8 +2108,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead == 'e') ADVANCE(60); if (lookahead == 'e') ADVANCE(60);
END_STATE(); END_STATE();
case 12: case 12:
if (lookahead == 'f') ADVANCE(76); if (lookahead == 'f') ADVANCE(75);
if (lookahead == 'n') ADVANCE(75); if (lookahead == 'n') ADVANCE(74);
END_STATE(); END_STATE();
case 13: case 13:
if (lookahead == 'l') ADVANCE(18); if (lookahead == 'l') ADVANCE(18);
@@ -2121,7 +2121,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead == 'l') ADVANCE(14); if (lookahead == 'l') ADVANCE(14);
END_STATE(); END_STATE();
case 16: case 16:
if (lookahead == 'r') ADVANCE(73); if (lookahead == 'r') ADVANCE(72);
END_STATE(); END_STATE();
case 17: case 17:
if (lookahead == 'r') ADVANCE(19); if (lookahead == 'r') ADVANCE(19);
@@ -2248,7 +2248,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
END_STATE(); END_STATE();
case 40: case 40:
ACCEPT_TOKEN(sym_identifier); ACCEPT_TOKEN(sym_identifier);
if (lookahead == 'r') ADVANCE(74); if (lookahead == 'r') ADVANCE(73);
if (sym_identifier_character_set_3(lookahead)) ADVANCE(45); if (sym_identifier_character_set_3(lookahead)) ADVANCE(45);
END_STATE(); END_STATE();
case 41: case 41:
@@ -2398,21 +2398,21 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
ACCEPT_TOKEN(anon_sym_EQ_GT); ACCEPT_TOKEN(anon_sym_EQ_GT);
END_STATE(); END_STATE();
case 72: case 72:
ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT); ACCEPT_TOKEN(anon_sym_for);
END_STATE(); END_STATE();
case 73: case 73:
ACCEPT_TOKEN(anon_sym_for);
END_STATE();
case 74:
ACCEPT_TOKEN(anon_sym_for); ACCEPT_TOKEN(anon_sym_for);
if (sym_identifier_character_set_3(lookahead)) ADVANCE(45); if (sym_identifier_character_set_3(lookahead)) ADVANCE(45);
END_STATE(); END_STATE();
case 75: case 74:
ACCEPT_TOKEN(anon_sym_in); ACCEPT_TOKEN(anon_sym_in);
END_STATE(); END_STATE();
case 76: case 75:
ACCEPT_TOKEN(anon_sym_if); ACCEPT_TOKEN(anon_sym_if);
END_STATE(); END_STATE();
case 76:
ACCEPT_TOKEN(sym_ellipsis);
END_STATE();
case 77: case 77:
ACCEPT_TOKEN(sym_comment); ACCEPT_TOKEN(sym_comment);
END_STATE(); END_STATE();
@@ -2620,10 +2620,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[anon_sym_DOT] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1),
[anon_sym_STAR] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1),
[anon_sym_EQ_GT] = ACTIONS(1), [anon_sym_EQ_GT] = ACTIONS(1),
[anon_sym_DOT_DOT_DOT] = ACTIONS(1),
[anon_sym_for] = ACTIONS(1), [anon_sym_for] = ACTIONS(1),
[anon_sym_in] = ACTIONS(1), [anon_sym_in] = ACTIONS(1),
[anon_sym_if] = ACTIONS(1), [anon_sym_if] = ACTIONS(1),
[sym_ellipsis] = ACTIONS(1),
[sym_comment] = ACTIONS(3), [sym_comment] = ACTIONS(3),
}, },
[1] = { [1] = {
@@ -3762,7 +3762,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1560] = 6, [1560] = 6,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3785,7 +3785,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1589] = 6, [1589] = 6,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3808,7 +3808,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1618] = 6, [1618] = 6,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3831,7 +3831,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1647] = 3, [1647] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3850,7 +3850,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1669] = 5, [1669] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3871,7 +3871,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1695] = 5, [1695] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3892,7 +3892,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1721] = 5, [1721] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3913,7 +3913,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1747] = 3, [1747] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3930,7 +3930,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1767] = 3, [1767] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3947,7 +3947,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1787] = 3, [1787] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3964,7 +3964,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1807] = 3, [1807] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3981,7 +3981,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1827] = 3, [1827] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -3998,7 +3998,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1847] = 3, [1847] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4015,7 +4015,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1867] = 3, [1867] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4032,7 +4032,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1887] = 3, [1887] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4049,7 +4049,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1907] = 3, [1907] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4066,7 +4066,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1927] = 3, [1927] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4083,7 +4083,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1947] = 3, [1947] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4100,7 +4100,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1967] = 3, [1967] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4117,7 +4117,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[1987] = 3, [1987] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4134,7 +4134,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2007] = 3, [2007] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4151,7 +4151,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2027] = 3, [2027] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4168,7 +4168,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2047] = 3, [2047] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4185,7 +4185,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2067] = 3, [2067] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4202,7 +4202,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2087] = 4, [2087] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4220,7 +4220,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2109] = 3, [2109] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4237,7 +4237,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2129] = 3, [2129] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4254,7 +4254,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2149] = 3, [2149] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4271,7 +4271,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2169] = 3, [2169] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4288,7 +4288,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2189] = 3, [2189] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4305,7 +4305,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2209] = 3, [2209] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4322,7 +4322,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_COLON, anon_sym_COLON,
anon_sym_EQ_GT, anon_sym_EQ_GT,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2229] = 6, [2229] = 6,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4340,8 +4340,8 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(63), 4, ACTIONS(63), 4,
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2254] = 5, [2254] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4356,8 +4356,8 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(91), 4, ACTIONS(91), 4,
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2275] = 5, [2275] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4372,8 +4372,8 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(71), 4, ACTIONS(71), 4,
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2296] = 3, [2296] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4416,8 +4416,8 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(81), 4, ACTIONS(81), 4,
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2351] = 4, [2351] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4430,8 +4430,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2369] = 4, [2369] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4444,8 +4444,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2387] = 4, [2387] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4458,8 +4458,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2405] = 4, [2405] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4471,8 +4471,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2422] = 3, [2422] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4482,8 +4482,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2436] = 3, [2436] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4493,8 +4493,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2450] = 3, [2450] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4504,8 +4504,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2464] = 3, [2464] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4515,8 +4515,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2478] = 3, [2478] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4526,8 +4526,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2492] = 3, [2492] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4537,8 +4537,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2506] = 3, [2506] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4548,8 +4548,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2520] = 5, [2520] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4572,8 +4572,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2552] = 3, [2552] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4583,8 +4583,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2566] = 4, [2566] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4606,8 +4606,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2596] = 3, [2596] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4617,8 +4617,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2610] = 6, [2610] = 6,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4642,8 +4642,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2644] = 3, [2644] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4653,8 +4653,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2658] = 3, [2658] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4664,8 +4664,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2672] = 3, [2672] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4675,8 +4675,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2686] = 3, [2686] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4686,8 +4686,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2700] = 4, [2700] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4709,8 +4709,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2730] = 3, [2730] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4720,8 +4720,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2744] = 3, [2744] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4731,8 +4731,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2758] = 3, [2758] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4742,8 +4742,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2772] = 3, [2772] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4753,8 +4753,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2786] = 5, [2786] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4777,8 +4777,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2818] = 3, [2818] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4788,8 +4788,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2832] = 3, [2832] = 3,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4799,8 +4799,8 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RBRACE, anon_sym_RBRACE,
anon_sym_LBRACK, anon_sym_LBRACK,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT,
anon_sym_if, anon_sym_if,
sym_ellipsis,
[2846] = 5, [2846] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4834,7 +4834,7 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(289), 3, ACTIONS(289), 3,
anon_sym_RPAREN, anon_sym_RPAREN,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2893] = 5, [2893] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
@@ -4855,7 +4855,7 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(302), 1, ACTIONS(302), 1,
anon_sym_COMMA, anon_sym_COMMA,
ACTIONS(304), 1, ACTIONS(304), 1,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
STATE(102), 1, STATE(102), 1,
aux_sym_tuple_repeat1, aux_sym_tuple_repeat1,
[2926] = 2, [2926] = 2,
@@ -4865,16 +4865,16 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_RPAREN, anon_sym_RPAREN,
anon_sym_COMMA, anon_sym_COMMA,
anon_sym_RBRACK, anon_sym_RBRACK,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
[2936] = 5, [2936] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
ACTIONS(306), 1, ACTIONS(306), 1,
anon_sym_RBRACE, anon_sym_RBRACE,
ACTIONS(308), 1, ACTIONS(308), 1,
anon_sym_DOT_DOT_DOT,
ACTIONS(310), 1,
anon_sym_if, anon_sym_if,
ACTIONS(310), 1,
sym_ellipsis,
STATE(157), 1, STATE(157), 1,
sym_for_cond, sym_for_cond,
[2952] = 5, [2952] = 5,
@@ -4885,18 +4885,18 @@ static const uint16_t ts_small_parse_table[] = {
ACTIONS(314), 1, ACTIONS(314), 1,
anon_sym_COMMA, anon_sym_COMMA,
ACTIONS(316), 1, ACTIONS(316), 1,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
STATE(104), 1, STATE(104), 1,
aux_sym_tuple_repeat1, aux_sym_tuple_repeat1,
[2968] = 5, [2968] = 5,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
ACTIONS(310), 1, ACTIONS(308), 1,
anon_sym_if, anon_sym_if,
ACTIONS(318), 1, ACTIONS(318), 1,
anon_sym_RBRACE, anon_sym_RBRACE,
ACTIONS(320), 1, ACTIONS(320), 1,
anon_sym_DOT_DOT_DOT, sym_ellipsis,
STATE(134), 1, STATE(134), 1,
sym_for_cond, sym_for_cond,
[2984] = 2, [2984] = 2,
@@ -4909,7 +4909,7 @@ static const uint16_t ts_small_parse_table[] = {
[2993] = 4, [2993] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
ACTIONS(310), 1, ACTIONS(308), 1,
anon_sym_if, anon_sym_if,
ACTIONS(324), 1, ACTIONS(324), 1,
anon_sym_RBRACK, anon_sym_RBRACK,
@@ -4952,7 +4952,7 @@ static const uint16_t ts_small_parse_table[] = {
[3054] = 4, [3054] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
ACTIONS(310), 1, ACTIONS(308), 1,
anon_sym_if, anon_sym_if,
ACTIONS(338), 1, ACTIONS(338), 1,
anon_sym_RBRACK, anon_sym_RBRACK,
@@ -4961,7 +4961,7 @@ static const uint16_t ts_small_parse_table[] = {
[3067] = 4, [3067] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
ACTIONS(310), 1, ACTIONS(308), 1,
anon_sym_if, anon_sym_if,
ACTIONS(340), 1, ACTIONS(340), 1,
anon_sym_RBRACE, anon_sym_RBRACE,
@@ -5004,7 +5004,7 @@ static const uint16_t ts_small_parse_table[] = {
[3128] = 4, [3128] = 4,
ACTIONS(3), 1, ACTIONS(3), 1,
sym_comment, sym_comment,
ACTIONS(310), 1, ACTIONS(308), 1,
anon_sym_if, anon_sym_if,
ACTIONS(350), 1, ACTIONS(350), 1,
anon_sym_RBRACE, anon_sym_RBRACE,
@@ -5567,8 +5567,8 @@ static const TSParseActionEntry ts_parse_actions[] = {
[302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
[304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
[306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
[308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
[310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
[312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 1), [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_arguments, 1),
[314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
[316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),

View File

@@ -24,3 +24,85 @@ foo = [for v in ["a", "b"]: v]
(expression (expr_term (literal_value (string_lit))))))))) (expression (expr_term (literal_value (string_lit)))))))))
(expression (expr_term (variable_expr (identifier))))))))))) (expression (expr_term (variable_expr (identifier)))))))))))
==================
for tuple expression with index
==================
foo = [for i, v in ["a", "b"]: i]
---
(config_file
(body
(attribute
(identifier)
(expression
(expr_term
(for_expr
(for_tuple_expr
(for_intro
(identifier)
(identifier)
(expression
(expr_term
(collection_value
(tuple
(expression (expr_term (literal_value (string_lit))))
(expression (expr_term (literal_value (string_lit)))))))))
(expression (expr_term (variable_expr (identifier)))))))))))
==================
for object expression
==================
foo = {for i, v in ["a", "b"]: v => i}
---
(config_file
(body
(attribute
(identifier)
(expression
(expr_term
(for_expr
(for_object_expr
(for_intro
(identifier)
(identifier)
(expression
(expr_term
(collection_value
(tuple
(expression (expr_term (literal_value (string_lit))))
(expression (expr_term (literal_value (string_lit)))))))))
(expression (expr_term (variable_expr (identifier))))
(expression (expr_term (variable_expr (identifier)))))))))))
==================
for object expression 2
==================
foo = {for i, v in ["a", "b"]: v => i...}
---
(config_file
(body
(attribute
(identifier)
(expression
(expr_term
(for_expr
(for_object_expr
(for_intro
(identifier)
(identifier)
(expression
(expr_term
(collection_value
(tuple
(expression (expr_term (literal_value (string_lit))))
(expression (expr_term (literal_value (string_lit)))))))))
(expression (expr_term (variable_expr (identifier))))
(expression (expr_term (variable_expr (identifier)))) (ellipsis))))))))

View File

@@ -54,10 +54,7 @@ foo = bar(x...)
(function_call (function_call
(identifier) (identifier)
(function_arguments (function_arguments
(expression (expression (expr_term (variable_expr (identifier)))) (ellipsis))))))))
(expr_term
(variable_expr
(identifier)))))))))))
================== ==================
multiline function call multiline function call