61概述LR分析特定的一种 Ashift-reduce实现技术 L从左到右扫描输入串R构造最右推导 LR分析器模型 栈 Inputs(#) 总控程序 output LR分析表 生式表
6.1 概述 LR分析 特定的一种shift-reduce实现技术 L 从左到右扫描输入串 R 构造最右推导 LR分析器模型 总控程序 output Input$(#) … 栈 LR分析表 产 生 式 表
LR分析表 State on Action Goto $4 012345678 S5 accept r2 r2「2「2 $4 r 4 Srs 343 r3「3「3「3「3
LR分析表
(1)S→> aacb e(2)A→>b(3)A→>Ab(4)B→>d LR分析表 ACTION GOTO a e b d #S AB S2 acc 0123456789 S4 S5 2 r r2 2 2 S8 3r3r3 了3 S9 4 r4r4 r4
(1)S →a A c B e (2)A →b (3)A →Ab (4)B →d LR分析表 ACTION GOTO a c e b d # S A B 0 S2 1 1 acc 2 S4 3 3 S5 S6 4 r2 r2 r2 r2 r2 r2 5 S8 7 6 r3 r3 r3 r3 r3 r3 7 S9 8 r4 r4 r4 r4 r4 r4 9 r1 r1 r1 r1 r1 r1
LR分析使用两张表 ACTION表 告诉分析器:栈顶状态为S,当前输入符号是a时做什 麽 1.ACTIONS, a]=si 2. ACTIONS.a(第条产生式为A→B) 3. ACTIONS, a=acc 4. ACTIONS, a]=error GOTO表 GOTOS,A栈顶状态为S,归约之后的非终结符為A时, 要放到栈顶的新状态
LR分析使用两张表 ACTION表 告诉分析器:栈顶状态为S,当前输入符号是a时做什 麽 1. ACTION[S,a]= Sj 2. ACTION[S,a]=rj (第j条产生式为A→) 3. ACTION[S,a]=acc 4. ACTION[S,a]= error GOTO表 GOTO[S,A]栈顶状态为S,归约之后的非终结符為A时, 要放到栈顶的新状态
LR分析 GS: (Is >aACB e (2)A->b (3)A→>Ab (4)B→>d ·w= abode
LR分析 – G[S]: (1)S →a A c B e – (2)A →b – (3)A →Ab – (4)B →d • w=abbcde#