Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %{
- #include <stdio.h>
- //EJEMPLO DE PATRONES LÉXICOS
- %}
- %option noyywrap
- digitos [0-9]
- letras [a-zA-Z]
- palabrasreservadas "auto"|"break"|"case"|"char"|"const"|"continue"|"default"|"do"|"double"|"else"|"enum"|"extern"|"float"|"for"|"goto"|"if"|"int"|"long"|"register"|"return"|"short"|"signed"|"sizeof"|"static"|"struct"|"typedef"|"union"|"unsigned"|"void"|"volatile"|"while"
- %%
- ("/*"[^/]*"*/")|("//".*) {printf("COMENTARIOS: %s\n",yytext);}
- {palabrasreservadas} {printf("PALABRAS RESERVADAS: %s\n",yytext);}
- (("-"|""){digitos}+) {printf("ENTEROS: %s\n",yytext);}
- (("-"|""){digitos}*"."{digitos}+)|(("-"|""){digitos}+"."{digitos}*) {printf("DECIMALES: %s\n",yytext);}
- \".*\" {printf("CADENAS: %s\n",yytext);}
- ({letras}({letras}|{digitos})*) {printf("IDENTIFICADORES: %s\n",yytext);}
- "#include <"(.*)*">" {printf("CABECERAS: %s\n",yytext);}
- .|\n {/*no hace nada con el resto*/}
- %%
- int main(int argc, char * argv[]){
- //Si le pasamos un fichero como argumento lo abrirá y procesará
- if(argc== 2){
- yyin = fopen(argv[1], "rt");
- if(yyin== NULL){
- printf("El fichero %s no se puede abrir\n", argv[1]);
- exit(1);
- }
- } else yyin = stdin;
- yylex();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement