Say I have an expression as follows (where ⨁
and ⨂
are binary operators which have the same precedence level but not the same associativity):
x ⨁ y ⨂ z
Would y
belong to ⨁
or ⨂
, and based on what criteria?
Say I have an expression as follows (where ⨁
and ⨂
are binary operators which have the same precedence level but not the same associativity):
x ⨁ y ⨂ z
Would y
belong to ⨁
or ⨂
, and based on what criteria?
According to the Edsgar Dijkstra's Shunting-yard algorithm if neighboring two operators in an expressions have the same precedence level then the expression is disambiguated based on the associativity of the second operator.
Case 1: ⨂
is left associative. The expression evaluates to:
(x ⨁ y) ⨂ z
Case 2: ⨂
is right associative. The expression evaluates to:
x ⨁ (y ⨂ z)