G[Exp]: Exp →LP Exp RP | MINUS Exp | ID LP Args RP | INT | FLOAT Args → Exp COMMA Args | Exp 其中LP RP MINUS ID INT FLOAT COMMA 为终结符 改为LL(1)文法,并写出LL(1)预测分析表
时间: 2023-06-11 11:08:00 浏览: 107
基于LL(1)文法的预测分析表法
LL(1)文法要求每个非终结符的每个产生式的首符号集合和后继符号集合的交集为空,即不存在两个产生式的首符号集合和后继符号集合有交集。对于这个文法,我们可以进行一些改写:
```
Exp → LP Exp RP | MINUS Exp | ID LP Args RP | INT | FLOAT
Args → Exp ArgsTail
ArgsTail → COMMA Exp ArgsTail | ε
```
其中,`ArgsTail` 用来表示 `Args` 的后继符号集合(即可以出现的符号)。这样,我们就可以很容易地得到该文法的 LL(1) 预测分析表:
| | LP | RP | MINUS | ID | INT | FLOAT | COMMA | $ |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Exp | Exp → LP Exp RP | | Exp → MINUS Exp | Exp → ID LP Args RP | Exp → INT | Exp → FLOAT | | |
| Args | Exp ArgsTail | | | Exp ArgsTail | Exp ArgsTail | Exp ArgsTail | | ε |
| ArgsTail | | | | | | | ArgsTail → COMMA Exp ArgsTail | ε |
可以看出,该文法是 LL(1) 的,因为每个非终结符的每个产生式的首符号集合和后继符号集合的交集均为空。
阅读全文