假设我有以下语法:
S → X
X → a | ϵ
如果该语法不涉及ϵ
,我将构建第一个状态,如:
S' → .S
S → .X
X → .a
但ϵ
符号怎么样?我应该包括:
X → .ϵ
太?
如果是这样......在创建下一个州时...我应该GOTO(Io,ϵ)
,是否是第一个州?
答案 0 :(得分:14)
我同意霍华德的观点。您在DFA中的状态应包含以下项:x → .
这是我为SLR(1)解析器绘制的DFA,它识别使用两个epsilon作品的语法:
答案 1 :(得分:9)
由于ϵ
不是终端本身,您必须将其从您的规则中删除
X → .
之后你不会有任何奇怪的GOTO
带有“符号”ϵ
而是你的状态
S' → S.
是图表中的接受状态。