0

我试图弄清楚在实现关闭码算法时不同运营商的优先级是什么。

我的抽象语法树在中缀中,我正在使用关闭码算法进行评估。这适用于算术运算符。我面临的问题是我不知道所有其他运算符的优先级。

https://en.wikipedia.org/wiki/Shunting-yard_algorithm我可以看到以下操作适用于这些运算符。数字是优先级。

^   4   
*   3 
/   3
+   2
−   2

但是我似乎找不到任何描述关系运算符和逻辑运算符的先例的东西?我已经搜索了很多答案。

有人可以给我所有这些运算符的先例的完整图片:

a. Function call
b. (
c. ,
d. +, -
e. *, /
f. ^
g. =, <>, <, <=, >, >=
h. NOT
i. AND
j. OR

提前致谢。

/布莱恩

4

1 回答 1

0

查看 Mathematica运算符输入表格,它按优先级递减的顺序显示运算符输入表格。同等优先级的运算符被组合在一起。

您可以在 Mathematica 中像这样确定“优先级”:

Precedence[Power] gives 590
Precedence[Times] gives 400
Precedence[Plus] gives 310
Precedence[Equal] gives 290
Precedence[Not] gives 230
Precedence[And] gives 215
Precedence[Or] gives 215
于 2016-11-25T15:47:02.103 回答