有没有合适的关联短路运营商

时间:2012-06-19 04:28:48

标签: language-design short-circuiting

我正在开发一个中断器,让我们定义自己的操作符。接下来的目标是使用看起来像exp op exp op exp的AST,并根据两个运算符的相对优先级和相关性将其转换为exp op (exp op exp)(exp op exp) op exp。该语言是动态的,因此了解要使用的运算符版本的唯一方法是评估第一个表达式并询问它使用的op版本。

另一方面,重要的是我们不评估第二个表达式,因为如果op||(如常用的那样)那么我们应该能够在第一个{{{{{ 1}}是exp

如果某些操作员既是正确关联又是短路,则会出现问题。 我的问题是,是否存在常用的正确关联,短路运算符(对于选定的“常用”值)?

N.b。赋值由解析器单独处理,因此false不是运算符,=a (op)= b的语法糖。

1 个答案:

答案 0 :(得分:1)

Boolean implication可能是。

我可能会读

a → b → c

as" a暗示b暗示c"这表明它应该括号

a → (b → c)

和布尔暗示应该是短路的,因为当a为假时,(a→b)的右边与结果无关。