【发布时间】:2013-02-25 03:50:51
【问题描述】:
我不太确定如何回答我的计算机语言课程的问题。我要将以下语句从 EBNF 形式转换为 BNF 形式:
EBNF:expr --> [-] term {+ term}
我了解花括号中包含的表达式将重复零次或多次,而直角括号中包含的内容代表零个或一个选项。如果我的理解是正确的,这是否是正确的转换?
我的 BNF:
expr --> expr - term
| expr + term
| term
阅读奖励
- Converting EBNF to BNF(一般规则)
【问题讨论】:
-
这个问题不是重复的。链接的问题要求提供一般规则列表。这个问题是关于一个特定的表达。虽然规则可能在回答这个问题时很有用:链接的答案不回答 this 问题。
-
@IanBoyd 不过,一般规则更好,因为问题的答案应该对不止一个人有用。而且,其他问题中的规则足以解决这个问题。
-
@Brilliand 我不同意。我尝试将规则应用于这个实际示例。规则以抽象的第三种表示法编写,不是 BNF 或 EBNF (例如,
ε是什么?.是什么?)。它似乎有隐含的步骤(即我认为规则试图表明你必须引入中间定义)。所以,如果是我,我会问这个问题。也许引用的规则需要使用某种形式的巴库斯-瑙尔语法进行编辑。