Python ithalat süzgeci veya önişlemci, özellikle Python olan ve ekstra dil öğeleri olan bir kaynak dosya yazmak istiyorum. Amaç, kaynak dosyayı okumak, soyut bir sözdizim ağacına dönüştürmek, dilin yeni bölümlerini uygulamak için bazı dönüşümleri uygulamak ve daha sonra CPython tarafından tüketilebilecek geçerli bir Python kaynağı yazmaktır. Bu şeyi Python'da yazmak istiyorum ve görev için en iyi ayrıştırıcıyı arıyorum.Python'a benzer dil için Python ayrıştırıcısı
Python'da yerleşik çözümleyici uygun değildir, çünkü kaynak dosyaların gerçek Python olmasını gerektirir, bunlar olmayacaktır. Python ile çalışacak tonlarca parser (ya da ayrıştırıcı jeneratörü) var, ama bir sürü araştırma yapmadan ihtiyaçlar için hangisinin en iyisi olduğunu söylemek zor.
Özetle, benim gereksinimleri:
- Ayrıştırıcı Python ile yazılmış veya Python bağlarını sahiptir.
- Yapabileceğim bir Python dilbilgisi ile birlikte gelir veya başka bir yerde (http://docs.python.org/reference/grammar.html gibi) kullanılabilir bir tweakable Python dilbilgisini kolayca tüketebilir.
- dönüştürülmesi sonrasında AST yeniden serialize. API-wise ile çalışmak için çok korkunç olmamalıdır.
Herhangi bir öneriniz var mı?
parser Daha açıkçası zaten var: Eğer ayrıştırmak istediğiniz dil saf Python olarak bile * ayrıştırma * yapar. Doğru? –
PyYAML'a bakmayı düşündünüz mü? – inspectorG4dget
@SvenMarnach: Bu doğru. – kindall