[第五章LR.0.方法.ppt
文本预览下载声明
* * LR(0)分析的例子 状态栈 0 02 027 025 0256 023 0234 01 01 符号栈 a ab aB aBa aA aAc S Z 输入流 abac# bac# ac# ac# c# c# # # # 分析动作 移入 移入 归约 (4) 移入 归约(3) 移入 归约(1) 归约(0) 接受 P: (0) Z ?S (1) S? aAc (2)A ? ABb (3)A ? Ba (4)B ? b a b a c Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LR(0) 分析表 action表 goto表 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LR(0) 分析表 action表 终极符 状 态 S1 … Sn a1 … # action(Si,a) = Sj, 如果Si到Sj有a输出边 action(Si,c) = Rp, 如果Si是p-归约状态,c?Vt ?{#} action(Si,#) = accept, 如果Si是接受状态 action(Si,a) = error, 其他情形 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LR(0) 分析表 goto表 非终极符 状 态 S1 … Sn A1 … goto (Si, A) = Sj, 如果Si到Sj有A输出边 goto (Si, A) = error,如果Si没有A输出边 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LR(0)分析表的例子 VT = {a, b, c} VN = {S, A, B} S = S P: { (1) S? aAc (2)A ? ABb (3)A ? Ba (4)B ? b } Z ? ?S S ? ?aAc Z ? S? S a S ? a?Ac A? ?ABb A? ?Ba B? ?b A S ? aA?c A? A?Bb B? ?b b B A ? B?a a A ? Ba ? B ? b? S ? aAc? c B A ? AB?b b A ? ABb? b 0 1 2 3 5 6 7 8 9 4 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. action表 0 1 2 3 4 5 6 7 8 9 a S2 R1 S6 R3 R4 R2 b S7 S7 R1 R3 R4 S9 R2 c S4 R1 R3 R4 R2 # accept R1 R3 R4 R2 goto表 S 1 A 3 B 5 8 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LR(0) 分析驱动程序 符号约定: S0: 开始状态 Stack:状态栈 Stack(top):栈顶元素 P:产生式 | P |:产生式P右部符号个数; PA:产生式P左部非终极符; Push(S):把状态S压入stack; Pop(n):从stack弹出n个栈顶元素; Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-20
显示全部