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

二义性文法的 LR 分析

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

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

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

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

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

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

LR 分析中的错误处理

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

错误恢复策略:

(1)恐慌模式

(2)短语层次

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

短语层次错误恢复

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

相关推荐
2303_Alpha1 小时前
深度学习入门:深度学习(完结)
人工智能·笔记·python·深度学习·神经网络·机器学习
姝孟1 小时前
学习笔记(C++篇)—— Day 6
笔记·学习
霸王蟹2 小时前
React Fiber 架构深度解析:时间切片与性能优化的核心引擎
前端·笔记·react.js·性能优化·架构·前端框架
~巴哥~2 小时前
mcp学习笔记
笔记·学习
lqjun08274 小时前
Pytorch实现常用代码笔记
人工智能·pytorch·笔记
云海听雷5 小时前
C语言中字符串函数的详细讲解
c语言·笔记·学习
wb1895 小时前
Linux远程连接服务
linux·运维·服务器·笔记
烧火大爷5 小时前
现代计算机图形学Games101入门笔记(三)
笔记
人类恶.5 小时前
C 语言学习笔记(数组)
c语言·笔记·学习
夏季疯5 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)
java·笔记·学习