Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Flex
Flex
Historia
Flex es una alternativa de software libre a la lex. Se utiliza con frecuencia con el generador de
analizadores sintcticos Bison. A diferencia de Bison, Flex no es parte del proyecto GNU. Flex fue
escrito en C por Vern Paxson alrededor de 1987. l estaba traduciendo un generador Ratfor, el cual
haba sido dirigido por Jef Poskanzer.
Existe un escner lxico similar para C ++ es flex++, que se incluye como parte del paquete de flex.
Caractersticas
Flex es una herramienta para generar analizadores lxicos. Un analizador lxico es un programa que
reconoce patrones lxicos en el texto. El programa flex lee los ficheros de entrada dados, o la
entrada estndar si no se dan los nombres de archivo, para una descripcin de un analizador a
generar. La descripcin es en forma de pares de expresiones regulares y cdigo C, denominadas
reglas. Flex genera como salida un fichero fuente C, lex.yy.c por defecto, lo que define una rutina
yylex (). Este archivo puede ser compilado y vinculado con la biblioteca de tiempo de ejecucin de
la flexin para producir un ejecutable. Cuando se ejecuta el archivo ejecutable, este analiza su
entrada para las ocurrencias de las expresiones regulares. Siempre que encuentra uno, ejecuta el
cdigo C correspondiente.
Ventajas
Ofrece dos maneras distintas de generar analizadores para usar con C++. Una de ellas es
simplemente compilar un analizador generado por flex usando un compilador de C++ en lugar de
un compilador de C.
Se puede utilizar para generar un analizador como una clase de C++, utilizando la opcin -+
Una alternativa de software libre a la lex.
Desventajas
El ajuste dinmico del buffer de entrada es lento, ya que conlleva el re anlisis de todo el texto
hasta el momento por el (generalmente enorme) token actual.
Debido al tanto de buffers de entrada y lecturas por adelantado, no puede entremezclar llamadas
a <stdio.h> rutinas, tales como, por ejemplo, `getchar () ', con flex reglas y esperar que funcione.
Llame a `input () 'en su lugar.
Las flex algoritmos internos necesitan documentacin.
Incompatibilidades con lex y POSIX.
Aplicaciones
Adems de para construir compiladores e intrpretes, los analizadores lxicos se pueden emplear
para muchos programas convencionales. Los ejemplos ms claros son aquellos programas que
tienen algn tipo de entrada de texto donde hay un formato razonablemente libre en cuanto a
espacios y comentarios. Un analizador lxico simplifica notablemente la interfaz y si se dispone de
un generador automtico, el problema se resuelve en pocas lneas de cdigo.
Ejemplo
Referencias
Paxson V. (1995). Flex, version 2.5 A fast scanner generator. Recuperado el 15 de febrero del 2015
de: http://dinosaur.compilertools.net/flex/index.html
Universitat Jaume. (2008). Procesadores de lenguaje. Analizador lxico [PDF file]. Recuperado el
15 de febrero del 2015, de: http://ocw.uji.es/material/5195/raw