Parsing 计算第一个&;遵循语法规则

Parsing 计算第一个&;遵循语法规则,parsing,compiler-construction,lr1,Parsing,Compiler Construction,Lr1,我的语法如下: 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} 感谢您的帮助。谢谢。第一套是正确的。FOLLOW

我的语法如下:

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}

感谢您的帮助。谢谢。

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

遵循(A)的定义是

FOLLOW(A) of non-terminal A is the set of terminal symbols that can follow in the   
derivation sequence
跟随(Y),检查它在右侧的位置

        1) X -> bYa
当这个结果用于推导时,Y后面的是‘a’

        2) S -> Y
当这个结果用于推导Y之后的是,S之后的是什么。FOLLOW(S)={$,c}

     FOLLOW(Y)={$,a,c}