1

我有以下语法:

S -> aXab
S -> Y
X -> bYa
X -> epsilon
Y -> Sc

我已经计算了这个语法的第一组和后一组,我想知道它是否正确。这是我的解决方案:

First Sets:
S -> {a} 
X -> {b,epsilon}
Y -> {a}

Follow Sets:
S -> {$,c} 
X -> {a}
Y -> {c,a}

任何帮助表示赞赏。谢谢。

4

1 回答 1

2

第一组是正确的。FOLLOW(Y) 应该是 {$,c,a}

FOLLOW(A) 定义是

FOLLOW(A) of non-terminal A is the set of terminal symbols that can follow in the   
derivation sequence

FOLLOW(Y),检查它在右侧的位置

        1) X -> bYa

当这个产生式用于推导时,Y 后面的内容是“a”

        2) S -> Y

当这个产生式被用于推导时,Y 之后的内容是,S 之后的内容。 FOLLOW(S)={$,c}

     FOLLOW(Y)={$,a,c}
于 2019-12-09T11:33:22.947 回答