2010-09-25 21 views
1

有這個EBNF語法爲什麼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進入像這樣的選項=?這句話甚至會在這個語法中嗎?如果它是如何解決的?

回答

1

它在語法中。 +是一個一元運算符。考慮4 * -3.5,4倍-3.5。

你的解析器會弄清楚它。

相關問題