我正在写一个小语法作为课堂练习,我的教授并没有真正了解什么是合法的 BNF 表达式。
BNF语法应该可以识别这种形式的字符串:AB,AABB,AAABBB,A...B...(一般形式:AnBn)
所以,我开始写:
<S> --> A<S>B | ""
我的简单是/否问题是这在 BNF 中是否合法,如果不合法,为什么?
<...> 代表一个非终端,我不知道这是约定还是不是
我正在写一个小语法作为课堂练习,我的教授并没有真正了解什么是合法的 BNF 表达式。
BNF语法应该可以识别这种形式的字符串:AB,AABB,AAABBB,A...B...(一般形式:AnBn)
所以,我开始写:
<S> --> A<S>B | ""
我的简单是/否问题是这在 BNF 中是否合法,如果不合法,为什么?
<...> 代表一个非终端,我不知道这是约定还是不是
是的,这是可以接受的 BNF。您可以在有关美国邮政地址的示例中的 Wikipedia 条目中看到此示例。
不过,通常情况下,我看到表示为 ε 的空字符串。