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*
}
TernaryRhs = {
TernaryTrueAlternative TernaryTrueAlternative
~ TernaryFalseAlternative ~ 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*
}
ComparisonRhs = {
ComparisonOperator ComparisonOperator
~ Expression ~ Expression
)?
} }
ComparisonOperator = { ComparisonOperator = {
@ -641,10 +655,12 @@ ComparisonOperator = {
ShiftExpression = { ShiftExpression = {
AdditiveExpression AdditiveExpression
~ ( ~ ShiftRhs*
}
ShiftRhs = {
ShiftOperator ShiftOperator
~ Expression ~ AdditiveExpression
)?
} }
ShiftOperator = { ShiftOperator = {
@ -654,10 +670,12 @@ ShiftOperator = {
AdditiveExpression = { AdditiveExpression = {
MultiplicativeExpression MultiplicativeExpression
~ ( ~ AdditiveRhs*
}
AdditiveRhs = {
AdditiveOperator AdditiveOperator
~ Expression ~ MultiplicativeExpression
)?
} }
AdditiveOperator = { AdditiveOperator = {
@ -667,10 +685,12 @@ AdditiveOperator = {
MultiplicativeExpression = { MultiplicativeExpression = {
PrefixExpression PrefixExpression
~ ( ~ MultiplicativeRhs*
}
MultiplicativeRhs = {
MultiplicativeOperator MultiplicativeOperator
~ Expression ~ PrefixExpression
)?
} }
MultiplicativeOperator = { MultiplicativeOperator = {