Skip to content

Commit b69d629

Browse files
committed
refactor: labelled statements
1 parent 96ea2ca commit b69d629

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

grammar.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ module.exports = grammar({
206206

207207
expr_ending_with_block: $ => $._expr_ending_with_block,
208208
_expr_ending_with_block: $ => choice(
209+
$.labelled,
209210
$.block,
210211
$.if_expr,
211212
$.while_expr,
@@ -231,7 +232,6 @@ module.exports = grammar({
231232

232233
while_expr: $ => $._while_expr,
233234
_while_expr: $ => seq(
234-
field('label', optional($._stmt_label)),
235235
'while',
236236
field('cond', $._expr),
237237
field('body', $.block),
@@ -240,7 +240,6 @@ module.exports = grammar({
240240

241241
for_expr: $ => $._for_expr,
242242
_for_expr: $ => seq(
243-
field('label', optional($._stmt_label)),
244243
'for',
245244
field('pat', $._pattern),
246245
'in',
@@ -255,10 +254,15 @@ module.exports = grammar({
255254
$.block,
256255
),
257256

258-
labelled_block: $ => $._labelled_block,
259-
_labelled_block: $ => seq(
260-
optional(field('label', $._stmt_label)),
261-
field('block', $.block),
257+
labelled: $ => $._labelled,
258+
_labelled: $ => seq(
259+
field('label', $.label),
260+
':',
261+
field('block', choice(
262+
$.block,
263+
$.while_expr,
264+
$.for_expr,
265+
)),
262266
),
263267

264268
block: $ => $._block,
@@ -272,9 +276,6 @@ module.exports = grammar({
272276
label: $ => $._label,
273277
_label: _ => seq("'", token.immediate(IdentRegex)),
274278

275-
stmt_label: $ => $._stmt_label,
276-
_stmt_label: $ => seq($.label, ':'),
277-
278279
underscore: $ => $._underscore,
279280
_underscore: _ => '_',
280281

0 commit comments

Comments
 (0)