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