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并且如果不直接生成可终结终端,是否可以使终端无效?
答案 0 :(得分:0)
如果我没记错的话,A可以为空,因为B可以清楚地产生ε。但是,S不可为空,因为在其生产规则中始终存在终端 a 。