[英]SLR(1) Parser and epsilon involved
假设我有以下语法:
S → X
X → a | ϵ
如果该语法不涉及ϵ
,我将构造第一个 state ,如:
S' → .S
S → .X
X → .a
但是ϵ
符号呢? 我应该包括:
X → .ϵ
也?
如果是这样...在创建下一个状态时...我应该执行GOTO(Io,ϵ)
,即 Io 是第一个 state 吗?
我同意霍华德的观点。 DFA 中的 state 应包含以下项目: x →.
这是我为 SLR(1) 解析器绘制的 DFA,它识别使用两个 epsilon 产生式的语法:
由于ϵ
本身不是终端,因此您必须将其从规则中删除,这会给您
X → .
然后稍后您将不会有任何带有“符号” ϵ
的奇怪GOTO
而是您的 state
S' → S.
在您的图表中是一个接受 state 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.