Skip to content

Commit 5e968c7

Browse files
committed
feat: use the new reserved rules api
1 parent a1bbe92 commit 5e968c7

File tree

6 files changed

+49530
-52214
lines changed

6 files changed

+49530
-52214
lines changed

grammar.js

+71-31
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,59 @@ module.exports = grammar({
8888
[$.argument_list, $.record_pattern_body],
8989
],
9090

91+
reserved: {
92+
global: $ => [
93+
'abstract',
94+
'assert',
95+
'boolean',
96+
'break',
97+
'byte',
98+
'case',
99+
'catch',
100+
'char',
101+
'class',
102+
'continue',
103+
'default',
104+
'do',
105+
'double',
106+
'else',
107+
'enum',
108+
'extends',
109+
'final',
110+
'finally',
111+
'float',
112+
'for',
113+
'if',
114+
'implements',
115+
'import',
116+
'instanceof',
117+
'int',
118+
'interface',
119+
'long',
120+
'native',
121+
'new',
122+
'package',
123+
'private',
124+
'protected',
125+
'public',
126+
'return',
127+
'short',
128+
'static',
129+
'strictfp',
130+
'super',
131+
'switch',
132+
'synchronized',
133+
'this',
134+
'throw',
135+
'throws',
136+
'transient',
137+
'try',
138+
'void',
139+
'volatile',
140+
'while',
141+
],
142+
},
143+
91144
word: $ => $.identifier,
92145

93146
rules: {
@@ -256,7 +309,6 @@ module.exports = grammar({
256309
assignment_expression: $ => prec.right(PREC.ASSIGN, seq(
257310
field('left', choice(
258311
$.identifier,
259-
$._reserved_identifier,
260312
$.field_access,
261313
$.array_access,
262314
)),
@@ -301,23 +353,25 @@ module.exports = grammar({
301353
choice(
302354
seq(
303355
field('right', $._type),
304-
optional(field('name', choice($.identifier, $._reserved_identifier))),
356+
optional(field('name', $.identifier)),
305357
),
306358
field('pattern', $.record_pattern),
307359
),
308360
)),
309361

310362
lambda_expression: $ => seq(
311363
field('parameters', choice(
312-
$.identifier, $.formal_parameters, $.inferred_parameters, $._reserved_identifier,
364+
$.identifier,
365+
$.formal_parameters,
366+
$.inferred_parameters,
313367
)),
314368
'->',
315369
field('body', choice($.expression, $.block)),
316370
),
317371

318372
inferred_parameters: $ => seq(
319373
'(',
320-
commaSep1(choice($.identifier, $._reserved_identifier)),
374+
commaSep1($.identifier),
321375
')',
322376
),
323377

@@ -355,7 +409,6 @@ module.exports = grammar({
355409
$.class_literal,
356410
$.this,
357411
$.identifier,
358-
$._reserved_identifier,
359412
$.parenthesized_expression,
360413
$.object_creation_expression,
361414
$.field_access,
@@ -415,7 +468,7 @@ module.exports = grammar({
415468
$.super,
416469
)),
417470
'.',
418-
field('field', choice($.identifier, $._reserved_identifier, $.this)),
471+
field('field', choice($.identifier, $.this)),
419472
),
420473

421474
template_expression: $ => seq(
@@ -433,7 +486,7 @@ module.exports = grammar({
433486

434487
method_invocation: $ => seq(
435488
choice(
436-
field('name', choice($.identifier, $._reserved_identifier)),
489+
field('name', $.identifier),
437490
seq(
438491
field('object', choice($.primary_expression, $.super)),
439492
'.',
@@ -442,7 +495,7 @@ module.exports = grammar({
442495
'.',
443496
)),
444497
field('type_arguments', optional($.type_arguments)),
445-
field('name', choice($.identifier, $._reserved_identifier)),
498+
field('name', $.identifier),
446499
),
447500
),
448501
field('arguments', $.argument_list),
@@ -519,14 +572,14 @@ module.exports = grammar({
519572
$.type_pattern,
520573
$.record_pattern,
521574
),
522-
type_pattern: $ => seq($._unannotated_type, choice($.identifier, $._reserved_identifier)),
523-
record_pattern: $ => seq(choice($.identifier, $._reserved_identifier, $.generic_type), $.record_pattern_body),
575+
type_pattern: $ => seq($._unannotated_type, $.identifier),
576+
record_pattern: $ => seq(choice($.identifier, $.generic_type), $.record_pattern_body),
524577
record_pattern_body: $ => seq('(', commaSep(choice($.record_pattern_component, $.record_pattern)), ')'),
525578
record_pattern_component: $ => choice(
526579
$.underscore_pattern,
527580
seq(
528581
$._unannotated_type,
529-
choice($.identifier, $._reserved_identifier),
582+
$.identifier,
530583
),
531584
),
532585

@@ -999,11 +1052,7 @@ module.exports = grammar({
9991052
';',
10001053
),
10011054

1002-
_name: $ => choice(
1003-
$.identifier,
1004-
$._reserved_identifier,
1005-
$.scoped_identifier,
1006-
),
1055+
_name: $ => choice($.identifier, $.scoped_identifier),
10071056

10081057
scoped_identifier: $ => seq(
10091058
field('scope', $._name),
@@ -1052,7 +1101,7 @@ module.exports = grammar({
10521101
annotation_type_element_declaration: $ => seq(
10531102
optional($.modifiers),
10541103
field('type', $._unannotated_type),
1055-
field('name', choice($.identifier, $._reserved_identifier)),
1104+
field('name', $.identifier),
10561105
'(', ')',
10571106
field('dimensions', optional($.dimensions)),
10581107
optional($._default_value),
@@ -1111,7 +1160,10 @@ module.exports = grammar({
11111160
),
11121161

11131162
_variable_declarator_id: $ => seq(
1114-
field('name', choice($.identifier, $._reserved_identifier, $.underscore_pattern)),
1163+
field('name', choice(
1164+
$.identifier,
1165+
$.underscore_pattern,
1166+
)),
11151167
field('dimensions', optional($.dimensions)),
11161168
),
11171169

@@ -1206,7 +1258,7 @@ module.exports = grammar({
12061258
),
12071259

12081260
_method_declarator: $ => seq(
1209-
field('name', choice($.identifier, $._reserved_identifier)),
1261+
field('name', $.identifier),
12101262
field('parameters', $.formal_parameters),
12111263
field('dimensions', optional($.dimensions)),
12121264
),
@@ -1266,18 +1318,6 @@ module.exports = grammar({
12661318
field('body', $.block),
12671319
),
12681320

1269-
_reserved_identifier: $ => prec(-3, alias(
1270-
choice(
1271-
'open',
1272-
'module',
1273-
'record',
1274-
'with',
1275-
'yield',
1276-
'sealed',
1277-
),
1278-
$.identifier,
1279-
)),
1280-
12811321
this: _ => 'this',
12821322

12831323
super: _ => 'super',

0 commit comments

Comments
 (0)