Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porCruzita Escobar Modificado hace 9 años
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.....
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.