计算语法的 FIRST 和 FOLLOW 集合
Computing the FIRST & FOLLOW sets of a grammar
我有以下语法:
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}
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}
我有以下语法:
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}
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}