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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
%interactive
%filenames scanner
digits [0-9]+
e [eE]
sign [-+]
%%
[ \t]+
{digits} return Parser::INT;
{digits}"." |
{digits}"."{digits} |
{digits}{e}{sign}{digits} |
{digits}"."{e}{sign}{digits} |
{digits}"."{digits}{e}{sign}{digits} |
"."{digits} |
"."{e}{sign}{digits} |
"."{digits}{e}{sign}{digits} return Parser::DOUBLE;
"'"."'" return Parser::CHAR;
"+=" return Parser::ADDA;
"-=" return Parser::SUBA;
"*=" return Parser::MULA;
"/=" return Parser::DIVA;
"%=" return Parser::MODA;
"&=" return Parser::ANDA;
"^=" return Parser::XORA;
"|=" return Parser::ORA;
"<<=" return Parser::LSHIFTA;
">>=" return Parser::RSHIFTA;
"<<" return Parser::LEFTSHIFT;
">>" return Parser::RIGHTSHIFT;
char |
int |
double return Parser::DATATYPE;
help return Parser::HELP;
rad |
deg |
grad return Parser::ANGLETYPE;
list return Parser::LIST;
stop |
quit |
exit return Parser::QUIT;
PI |
E return Parser::MATHCONST;
[a-zA-Z_][a-zA-Z_0-9]* return Parser::IDENT;
\n|. return matched()[0];
%%
|