LR(1) クロージャーをすばやく計算するために、Warshall のアルゴリズムを実装しようとしています。
LR(0)でどのように機能するかを理解していると思います:
- グラフのノードは、次のようなLR アイテムです。
A → B • C
- エッジは、から始まる「トランジション」です
A → B • C
。C → • D
問題は、LR(1) には先読みの計算が必要であり、それらをアルゴリズムに組み込む方法がわかりません。与えられた LR アイテムの推移閉包を知っ
ていたとしても、各アイテムの先読みセットが何であるかを理解するためだけに、同じ計算をすべて行う必要があるように思えます。
ウォーシャルのアルゴリズムを使用して正規の LR(1) クロージャーを計算することは可能ですか?それとも、より制限されたケース (LR(0)、SLR(1) など) でのみ可能ですか?