home *** CD-ROM | disk | FTP | other *** search
-
- (* EXPRLEX.L: lexical analyzer for EXPR.Y *)
- {$I expr.h}
-
- digit [0-9]
- real {digit}+(\.{digit}+)?([Ee][+\-]?{digit}+)?
-
- %%
-
- var result : integer;
-
- {real} begin
- val(yytext, yylval.number, result);
- if result=0 then
- return(NUMBER)
- else
- return(ILLEGAL)
- end;
-
- [a-zA-Z] begin
- yylval.variable := succ(ord(upcase(yytext[1]))-ord('A'));
- return(VARIABLE)
- end;
- ^\. return(EOF);
- . |
- \n return(ord(yytext[1]));