自底向上的语法分析

自底向上的语法分析

从叶结点到根节点。采用最左规约的方式(反向构造最优推导)。
通用框架:(移入-归约分析Shift-Reduce Parsing)

移入-归约分析(Shift-Reduce Parsing)
对输入串从左到右的分析,将一个或多个输入符号移入到栈的顶端,直到可以规约为止。
在这里插入图片描述
关键问题:移入-规约会出现问题,所以引入LR文法。

LR分析法
是最大的、可以构造出相应的移入-规约语法分析器的文法类。

LR(k)指需要向前查看k个输入符号的LR分析。
包含三个状态:
在这里插入图片描述
s是移入动作,r是规约动作。
在这里插入图片描述
LR的分析算法:
在这里插入图片描述
LR(0)项目

增广文法,保证分析器只有一个接受状态。
初始项目
接收项目
规约项目
后继项目:同属一个产生式的项目,但是点在一个之后。

项目的等价性:当圆点后面是非终结符的时候,就有等价项目,把所有等价项目放在一起,就是一个有穷自动机的一个状态。
在这里插入图片描述
利用CLOUSE函数,计算一个状态。
GOTO函数
在这里插入图片描述
LR(0)分析表构造算法:
在这里插入图片描述
存在移进-规约,规约-规约冲突。

利用FOLLOW集来判断是移进还是规约。

SLR分析
也是SLR(1)分析,只需要向前查看一个字符,就可以判断怎么做。
在这里插入图片描述
SLR分析表构造:
在这里插入图片描述
仅仅利用FOLLOW集还是不够的,需要引入更加强大的分析法。

LR(1)分析法
在这里插入图片描述
就是观察下一个字符,来判断是否进行规约。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值