0
点赞
收藏
分享

微信扫一扫

LR分析法

爱做梦的老巫婆 2022-04-22 阅读 136
编辑器

1.基本概念

(1)LR分析器结构


(2)LR分析表

大家重点关注一下这个LR分析表,我们后续的分析都将围绕这个LR分析表展开

这其中有三种操作:
 

操作具体过程
移进(shift)把(s ,a)的下一状态s’和输入符号a推进栈,下一输入符号变成现行输入符号
归约(reduce)用某产生式A→β进行归约。假若β的长度为r,去除栈顶个项,使状态sm_变成栈顶状态,然后把下一状态s'=GOTO[sm-[,A]和文法符号A推进栈
接受(accept)宣布分析成功,停止分析器工作

后面我会用更加通俗易懂的语言来解释他们具体是怎么操作的。

2.LR分析过程 

 

这里就具体介绍了他们是如何进行操作的,如果大家还不太清晰的话,可以对照我后面的例题讲解进行理解。

 3.例题讲解

这是一道LR分析法的经典例题,我们现在来看看该如何去做。

刚开始我们列出三列,分别写上 状态,符号,输入串

(1)步骤一:

 (2)步骤二:

(3)步骤三:

 

 (4)步骤四:

此时的状态是3,输入串的栈顶是*,我们可以找到r4,和步骤三的操作过程是一样的,这里不做详细介绍。

 

 (5)步骤五:

此时的状态是2,输入串是*,我们可以找到s7,和步骤二的操作过程是一样的,这里不做详细说明。

(6)步骤六:

直接上图

(7)步骤七

 

 

 

 (8)步骤八:

中间有很多的步骤都被我省略了,我就把所有的过程都集成在一起了,便于同学们理解。

 

 

 

 


相信同学们对例题的理解,已经对LR分析有了一个基本的概念。

3.LR文法

 

 

 

 

举报

相关推荐

0 条评论