2013-03-18 125 views
1

我該如何解釋ENBF語法?EBNF語法解釋

<assign>--> <id> = <expr> 

<id>--> A | B | C 

<expr> --> <expr> * <expr> 

<expr> --> <expr> + <expr> 

| <id> + <expr> 

|(<expr>) 

| <id> 

我可以解析樹,並使用這個語法,任何聲明的派生但我有與EBNF麻煩。

+1

看起來像BNF已經是它(這是EBNF的一個子集),所以不需要改變(雖然它是不明確的)。這裏有問題嗎? EBNF有什麼「麻煩」? – 2013-03-18 15:57:17

回答

0
<assign>--> <id> = <expr> 

一個assign是序列:id等於-SIGN expr

<id>--> A | B | C 

一種idABC

<expr> --> <expr> * <expr> 
<expr> --> <expr> + <expr> 
| <id> + <expr>  
|(<expr>)  
| <id> 

一個表達式可以是:

  1. 兩個表達式(中綴表示法)
  2. 的加入的產物兩個表達(中綴符號)
  3. 添加標識符和表達式(這是兩個表達式的添加的特定情況,其中第一個表達式僅爲<id>
  4. 加括號的表達式。
  5. 標識符。