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