Skip to content

Commit 26aca7e

Browse files
authored
Merge pull request #11 from merico-dev/fix-parse-errors
Add fields for modifiers
2 parents 2094052 + 4dc5a8f commit 26aca7e

File tree

4 files changed

+1065122
-812613
lines changed

4 files changed

+1065122
-812613
lines changed

grammar.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ module.exports = grammar({
215215

216216
class_declaration: $ => prec.right(
217217
seq(
218-
optional($.modifiers),
218+
field("modifiers", optional($.modifiers)),
219219
prec(1, $._class),
220220
field("identifier", alias($.simple_identifier, $.type_identifier)),
221221
optional($.type_parameters),
@@ -228,7 +228,7 @@ module.exports = grammar({
228228

229229
interface_declaration: $ => prec.right(
230230
seq(
231-
optional($.modifiers),
231+
field("modifiers", optional($.modifiers)),
232232
seq(optional("fun"), "interface"),
233233
field("identifier", alias($.simple_identifier, $.type_identifier)),
234234
optional($.type_parameters),
@@ -241,7 +241,7 @@ module.exports = grammar({
241241

242242
enum_class_declaration: $ => prec.right(
243243
seq(
244-
optional($.modifiers),
244+
field("modifiers", optional($.modifiers)),
245245
"enum",
246246
$._class,
247247
field("identifier", alias($.simple_identifier, $.type_identifier)),
@@ -254,7 +254,10 @@ module.exports = grammar({
254254
),
255255

256256
primary_constructor: $ => seq(
257-
optional(seq(optional($.modifiers), "constructor")),
257+
optional(seq(
258+
field("modifiers", optional($.modifiers)),
259+
"constructor"
260+
)),
258261
$._class_parameters
259262
),
260263

@@ -268,7 +271,7 @@ module.exports = grammar({
268271
),
269272

270273
class_parameter: $ => seq(
271-
optional($.modifiers),
274+
field("modifiers", optional($.modifiers)),
272275
optional(choice("val", "var")),
273276
$.simple_identifier,
274277
":",
@@ -335,7 +338,7 @@ module.exports = grammar({
335338
anonymous_initializer: $ => seq("init", $._block),
336339

337340
companion_object: $ => seq(
338-
optional($.modifiers),
341+
field("modifiers", optional($.modifiers)),
339342
"companion",
340343
"object",
341344
optional(alias($.simple_identifier, $.type_identifier)),
@@ -365,7 +368,7 @@ module.exports = grammar({
365368
),
366369

367370
function_declaration: $ => prec.right(seq( // TODO
368-
optional($.modifiers),
371+
field("modifiers", optional($.modifiers)),
369372
"fun",
370373
optional($.type_parameters),
371374
optional(seq($._receiver_type, optional('.'))),
@@ -393,7 +396,7 @@ module.exports = grammar({
393396
)),
394397

395398
property_declaration: $ => prec.right(seq(
396-
optional($.modifiers),
399+
field("modifiers", optional($.modifiers)),
397400
choice("val", "var"),
398401
optional($.type_parameters),
399402
optional(seq($._receiver_type, optional('.'))),
@@ -417,7 +420,7 @@ module.exports = grammar({
417420
property_delegate: $ => seq("by", $._expression),
418421

419422
getter: $ => prec.right(seq(
420-
optional($.modifiers),
423+
field("modifiers", optional($.modifiers)),
421424
"get",
422425
optional(seq(
423426
"(", ")",
@@ -427,7 +430,7 @@ module.exports = grammar({
427430
)),
428431

429432
setter: $ => prec.right(seq(
430-
optional($.modifiers),
433+
field("modifiers", optional($.modifiers)),
431434
"set",
432435
optional(seq(
433436
"(",
@@ -453,15 +456,15 @@ module.exports = grammar({
453456
),
454457

455458
object_declaration: $ => prec.right(seq(
456-
optional($.modifiers),
459+
field("modifiers", optional($.modifiers)),
457460
"object",
458461
alias($.simple_identifier, $.type_identifier),
459462
optional(seq(":", $._delegation_specifiers)),
460463
optional($.class_body)
461464
)),
462465

463466
secondary_constructor: $ => seq(
464-
optional($.modifiers),
467+
field("modifiers", optional($.modifiers)),
465468
"constructor",
466469
field("parameters", $.function_value_parameters),
467470
field("delegation_call", optional(seq(":", $.constructor_delegation_call))),
@@ -484,7 +487,7 @@ module.exports = grammar({
484487
_enum_entries: $ => seq(sep1($.enum_entry, ","), optional(",")),
485488

486489
enum_entry: $ => seq(
487-
optional($.modifiers),
490+
field("modifiers", optional($.modifiers)),
488491
$.simple_identifier,
489492
optional($.value_arguments),
490493
optional($.class_body)

0 commit comments

Comments
 (0)