LR分析

LR分析

自下而上分析法

image-20201031104031217

工作框架

image-20201031104841574

短语,直接短语和句柄

image-20201031110144076

通过语法树判断image-20201031110848039

通过句柄可以进行规约

image-20201031112518672

找最左两层子树,末端结点从左到右排列即为句柄,规约后根据新句型更新语法树

(此时Ab为句柄)

image-20201031112654359

重复操作直至归约到S

image-20201031112755138

规范规约

将上述用句柄规约的过程定义为规范规约

image-20201031112950466

算符优先分析规范规约

image-20201031113321497

规范规约建立的是语法树,算符优先分析不属于规范规约

规范句型

image-20201031113556782

image-20201031113628127

上图规范规约过程中的每一个句型都是规范句型

规范规约 vs. 句柄

image-20201031121340987

LR分析器的结构

image-20201031122437144

LR分析表

  • 移进

image-20201031124128691

  • 规约

    image-20201031124215861

注意GOTO中Sm-r是弹出β后的栈顶符号

  • acc:分析成功

  • 空:报错

    LR分析过程

    image-20201031124647395

image-20201031125613263

image-20201031125635251

过程解释

image-20201031125649577

image-20201031125729109

例子:

通过分析表分析给定输入串

https://www.bilibili.com/video/BV1dj411f7AR?p=107 1min45s开始

*编译原理之LL(1) 、LR(0)、SLR、LR(1)、LALR文法的对比

https://blog.csdn.net/zuzhiang/article/details/79047743

小结

image-20201031160847849

原文地址:https://www.cnblogs.com/potofsalt/p/13906610.html