D [0-9]
L [a-zA-Z_]
H [a-fA-F0-9]
E [Ee][+-]?{D}+
FS (f|F|l|L)
IS (u|U|l|L)*
%{
#include <stdio.h>
#include "iparse.tab.h"
char copydat_buf[16000];
void copydata();
%}
%%
"/*" { comment(); }
"int" { return (INT); }
"float" { return (FLOAT); }
"void" { return (VOID); }
"string" { return (STRING); }
"INTERFACE" { return (INTERFACE_KEYWORD);}
"BUILDER" { strcpy(yylval.sval,yytext); return(ALLOW_TYPE); }
"WIZARD" { strcpy(yylval.sval,yytext); return(ALLOW_TYPE); }
{L}({L}|{D})* { strcpy( yylval.sval, yytext ); return(check_type()); }
\n\{\n { copydata(); return(COPYDATA); }
"," { return(','); }
"|" { return('|'); }
[ \t\v\n\f] { }
. { /* ignore bad characters */ }
%%
yywrap()
{
return(1);
}
comment()
{
char c, c1;
loop:
while ((c = input()) != '*' && c != 0)
putchar(c);
if ((c1 = input()) != '/' && c != 0)
{
unput(c1);
goto loop;
}
if (c != 0)
putchar(c1);
}
void copydata()
{
}
int check_type()
{
/*
*
* if (yytext == type_name)
* return(CLASSNAME);
*
* return(IDENTIFIER);
*/
return(IDENTIFIER);
}