0

文法の 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}

誰かが正しい答えを確認できますか?ありがとう:)

4

1 に答える 1