1
S -> AB
A -> aAA | ε
A -> bBB | ε

所以在上面的例子中,事情是相当简单的,你只需找到可以为空的符号,消除 ε,并构造一个新的产生式,它可以在没有空字符串的情况下完成工作,我们得到这个..

S -> AB | A | B
S -> aAA | aA | aA | a
S -> bBB | bB | bB | b

然后我遇到了这个例子

S -> ABaC
A -> B
B -> b | ε
C -> c | ε

现在A产生B,B可以清楚地产生一个空字符串。是否意味着 A 可以为空是 S 并且如果它不直接产生一个可以为空的终端,我不知道是否有可能使终端无效?

4

1 回答 1

0

如果我没记错的话, A 可以为空,因为 B 可以清楚地产生ε。但是,S 不可为空,因为在其产生式规则中始终存在终结符a 。

于 2015-01-04T09:59:54.427 回答