Pouvons-nous utiliser l'API GHC ou autre chose pour charger des modules source de texte, mais des expressions AST, similaires à haskell-src-exts Exp
type? De cette façon, nous pourrions gagner du temps pour la génération de code et l'analyse syntaxique.Chargement dynamique de l'expression de syntaxe abstraite de Haskell
5
A
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.TH
Exp
, 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.
Questions connexes
- 1. Chargement dynamique usine abstraite
- 2. Chargement du module de haskell dynamique
- 3. Erreur de syntaxe Haskell!
- 4. Haskell: Erreur de syntaxe
- 5. Erreur de syntaxe Haskell?
- 6. Haskell - Erreur de syntaxe
- 7. Haskell dynamique altération de type de données
- 8. Erreur de syntaxe dans Haskell
- 9. Erreur de syntaxe avec haskell
- 10. Syntaxe de coloration pour Haskell?
- 11. Syntaxe de Haskell par exemple
- 12. Haskell débogage - problèmes de syntaxe
- 13. Arborescence de syntaxe abstraite à typage transversal dans le compilateur Haskell
- 14. Classe abstraite dynamique à l'intérieur de la classe abstraite
- 15. Arborescence de syntaxe abstraite pour ce cas?
- 16. Arborescence de syntaxe abstraite - Phases du compilateur
- 17. Comment construire un arbre de syntaxe abstraite
- 18. F # parsing Arbres de syntaxe abstraite
- 19. Questions sur arbre de syntaxe abstraite (AST)
- 20. Haskell syntaxe de compréhension de liste
- 21. implémentation Java dynamique de la méthode abstraite
- 22. Chargement dynamique du module Haskell compilé - GHC 7.6
- 23. Impression de l'arborescence de syntaxe abstraite à l'aide de ppx_deriving
- 24. Chargement de classe dynamique
- 25. Chargement dynamique de ZeroClipboard
- 26. Chargement dynamique de JWplayer
- 27. Chargement dynamique de javascripts
- 28. Chargement dynamique de l'image.
- 29. Chargement dynamique de l'image
- 30. Chargement de classe "dynamique"
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