编译原理535-LALR分析表的构造-1.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:20 大小:367KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

编译原理535-LALR分析表的构造-1.ppt

编译原理535-LALR分析表的构造-1.ppt

预览

免费试读已结束,剩余 10 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

5.3.5LALR分析表的构造图5.10LR(1)项目集和GO函数p116合并同心集表5.5例5.13☆的LR分析表p1161、合并GOTO表(1)出错与出错合并-结果仍为出错,无冲突(2)移进与移进合并-无冲突(3)出错与移进合并-不会出现此情况(4)移进与归约合并-不会出现此情况(5)归约与出错合并-人为规定它做归约放松了报错条件(6)归约与归约合并A)按同一产生式归约,无冲突B)按不同产生式归约,将造成冲突合并同心项目集可能会引起冲突同心集的合并不会引起新的移进归约冲突同心集的合并有可能产生新的归约归约冲突(1)构造文法的LR(1)项目集族C={I0,I1,…,In}(2)把所有的同心集合并在一起,记C={J0,J1,…,Jm}为合并后的新族,含有项目[S→·S,#]的Jk为分析表的初态。(3)从C构造ACTION表①若[A→α·aB,b]∈Jk,且GO(Jk,a)=Jj,则置ACTION[k,a]为sj②若[A→α·,a]∈Jk,j是产生式A→α的编号则置ACTION[k,a]为rj,③若[S'→S·,#]∈Jk,则置ACTION[k,#]为acc(4)GOTO表的构造若GO(Jk,A)=Ji,则置GOTO[k,A]=i(5)分析表中凡不能用(3)、(4)填入信息的空白格均填上“出错标志”。经上述步骤构造的分析表若不存在冲突,则称它为文法的LALR分析表存在这种分析表的文法称为LALR文法对于同一个文法,LALR分析表和LR(0)以及SLR分析表永远具有相同数目的状态。例:写出输入符号串#aab#的LR分析过程和LALR分析过程例:有如下文法G[S']:(0)S'S(1)SL=R(2)SR(3)L*R(4)Li(5)RL写出此文法的LALR分析表并根据文法的LALR分析表分析输入串“i=*i=#”LR(1)项目集规范族合并同心集状态步骤i=*i=#的LR分析过程步骤i=*i#的LR分析过程LR分析小结