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

二义性文法的 LR 分析

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

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

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

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

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

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

LR 分析中的错误处理

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

错误恢复策略:

(1)恐慌模式

(2)短语层次

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

短语层次错误恢复

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

相关推荐
_李小白4 小时前
【OSG学习笔记】Day 22: StateSet 与 StateAttribute (渲染状态)
笔记·学习
zzh0816 小时前
Mysql数据库备份与恢复笔记
数据库·笔记·mysql
丝斯20117 小时前
AI学习笔记整理(79)——Python学习8
人工智能·笔记·学习
Z.风止8 小时前
Large Model-learning(2)
开发语言·笔记·python·leetcode
烛之武8 小时前
SpringCloud基础(上)
笔记·spring·spring cloud
南境十里·墨染春水8 小时前
C++ 笔记 深赋值 浅赋值(面向对象)
开发语言·jvm·c++·笔记
今儿敲了吗8 小时前
算法复盘——差分
数据结构·c++·笔记·学习·算法
_李小白9 小时前
【OSG学习笔记】Day 23: ClipNode(动态裁剪)
android·笔记·学习
丝斯201110 小时前
AI学习笔记整理(78)——Python学习7
人工智能·笔记·学习