| Line | |
|---|
| 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 |
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.