2016-11-22 45 views
0

我試圖找出當實現shuting代碼算法時,不同運算符的優先級是什麼。調車場(反向波蘭表示法/後綴)運算符優先級

我的抽象語法樹在中綴,我正在使用shuting碼算法進行評估。這對算術運算符來說很好。我面臨的問題是我不知道所有其他運營商的優先級。

https://en.wikipedia.org/wiki/Shunting-yard_algorithm我可以看到,這些操作符的以下情況屬實。數字是優先。

^ 4 
* 3 
/ 3 
+ 2 
− 2 

但我似乎無法找到任何描述關係和邏輯運算符的先例嗎?我已經搜索了很多答案。

有人能給我precedense的全貌所有這些運營商:

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

在此先感謝。

/布賴恩

回答

0

看一看Mathematica的Operator Input Forms其示出了操作員輸入的形式,按優先級遞減的順序。同等優先級的運營商被組合在一起。

您可以確定 「優先級」 像這樣在數學:

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