【编译原理复习笔记】语法分析-补充(二义性与LR错误处理)

二义性文法的 LR 分析

每个二义性文法都不是 LR 的

但是某些二义性文法更加简短,描述更方便

如 I7 和 I8 具有移进归约冲突

使用优先级和结合性解决冲突

对于 I7,由于乘号优先级高于加号,所以当下一个输入符号为乘号时,我们优先进行移进;当输入符号为加号时,由于加号具有左结合性,我们优先处理状态内的加号,所以进行归约

对于 I8,由于乘号的优先级高,所以进行归约

LR 分析中的错误处理

语法错误的检测,当 LR 分析器在查询分析表并发现一个报错条目的时候,就检测到了一个语法错误

错误恢复策略:

(1)恐慌模式

(2)短语层次

恐慌模式已经做过介绍,这里对于短语层次错误恢复进行介绍

短语层次错误恢复

检查 LR 分析表中的每一个报错条目,并根据语言的使用方法来决定形成这个错误的原因,然后构造出适当的恢复进程

相关推荐
nuo53420234 分钟前
黑马 C++ 学习笔记
c语言·c++·笔记·学习
阿噜噜小栈1 小时前
最新国内可用的Docker镜像加速器地址收集
运维·笔记·docker·容器
zhuyixiangyyds9 小时前
day21和day22学习Pandas库
笔记·学习·pandas
jingjingjing111110 小时前
笔记:docker安装(ubuntu 20.04)
笔记·docker·容器
DreamBoy@11 小时前
【408--考研复习笔记】操作系统----知识点速览
笔记
UpUpUp……11 小时前
特殊类的设计/单例模式
开发语言·c++·笔记·单例模式
电星托马斯12 小时前
C++中顺序容器vector、list和deque的使用方法
linux·c语言·c++·windows·笔记·学习·程序人生
jingjingjing111112 小时前
笔记:代码随想录算法训练营day64:拓扑排序精讲、dijkstra(朴素版)精讲
笔记
jimmyleeee12 小时前
人工智能基础知识笔记七:随机变量的几种分布
人工智能·笔记·概率论
熬夜造bug13 小时前
LeetCode Hot100 刷题笔记(6)—— 栈、堆
笔记