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