如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章自顶向下语法分析语法分析程序的任务语法分析的方法及自顶向下分析法自上而下分析算法带回溯的自顶向下分析确定的自顶向下分析思想及问题LL(1)分析法FIRST集和FOLLOW集的定义设G=(VT,VN,P,S)是上下文无关文法FIRST()={a|=>a,a∈VT,,∈V*}若=>ε则规定ε∈FRIST()FOLLOW(A)={aS=>A且a∈FRIST(),∈V*,∈V+}若S=>uA,且=>ε,则#∈FOLLOW(A)计算FIRST集如何计算FOLLOW集合例:判断文法G[E]是否是LL(1)文法G[E]:(1)E–>TE’(2)E’–>+TE’(3)E’–>(4)T–>FT’(5)T’–>*FT’(6)T’–>(7)F–>(E)(8)F–>aG[E]:(1)E–>TE’(2)E’–>+TE’(3)E’–>(4)T–>FT’(5)T’–>*FT’(6)T’–>(7)F–>(E)(8)F–>a课堂练习:判断文法G[S]是否为LL(1)文法用程序实现LL(1)文法的判定LL(1)分析表M的构造LL(1)分析表M的构造例:构造文法G[S]的分析表M左递归规则--左递归关于非终结符P的规则如何消除规则左递归消除左递归表驱动予测分析程序模型予测分析表构造算法分析输入串#a+a#LL(1)分析中的一种错误处理办法递归子程序法构造给定文法的递归子程序分析法构造给定文法的递归子程序分析法例:构造文法G[E]的递归子程序法的程序框图353637