我想找到FIRST和遵循以下CFG:如何找到FIRST和FOLLOW
S -> O | M
M -> iEtMeM | a
O -> iEtS | iEtMeO
E -> b
我做了左分解,所以我得到:
S -> O | M
M -> iEtMeM | a
O -> iEtO'
O'-> S | MeO
E -> b
第一组:
FIRST(S) = FIRST(O)|FIRST(M) = {i,a}
FIRST(M) = {i,a}
FIRST(O) = {i}
FIRST(O') = FIRST(S)|FIRST(M) = {i,a}
FIRST(E) = {b}
现在我不能找到S
的FOLLOW集,因为我不知道什么是FOLLOW(O')
:
FOLLOW(S) = {$, FOLLOW(O')}
嗨寒意,但为什么'FOLLOW(S)'只有'{$}'它也存在'O' - > S | MeO' – Gabriel
@ Gabriel,是的,我忽略了提到'S',参见编辑答案。 – chill