%option noyywrap %{ #include #include %} DIGIT [0-9] NUM {DIGIT}+(\.{DIGIT}+)? LETTER [a-zA-Z] ID {LETTER}({LETTER}|{DIGIT})* %% [ ] { /* skip blanks */ } [iI][fF] {return IF;} {NUM} {yylval.value = atof(yytext); return NUM;} {ID} {yylval.lexeme = strdup(yytext); return ID;} "+" {return '+';} "-" {return '-';} "*" {return '*';} "/" {return '/';} ";" {return ';';} . { } %%