对下面文法构造LL(1)分析表。 E →-E E →(E) E→Var Etail Etail→-E Etail→Σ Var→id Vtail Vtail →(E) Vtail→E
时间: 2024-05-25 12:14:49 浏览: 4
首先,我们需要列出这个文法的所有产生式的左部和右部的FIRST集和FOLLOW集:
| 产生式 | 左部的FIRST集 | 右部的FIRST集 | 右部的FOLLOW集 |
| ------ | ------------ | ------------ | --------------- |
| E → -E | {-} | {-} | {\$, ), -} |
| E → (E) | {(} | {(} | {\$, ), -} |
| E → Var Etail | {id} | {id} | {\$, ), -} |
| Etail → -E | {-} | {-} | {\$, ), -} |
| Etail → Σ | {\$} | {\$} | {\$, ), -} |
| Var → id Vtail | {id} | {id} | {\$, ), -} |
| Vtail → (E) | {(} | {(} | {\$, ), -} |
| Vtail → E | {id} | {id} | {\$, ), -} |
接下来,我们需要计算每个非终结符号与FIRST、FOLLOW集的交集。使用这些交集填写LL(1)分析表:
| | {id} | {(-} | {\$} | {)} | {-} |
| --- | ---- | ---- | ---- | --- | --- |
| E | 3 | 2 | | 2 | 1 |
| Etail | | 5 | 4 | 5 | 6 |
| Var | 7 | | | | |
| Vtail | 9 | 8 | 10 | 8 | |
其中,数字表示使用对应产生式进行推导的编号。例如,E的表格中,{id}和{(-}的交集为3,表示使用E → Var Etail进行推导。
最后,我们可以使用这个LL(1)分析表对于输入的符号串进行语法分析。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)