Como parte del proyecto FKScript (construcción de un lenguaje de script mediante ANTLR 3 y C#) vamos a comenzar por hacer una pequeña introducción a ANTLR.
Tomando la definición de su propia web, ANTLR es una herramienta que proporciona un marco de trabajo para la construcción de reconocedores, intérpretes, compiladores y traductores de lenguajes a partir de gramáticas enriquecidas con acciones. En resumen proporciona todo lo necesario para el desarrollo de este tipo de sistemas, entre los más importantes:
- Construcción de analizadores léxicos.
- Construcción de analizadores sintácticos.
- Mecanismos de construcción y recorrido de árboles de sintaxis abstracta (AST).
- Mecanismos de tratamiento de plantillas.
- Mecanismos de detección y recuperación de errores.
Como ventajas adicionales que diferencian a ANTLR de otras herramientas similares podemos citar la posibilidad de generar el código de salida en diferentes lenguajes como Java, C, C++, C# o Python, y el hecho de disponer de un entorno de desarrollo propio llamado ANTLRWorks que nos permitirá construir de una forma bastante amigable las gramáticas de entrada a la herramienta, proporcionando representaciones gráficas de las expresiones y árboles generados, e incluyendo un intérprete y depurador propio.
Como recursos para empezar a conocer esta herramienta recomiendo los siguientes:
- Web principal de ANTLR
- Web principal de ANTLRWorks
- Wiki de documentación (Docs, Tutoriales, Ejemplos…)
- Libro: The Definitive ANTLR Reference – Building Domain-Specific Languages
A medida de avancemos en la construcción de nuestro sistema de scripts trataré de ir comentando muchas de las posibilidades que ofrece ANTLR para el desarrollo de cada módulo, publicando ejemplos y por supuesto los fuentes completos del sistema.