有这个EBNF语法
< calculation> -> <expr> =
<expr> -> <term> (+ | -) <expr>
| <term>
<term> -> <factor> (* | /) <term>
| <factor>
<factor> -> ( <expr> )
| <value>
<value> -> [ <sign> ] <unsigned> [ . <unsigned> ]
<unsigned> -> <digit> { <digit> }
<digit> -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<sign> -> + | -
为什么你可以选择在4 * + 3.5 =中输入这样的东西?这句话甚至会用这个语法吗?你怎么弄清楚它是不是?
答案 0 :(得分:1)
这是语法。 +是一元运算符。考虑4 * -3.5,4倍-3.5。
你的解析器会搞清楚。