La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.

Presentaciones similares


Presentación del tema: "Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo."— Transcripción de la presentación:

1 Compiladores Análisis Léxico Oscar Bonilla obonilla@galileo.edu Universidad Galileo

2 Flex Generador de Analizadores Léxicos diseñado por Vern Paxson Definiciones % Reglas % Código de usuario Formato del archivo de entrada Definiciones: %{ literal %}

3 Ejemplo /* un scanner para un lenguaje similar a Pascal */ %{ #include %} DIGIT[0-9] ID [a-z][a-z0-9]* :

4 Ejemplo % {DIGIT}++{ printf( "An integer: %s (%d)\n", yytext, atoi(yytext)); } {DIGIT}+"."{DIGIT}*{ printf("A float: %s (%g)\n", yytext, atof(yytext)); } if|then|begin|end|procedure|function{ printf("A keyword: %s\n", yytext ); } {ID}printf ("An identifier: %s\n", yytext); "+"|"-"|"*"|"/"printf("An operator: %s\n", yytext); "{"[^}\n]*"}" /* eliminar comentarios */ [ \t\n]+/* eliminar blancos */.printf ("Invalid token: %s\n", yytext);

5 Ejemplo % main(int argc, char** argv) { ++argv, --argc; if (argc > 0) yyin = fopen(argv[0], "r"); else yyin = stdin(); yylex(); }

6 ¿Cómo lo corremos? ● Lo guardamos en un archivo (pascal.lex) $ flex pascal.lex $ cc -o pascal lex.yy.c $./pascal prueba.pas.....


Descargar ppt "Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo."

Presentaciones similares


Anuncios Google