1.概述

错误恢复指的是允许语法分析器在发现语法错误后还能继续的机
制。原则上,最好的错误恢复来自人类在手工编写的递归下降的语法分析器中进行的干预。

必要情况下,语法分析器在遇到无法匹配词法符号的错误时,执行单词法符号补全和单词法符号移除。

如果这些方案不奏效,语法分析器将向后查找词法符号,直到它遇到一个符合当前规则的后续部分的合理词法符号为止,接着,语法分析器将会继续语法分析过程,仿佛什么事情都没有发生过一样。

2.1.通过扫描后续词法符号来恢复

当面对真正的非法输入时,当前的规则无法继续下去,此时语法
分析器将会向后查找词法符号,直到它认为自己已经完成重新同步时,它就返回原先被调用的规则。

我们可以称为同步返回(sync-and-return)策略。有人称为“应急模式”(panic mode),不过它的表现相当好。语法分析器知道自己无法使用当前规则匹配当前输入。

它会持续丢弃后续词法符号,直至发现一个可以匹配本规则中断位置
之后的某条子规则的词法符号。

例如,如果在赋值语句中存在一个语 法错误,那么语法分析器的做法就非常合理:丢弃后续的词法符号,直到发现一个分号或者其他的语句终结符

【Antlr】Antlr 自动错误恢复机制相关推荐

  1. 发那科机器人回原位置先上升_发那科机器人自动碰撞恢复功能

    发表于:2019/9/12 16:01:01 #0楼 1.简介 本章介绍自动碰撞恢复功能Auto Collision Recovery,使阅读者能迅速掌握其要领. 1.1机器人要求 要在配制R-30i ...

  2. 内存分段分页机制理解_深入理解虚拟机,JVM高级特性-自动内存管理机制

    什么是自动内存管理机制? 对于java程序员来说,有一点是要比C/C++程序员要方便的,那就是程序在运行时,java程序不需要为每一个对象其编写对应的释放内存的代码,JVM虚拟机将为你在合适的时间去释 ...

  3. javascript中的错误处理机制

    前面的话 错误处理对于web应用程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验.由于任何javascript错误都可能导致网页无法使用,因此作为开发人员, ...

  4. bus off恢复机制研究

    can模块一共有三种错误,为错误主动,错误被动和总线关闭,总线关闭就是所说的bus off,通常情况下我们也只需要对bus off进行特殊处理.在can模块内部有一个错误计数器,当错误次数超过255时 ...

  5. H264 的视频编码层的错误恢复

    一.前言 高效率的数据压缩性能和底失真的图象视频压缩效果是各种视频编码技术所追求的目标.高效率的视频压缩编码意味这消除视频图像的空间相关性和时间相关性,使得编码器端输出的比特流的冗余信息很少,因而造成 ...

  6. SpringBoot之错误处理机制

    文章目录 1.SpringBoot默认的错误处理机制 2.错误处理原理 (1)DefaultErrorAttributes (2)BasicErrorController:处理默认的/error请求 ...

  7. Laravel 5.5 的错误异常处理机制以及应用实例

    一.前言 我们在开发项目中,难免会因为逻辑上的失误而报错,这些报错的展现形式也就是框架封装好的异常处理机制.在项目上线之前,我们还可以根据框架提供的报错信息来锁定错误代码的位置.但是项目上线之后我们是 ...

  8. jdbc mysql 自动重连_Mysql中JDBC如何完成自动重连机制的案例

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  9. jdbc mysql 自动重连_JDBC实现Mysql自动重连机制的方法详解

    JDBC是Java程序连接和访问各种数据库的API,它可以提供Java程序和各种数据库之间的连接服务,下面是爱站技术频道小编为大家带来的JDBC实现Mysql自动重连机制的方法详解. 日志:using ...

最新文章

  1. 新生选课系统使用指南
  2. strncmp函数——比较特定长度的字符串
  3. HTML5 Canvas
  4. 单片机串口通信学号显示_触摸屏与单片机串口通信测试
  5. 保姆级教学:缓存穿透、缓存击穿和缓存雪崩!
  6. docker 删除所有镜像_Docker常用命令
  7. python执行循环内存变大_python – 为什么我的循环在每次迭代时需要更多内存?...
  8. Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出...
  9. c语言程序设计备考,《C语言程序设计》复习资料.doc
  10. Image的Stride
  11. 在已有的服务器上如何部署网站,如何在云服务器上部署网站
  12. 【转】vista下SMB共享的解决办法
  13. Performing User-Managed Database-18.4、Restoring Datafiles and Archived Redo Logs
  14. 添加内核驱动模块(7)(mydriver.c+ Konfig+Makefile )
  15. 阿里云ECS服务器配置Web项目和FTP Server
  16. 油田智能化远程监控系统_油田远程无线监控系统
  17. ZR1012 Zbox loves keyboard (dp)
  18. MATLAB编程之PTB: 实验暂停
  19. OC和Swift语言的区别
  20. loadrunner监控mysql服务性能

热门文章

  1. 陌陌宣布由总裁兼COO王力担任公司新任CEO
  2. 刘慈欣、Netflix联手!《三体》系列将拍摄剧集,但编剧被网友疯狂吐槽
  3. 罗永浩直播带货二手iPhone 11:1700台秒售光!
  4. 因涉嫌信披违规 神州优车被证监会立案调查
  5. 转转、e代驾发布联合报告:代驾司机买二手手机看重验机、质保
  6. 小米10首销战绩公布:嘴上说不买身体却很诚实
  7. 花式迎新 百度李彦宏Robin化身大厨派发肉饼
  8. iQOO Neo 855竞速版来了:今年最后一款骁龙855 Plus手机
  9. 双11过后张勇感谢快递小哥:再大的纪录都是靠大协作来完成的
  10. vivo NEX 3 5G真机曝光:瀑布屏+升降镜头