#Gramática
Escribir gramatica en un archivo con extensión .g4
#1. Análisis léxico-sintáctico.
En primer lugar, los análisis léxico y sintáctico parsearán todo el código, detectando y reportando posibles errores de sintaxis, y se generará un árbol de sintaxis abstracta (AST) con todos los elementos relevantes del código del programa y su estructura completa. Además, durante el análisis se creará la tabla de símbolos, que contendrá todas las variables del programa junto a su tipo y su número de orden en el programa.
El analizador léxico se encargará de reconocer y separar convenientemente los elementos básicos (tokens) del lenguaje que estamos construyendo. En la mayoría de los casos deberemos distinguir: literales de los distintos tipos de datos que existan en el lenguaje, identificadores (ya sean palabras clave o no) y deberemos definir qué se entenderá como espacio en blanco entre elementos.
#2. Análisis semántico.
A partir de la tabla de símbolos y el AST generados en el paso anterior se encargará de enriquecer dicho AST con el tipo de cada una de las expresiones referenciadas en el programa y verificará que no existen errores de tipo en el código
#3. Generación de código.
Posteriormente, y si el análisis semántico se realiza correctamente, se ejecutará la fase de generación de código, que tomará como entrada el AST enriquecido y generará a partir de él el código intermedio obtenido del programa, utilizando para ello una serie de plantillas construidas a priori. Una vez generado el fichero con el código intermedio se llamará al ensamblador, que transformará dicho código en un fichero binario ejecutable por la máquina virtual. Durante el proceso de ensamblado se realizarán las siguientes tareas: