@@ -407,6 +407,7 @@ module.exports = grammar({
407
407
$ . record_update ,
408
408
$ . qualified_const_or_fn_name ,
409
409
$ . dbReference ,
410
+ $ . infix_operation ,
410
411
) ,
411
412
412
413
expression : $ =>
@@ -419,7 +420,6 @@ module.exports = grammar({
419
420
420
421
$ . match_expression ,
421
422
422
- $ . infix_operation ,
423
423
$ . apply ,
424
424
425
425
$ . lambda_expression ,
@@ -709,67 +709,67 @@ module.exports = grammar({
709
709
prec . right (
710
710
PREC . EXPONENT ,
711
711
seq (
712
- field ( "left" , $ . expression ) ,
712
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
713
713
field ( "operator" , alias ( exponentOperator , $ . operator ) ) ,
714
- field ( "right" , $ . expression ) ,
714
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
715
715
) ,
716
716
) ,
717
717
718
718
// multiplication, division, modulo
719
719
prec . left (
720
720
PREC . PRODUCT ,
721
721
seq (
722
- field ( "left" , $ . expression ) ,
722
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
723
723
field ( "operator" , alias ( multiplicativeOperators , $ . operator ) ) ,
724
- field ( "right" , $ . expression ) ,
724
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
725
725
) ,
726
726
) ,
727
727
728
728
// addition, subtraction
729
729
prec . left (
730
730
PREC . SUM ,
731
731
seq (
732
- field ( "left" , $ . expression ) ,
732
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
733
733
field ( "operator" , alias ( additiveOperators , $ . operator ) ) ,
734
- field ( "right" , $ . expression ) ,
734
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
735
735
) ,
736
736
) ,
737
737
738
738
// Comparison
739
739
prec . left (
740
740
PREC . COMPARISON ,
741
741
seq (
742
- field ( "left" , $ . expression ) ,
742
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
743
743
field ( "operator" , alias ( comparisonOperators , $ . operator ) ) ,
744
- field ( "right" , $ . expression ) ,
744
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
745
745
) ,
746
746
) ,
747
747
748
748
// Logical operations
749
749
prec . left (
750
750
PREC . LOGICAL_AND ,
751
751
seq (
752
- field ( "left" , $ . expression ) ,
752
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
753
753
field ( "operator" , alias ( logicalOperators , $ . operator ) ) ,
754
- field ( "right" , $ . expression ) ,
754
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
755
755
) ,
756
756
) ,
757
757
prec . left (
758
758
PREC . LOGICAL_OR ,
759
759
seq (
760
- field ( "left" , $ . expression ) ,
760
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
761
761
field ( "operator" , alias ( logicalOperators , $ . operator ) ) ,
762
- field ( "right" , $ . expression ) ,
762
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
763
763
) ,
764
764
) ,
765
765
766
766
// String concatenation
767
767
prec . left (
768
768
PREC . SUM ,
769
769
seq (
770
- field ( "left" , $ . expression ) ,
770
+ field ( "left" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
771
771
field ( "operator" , alias ( stringConcatOperator , $ . operator ) ) ,
772
- field ( "right" , $ . expression ) ,
772
+ field ( "right" , choice ( $ . simple_expression , $ . paren_expression ) ) ,
773
773
) ,
774
774
) ,
775
775
) ,
0 commit comments