2013-03-18 94 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. 标识符。