【发布时间】:2014-10-01 04:17:47
【问题描述】:
您好,我在这个问题上遇到了很多麻烦,我遇到了很多网站,但发现这篇帖子 How to convert BNF to EBNF 非常有帮助,但我只是不知道从哪里开始这个例子。
<decimal_literal> --> (0|1|2|3|4|5|6|8|9){0|1|2|3|4|5|6|7|8|9|_}
在这条规则中,括号和花括号是元符号。它需要超过 1 条规则,并且可能需要引入 1 个或多个新的非终结符。
这是我正在使用的教科书http://umsl.edu/~mfrp9/misc/cpl.pdf 第 131 页显示了一个示例,但我无法将其应用于此问题。如果有人可以请逐步解释这个问题的解决方案,以便我可以学习它来解决类似的问题,非常感谢。
【问题讨论】:
-
您交叉引用的问题是从 BNF 转换为 EBNF。您的问题标题说您正在尝试从 EBNF 转换为 BNF。你想做什么?如果目标是 BNF,那么 BNF 的哪个方言?如果目标是 EBNF,您的意思是标准 EBNF(如 ISO 14977:1996 中),还是 EBNF 的其他方言?
-
是的,我希望将 EBNF 转换为 BNF,但被告知如果它可以以一种方式转换,那么它可以以另一种方式转换。我找不到任何关于 EBNF 到 BNF 的确切信息,所以我用那篇文章作为指南。是的标准 EBNF。
-
可以,可以转换,但问题是“BNF的哪个方言”?我想答案是“在书中”。
-
根据bnf-for-java.sourceforge.net/Dialects.html,我假设它是方言2