%{ /* C definitions */ #define YY_SKIP_YYWRAP int yywrap(void) { return 1; } %} /* definitions */ %option always-interactive delim [ \t] ws {delim}+ letter [A-Za-z] digit [0-9] ident {letter}({letter}|{digit})* number {digit}+(\.{digit}+)?(E[+\-]?{digit}+)? %% /* rules */ {ws} { putchar('_'); } {number} { printf(""); ECHO; printf(""); } {ident} { printf(""); ECHO; printf(""); } "." { ECHO; exit(1); } .|\n { ECHO; } %% /* user code */ int main(void) { return yylex(); }