← 编译原理(2020)

2020-编译原理-Parser5-错误恢复

错误恢复

  1. 恐慌(Panic)模式:丢弃输入、调整状态、假装成功
    1. 丢弃输入:不断调用词法分析器,直到找到下一个分号
    2. 调整状态:不断出栈,直到找到一个状态s满足Goto[s,Stmt]∉errorGoto[s, Stmt]\not\in error
    3. 假装成功:将状态Goto[s,Stmt]Goto[s, Stmt]压栈,恢复语法分析过程
  2. 分号作为语句分隔符,可用作同步单词(Synchronizing Word)
  3. 终结符a作为非终结符A的同步单词(如,a∈Follow(A)a\in Follow(A)),跳出错误时,可能选择跳出的粒度比较小,导致没有实际从错误中跳出,也可能会跳过过多的部分。
  4. 可为多个非终结符A设置相应的同步单词a
返回「编译原理(2020)」课程目录 →

上一篇课程笔记

2020-编译原理-Parser4-LR语法分析器

下一篇课程笔记

2020-编译原理-Parser6-Bison

评论