Skip to content

Commit 3685d1a

Browse files
Add support for collection expression.
1 parent f05a2ca commit 3685d1a

5 files changed

Lines changed: 487694 additions & 478207 deletions

File tree

grammar.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ export default grammar({
7777
[$.constant_pattern, $._name],
7878
[$.constant_pattern, $.lvalue_expression, $._name],
7979

80+
[$.expression_element, $.argument],
81+
[$.spread_element, $.range_expression],
82+
[$.collection_expression, $.list_pattern],
83+
8084
[$._reserved_identifier, $.modifier],
8185
[$._reserved_identifier, $.scoped_type],
8286
[$._reserved_identifier, $.implicit_type],
@@ -1276,6 +1280,7 @@ export default grammar({
12761280
$.as_expression,
12771281
$.cast_expression,
12781282
$.checked_expression,
1283+
$.collection_expression,
12791284
$.switch_expression,
12801285
$.throw_expression,
12811286
$.default_expression,
@@ -1698,6 +1703,25 @@ export default grammar({
16981703
$.initializer_expression,
16991704
),
17001705

1706+
collection_expression: $ => seq(
1707+
'[',
1708+
optional(seq(
1709+
$.collection_element,
1710+
repeat(seq(',', $.collection_element)),
1711+
optional(','),
1712+
)),
1713+
']',
1714+
),
1715+
1716+
collection_element: $ => choice(
1717+
$.expression_element,
1718+
$.spread_element,
1719+
),
1720+
1721+
expression_element: $ => prec(1, $.expression),
1722+
1723+
spread_element: $ => prec.dynamic(1, prec(PREC.RANGE, seq('..', $.expression))),
1724+
17011725
initializer_expression: $ => seq(
17021726
'{',
17031727
commaSep($.expression),

src/grammar.json

Lines changed: 116 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node-types.json

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)