语法分析-南京大学计算机系.pptVIP

  • 3
  • 0
  • 约2.48万字
  • 约 153页
  • 2017-07-05 发布于四川
  • 举报
* * * * * * * * * * * LALR分析表的例子(3) 处理语法正确的输入时,LALR语法分析器和LR语法分析器的动作序列完全相同。 栈中的状态名字不同,但是状态序列之间有对应关系:如果LR分析器压入状态I,那么LALR分析器压入I对应的合并项集。 比如:当前面的LR分析器压入状态I3时,LALR分析器压入状态I36。 当处理错误的输入时,LALR可能多执行一些归约动作,但是不会多移入一个符号。 LALR分析表的高效构造算法 LALR的项集可以看作是在LR(0)项集上添加了适当的向前看符号。 基本方法 只使用内核项来表示LR(0)或LR(1)项集。只使用[S’?.S]或[S’?.S,$],以及点不在最左端的项。 使用传播和自发生成的过程来生成向前看符号,得到LALR(1)内核项。 使用CLOSURE函数,求出内核的闭包。然后得到LALR分析表。 LALR项中的向前看符号 LALR项集中的项[A?α.β,a]必然是具有相同核心的LR项集中的一个项。 LALR项集J中包含项[B?γ.δ,b]的条件:存在相应的LR项集J’使得下列条件之一成立 LR项集I’中包含项[A?α.β,a]且J’=GOTO(I’,X),且[B?γ.δ,b]在GOTO(CLOSURE({[A?α.β,a]}),X)中。 b是“自发生成的”,不管a是什么,[B?γ.δ,b]一定在J中。 LR项集I’中

文档评论(0)

1亿VIP精品文档

相关文档