我看到了一个所谓的" Precedence Climbing Method"用于在维基百科here上的正式语法中表示运算符优先级。
它给出了以下语法作为例子:
expression ::= equality-expression
equality-expression ::= additive-expression ( ( '==' | '!=' ) additive-expression ) *
additive-expression ::= multiplicative-expression ( ( '+' | '-' ) multiplicative-expression ) *
multiplicative-expression ::= primary ( ( '*' | '/' ) primary ) *
primary ::= '(' expression ')' | NUMBER | VARIABLE | '-' primary
我不明白上次制作结束时'-' primary
的目的是什么。任何人都可以解释为什么它是这样建造的吗?
答案 0 :(得分:2)
它是一元减号,它比乘法运算符更紧密地绑定:
-a * 7
(在这种情况下并没有太大的区别。)