Además del tipo de terminal y su valor el analizador
léxico deberá devolver el número de línea.
El analizador léxico deberá aceptar comentarios C.
En la gramática, el terminal CHARACTER
se refiere a
caracteres entre comillas simples (por ejemplo 'a'
).
El terminal STRING
se refiere a
caracteres entre comillas dobles (por ejemplo "hola"
).
Se aconseja que las palabras reservadas del lenguaje
no se traten con expresiones regulares específicas sino que se
capturen en el patrón de identificador [a-z_]\w+
.
Se mantiene para ello un hash con las palabras reservadas
que es inicializado al comienzo del programa. Cuando
el analizador léxico encuentra un identificador
mira en primer lugar en dicho hash
para ver si es una palabra reservada y,
si lo es, devuelve el terminal correspondiente.
En caso contrario se trata de un identificador.