目录
八、自底向上的分析概念
自底向上的语法分析
- 从分析树的底部(页节点)向顶部(根节点)的方向构造分析树。
- 可以看成是将输入串W归约为文法开始符号s的过程
- 自顶向下的语法分析采用最左推导方式
- 自底向上的语法分析采用最左规约方式(反向构造最右推导)
- 自底向上的语法分析通用的框架 —— 移入-规约分析
移入-规约分析例子
移入-规约分析的工作过程
移入-规约分析可采取的4种动作
- 移入:将下一个分析符号移动到栈顶端
- 规约:被规约的符号串的右端必然处于栈顶。语法分析器在栈中确定这个串的左端,并决定那个非终结符来替换这个串
- 接收:宣布语法分析过程成功完成
- 报错:发现语法报错,并调用错误恢复子例程。
移入-规约分析关键问题
句柄:应该是句型的最左直接短语。
思考:计算机如何识别句柄的呢?
九、LR分析法概念
LR分析法定义
- LR文法是最大的、可构造出相应的移入-规约语法分析器的文法类
- L:对输入从左到右的扫描
- R:反向构造出一个最右推导序列
LR(K)分析
- 需要向前查看k个输入符号的LR分析
- K = 0 或k = 1有实践意义。省略时K = 1;
LR分析法的基本原理
自底向上分析的关键问题是:如何找到句柄。
句柄
是逐步形成的,用“状态”表示句柄识别的进展程度。