自上而下语法分析
语法分析方法
- 自下而上:
- 算符优先文法
- LR文法
- 自上而下:
- 递归下降分析法
- 预测分析程序
- 自上而下与自下而上的语法分析策略
(1) 自上而下:是从文法起始符号出发,不断使用文法的产生式进行推导,分析成功的标志是推导出待分析的终结符串
(2) 自下而上:从待分析的终结符号串出发,使用产生式规则,对当前的符号串,寻找其中的子串β,利用A->β,将β替换成A,得到新的符号串。分析过程的主要操作是归约。分析成功的标志是从给定的终结符号串出发,经过不断归约,得到文法起始符号
LL(1)分析法
- LL(1)文法中没有二义性文法
- LL(1)分析法中:
1. L:从左到右扫描输入符号串
2. L:采用最左推导
3. 1:向前查看输入符号串一个字符 - 判断是否为LL(1)文法:
- 要根据构成的分析表是否有重定义项
- 根据LL(1)文法的条件来判断
- LL(1)分析法:
-
条件:
1. 文法不含左递归
2. 非终结符的FIRST集合不相交
3. FIRST集合中包含空集那么与FOLLOW集合不相交 -
步骤:
1. 消除左递归
2. 消除回溯
3. 提取公共左因子
4. FIRST集合
5. FOLLOW集合
- 构造分析表
-
7. 预测分析:
注意事项:
1.初始时,开始符在栈中
2.插入栈中时,是倒着插入的
3.相同字符出栈,后续也指向下一个符号
例题