Utilizo las clases de Lexer y Analizador generadas por la herramienta ANTLR (dirigida a C#). Supongamos que he analizado un código y obtuve un árbol AST para él. ¿Qué ocurre si parte de mi código inicial ha cambiado y quiero actualizar solo las partes correspondientes del árbol? ¿Hay una manera común de hacer eso? Por ejemplo, se insertó una línea de código dentro del cuerpo de algunas funciones. Y quiero reconstruir solo la parte del árbol que representa esta función y actualizar las posiciones de las funciones siguientes tokensActualización del árbol AST de ANTLR
5
A
Respuesta
1
Existen algunos proyectos que hacen lo que usted puede querer lograr. Pero no sé si ANTLR lo admite. Puede consultar: http://en.wikipedia.org/wiki/Incremental_compiler
Para el resaltado de sintaxis solo propongo, sugiero usar expresiones regulares para los diferentes tokens en su sintaxis. (Si actualiza solo la línea en la que está trabajando, no debería tener ningún problema de rendimiento.)
Cuestiones relacionadas
- 1. reglas antlr AST fallar con RewriteEmptyStreamException
- 2. Visualizar un AST creado con ANTLR (en un entorno .Net)
- 3. ANTLR Precedencia del operador
- 4. C# ANTLR gramática?
- 5. Generación de un árbol de sintaxis abstracto para el código fuente de java con ANTLR
- 6. Clang: ¿Cómo se ve AST (árbol de sintaxis abstracta)?
- 7. intérprete AST?
- 8. Fichas Antlr del archivo
- 9. Obtener gráfico de flujo de control del árbol de sintaxis abstracta
- 10. Elegante modelo AST
- 11. ANTLR: ¿Obtener nombre de token?
- 12. ¿Cómo generar AST a partir del código fuente de Java?
- 13. javac.exe AST programmatic access example
- 14. Scala AST en Scala
- 15. ANTLR: indentación de espacio?
- 16. Árbol binario del árbol general
- 17. Entender árboles en ANTLR
- 18. ¿Puedo obtener AST del código scala en vivo?
- 19. ¿Cómo extraer AST del código Objective-C?
- 20. Tutorial para caminar ANTLR ASTs en C#?
- 21. Analizador de Haskell para AST
- 22. Convertir el árbol de sintaxis abstracto en código de bytes
- 23. ¿Cómo construir manualmente un AST?
- 24. Implementando goto en un ast
- 25. ¿Puedo eliminar dependencias ANTLR del código generado?
- 26. Acceda al árbol de sintaxis abstracto del motor V8
- 27. Flex: La actualización de un control de árbol
- 28. Nodos de visita en un árbol de sintaxis con Python ast módulo
- 29. Python ast to dot graph
- 30. ¿Traducir el código de C# en AST?
Después de haber cambiado el árbol, ¿qué desea hacer a continuación? Supongo, regenerar el texto fuente. ¿Con comentarios? Diseño original? ...? –
Solo quiero tener un árbol AST relevante. Digamos que quiero administrar el intellisense para algunos IDE – Natalia
¿Cómo sabrías qué partes de tu AST en realidad se vieron afectadas por el cambio? – stryba