El paquete haskell-src-exts tiene funciones para imprimir bastante un Haskell AST. Lo que quiero hacer es cambiar su comportamiento en ciertos constructores, en mi caso la forma en que se imprimen los pragmas de SCC. Entonces, todo lo demás debe imprimirse de la manera predeterminada, solo los SCC se manejan de manera diferente. ¿Es posible hacerlo sin copiar el source file y editarlo, que es lo que estoy haciendo ahora?Modificación de la impresora bonita de haskell-src-exts
5
A
Respuesta
2
Bueno, la biblioteca ha hecho una cosa bien, usando una clase de tipo para Pretty. El desafío entonces es cómo seleccionar una instancia diferente para los constructores que desea imprimir de manera diferente. Lo ideal sería que teclearas de nuevo el nodo AST que te interese y, de algún modo, lo sustituyeses en AST.
Ahora, el problema aquí es que el AST Haskell exportado por la biblioteca tiene su estructura de tipos fija. No es así, p. use two-level types, que le permitiría sustituir los nuevos tipos por partes del árbol. Entonces, debería redefinir el tipo de AST hasta el nodo donde desea cambiar el tipo de.
Cuestiones relacionadas
- 1. ¿Impresora bonita para T-SQL?
- 2. Impresora XML bonita de Python con lxml
- 3. Un embellecedor de PHP/formateador/bonita impresora?
- 4. ocaml impresora bonita (formateador de código)
- 5. una impresora bonita "para gobernarlos a todos"
- 6. Cómo escribir una impresora bonita personalizada
- 7. formateador de código Java autónomo/embellecedor/bonita impresora?
- 8. ¿Hay una impresora bonita para datos de Python?
- 9. ¿Hay un formateador de código PowerShell/impresora bonita?
- 10. Impresora XML bonita de Python para cadena XML
- 11. Formateo de la bonita copia de Ruby
- 12. Java impresión bonita de duración
- 13. Cambio de las bandejas de la impresora
- 14. de Configuración de la impresora en .NET
- 15. Impresora de recibos?
- 16. formato XML, impresión bonita
- 17. Fuerza la impresora de destino en Java
- 18. Información extendida de la impresora en Java
- 19. C# PrintDocument y estado de la impresora
- 20. Lectura del estado de la impresora Zebra
- 21. C# compruebe el estado de la impresora
- 22. Bonita impresión en Clojure
- 23. Conexión de la impresora con la tableta de Android
- 24. Bonita barra de progreso en java
- 25. Impresión bonita de archivos XML en Emacs
- 26. Modificación de archivo atómico
- 27. ¿La mejor biblioteca de impresión bonita para Java?
- 28. Última modificación de carpetas
- 29. Modificación de Django UserCreationForm
- 30. Yii modificación indirecta de la propiedad sobrecargada
¿Cómo podría usarse esta técnica para reemplazar un nodo en el AST? Digamos que quiero reemplazar (en las definiciones del documento citado) 'Arith' en' Término' con algún tipo personalizado 'MyArith'. ¿No se fija 'Término' con su definición para usar 'Arith'? –