¿Podemos usar la API GHC o algo más para cargar no módulos fuente de texto, sino expresiones AST, similares a haskell-src-exts Exp
type? De esta forma podríamos ahorrar tiempo para la generación y el análisis de código.Carga dinámica de la expresión de sintaxis abstracta de Haskell
5
A
Respuesta
3
No creo que la API GHC exponga una interfaz AST (aunque podría ser incorrecta), pero Template Haskell sí. Si crea expresiones utilizando la estructura Language.Haskell.TH
Exp
, puede crear funciones/declaraciones y hacer uso de ellas mediante la sintaxis $(someTHFunction)
.
Una advertencia bastante importante es que TH solo se ejecuta en tiempo de compilación, por lo que tendría que pregenerar todo. Si desea utilizar TH en tiempo de ejecución, creo que debería imprimir bastante la plantilla haskell AST, luego use la API de GHC en la cadena resultante.
Cuestiones relacionadas
- 1. cadena de árbol de sintaxis abstracta
- 2. Cómo construir un árbol de sintaxis abstracta
- 3. Sintaxis de la expresión Lambda
- 4. StructureMap Carga dinámica de
- 5. MIPS palabra de carga sintaxis
- 6. Haskell dinámica de tipo de datos alteración
- 7. CodeMirror Validación de sintaxis dinámica
- 8. Zephyr ADSL (de sintaxis abstracta Description Language)
- 9. Carga dinámica de módulos python
- 10. Sintaxis del registro de Haskell
- 11. grupo LINQ por la sintaxis de expresión
- 12. Error de sintaxis en la expresión condicional
- 13. secuencia de comandos dinámica carga de sincronización
- 14. Carga dinámica de bibliotecas compartidas de Linux?
- 15. ¿Cuál es la diferencia entre un árbol de sintaxis abstracta y un árbol de sintaxis concreta?
- 16. la espera de secuencia de comandos de carga dinámica
- 17. Excepciones extrañas compiladas de forma dinámica expresión
- 18. La extensión de Perl se está rompiendo la carga dinámica
- 19. Haskell regex sintaxis
- 20. Carga dinámica de módulos en Java
- 21. Carga dinámica de imágenes en WPF
- 22. Anotación personalizada de Java y carga dinámica
- 23. Implementación dinámica para clase de interfaz/abstracta en Java
- 24. Carga dinámica de objetos compartidos usando dlopen()
- 25. simple consulta TSQL dinámica sintaxis
- 26. ¿Cómo crear una matriz dinámica de una clase abstracta?
- 27. Sintaxis Haskell para una expresión de caso en un bloque do
- 28. Construcción y recorrido del árbol de sintaxis abstracta
- 29. Problema con la carga dinámica de ensamblados en .NET
- 30. Carga dinámica de imágenes R.Dibujo usando la variable
También puedo generar el código fuente de Template Haskell. Esto se puede considerar como un compromiso entre generar expresiones AST y generar fuente de texto Haskell. – modular