El analizador léxico es el primer componente del compilador, el cual genera componentes léxicos que enviara al analizador sintáctico. Dichos componentes se generan a partir de un análisis detalladode la entrada de datos (caracteres) en el cual existen diferentes componentes a tener en cuenta tales como las palabras claves, los operadores, entre otros. Existen diferentes herramientas para lageneración de analizadores léxicos como por ejemplo: AT&T Lex (más común en UNIX) MKS Lex (MS-Dos) Flex Abraxas Lex Posix Lex ScanGen JLex En este caso, se realizara el análisis de laherramienta Flex. La acción de Flex es traducir la especificación de un analizador léxico a una aplicación C que lo implementa. El analizador léxico es descrito mediante expresiones regulares a las que sele pueden asociar acciones (escritas en código C) de la siguiente manera: patrón1 { acción1} patrón2 { acción2} ....... patrónk { acciónk} En donde el patrón será la expresión regular, y la acción seráel código C que representa las acciones a realizar. Cada vez que el analizador encuentra una secuencia que encaja con una de las expresiones regulares, ejecutara la acción asociada. Flex recibe lasespecificaciones del analizador léxico en un fichero, el cual al pasar por este, genera un archivo C llamado lex.yy.c en el cual están contenidos tablas de autómata generado y la función intyylex(void) que simula el analizador especificado y sirve de interfaz con el código de usuario. (yylex() deberá de ser llamada en algún punto del código del usuario) En cada llamada, yylex() irá tomandocaracteres de la entrada hasta que machee una de las expresiones regulares de la especificación. Entonces, se almacenará el texto que ha macheado la expr. reg. en la variable yytext y se ejecutarán lasacciones asociadas al patrón. Las acciones podrán ser simplemente el procesamiento del texto analizado y enviarlo de nuevo a la salida.
En otras ocasiones podrán suponer la alteración de varíables...
Leer documento completo
Regístrate para leer el documento completo.