Skip to content

Commit 97219d6

Browse files
author
Trinketer22
committed
Minor grammar edits
- Make semicolon in expression_statement mandatory - Add ternary declaration
1 parent 1aed27b commit 97219d6

File tree

1 file changed

+18
-3
lines changed
  • server/src/languages/func/tree-sitter-func

1 file changed

+18
-3
lines changed

server/src/languages/func/tree-sitter-func/grammar.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ const FUNC_GRAMMAR = {
161161

162162
return_statement: $ => seq("return", $._expression, ";"),
163163
block_statement: $ => seq("{", repeat($._statement), "}"),
164-
expression_statement: $ => prec.right(seq($._expression, optional(";"))),
164+
expression_statement: $ => prec.right(seq($._expression, ";")),
165165
empty_statement: _ => ";",
166166
repeat_statement: $ =>
167167
seq("repeat", field("count", $._expression), field("body", $.block_statement)),
@@ -201,7 +201,7 @@ const FUNC_GRAMMAR = {
201201
_expression: $ => $._expr10,
202202

203203
_expr10: $ =>
204-
prec(
204+
prec.right(
205205
10,
206206
seq(
207207
$._expr13,
@@ -232,7 +232,22 @@ const FUNC_GRAMMAR = {
232232
),
233233
),
234234

235-
_expr13: $ => prec(13, seq($._expr15, optional(seq("?", $._expression, ":", $._expr13)))),
235+
ternary_condition: $ => $._expr15,
236+
ternary_expression: $ =>
237+
prec.right(
238+
13,
239+
seq(
240+
field("condition", $.ternary_condition),
241+
"?",
242+
field("consequent", $._expression),
243+
":",
244+
field("alternative", $._expression),
245+
),
246+
),
247+
248+
_expr13: $ => prec(13, choice($._expr15, $.ternary_expression)),
249+
250+
// _expr13: $ => prec(13, seq($._expr15, optional(seq("?", $._expression, ":", $._expr13)))),
236251

237252
_expr15: $ =>
238253
prec(

0 commit comments

Comments
 (0)