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

二义性文法的 LR 分析

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

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

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

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

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

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

LR 分析中的错误处理

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

错误恢复策略:

(1)恐慌模式

(2)短语层次

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

短语层次错误恢复

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

相关推荐
我命由我1234518 分钟前
Photoshop - Photoshop 工具栏(20)混合器画笔工具
经验分享·笔记·学习·ui·职场和发展·职场发展·photoshop
搞机械的假程序猿1 小时前
普中51单片机学习笔记-点亮第一个LED
笔记·学习·51单片机
wgego2 小时前
做题笔记BUU (XSS-Lab)(1-14)
前端·笔记·xss
摇滚侠3 小时前
Spring Boot3零基础教程,响应式编程,前景提要,笔记108
java·spring boot·笔记
x_lrong4 小时前
本地访问远端环境tensorboard
linux·笔记·ai·虚拟机·云服务器·tensorboard
hit56实验室5 小时前
如何在DCU上面编译llama.cpp
笔记
WPG大大通5 小时前
AIoT | 软件:Astra MCP边缘算力构建详解
经验分享·笔记·python·硬件架构·代码
卡提西亚5 小时前
C++笔记-21-运算符重载
c++·笔记
草莓熊Lotso5 小时前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节
yuxb736 小时前
Zabbix企业级分布式监控系统(下)
笔记·zabbix