%{
/* $Id: scan.l,v 1.5 2006/11/08 10:05:17 ray Exp $ */
/*
* Written by Raymond Lai <ray@cyth.net>.
* Public domain.
*/
#include <sys/param.h>
#include <sys/stdint.h>
#include <stdlib.h>
#include "extern.h"
#include "y.tab.h"
%}
%option yylineno noyywrap nounput
%%
[0-9]+ {
yylval.number = getnum(yytext);
return (INTEGER);
}
0x[0-9a-fA-F]+ {
yylval.number = getnum(yytext);
return (INTEGER);
}
0b[01]+ {
yylval.number = getbin(yytext);
return (INTEGER);
}
"<=" return (LE);
">=" return (GE);
"<" return (LT);
">" return (GT);
"==" return (EQ);
"!=" return (NEQ);
"<<" return (LS);
">>" return (RS);
"||" return (LOR);
"&&" return (LAND);
"+" return (PLUS);
"-" return (MINUS);
"*" return (TIMES);
"/" return (DIV);
"%" return (MOD);
"(" return (LPAREN);
")" return (RPAREN);
"^" return (XOR);
"|" return (BOR);
"&" return (BAND);
"!" return (NOT);
"~" return (INVERSE);
"\n" return (NL);
[ \t] ; /* skip whitespace */
%%
syntax highlighted by Code2HTML, v. 0.9.1