繁体   English   中英

涉及 SLR(1) 解析器和 epsilon

[英]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 产生式的语法:单反(1) DFA

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

X → .

然后稍后您将不会有任何带有“符号” ϵ的奇怪GOTO而是您的 state

S' → S.

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM