《【精品】【考研计算机专业课】天津大学 编译原理讲义 SLR(1)分析表精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】【考研计算机专业课】天津大学 编译原理讲义 SLR(1)分析表精品ppt课件.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【考研计算机专业课】天津大学 编译原理讲义 SLR(1)分析表假定一个假定一个LR(0)规范族中含有如下的一个项目集规范族中含有如下的一个项目集(状态状态)I,I=Xb,A,B第一个项目告诉我们应该把下一个输入符号第一个项目告诉我们应该把下一个输入符号b移进;移进;第二个项目告诉我们应把栈顶的第二个项目告诉我们应把栈顶的规约为规约为A;第三个项目告诉我们应把栈顶的第三个项目告诉我们应把栈顶的规约为规约为B;三个项目动作各不相同,互相三个项目动作各不相同,互相冲突冲突。解决冲突的一种简单方法就是考察解决冲突的一种简单方法就是考察A,B的的FOLLOW集,集,如果这两个集合互不相交,而且都不包含如
2、果这两个集合互不相交,而且都不包含b,那么,当,那么,当状态状态I面临任何输入符号面临任何输入符号a时,我们就可以采取如下的时,我们就可以采取如下的“移进移进规约规约”决策决策:1.若若a=b,则移进;,则移进;2.若若aFOLLOW(A),则用产生式,则用产生式A进行规约;进行规约;3.若若aFOLLOW(B),则用产生式,则用产生式B进行规约;进行规约;4.若若a为其它,出错;为其它,出错;例例,设文法,设文法G为为:(0)SS(1)SabdD(2)SaBc(3)Bb(4)DdI3项目集项目集I3存在冲突存在冲突:Action(3,d)=S4Action(3,d)=r3可以用可以用FOLLOW(B)=c解决冲突解决冲突Action(3,d)=S4Action(3,c)=r3cFOLLOW(B)Action(3,x)=ERRORxVT#-d,cSabdDBbGoToabcd#SBD0S211Acc2S353r3S44S785S66r27r48r1Action