LR (1) kapanışlarını hızlı bir şekilde hesaplamak için Warshall algoritmasını uygulamaya çalışıyorum. GrafiğinKanonik LR (1) ayrıştırıcı kapanışlarını belirlemek için geçiş kapanması için Warshall algoritması nasıl kullanılır?
- düğümleri, LR items olan
A → B • C
- gibi kenarları
A → B • C
denC → • D
başlayan "geçişler" şunlardır:
Ben I (0) o LR nasıl çalıştığını anlamak düşünmek
Sorun şu ki, LR (1) lookah hesaplarının hesaplanmasını gerektirir ve bunları algori'ye nasıl dahil edeceğimi anlayamıyorum thm.
'u bildiğim halde, herhangi bir LR öğesinin hala geçişinin geçici olarak kapatılması, sadece her bir öğe için hangi görünümün ayarlandığını bulmak için aynı hesaplamadan geçmesi gerekir.
Kanonik LR (1) kapaklarını hesaplamak için Warshall algoritmasını kullanmak mümkün mü, yoksa daha kısıtlı durumlarda (LR (0), SLR (1), vb.) Mümkün mü?
+1 Teşekkürler! Aslında (uzun bir süre sonra) herhangi bir algoritma kullanmamıştım, çünkü ne kadar uzun süre baktım ki, iyileşme için daha az potansiyel oda gördüm. Oldukça acı verici olsa da kendi LR (k) ayrıştırıcı jeneratörü hazırladım! (Her k için çalışır, ancak dilbilgisine bağlı olarak katlanarak katedilebilir.) – Mehrdad