目的:为输入字符串寻找最左推导,或者说,从根节点开始,自上而下,从左到右地为输入字符串建立一棵分析树,并预先确定的顺序创建分析树的节点。
1、预测语法分析器的状态转换图
预测语法分析器,每一个非终结符都对应一个状态转换图,边上的标记是记号和非终结符。记号上的转换意味着如果该记号是下一个输入符号,就应进行该转换。
2、非递归的预测分析
表驱动的预测语法分析器有一个输入缓冲区、一个栈、一张分析表和一个输出流。输入缓冲区包含要分析的串,后面跟一个符号$,$是输入串的结束标记。栈是用来存放文法符号序列。栈底符号是$。分析表示一个二维数组M[A,a],A是非终结符,a是终结符或者$。
算法 非递归的预测分析
FIRST和FOLLOW
算法 构造预测分析法
LL(1)文法
3、预测分析的错误恢复
紧急方式错误恢复主要思想:跳过一些输入符号,直到期望的同步记号中的一种出现为止。主要依赖于同步记号集合的选择。这个选择可以使得语法分析器能迅速地从实际可能发生的错误中恢复过来。