2012-01-16 14 views

cevap

3

GHC API'sinin bir AST arabirimi ortaya çıkardığını sanmıyorum (yine de yanlış olabilir), ancak Template Haskell bunu yapıyor. Language.Haskell.THExp yapısını kullanarak ifadeler oluşturursanız, işlevleri/bildirimleri oluşturabilir ve bunlardan $(someTHFunction) sözdizimini kullanarak yararlanabilirsiniz.

Oldukça büyük bir uyarı, TH'nin sadece derleme zamanında çalışmasıdır, bu yüzden her şeyi önceden oluşturmanız gerekir. Eğer TH'yi çalışma zamanında kullanmak istiyorsanız, ben şablonun AST'sini güzelce basmanız, sonra elde edilen dizgede GHC API'sini kullanmanız gerektiğini düşünüyorum.

+1

Ayrıca, Şablon Haskell kaynak kodunu oluşturabilirim. Bu, AST ifadeleri oluşturma ve Haskell metin kaynağı oluşturma arasında uzlaşma olarak düşünülebilir. – modular