编写程序利用LL1分析方法对该文法进行语法分析构建句型分析过程中的符号栈的变化过程。
由于题目中没有给出具体的文法,这里假设文法为:
S -> aABc | aBDc A -> e B -> bB | e D -> dD | e
LL(1)分析表如下:
| | a | b | c | d | $ | |---|---|---|---|---|---| | S | S1 | | | | | | A | | | | | A2 | | B | | B3 | | | B4 | | D | | | | D5 | |
其中,S1表示使用S -> aABc规则,A2表示使用A -> e规则,B3表示使用B -> bB规则,B4表示使用B -> e规则,D5表示使用D -> dD规则。
假设输入串为abbc,则符号栈和输入串的变化过程如下:
| 符号栈 | 输入串 | 所用规则 | |-----------|------|------| | $S | abbc | | | $cCBa | abbc | S -> aABc | | $cB | bbc | A -> e | | $cBb | bbc | | | $cB | bc | B -> bB | | $cBbB | bc | | | $cB | c | | | $ | c | |
因此,可以得到句型为S -> aABc -> aB -> abB -> abbB -> ab -> abe -> ab
原文地址: https://www.cveoy.top/t/topic/fatI 著作权归作者所有。请勿转载和采集!