17

假设我有以下语法:

S → X  
X → a | ϵ

如果不ϵ涉及该语法,我将构建第一个状态,例如:

S' → .S
S → .X
X → .a

但是ϵ符号呢?我应该包括:

X → .ϵ

也?

如果是这样...在创建下一个州时...我应该做GOTO(Io,ϵ),成为第一个州吗?

4

2 回答 2

17

我同意霍华德的观点。您在 DFA 中的状态应包含以下项:x → .这是我为 SLR(1) 解析器绘制的 DFA,该解析器识别使用两个 epsilon 产生式的语法:单反(1) DFA

于 2012-04-28T07:04:24.033 回答
11

由于ϵ不是终端本身,您必须将其从您的规则中删除,这会给您

X → .

然后以后你不会对GOTO“符号”有任何奇怪,ϵ而是你的状态

S' → S.

在您的图表中是一个接受状态。

于 2011-06-28T04:44:56.470 回答