質問

予測パーサLL(1)を使用しているとします。

のなぜ必要なのか

$ first(\ alpha)\ cap first(\ beta)=emptyset $

すべての $ \ alpha、\ beta $ 代替製品の右側、すなわち、同じ非端末に関連付けられているプロダクション。この状態が必要なのはなぜですか?

役に立ちましたか?

解決

これは直感的な説明です:

それは基本的にLL(1)パーサーの性質から次のようになります.LL(1)パーサーLL(1)解析テーブルを構築します。テーブルの行は非終端であり、列は端末です。入力内の各シンボルに遭遇したときのLL(1)のテーブルルックアップを行うこととしてLL(1)の解析を考えることができます。現在の非介護と入力端子によって決定されたエントリを調べ、対応する生産規則を適用します。したがって、LL(1)テーブルには各エントリで複数の製造規則を含めることはできません。それ以外の場合、パーサーはどのルールを適用するかを決めることができません。

$ \ alpha $ の右側の場合、 $ \ beta $ が交差する最初のセットで、LL(1)テーブル(つまり、重複/競合エントリ)の単一のエントリに複数のルールがあります。

まだこの状態が必要な理由について不明な場合は、が右側に交差する最初のセットで例を構築し、手動でLLを構築しようとすることをお勧めします。 (1)テーブルの解析またはオンライン視覚化ツール;あなたはすぐに衝突を見つけるでしょう。

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top