Remove trailing commas in 'select_value' arguments

This commit is contained in:
Bruno BELANYI 2024-04-23 15:23:06 +00:00
parent 7d8f958a90
commit 8166742493
4 changed files with 738 additions and 779 deletions

View file

@ -2,6 +2,10 @@ function commaSeparated(elem) {
return seq(elem, repeat(seq(",", elem)), optional(",")) return seq(elem, repeat(seq(",", elem)), optional(","))
} }
function commaSeparatedNoTrailing(elem) {
return seq(elem, repeat(seq(",", elem)))
}
function trailingCommaSeparated(elem) { function trailingCommaSeparated(elem) {
return repeat(seq(elem, ",")) return repeat(seq(elem, ","))
} }
@ -130,7 +134,7 @@ module.exports = grammar({
select_value: ($) => seq( select_value: ($) => seq(
field("name", $.identifier), field("name", $.identifier),
"(", "(",
field("arguments", optional(commaSeparated($._string_literal))), field("arguments", optional(commaSeparatedNoTrailing($._string_literal))),
")", ")",
), ),

12
src/grammar.json generated
View file

@ -529,18 +529,6 @@
} }
] ]
} }
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
} }
] ]
}, },

1471
src/parser.c generated

File diff suppressed because it is too large Load diff

View file

@ -226,6 +226,34 @@ foo = select(release_variable("ONE", "TWO"), {
(default) (default)
(interpreted_string_literal)))))) (interpreted_string_literal))))))
================================================================================
Select (trailing comma in arguments)
================================================================================
foo = select(some_boolean("VALUE",), {
true: "true",
false: "false",
})
--------------------------------------------------------------------------------
(source_file
(assignment
(identifier)
(operator)
(select_expression
(select_value
(identifier)
(interpreted_string_literal)
(ERROR))
(select_cases
(select_case
(boolean_literal)
(interpreted_string_literal))
(select_case
(boolean_literal)
(interpreted_string_literal))))))
================================================================================ ================================================================================
Select (boolean typed) Select (boolean typed)
================================================================================ ================================================================================