LR(0)分析例子

来源:互联网 发布:火星潮牌淘宝 编辑:程序博客网 时间:2024/04/28 02:38

来自http://jpkc.gdut.edu.cn/comp/cmpl6/6-2-5.htm#top

LR(0) 分析 


  其实我觉得LR(0)这个名称不正确,因为一般把0解释为不向前查看字符(也就是查看0个字符),但是其实我们知道LR(0)的分析表中转移是需要看一个字符的,根据字符做相应转移的。而归约不需要看字符,也就是只要知道后面来了一个字符,但不管具体是什么字符,我都会归约。所以LR(0)应该改成LR(0,1)或LR(0.5)更合适一点。


    按上述方法建立识别活前缀的 DFA 结果与 7.8 图相同
  构造上例文法的 LR(0) 分析表见 P136 表 7.3 所入串 bccd# 的 LR(0) 分析过程见 P136 表 7.4 所示

  例: G[S]为 :
  S →a A c B e 
  A →b 
  A →A b 
  B →d
  1) 构造识别活前缀的 DFA 
  2) 构造它的 LR(0) 分析表。
  3) 分别给出对输入 符号串 abbcde 和 abbbce 的 LR(0) 分析步骤。
     



Step 3: S4碰到b,要按照r2归约。先把S4出栈,栈顶变成S2。要归约的串b出栈,b归约成A。此时S2碰到A,要goto S3。所以把A入栈,S3入栈。



0 0
原创粉丝点击