首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SLR(1)所涉及的分析器和epsilon

SLR(1)所涉及的分析器和epsilon
EN

Stack Overflow用户
提问于 2011-06-28 04:04:05
回答 2查看 8.8K关注 0票数 17

让我们假设我有以下语法:

代码语言:javascript
复制
S → X  
X → a | ϵ

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

代码语言:javascript
复制
S' → .S
S → .X
X → .a

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

代码语言:javascript
复制
X → .ϵ

也是吗?

如果是的话..。在创建下一个州时..。我应该做GOTO(Io,ϵ)**,作为第一个州吗?**

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-28 04:44:56

因为ϵ本身并不是终端,所以您必须将它从规则中删除,这给了您

代码语言:javascript
复制
X → .

之后,您将不会有任何带有“符号”GOTO的奇怪ϵ,而是您的状态。

代码语言:javascript
复制
S' → S.

是图形中的接受状态。

票数 11
EN

Stack Overflow用户

发布于 2012-04-28 07:04:24

我同意霍华德的观点。DFA中的状态应该包含项:x → .,这是我为SLR(1)解析器绘制的DFA,它识别使用两个epsilon结果的语法:

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6501399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档