第6章LR分析 nLR分析法 LR分析法概述 u LR分析器 u LR(O)分析 u SLR(1)分析 u LR(1)分析 LALR(1)分析 LR分析法小结 门自底向上语法分析小结 n本章练习 n作业 2023/2/28 课程目绿 ☒)
2023/2/28 1 第6章 LR分析 n LR分析法 u LR分析法概述 u LR分析器 u LR(0)分析 u SLR(1)分析 u LR(1)分析 u LALR(1)分析 u LR分析法小结 n 自底向上语法分析小结 n 本章练习 n 作业 课程目录
LR(k)分析法概述p123 n是一种自下而上语法分析技术 UL从左到右扫描输入符号 UR构造一个最右推导的逆过程一一最左归约 Uk超前读入k个符号,以便确定归约用的产生式 nLR分析器 U移进归约分析器+LR分析表 n特殊性 U栈=状态栈+文法符号栈 U分析表=动作表action+状态转移表goto 2023/2/28 ☒ 2
2023/2/28 2 LR(k)分析法概述 p123 n 是一种自下而上语法分析技术 uL 从左到右扫描输入符号 uR 构造一个最右推导的逆过程——最左归约 uk 超前读入k个符号,以便确定归约用的产生式 n LR分析器 u移进归约分析器 + LR分析表 n 特殊性 u栈 = 状态栈 + 文法符号栈 u分析表 = 动作表action + 状态转移表goto
各种LR分析表p123 n采用不同的构造方法 ULR(O)表构造法一— 基础 U简单LR(SLR(I))表构造法一一 理论过渡 U规范LR(I)表构造法一一理论过渡 U向前LR(LALR(I)表构造法一一实用 n不同点 U构造分析表的方法不同 U分析能力不同,实现效率不同 n共同点 U逻辑结构 U工作原理(状态转移) 2023/2/28 章节目录可□3
2023/2/28 3 各种 LR 分析表 p123 n 采用不同的构造方法 uLR(0)表构造法——基础 u简单LR(SLR(1))表构造法——理论过渡 u规范LR(1)表构造法——理论过渡 u向前LR(LALR(1))表构造法——实用 n 不同点 u构造分析表的方法不同 u分析能力不同,实现效率不同 n 共同点 u逻辑结构 u工作原理(状态转移) 章节目录
LR分析器模型p124图6.1 。 an 状态栈符号栈 输入缓冲区 X 产生式 m-I LR分析程序 序列 .S% .X# 动作表 转移表 LR action goto 分析表 2023/2/28 小节目录 5
2023/2/28 5 LR分析器模型 p124 图6.1 a1 . ai . an # LR分析程序 动作表 action 转移表 goto 产生式 序列 状态栈 输入缓冲区 LR 分析表 Sm Sm-1 . . . S1 S0 Xm Xm-1 . . . X1 # 符号栈 小节目录
LR分析表 举例p142 ACTIONZ动作 G0T0转换 态 1 + 米 井 ET F 文法6.8 表 0 s5 s4 1 2 3 (1)E→E+T 1 s6 acc (2)E→T 2 r2 s7 r2 r2 (3)T→T*F 3 r4 r4 r4 r4 (4)T→F 4s5 s4 82 3 (5)F→(E) 5 r6 r6 r6 r6 (6)F→i 6 s5 s4 9 3 约定 s5 s4 10 si将符号a,状 8 s6 sII 态i压入栈 9 rl s7 rl rl ri用第i个产 10 r3 r3 r3 r3 生式归约 rb rb rb rb 2023/2/28 ☒D6
2023/2/28 6 LR 分析表 举例 p142 表 文法6.8 (1)E→E+T (2)E→T (3)T→T*F (4)T→F (5)F→(E) (6)F→i 状 ACTION动作 GOTO转换 态 i + * ( ) # E T F 0 s5 s4 1 2 3 1 s6 acc 2 r2 s7 r2 r2 3 r4 r4 r4 r4 4 s5 s4 8 2 3 5 r6 r6 r6 r6 6 s5 s4 9 3 7 s5 s4 10 8 s6 s11 9 r1 s7 r1 r1 10 r3 r3 r3 r3 11 r5 r5 r5 r5 约定 si将符号a,状 态i压入栈 ri用第i个产 生式归约