编译原理5.3.3SLR分析表的构造.pptVIP

  • 7
  • 0
  • 约6.07千字
  • 约 20页
  • 2016-12-29 发布于北京
  • 举报
有效项目 如果存在规范推导 则项目A??1·?2 对活前缀 ??1 是有效的。 如果?2 ? ?,应该移进 如果?2 = ?,应该用产生式A??1归约 5.3.3 SLR分析表的构造 SLR(1)分析法的引入: LR(0)文法的活前缀识别自动机的每一状态(项目集)都不含冲突性的项目 大多数的程序设计语言的文法不能满足LR(0)文法的条件 用向前查看一个符号的办法解决冲突 例:设文法G的LR(0)项目集规范族中含有如下一个项目集(状态)I: I = { X?? ?b? /*移进项目*/ A??? /*归约项目*/ B?γ? /*归约项目*/ } 用SLR(1)方法解决冲突 假定LR(0)规范族的一个项目集I中含有m个移进项目: A1→α·a1β1,A2→α·a2β2,…,Am→α·amβm 同时含有n个归约项目: B1→α1·, B2→α2·, …, Bn→αn· 如果集合{a1,…,am}、FOLLOW(B1)、…、FOLLOW(Bn)两两不相交,a是现行输入符号,则: (1)若a是某个ai,i=1,2,…,m,则移进; (2)若a∈FOLLOW(Bi),i=1,2,…,n, 则用产生式Bi→αi进行归约; (3)此外,报错。 例5.11 p111 考虑下面的拓广文法 (文法5.8) (0) S??

文档评论(0)

1亿VIP精品文档

相关文档