EBNF规则转换为BNF



嗨,我遇到了很多问题,我遇到过很多网站,但我发现这篇文章《如何将BNF转换为EBNF》很有帮助,但我不知道从哪里开始这个例子。

<decimal_literal> --> (0|1|2|3|4|5|6|8|9){0|1|2|3|4|5|6|7|8|9|_}

在这个规则中,括号和大括号是元符号。它需要一个以上的规则,并且可能需要引入一个或多个新的非终端。

这是我正在用的课本http://umsl.edu/~mfrp9/misc/cpl.pdf第131页显示了一个示例,但我无法将其应用于此问题。如果有人能一步一步地解释这个问题的解决方案,这样我就可以学会做类似的问题,我将不胜感激。

这似乎是本书第131页对BNF的翻译。

<decimal_literal> ⟶ <decimal_digit>
    | <decimal_literal> <decimal_digit_or_underscore>
<decimal_digit> ⟶ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<decimal_digit_or_underscore> ⟶ <decimal_digit> | _

最新更新