【问题标题】:EBNF interpretation of the grammarEBNF语法解释
【发布时间】:2013-03-18 15:49:29
【问题描述】:

如何将其解释为 ENBF 语法?

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

<id>--> A | B | C

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

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

| <id> + <expr>

|( <expr> )

| <id>

我可以使用这个语法对任何语句进行解析树和推导,但是我遇到了 EBNF 问题。

【问题讨论】:

  • 看起来它已经在 BNF 中(它是 EBNF 的子集),因此不需要更改(尽管它是模棱两可的)。这里有问题吗?您对 EBNF 有什么“麻烦”?

标签: parsing tree ebnf


【解决方案1】:
<assign>--> <id> = <expr>

assign 是序列:id 等于符号expr

<id>--> A | B | C

idABC 之一

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

表达式可以是:

  1. 两个表达式的乘积(中缀表示法)
  2. 两个表达式的相加(中缀表示法)
  3. 添加一个标识符和一个表达式(这是添加两个表达式的特殊情况,其中第一个表达式只是&lt;id&gt;
  4. 带括号的表达式。
  5. 标识符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多