Descargar, Instalar y Configurar GNU Flex en Windows 7
Este es un Manual en PDF creado por mi, espero les sirva de ayuda ya que yo estoy estudiando la Ingeniería en Informática y me costo un poco el poder configurar correctamente el Flex, este flex es de la familia GNU de Linux que es una herramienta de análisis léxicos, (Tokens).
Descarga directa desde Google Docs
No Hagan caso a lo de Megaupload
https://docs.google.com/file/d/0B24Y5mz5lesXSFhXMG4tb1FmVkk/edit
contiene el manual
este es el código del automata1.l
%{
#include <stdio.h>
#include <conio.h>
int num_lineas = 0, num_caracteres = 0;
%}
%option noyywrap
%option yylineno
letra [a-zA-Z]
digito [0-9]
binario [0-1]
ignora " "|t|n
operarit *|+|-|/
operlog &|$
comparador <|>|<=|>=|==|!=
%%
{ignora}+ {;}
{letra}({letra}|{digito})* {printf("IDENTIFICADORn" );}
{letra}+ {printf("CADENAn" );}
{binario}+ {printf("BOOLEANOn" );}
{digito}+ {printf("ENTEROn" );}
{digito}+"."{digito}+ {printf("REALn" );}
{comparador} {printf("COMPARADORn" );}
":=" {printf("ASIGNADORn" );}
";" {printf("PUNTO_COMAn" );}
"!=" {printf("DIFERENCIAn" );}
"," {printf("COMAn" );}
"==" {printf("IGUALn" );}
"." {printf("PUNTOn" );}
">=" {printf("MAYOR_IGUALn" );}
"<=" {printf("MENOR_IGUALn" );}
"(" {printf("OPEN_PARENTESISn" ) ;}
" ) " {printf("CLOSE_PARENTESISn" ) ;}
">" {printf("MAYORn" );}
"<" {printf("MENORn" );}
"{" {printf("OPEN_LLAVEn" );}
"}" {printf("CLOASE_LLAVEn" ) ;}
"+" {printf("SUMAn" );}
"-" {printf("RESTAn" );}
"*" {printf("MUTIPLICACIONn" ) ;}
"/" {printf("DIVISIONn" ) ;}
"&" {printf("ANDn" ) ;}
"$" {printf("ORn" ) ;}
n ++num_lineas;
. {printf("ERROR LEXICO EN LINEA %d n",yylineno);}
%%
int main(int argc,char *argv[])
{
char NomArch[30];
printf("Ingrese nombre de archivo: " );
gets(NomArch);
if ((yyin = fopen(NomArch, "rt" )) == NULL)
{
printf("nNo se puede abrir el archivo: %sn", NomArch);
}
else
{
yylex();
}
fclose(yyin);
getch();
return 0;
}