用预测分析法的总控程序、分析栈和预测分析表对输入串i+i*i进行分析,给出输入串T的分析过程
时间: 2024-02-26 14:53:32 浏览: 50
预测分析程序
预测分析法的总控程序、分析栈和预测分析表对输入串i+i*i进行分析的过程:
1. 总控程序读入输入串i+i*i和预测分析表。
2. 初始化分析栈,将#和文法G的起始符号E入栈。
3. 读入输入串的第一个字符i,将i和E出栈,将E->T填入输出结果中。
4. 查找预测分析表中M[T, +],发现T->F,将T和+出栈,将F入栈。输出结果中添加T->F。
5. 读入输入串的下一个字符i,将i和F出栈,将F->i填入输出结果中。
6. 查找预测分析表中M[T, *],发现T->T*F,将T和*出栈,将T*F入栈。输出结果中添加T->T*F。
7. 查找预测分析表中M[F, i],发现F->i,将T*和i出栈,将i入栈。输出结果中添加F->i。
8. 查找预测分析表中M[T, i],发现T->F,将i和F出栈,将F入栈。输出结果中添加T->F。
9. 查找预测分析表中M[T, #],发现T->T*F,将#和T*F出栈,分析成功。
10. 输出结果:E->T->T*F->F->i+i*i。
分析栈的变化过程如下:
|#|E|
|-|-|
|#|T|
|#|F|
|i| |
|i|T|
|+|F|
|i| |
|*|T*F|
|i|F|
|#| |
其中,#表示栈底,空表示栈内元素已出栈。
输出结果的变化过程如下:
|输出结果|
|-|
|E->T|
|E->T->T*F|
|E->T->T*F->F|
|E->T->T*F->F->i|
|E->T->T*F->F->i+i|
|E->T->T*F->F->i+i*i|
阅读全文