ANTLR aracı (C# hedefleme) tarafından oluşturulan Lexer ve Parser sınıflarını kullanıyorum. Bazı kodları ayrıştırdığımı ve bunun için bir AST ağacı aldığımı varsayalım. İlk kodumun bir kısmı değiştiyse ve ağacın sadece ilgili kısımlarını güncellemek isterse ne olur? Bunu yapmanın ortak bir yolu var mı? Örneğin, bazı işlevler gövdesine bir kod satırı eklenmiştir. Ve bu işlevi temsil eden ağacın sadece bir parçasını yeniden oluşturmak ve sonraki işlevlerin belirteçleri güncellemelerini yeniden oluşturmak istiyorumANTLR AST ağacı güncelleştirmesi
5
A
cevap
1
Orada gerçekleştirmek isteyebileceğiniz şeyleri içeren birkaç proje var. Ama ANTLR bunu destekleyip desteklemediğini bilmiyorum. Bir göz atabilirsin: http://en.wikipedia.org/wiki/Incremental_compiler
Yalnızca sözdizimi vurgulama önermek için sözdiziminizdeki farklı belirtecin düzenli ifadesini kullanmanızı öneririm. (Üzerinde çalıştığınız satırı güncelleştirirseniz, herhangi bir performans sorunu yaşanmaz.)
İlgili konular
- 1. YACC çıktısını bir AST (simge ağacı) yapılıyor
- 2. Clang: AST (soyut sözdizimi ağacı) neye benziyor?
- 3. ANTLR AST kuralları basit bir gramere sahip RewriteEmptyStreamException
- 4. AST
- 5. AST tercüman?
- 6. Lambda fonksiyonunun ast gösterimi
- 7. javac.exe AST programatik erişim örneği
- 8. OCaml AST kayıt tipi gösterimi
- 9. ANTLR "alt ağacın beklenmedik sonu"
- 10. Python AST işlenmesi
- 11. ANTLR ile oluşturulan bir AST'yi görselleştirme (.Net ortamında)
- 12. Linq Güncelleştirmesi
- 13. ANTLR: Boşluk girintisi?
- 14. Antlr v4: 'eşleşmeyen girdi'
- 15. Dosyadan Antlr belirteci
- 16. CAPTURE bağlayıcılı AST nasıl oluşturulur?
- 17. AST'den yükseltme AST :: spirit ayrıştırıcı
- 18. HQL beklenmedik AST düğümü: {vector}
- 19. nasıl antlr 4 TokenStream kullanılır?
- 20. XText'in sağlamadığı ANTLR özellikleri nelerdir?
- 21. Ayrıştırma JavaScript düzenli ifade antlr
- 22. Basit Antlr dilbilgisini Xtext'e dönüştürme
- 23. ScrollView içerik güncelleştirmesi
- 24. Android Sqlite güncelleştirmesi
- 25. Excel Köprü toplu güncelleştirmesi
- 26. Excel Çalışma Kitabı Güncelleştirmesi
- 27. JTable Hücre Güncelleştirmesi çalışmıyor
- 28. GözlemlenebilirArray güncelleştirmesi UI'yi güncelleştirmiyor
- 29. Mongoose güncelleştirmesi devam ediyor
- 30. Varlık-Çerçeve otomatik güncelleştirmesi
Ağacı değiştirdikten sonra, ne yapmak istersiniz? Sanırım kaynak metinleri yeniden oluşturuyorum. Yorumlar ile? Orijinal düzen? ...? –
Sadece AST ağacına sahip olmak istiyorum. Bazı IDE – Natalia
için intellisense'i yönetmek istediğimi varsayalım AST'nin hangi bölümlerinin değişiklikten etkilendiğini nasıl bilebilirdiniz? – stryba