Update grammar to reflect correct operator precedence.

This commit is contained in:
Jesse Brault 2025-09-19 21:30:43 -05:00
parent e795664a09
commit fe2fff5882

View File

@ -596,38 +596,52 @@ Expression = {
TernaryExpression = { TernaryExpression = {
OrExpression OrExpression
~ ( ~ TernaryRhs*
TernaryTrueAlternative }
~ TernaryFalseAlternative
)? TernaryRhs = {
TernaryTrueAlternative
~ TernaryFalseAlternative
} }
TernaryTrueAlternative = { TernaryTrueAlternative = {
"?" "?"
~ Expression ~ OrExpression
} }
TernaryFalseAlternative = { TernaryFalseAlternative = {
":" ":"
~ Expression ~ OrExpression
} }
OrExpression = { OrExpression = {
AndExpression AndExpression
~ ( Or ~ Expression )? ~ OrRhs*
}
OrRhs = {
Or
~ AndExpression
} }
AndExpression = { AndExpression = {
ComparisonExpression ComparisonExpression
~ ( And ~ Expression )? ~ AndRhs*
}
AndRhs = {
And
~ ComparisonExpression
} }
ComparisonExpression = { ComparisonExpression = {
ShiftExpression ShiftExpression
~ ( ~ ComparisonRhs*
ComparisonOperator }
~ Expression
)? ComparisonRhs = {
ComparisonOperator
~ Expression
} }
ComparisonOperator = { ComparisonOperator = {
@ -641,10 +655,12 @@ ComparisonOperator = {
ShiftExpression = { ShiftExpression = {
AdditiveExpression AdditiveExpression
~ ( ~ ShiftRhs*
ShiftOperator }
~ Expression
)? ShiftRhs = {
ShiftOperator
~ AdditiveExpression
} }
ShiftOperator = { ShiftOperator = {
@ -654,10 +670,12 @@ ShiftOperator = {
AdditiveExpression = { AdditiveExpression = {
MultiplicativeExpression MultiplicativeExpression
~ ( ~ AdditiveRhs*
AdditiveOperator }
~ Expression
)? AdditiveRhs = {
AdditiveOperator
~ MultiplicativeExpression
} }
AdditiveOperator = { AdditiveOperator = {
@ -667,10 +685,12 @@ AdditiveOperator = {
MultiplicativeExpression = { MultiplicativeExpression = {
PrefixExpression PrefixExpression
~ ( ~ MultiplicativeRhs*
MultiplicativeOperator }
~ Expression
)? MultiplicativeRhs = {
MultiplicativeOperator
~ PrefixExpression
} }
MultiplicativeOperator = { MultiplicativeOperator = {