ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Herramienta Flex


Enviado por   •  10 de Mayo de 2013  •  414 Palabras (2 Páginas)  •  648 Visitas

Página 1 de 2

Practica 8: Investigación de la herramienta Flex para generar automáticamente un analizador léxico.

Alumna: MARIA GEROGINA BAHO ESQUIVEL

Desarrollo:

FLEX

Flex es una herramienta para generar escáneres. Un escáner, a veces llamado un tokenizer, es un programa que reconoce los patrones léxicos en el texto. El programa Flex lee los ficheros de entrada especificados por el usuario, o la entrada estándar si no se dan los nombres de archivo, para una descripción de un escáner a generar. La descripción está en la forma de pares de expresiones regulares y código C, denominadas reglas. Flex genera un fichero fuente C llamado, "lex.yy.c", que define la función yylex (). El archivo "lex.yy.c" se compila y se enlaza para producir un ejecutable. Cuando se ejecuta el ejecutable, este analiza su entrada en busca de casos de texto que coincidan con las expresiones regulares para cada regla. Cuando se encuentra una coincidencia, se ejecuta el código C correspondiente.

¿Cómo se especifican los patrones? Cada patrón es una expresión regular.

Algunos de los patrones que se pueden utilizar son:

¿Cuál es la estructura de un programa en FLEX?

Consta de tres secciones.

En la primera sección (opcional) se especifican definiciones básicas que serán

Reutilizadas en otras secciones.

La segunda sección está compuesta de parejas: patrón acción. En la que patrón es una expresión regular y acción es un conjunto se sentencias en C de la forma

{sentencia1; sentencia2; …; sentenciaN;}.

Estas sentencias especifican las acciones a realizar cuando se localiza el patrón asociado. Cada sección se separa de la siguiente mediante el empleo de una línea que contiene únicamente “%%”. En la tercera sección (opcional) se especifican funciones auxiliares que, entre otras cosas, pueden ser utilizadas en la parte acción de la segunda sección.

¿Cómo se compila un programa FLEX?

Supóngase que se tiene el programa “ejemplo.fl” que contiene una especificación correcta de un fichero FLEX. La primera acción a realizar es transformarlo en un programa en C, para ello se utiliza el siguiente comando: Flex ejemplo.fl Como resultado se obtendrá un fichero denominado “lex.yy.c” que, al ser un programa en C, puede ser compilado mediante el siguiente comando: gcc lex.yy.c –lfl. Como resultado se obtiene un fichero ejecutable “a.out”

¿Cómo se especifica la entrada al analizador?

Por defecto se utiliza la entrada y la salida estándar, aunque se pueden redireccionar. Por ejemplo, $ a.out <datos >res almacena en el fichero “res” el resultado de ejecutar el analizador a.out (programa flex ya compilado con gcc) con el texto almacenado en el fichero “datos”.

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com