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 并且如果它不直接产生一个可以为空的终端,我不知道是否有可能使终端无效?