Un fichero de entrada para lex
1 %{2 #include <string.h>3 #include <stdlib.h>4 #include "tokens.h" /* El fichero donde se definen los tokens */56 int charPos=1;7 int yywrap(void) {8 charPos = 1;9 return 1;10 }1112 int lineNum = 1;13 14 /* Definiciones para Lex: */15 %}16 blanco [ \t]+17 newline \n18 D [0-9]19 letra [a-zA-Z]20 alnum {D}|{letra}21 id {letra}{alnum}*22 23 /* Expresiones regulares/acciones */24 %%25 {blanco} {continue;}26 \n {lineNum++; continue;}27 {D}+ {yylval.val.i=atoi(yytext); return INT;}28 ({D}+|{D}*\.{D}+|{D}+\.{D}*)(e{D}+)? {yylval.val.f=atof(yytext); 29 return REAL;}30 {id} {yylval.val.s=yytext; return ID;}31 . {error(yylval.pos, "Token desconocido");}32 %%