编译原理实践及应用第4章LR分析方法(2638KB).pptVIP

  • 24
  • 0
  • 约1.47万字
  • 约 66页
  • 2018-04-01 发布于未知
  • 举报

编译原理实践及应用第4章LR分析方法(2638KB).ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 在LR(1)分析表中,若存在两个状态(项目集)除向前搜索符不同外,其它部分都是相同的,称这样的两个LR(1)项目集是同心的 。 如果把同心的LR(1)项目集合并,心仍相同(心就是一个LR(0)项目集),超前搜索符集为各同心集超前搜索符的并集,合并同心集后go函数自动合并。称为LALR方法。 构造LALR分析表的算法: (1)构造LR(1)项目集规范族,C={I0,I1,…,In}。 (2)合并所有的同心集,得到LALR(1)的项目集族C={J0,J1,…,Jm}。含有项目[S→·S,#] 为初态。 (3)由C‘构造动作(action)表。 ① 若[A→α·aβ,b]∈Jk,且GO(Jk,a)=Jj,其中a∈VT,则置action[k,a]=Sj, ② 若项目[A→α·,a]∈Jk,其中a∈VT,则置action[k,a]=rj,rj的含义是按产生式A→α进行归约 ③ 若项目[S→S·,#]∈Ik,则置action[k,#]=acc,表示分析成功,接受。 (4)goto表的构造。若不是同心集的项目集,转换函数的构造与LR(1)的相同;假定Ii1,Ii2,…,Iin是同心集,合并后的新集为Jk,转换函数GO(Ii1,X),GO(Ii2

文档评论(0)

1亿VIP精品文档

相关文档