编译原理第4部分语法材料.ppt

如果每个项目集中不存在既含移进项目又含归约项目或者含有多个归约项目的情况,则该文法是一个LR(0)文法。 检查上面的项目集规范族,发现I2存在既含移进项目S→L·=R又含归约项目R→L·的情况,故文法G[S]不是LR(0)文法。 假定LR(0)规范族的一个项目集I中含有m个移进项目,即 A1→α·a1β1, A2→α·a2β2, …, Am→α·amβm 同时I中含有n个归约项目,即 B1→α·, B2→α·, …, Bn→α· 如果集合{a1,…,am}、FOLLOW(B1)、…、FOLLOW(Bn)任何两个出现相交的情况(包括存在两个FOLLOW集含有“#”),则该文法不是SLR(1)文法。 因此,构造文法G[S]的FOLLOW集如下: (1) ?FOLLOW(S)={#}; (2) 由S→L=… 得FIRST(‘=’)\{ ε} FOLLOW(L),即 FOLLOW(L)={=}; (3) 由S‘→S得FOLLOW(S’) FOLLOW(S),即 FOLLOW(S)={#}; 由S→R得FOLLOW(S) FOLLOW(R),即

文档评论(0)

1亿VIP精品文档

相关文档