1 /* 2 * expr.lex : Scanner for a simple 3 * expression parser. 4 */ 5 6 %{ 7 #include "y.tab.h" 8 9 %} 10 11 %% 12 13 [0-9]+ { yylval.val = atol(yytext); 14 return(NUMBER); 15 } 16 [0-9]+\.[0-9]+ { 17 sscanf(yytext,"%f",&yylval.val); 18 return(NUMBER); 19 } 20 "+" return(PLUS); 21 "-" return(MINUS); 22 "*" return(MULT); 23 "/" return(DIV); 24 "^" return(EXPON); 25 "(" return(LB); 26 ")" return(RB); 27 \n return(EOL); 28 [\t ]* /* throw away whitespace */ 29 . { yyerror("Illegal character"); 30 return(EOL); 31 } 32 %% 33 34 35 36