3

私は LL(1) 文法の構文解析テーブルを構築しようとしていますが、それは 1 つの側面を除いてすべて理にかなっています!?

フォロー セット シームのルールが矛盾しています。

• 各生産 X → αAβ について、FIRST (β) − {€} を FOLLOW(A)
に入れる • € が FIRST (β) にある場合、FOLLOW(X) を FOLLOW(A) に入れる

それらはルール 1 と 2 です (3 は問題ありません)。

その生産ルールがまだルール 1 に該当しない場合、ルール 2 をどのように実装できますか?

それで、誰かがどのルールがどこに適用されるかを微妙に説明できますか?

4

1 に答える 1

1

最初のルールは、フォローセットにAのフォローに含まれている場合、イプシロンを除いてすべてをFIRST(β)に入れることを示しています。Aの後に何も続かないことは合法ではないため、イプシロンは存在しないはずです。

2番目の規則は、βがイプシロンである可能性がある場合、βは何からも導出できないため、Xに続くすべてのものもAの法的なフォローであると述べています。

ルールは相互に排他的ではありません。各プロダクションにすべてのルールを適用する必要があります。プロダクションがルール1に該当する場合は、ルール2を実行しません。FOLLOWセットが安定し、何も追加されなくなるまで、すべてのルールを実行します。

于 2012-08-21T17:44:10.930 に答える