下面来具体看一下这个算法(这边可能会有点跳跃, 但是仔细看的话还是能看出来之间的联系的) : 上面已经说了, 这个算法的核心思想就是移进和归约, 移进可以看出是图中自动机的状态转化过程, 但这里的转化并不需要弹出任何字符, 只需要讲状态与字符可以得到的新状态压入即可, 每一个状态都是一个推导式, 之后如果状态和所得的字符符合对应推导式的左部的话, 就进行归约(弹出这些字符和状态)同时压入右部 ...

那么经过上面的算法分析其实我们得出来的可以看做是下图的这样一张表 :

最后是伪代码实现 :

 

然后我们可以来整理一下lr(0)算法的总过程 :

lr(0)的算法总的来说可以这么看 : 

总的来说也是表驱动算法, 也就是上图的分析算法根据lr(0)分析表对输入的tokens记号流进行分析, 接下来的问题就很明朗了, 那就是如何得到这张lr(0)的分析表...

 

posted on 2016-05-22 22:08  内脏坏了  阅读(287)  评论(0编辑  收藏  举报