Skip to content

Commit e03246e

Browse files
committed
designate else_clause inside of if_statement
1 parent 852f11b commit e03246e

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

grammar.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,14 +239,13 @@ module.exports = grammar({
239239
optional($._automatic_semicolon)
240240
)),
241241

242+
else_clause: $ => seq('else', $._statement),
243+
242244
if_statement: $ => prec.right(seq(
243245
'if',
244246
field('condition', $.parenthesized_expression),
245247
field('consequence', $._statement),
246-
optional(seq(
247-
'else',
248-
field('alternative', $._statement)
249-
))
248+
optional(field('alternative', $.else_clause))
250249
)),
251250

252251
switch_statement: $ => seq(

test/corpus/semicolon_insertion.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ if (a) {b} else {c}
160160
(program
161161
(if_statement (parenthesized_expression (identifier))
162162
(statement_block (expression_statement (identifier)))
163-
(statement_block (expression_statement (identifier)))))
163+
(else_clause
164+
(statement_block (expression_statement (identifier))))))
164165

165166
===========================================
166167
single-line blocks without semicolons

test/corpus/statements.txt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,16 +196,18 @@ if (a) {
196196
(if_statement
197197
condition: (parenthesized_expression (identifier))
198198
consequence: (expression_statement (identifier))
199-
alternative: (if_statement
200-
condition: (parenthesized_expression (identifier))
201-
consequence: (expression_statement (identifier))))
199+
alternative: (else_clause
200+
(if_statement
201+
condition: (parenthesized_expression (identifier))
202+
consequence: (expression_statement (identifier)))))
202203
(if_statement
203204
condition: (parenthesized_expression (identifier))
204205
consequence: (statement_block
205206
(expression_statement (identifier))
206207
(expression_statement (identifier)))
207-
alternative: (statement_block
208-
(expression_statement (identifier)))))
208+
alternative: (else_clause
209+
(statement_block
210+
(expression_statement (identifier))))))
209211

210212
============================================
211213
For statements
@@ -682,7 +684,8 @@ if (true) {} else {}
682684
(if_statement
683685
(parenthesized_expression (true))
684686
(statement_block)
685-
(statement_block)))
687+
(else_clause
688+
(statement_block))))
686689

687690
============================================
688691
Labeled statements
@@ -720,8 +723,9 @@ while (true) {
720723
condition: (parenthesized_expression (identifier))
721724
consequence: (statement_block
722725
(break_statement label: (statement_identifier)))
723-
alternative: (statement_block
724-
(continue_statement label: (statement_identifier)))))))
726+
alternative: (else_clause
727+
(statement_block
728+
(continue_statement label: (statement_identifier))))))))
725729
(labeled_statement
726730
label: (statement_identifier)
727731
(statement_block

0 commit comments

Comments
 (0)