如何更改具体表达式的运算符优先级?
例如,我有一个类:
class A(){
def multiply(a) {
...
}
def plus(a) {
...
}
def minus(b) {
...
}
}
a = new A()
b = new A()
c = new A()
d = a + (b - c) * d
由于乘法比加法和减法具有更高的优先级,因此我得到的AST形式为:
+
/ \
a *
/ \
- d
/ \
b c
什么是将其转换为树的最简单方法,其中
*
的优先级低于+
和-
。我假设只允许使用括号来分组-
和+
,即表达式(a * b - c) * d
不合法,不应作为输入期望。