自下而上的分析 语法分析

短语的定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

LR分析法的构成

在这里插入图片描述
在这里插入图片描述

LR(0)分析

在这里插入图片描述
在这里插入图片描述
注意使用增广文法

构造LR(0)分析表

步骤一:增广文法
在这里插入图片描述
步骤二:
将核心项目和派生项目放在一起
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤三造表
在这里插入图片描述
注意,附加上$符号
注意:归约是不管什么符号
注意:产生式是增广文法从0开始编号 !!!!!!!!!!!!!!!很重要
注意:增广开头置acc
状态从0开始编号
例子:
在这里插入图片描述
在这里插入图片描述

LR(0)分析实现栈过程

一个例子
首先 在符号栈里填$ 状态栈里面填0 ,输入末尾附加上$ 然后看当前状态和当前输入
如果是移进,则符号栈移入符号,状态栈增加一个状态。
如果是归约则 按照产生式编号归约,消去之前状态(长度个状态!!!!),看前一个状态下遇到这个规约出来的非终结符号会goto到哪个状态。直到最后出现acc
在这里插入图片描述
下图是状态栈,当前输入符号始终是a
在这里插入图片描述
注意归约弹出状态的时候 是弹出 归约产生式右部的长度个状态

LR(0)文法的定义=没有两种冲突项目

在这里插入图片描述

SLR(1)分析表构造

LR(0)会有移进 - 归约冲突
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
归约归约冲突 有问题!!!

follow集合中有$才在对应位置写r归约。

LR(1)分析表

SLR分析法在处理的时候,follow集合可能和要移进的符号有交集
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三种分析表对比

在这里插入图片描述

LALR(1)分析表

找出同核心状态 以及有冲突的状态
在这里插入图片描述

LR分析法和LL分析法区别

在这里插入图片描述

二义性的LR分析表

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值