Skip to content

Commit 1e120c8

Browse files
committed
Move infix_operations to simple_expression
1 parent 1a712d7 commit 1e120c8

File tree

13 files changed

+386
-196
lines changed

13 files changed

+386
-196
lines changed

backend/tests/Tests/TreeSitter.Tests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ let toStringTest =
1919

2020
Expect.equal
2121
(tree.Root.ToString())
22-
"(source_file (fn_decl keyword_let: (keyword) name: (fn_identifier) params: (fn_decl_params (fn_decl_param symbol_left_paren: (symbol) identifier: (variable_identifier) symbol_colon: (symbol) typ: (type_reference (builtin_type)) symbol_right_paren: (symbol))) symbol_colon: (symbol) return_type: (type_reference (builtin_type)) symbol_equals: (symbol) body: (expression (infix_operation left: (expression (simple_expression (variable_identifier))) operator: (operator) right: (expression (simple_expression (int64_literal digits: (digits (positive_digits)) suffix: (symbol))))))))"
22+
"(source_file (fn_decl keyword_let: (keyword) name: (fn_identifier) params: (fn_decl_params (fn_decl_param symbol_left_paren: (symbol) identifier: (variable_identifier) symbol_colon: (symbol) typ: (type_reference (builtin_type)) symbol_right_paren: (symbol))) symbol_colon: (symbol) return_type: (type_reference (builtin_type)) symbol_equals: (symbol) body: (expression (simple_expression (infix_operation left: (simple_expression (variable_identifier)) operator: (operator) right: (simple_expression (int64_literal digits: (digits (positive_digits)) suffix: (symbol))))))))"
2323
""
2424

2525
let tests = testList "TreeSitter" [ toStringTest ]

tree-sitter-darklang/grammar.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,7 @@ module.exports = grammar({
407407
$.record_update,
408408
$.qualified_const_or_fn_name,
409409
$.dbReference,
410+
$.infix_operation,
410411
),
411412

412413
expression: $ =>
@@ -419,7 +420,6 @@ module.exports = grammar({
419420

420421
$.match_expression,
421422

422-
$.infix_operation,
423423
$.apply,
424424

425425
$.lambda_expression,
@@ -709,67 +709,67 @@ module.exports = grammar({
709709
prec.right(
710710
PREC.EXPONENT,
711711
seq(
712-
field("left", $.expression),
712+
field("left", choice($.simple_expression, $.paren_expression)),
713713
field("operator", alias(exponentOperator, $.operator)),
714-
field("right", $.expression),
714+
field("right", choice($.simple_expression, $.paren_expression)),
715715
),
716716
),
717717

718718
// multiplication, division, modulo
719719
prec.left(
720720
PREC.PRODUCT,
721721
seq(
722-
field("left", $.expression),
722+
field("left", choice($.simple_expression, $.paren_expression)),
723723
field("operator", alias(multiplicativeOperators, $.operator)),
724-
field("right", $.expression),
724+
field("right", choice($.simple_expression, $.paren_expression)),
725725
),
726726
),
727727

728728
// addition, subtraction
729729
prec.left(
730730
PREC.SUM,
731731
seq(
732-
field("left", $.expression),
732+
field("left", choice($.simple_expression, $.paren_expression)),
733733
field("operator", alias(additiveOperators, $.operator)),
734-
field("right", $.expression),
734+
field("right", choice($.simple_expression, $.paren_expression)),
735735
),
736736
),
737737

738738
// Comparison
739739
prec.left(
740740
PREC.COMPARISON,
741741
seq(
742-
field("left", $.expression),
742+
field("left", choice($.simple_expression, $.paren_expression)),
743743
field("operator", alias(comparisonOperators, $.operator)),
744-
field("right", $.expression),
744+
field("right", choice($.simple_expression, $.paren_expression)),
745745
),
746746
),
747747

748748
// Logical operations
749749
prec.left(
750750
PREC.LOGICAL_AND,
751751
seq(
752-
field("left", $.expression),
752+
field("left", choice($.simple_expression, $.paren_expression)),
753753
field("operator", alias(logicalOperators, $.operator)),
754-
field("right", $.expression),
754+
field("right", choice($.simple_expression, $.paren_expression)),
755755
),
756756
),
757757
prec.left(
758758
PREC.LOGICAL_OR,
759759
seq(
760-
field("left", $.expression),
760+
field("left", choice($.simple_expression, $.paren_expression)),
761761
field("operator", alias(logicalOperators, $.operator)),
762-
field("right", $.expression),
762+
field("right", choice($.simple_expression, $.paren_expression)),
763763
),
764764
),
765765

766766
// String concatenation
767767
prec.left(
768768
PREC.SUM,
769769
seq(
770-
field("left", $.expression),
770+
field("left", choice($.simple_expression, $.paren_expression)),
771771
field("operator", alias(stringConcatOperator, $.operator)),
772-
field("right", $.expression),
772+
field("right", choice($.simple_expression, $.paren_expression)),
773773
),
774774
),
775775
),

0 commit comments

Comments
 (0)