预测分析器的核心概念:
1> 分析方法:格局与格局变换
2> 分析表+驱动器(模拟算法)
3> 预测分析表的构造
4> LL(文法、语言、分析器)
☆ 开始格局的剩余输入是全部输入序列,而接收格局中剩余输入应该为空,任何其他格局或出错格局中的剩余输入应该是全部输入序列的一个后缀.
☆ 改变格局的动作:
① 匹配终结符: 若top=ip(但≠#),则pop且next(ip);
② 展开非终结符:若top^= X且M[X,ip^]=α(X→α),则pop且push(α);
③ 报告分析成功: 若top ^= ip^ = #,则分析成功并结束;
④ 报告出错:其它情况,调用错误恢复例程.
☆ 驱动器算法
☆ 构造预测分析表
步骤:1. 构造文法符号X的FIRST集合和非终结符的FOLLOW集合;2. 根据两个集合构造预测分析表.
通俗地讲,α的FIRST集合就是从α开始可以导出的文法符号序列中的开头终结符。而A的FOLLOW集合,就是从开始符号可以导出的所有含A的文法符号序列中紧跟A之后的终结符.
<1> 计算X的FIRST集合 -----自下而上计算
<2> 计算所有非终结符的FOLLOW集合 —— 自上而下计算
<3> 构造预测分析表
<4> LL(1)文法
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!