Skip to content

Commit 3d9fe97

Browse files
authored
Designate "else"/"else if" branches inside of if statements (#143)
* designate else_clause inside of if_statement * upgrade tree-sitter-cli #143 (review) * regenerate files for else_clause Co-authored-by: resolritter <[email protected]>
1 parent 852f11b commit 3d9fe97

File tree

8 files changed

+22281
-21998
lines changed

8 files changed

+22281
-21998
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(

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"nan": "^2.12.1"
1414
},
1515
"devDependencies": {
16-
"tree-sitter-cli": "^0.16.9"
16+
"tree-sitter-cli": "^0.17.3"
1717
},
1818
"scripts": {
1919
"test": "tree-sitter test && script/parse-examples",

src/grammar.json

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -738,6 +738,19 @@
738738
]
739739
}
740740
},
741+
"else_clause": {
742+
"type": "SEQ",
743+
"members": [
744+
{
745+
"type": "STRING",
746+
"value": "else"
747+
},
748+
{
749+
"type": "SYMBOL",
750+
"name": "_statement"
751+
}
752+
]
753+
},
741754
"if_statement": {
742755
"type": "PREC_RIGHT",
743756
"value": 0,
@@ -768,21 +781,12 @@
768781
"type": "CHOICE",
769782
"members": [
770783
{
771-
"type": "SEQ",
772-
"members": [
773-
{
774-
"type": "STRING",
775-
"value": "else"
776-
},
777-
{
778-
"type": "FIELD",
779-
"name": "alternative",
780-
"content": {
781-
"type": "SYMBOL",
782-
"name": "_statement"
783-
}
784-
}
785-
]
784+
"type": "FIELD",
785+
"name": "alternative",
786+
"content": {
787+
"type": "SYMBOL",
788+
"name": "else_clause"
789+
}
786790
},
787791
{
788792
"type": "BLANK"
@@ -4555,7 +4559,7 @@
45554559
},
45564560
{
45574561
"type": "PATTERN",
4558-
"value": "[^*]*\\*+([^\\/*][^*]*\\*+)*"
4562+
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
45594563
},
45604564
{
45614565
"type": "STRING",
@@ -4717,7 +4721,7 @@
47174721
},
47184722
{
47194723
"type": "PATTERN",
4720-
"value": "[^\\/\\\\\\[\\n]"
4724+
"value": "[^/\\\\\\[\\n]"
47214725
}
47224726
]
47234727
}
@@ -5226,13 +5230,13 @@
52265230
"members": [
52275231
{
52285232
"type": "PATTERN",
5229-
"value": "[^\\x00-\\x1F\\s0-9:;`\"'@#.,|^&<=>+\\-*\\/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u00A0]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
5233+
"value": "[^\\x00-\\x1F\\s0-9:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u00A0]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
52305234
},
52315235
{
52325236
"type": "REPEAT",
52335237
"content": {
52345238
"type": "PATTERN",
5235-
"value": "[^\\x00-\\x1F\\s:;`\"'@#.,|^&<=>+\\-*\\/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u00A0]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
5239+
"value": "[^\\x00-\\x1F\\s:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u00A0]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
52365240
}
52375241
}
52385242
]

src/node-types.json

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,21 @@
913913
}
914914
}
915915
},
916+
{
917+
"type": "else_clause",
918+
"named": true,
919+
"fields": {},
920+
"children": {
921+
"multiple": false,
922+
"required": true,
923+
"types": [
924+
{
925+
"type": "_statement",
926+
"named": true
927+
}
928+
]
929+
}
930+
},
916931
{
917932
"type": "empty_statement",
918933
"named": true,
@@ -1352,7 +1367,7 @@
13521367
"required": false,
13531368
"types": [
13541369
{
1355-
"type": "_statement",
1370+
"type": "else_clause",
13561371
"named": true
13571372
}
13581373
]

0 commit comments

Comments
 (0)