具有不同结合性和相同优先级的相邻操作符的表达式消歧



假设我有一个表达式如下(其中是具有相同优先级但不相同结合性的二进制运算符):

x ⨁ y ⨂ z

y属于还是,依据什么标准?

根据Edsgar Dijkstra的分流码算法,如果表达式中相邻的两个操作符具有相同的优先级,则基于第二个操作符的结合性消除表达式的歧义。

  1. 如果第二个操作符是左关联的,则该操作数属于第一个操作符。
  2. 如果第二个操作符是右关联的,则该操作数属于第二个操作符。

情形1: 为左结合。表达式的计算结果为:

(x ⨁ y) ⨂ z

Case 2: 是右结合的。表达式的计算结果为:

x ⨁ (y ⨂ z)

相关内容

  • 没有找到相关文章

最新更新