【编译原理】3 语法分析
第3章 语法分析
1 自顶向下的语法分析
1.0 必须要做的事
1.0.1 消除左递归
1.0.2 提取公共左因子
1.1 递归下降分析法
实验
1.2 LL(1)分析法(预测分析法)
-
求FIRST集
-
求FOLLOW集
-
判断是否是LL(1)文法
-
构造分析表
-
规则
2 自底向上的语法分析
2.1 LR表构造法说明
2.2 LR(0)分析法
- 拓广文法:S’ → T
- 构造项目集簇
- 判断是否为LR(0)文法
- 构造LR(0)分析表
2.3 SLR(1)分析法
- 拓广文法:S’ → T
- 构造项目集簇
- 判断是否是SLR(1)文法
- 构造FOLLOW集
- 解决冲突
- 构造SLR(1)分析表
2.4 LR(0)和SLR(1)的异同点
- 同
都用规范归约的方法寻找句柄,即LR分析器的每一步工作都是由栈顶状态和现行输入符号唯一决定的 - 异
寻找句柄的方法不同。若当前的栈顶状态为归约状态:
(1)对于LR(0),无论现行输入符号是什么,都认为栈顶的符号串为句柄而进行归约
(2)对于SLR(1),则对现行输入符号加了一点限制,即该输入符号必须属于允许跟在句柄之后的字符,才认为栈顶的符号串为句柄而进行归约
3 示例
有空单独讲