Fix grammar to have more than one argument between parentheses

This commit is contained in:
Uy Ha 2021-07-01 17:02:13 +02:00
parent 19bb3af0d5
commit f3ecd63233
4 changed files with 8045 additions and 8018 deletions

View file

@ -36,3 +36,17 @@ message(STATUS ((TEST))
(argument (unquoted_argument)) (MISSING ")")
)
)
===============================================
Many arguments inside parentheses [parentheses]
===============================================
message(STATUS (TEST SECOND_TEST))
---
(source_file
(normal_command
(identifier)
(argument (unquoted_argument))
(argument (unquoted_argument))
(argument (unquoted_argument))
)
)

View file

@ -35,7 +35,7 @@ module.exports = grammar({
argument: ($) => choice($.bracket_argument, $.quoted_argument, $.unquoted_argument),
_untrimmed_argument: ($) => choice(/\s/, $.bracket_comment, $.line_comment, $.argument, $._paren_argument),
_paren_argument: ($) => seq("(", $._untrimmed_argument, ")"),
_paren_argument: ($) => seq("(", repeat($._untrimmed_argument), ")"),
quoted_argument: ($) => seq('"', optional($.quoted_element), '"'),
quoted_element: ($) => repeat1(choice($.variable_ref, /[^\\"]/, $.escape_sequence)),

View file

@ -212,8 +212,11 @@
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_untrimmed_argument"
}
},
{
"type": "STRING",

16040
src/parser.c

File diff suppressed because it is too large Load diff