blob: be983d1dee43ca9daf1f6937579b18c8467335dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
%{
#include "parser.h"
#define YY_USER_ACTION yylloc.first_line = yylloc.last_line = yylineno;
%}
%option noyywrap
DIGIT [0-9]
%%
"-" { return MINUS; }
"+" { return PLUS; }
"*" { return MULT; }
"/" { return DIV; }
"=" { return EQUAL; }
"(" { return L_PAREN; }
")" { return R_PAREN; }
(\.{DIGIT}+)|({DIGIT}+(\.{DIGIT}*)?([eE][+-]?[0-9]+)?) {
yylval.dval = atof(yytext);
return NUMBER;
}
[ \t]+ { /* ignore spaces */ }
"\n" { return END; }
. {
printf(
"Error at line %d: unrecognized symbol \"%s\"\n",
yylloc.first_line,
yytext);
exit(0);
}
%%
|