// Reverse Polish Notation, lexic.l
// © 2001, Michael Piefel <piefel@informatik.hu-berlin.de>
#include <iostream>
#include "k.h"
#include "yystype.h"
#include "syntax.h"
#include "rpn.h"
%option noyywrap
%%
-?[0-9]+ { yylval.yt_integer = mkinteger(atoi(yytext)); return NUMBER;}
[a-z]+ { yylval.yt_casestring = mkcasestring(yytext); return IDENT; }
[+*-/] { return yytext[0]; }
[\t ]+ { /*empty*/ }
\n { return EOF; }
. { std::cerr << "Unkown character: " << yytext[0] << std::endl; }
%%
extern void yyerror(const char *s)
{
std::cerr << "Syntax error: " << s << std::endl;
}