miércoles, 4 de septiembre de 2013

Flex en linux

Flex es una herramienta que nos permite convertir una expresión regular en un autómata y de esta manera ser usada para poder construir programas en C que usen expresiones regulares en Flex, además Flex es exclusivamente para el lenguaje de programación C.

Para los que nos gusta Java existe el JLex que es algo parecido pero para java, en breve estaré publicando información sobre JLex.

Un programa en Flex está estructurado en tres partes separadas por dos %% donde la primer parte es la declaración de variables, la segunda es para escribir las expresiones regulares  y la tercer parte es para escribir código en c en caso de ser necesario.

Funcionamiento básico en Flex (ejemplo1)
Es muy sencillo usar Flex, puesto que lo primero que debes hacer es abrir una terminal de Linux (Ej. Ubuntu) y después solo debes hacer un archivo con extención .l para poder escribir en el nuestro programa en Flex.

Ejemplo:
            1.- Abrir una terminal linux.
            2.- nano ejemplo1Flex.l
            3.- Escribir el programa, la estructura del  programa en Flex.

ejemplo1Flex.l: reconocimiento de variables o numeros enteros, al escribir caracteres determina si son variables o numeros.

********************************* ejemplo1Flex.l ******************************
 /*Primer parte del programa; declaración de variables*/
digito [0-9]
letra [a-zA-Z]

/*Luego de los %% sigue la segunda parte del programa; expresiones regulares*/
%%
{digito}{digito}*  {printf("Numero %s\n", yytext);}
{letra}({letra}|{digito})*  {printf("Variable: %s\n", yytext);}


.
%%
/*Codigo de C (si lo necesito)*/

*********************** Termina ejemplo1Flex.l ******************************
             4.- Compilarlo con Flex; escribir: flex ejemplo1Flex.l
             5.- Luego de compilarlo por default genera el archivo: lex.yy.c
            6.- Hasta el punto 5 ya esta compilado si no muestra ningún error 
                 podemos continuar compilandolo en C; escribir: 
                 gcc lex.yy.c -o ejmplo1FlexEjecutable -lfl
            7.- Ejecutarlo con: ./ejmplo1FlexEjecutable
            8.- Escribir esto: var1 dirá variable, si escribes: 589; dirá número.

Después de esto ya puedes hacer cualquier programa, compilarlo en Flex, compilarlo en C y ejecutarlo en Linux.

Puedes consultar el manual de Flex 2.5 en: http://es.tldp.org/Manuales-LuCAS/FLEX/flex-es-2.5.pdf 

Luego estaré subiendo más ejemplo, por falta de tiempo no puedo hacerlo diariamente como me gustaría ya que estoy en la Universidad, pero conforme valla podiendo lo iré haciendo.