2017-05-06 7 views
2

LL文法とFIRST

STATEMENT ::= ε | R 
R   :: = print (variable) 

LL文法のチャンクを想定そして、私はFIRST(ステートメント)を探してみてください

FIRST(STATEMENT) = FIRST(ε) + FIRST(R) 
FIRST(R) = { print (variable) } 

私の質問です。 FIRST(R)は正しいですか?以下:

答えて

0
FIRST(R) = {print} 

いいえ、FIRST(R)は、printがトークンであると仮定すると、ちょうどprintあります。

+0

ありがとうございます!うーん!ですから、FIRSTアルゴリズムを実行するには、右辺をトークンに分割する必要がありますか? –

+0

端末と非端末の右側を分割する必要があります。その後、[規則](https://www.cs.virginia.edu/~cs415/reading/FirstFollowLL.pdf)を適用することができます –

+0

Hmmm !!ですから、 "print(variable)"は2つの非終端記号で構成されていますか? –