質問

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.

  1. If the second operator is left associative then the operand belongs to the first operator.
  2. If the second operator is right associative then the operand belongs to 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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top