Skip to content

Commit e1b648d

Browse files
committed
Fix prefix_expression and function_call conflicts
1 parent 611b80c commit e1b648d

File tree

4 files changed

+3439
-4769
lines changed

4 files changed

+3439
-4769
lines changed

grammar.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ module.exports = grammar({
5959
$.empty_statement,
6060
$.variable_assignment,
6161
$.local_variable_declaration,
62-
// conflict: $.statement and $.prefix_expression
63-
prec(1, $.function_call),
62+
$.function_call,
6463
$.label_statement,
6564
$.goto_statement,
6665
$.break_statement,
@@ -183,8 +182,7 @@ module.exports = grammar({
183182
$.string,
184183
$.vararg_expression,
185184
$.function_definition,
186-
// conflict: $.expression and $.function_call
187-
prec(1, $.prefix_expression),
185+
$.prefix_expression,
188186
$.table,
189187
$.unary_expression,
190188
$.binary_expression,
@@ -266,10 +264,11 @@ module.exports = grammar({
266264

267265
prefix_expression: ($) =>
268266
choice($.variable, $.function_call, $.parenthesized_expression),
267+
_prefix_expression: ($) => prec(1, $.prefix_expression),
269268
parenthesized_expression: ($) => seq("(", $.expression, ")"),
270269
function_call: ($) =>
271270
seq(
272-
$.prefix_expression,
271+
$._prefix_expression,
273272
optional(seq(":", field("method", $.identifier))),
274273
field("arguments", $.argument_list),
275274
),
@@ -280,13 +279,13 @@ module.exports = grammar({
280279
choice(
281280
field("name", $.identifier),
282281
seq(
283-
field("table", $.prefix_expression),
282+
field("table", $._prefix_expression),
284283
"[",
285284
field("field", $.expression),
286285
"]",
287286
),
288287
seq(
289-
field("table", $.prefix_expression),
288+
field("table", $._prefix_expression),
290289
".",
291290
field("field", $.identifier),
292291
),
@@ -354,9 +353,9 @@ module.exports = grammar({
354353
$._string_end,
355354
],
356355

357-
inline: ($) => [$.field_separator],
356+
inline: ($) => [$.prefix_expression, $.field_separator],
358357

359-
supertypes: ($) => [$.prefix_expression, $.expression, $.statement],
358+
supertypes: ($) => [$._prefix_expression, $.expression, $.statement],
360359

361360
word: ($) => $.identifier,
362361
});

src/grammar.json

Lines changed: 17 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node-types.json

Lines changed: 25 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)