Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. %{
  2. #include <stdio.h>
  3. //EJEMPLO DE PATRONES LÉXICOS
  4. %}
  5. %option noyywrap
  6. digitos [0-9]
  7. letras [a-zA-Z]
  8. 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"
  9. %%
  10. ("/*"[^/]*"*/")|("//".*) {printf("COMENTARIOS: %s\n",yytext);}
  11. {palabrasreservadas} {printf("PALABRAS RESERVADAS: %s\n",yytext);}
  12. (("-"|""){digitos}+) {printf("ENTEROS: %s\n",yytext);}
  13. (("-"|""){digitos}*"."{digitos}+)|(("-"|""){digitos}+"."{digitos}*) {printf("DECIMALES: %s\n",yytext);}
  14. \".*\" {printf("CADENAS: %s\n",yytext);}
  15. ({letras}({letras}|{digitos})*) {printf("IDENTIFICADORES: %s\n",yytext);}
  16. "#include <"(.*)*">" {printf("CABECERAS: %s\n",yytext);}
  17. .|\n {/*no hace nada con el resto*/}
  18. %%
  19.  
  20.  
  21. int main(int argc, char * argv[]){
  22. //Si le pasamos un fichero como argumento lo abrirá y procesará
  23. if(argc== 2){
  24. yyin = fopen(argv[1], "rt");
  25. if(yyin== NULL){
  26. printf("El fichero %s no se puede abrir\n", argv[1]);
  27. exit(1);
  28. }
  29. } else yyin = stdin;
  30. yylex();
  31. return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement