D			[0-9]
H			[a-fA-F0-9]

%{
#include "y.tab.h"

int yylval;
int s_cpLine=0;

%}

%%
0[xX]{H}+			{sscanf(yytext+2,"%x",&yylval);return(CONSTANT);}
0{D}+				{sscanf(yytext,"%o",&yylval);return(CONSTANT);}
{D}+				{sscanf(yytext,"%d",&yylval);return(CONSTANT);}

"&&"			{ return(AND_OP); }
"||"			{ return(OR_OP); }
"<="			{ return(LE); }
">="			{ return(GE); }
"=="			{ return(EQ); }
"!="			{ return(NE); }
","				{ return(','); }
":"				{ return(':'); }
"="				{ return('='); }
"("				{ return('('); }
")"				{ return(')'); }
"."				{ return('.'); }
"&"				{ return('&'); }
"!"				{ return('!'); }
"~"				{ return('~'); }
"-"				{ return('-'); }
"+"				{ return('+'); }
"*"				{ return('*'); }
"/"				{ return('/'); }
"%"				{ return('%'); }
"<"				{ return('<'); }
">"				{ return('>'); }
"^"				{ return('^'); }
"|"				{ return('|'); }
"?"				{ return('?'); }

\n				{ s_cpLine ++; }
[ \t\v\f]		{ }
.				{ /* ignore bad characters */ }

%%


int yywrap() {
	return(1);
}