文法の FIRST および FOLLOW セットを作成する演習を行っています。私がしたことは正しいと思いますが、答えは私のものとは少し異なります。したがって、これを確認するには誰かの助けが必要です。ありがとうございました。文法は次のとおりです。
P -> L
L -> I X
X -> ; L | EPSILON
I -> A | C | W
A -> id := E
C -> if E then L O endif
O -> else L | EPSILON
W -> while E do L end
E -> E2 R
R -> Op1 E2 R | EPSILON
E2 -> T S
S -> Op2 E2 | EPSILON
T -> c | id
Op1 -> < | = | !=
Op2 -> + | -
EPSILON は本当の「イプシロン」であり、これが X の最初のセットである私の答えです。
FIRST(; L) = {;}
FOLLOW(X) = {$, else, end, endif}
しかし、与えられた答えは次のとおりです。
FIRST(; L) = {;}
FOLLOW(X) = {$, else, end, endif, then}
誰かが正しい答えを確認できますか?ありがとう:)