对于练习 4.2.2(a)中的文法 S -> 0 S 1 | 0 1,指出下面各个最右句型的句柄。
对于练习 4.2.1 的文法 S -> S S + | S S * | a 和下面各个最右句型,重复练习 4.5.1 。
对于下面的输入符号串和文法,说明相应的自底向上语法分析过程。
1、 000111
栈 | 输入 | 句柄 | 动作 |
---|---|---|---|
$ | 000111$ | 移入 | |
$0 | 00111$ | 移入 | |
$00 | 0111$ | 移入 | |
$000 | 111$ | 移入 | |
$0001 | 11$ | 01 | 规约:S -> 01 |
$00S | 11$ | 移入 | |
$00S1 | 1$ | 0S1 | 规约:S -> 0S1 |
$0S | 1$ | 移入 | |
$0S1 | $ | 0S1 | 规约:S -> 0S1 |
$S | $ | 接受 |
2、 aaa*a++
栈 | 输入 | 句柄 | 动作 |
---|---|---|---|
$ | aaa*a++$ | 移入 | |
$a | aa*a++$ | a | 规约: S -> a |
$S | aa*a++$ | 移入 | |
$Sa | a*a++$ | a | 规约: S -> a |
$SS | a*a++$ | 移入 | |
$SSa | *a++$ | a | 规约: S -> a |
$SSS | *a++$ | 移入 | |
$SSS* | a++$ | SS* | 规约: S -> SS* |
$SS | a++$ | 移入 | |
$SSa | ++$ | a | 规约: S -> a |
$SSS | ++$ | 移入 | |
$SSS+ | +$ | SS+ | 规约: S -> SS+ |
$SS | +$ | 移入 | |
$SS+ | $ | SS+ | 规约: S -> SS+ |
$S | $ | 接受 |