1. 基本原理
递归下降法是语法分析中最易懂的一种方法。
它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,
其中终极符产生匹配命令,
而非终极符则产生过程调用命令。
因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。
其中子程序的结构与产生式结构几乎是一致的。
2. 文法要求
递归下降法要满足的条件:假设A的全部产生式为A->β1|β2| …|βn
则必须满足如下条件才能保证可以唯一的选择合适的产生式
predict(A->βi)∩predict(A->βj)=Φ,当i≠j.
3. 实现原理
假设文法中有如下的产生式A->β1|β2| …|βn,则应按如下方法编写语法分析子程序
procedure A( )
begin if token∈Predict(A->β1) then θ(β1) else
if token∈Predict(A->β2) then θ(β2) else
……
if token∈Predict(A->βn) thenθ(βn) else
err( )
end
其中对βi=X1X2…Xn,θ(βi) = θ’(X1);θ’(X2);…;θ’(Xn);
如果X∈VN,θ’(X)= X
如果X∈VT,θ’(X)= Match(X)
如果X=ε ,θ(ε) = skip(空语句)