对于给定的文法G[E] E->TE’ E’->+TE’ | ε T->FT’ T’->*F T’| ε F->(E) | i 1、建立该文法的分析表;
时间: 2024-02-17 09:53:47 浏览: 101
以下是该文法的LR(1)分析表:
| | ( | ) | * | i | $ | E | E' | T | T' | F |
|---|---|----|----|----|----|----|----|----|----|----|
| 0 | s5 | | | s4 | | 1 | | 2 | | 3 |
| 1 | | | | | acc| | | | | |
| 2 | | r2 | s6 | r2 | r2 | | r2 | | | |
| 3 | | r4 | r4 | r4 | r4 | | r4 | | s7 | |
| 4 | s5 | | | s4 | | 8 | | 2 | | 3 |
| 5 | s5 | | | s4 | | 9 | | 2 | | 3 |
| 6 | s5 | | | s4 | | | | 10 | | 3 |
| 7 | s5 | | | s4 | | | | | | 11 |
| 8 | | r1 | s6 | r1 | r1 | | r1 | | | |
| 9 | | r3 | r3 | r3 | r3 | | r3 | | s7 | |
| 10| | r5 | r5 | r5 | r5 | | r5 | | | |
| 11| | r6 | r6 | r6 | r6 | | r6 | | | |
其中,s表示移进操作,r表示规约操作,acc表示接受。
分析表中的每个条目都是一个状态和一个终结符之间的操作,状态表示当前所在的状态,终结符表示下一个输入符号。
例如,在状态0中,如果下一个输入符号是左括号(即(),则执行移进操作,将状态转换为5;如果下一个输入符号是i,则执行移进操作,将状态转换为4。
规约操作的格式为rX,其中X表示规约所使用的产生式的编号。例如,在状态2中,如果下一个输入符号是右括号(即)),则执行规约操作使用产生式E'->ε,将状态转换为1;如果下一个输入符号是$,则执行规约操作使用产生式E'->ε,将状态转换为1。
接受操作表示输入符号串已经被成功地分析,并且符合语法规则。在状态1中,如果下一个输入符号是$,则执行接受操作。
阅读全文