2012-01-16 2 views

Répondre

3

Je ne pense pas que l'API GHC expose une interface AST (peut-être tort cependant), mais Template Haskell. Si vous construisez des expressions en utilisant la structure Language.Haskell.THExp, vous pouvez créer des fonctions/déclarations et les utiliser par la syntaxe $(someTHFunction). Un avertissement assez important est que TH ne fonctionne qu'au moment de la compilation, donc vous devriez tout pré-générer. Si vous voulez utiliser TH au moment de l'exécution, je pense que vous devriez imprimer le modèle haskell AST, puis utiliser l'API GHC sur la chaîne résultante.

+1

Je peux aussi générer du code source Template Haskell. Cela peut être considéré comme un compromis entre la génération d'expressions AST et la génération d'une source de texte Haskell. – modular