mud++0.35/etc/
mud++0.35/etc/guilds/
mud++0.35/help/propert/
mud++0.35/mudC/
mud++0.35/player/
mud++0.35/src/interface/
mud++0.35/src/os/cygwin32/
mud++0.35/src/os/win32/
mud++0.35/src/os/win32/bcppbuilder/
mud++0.35/src/osaddon/
mud++0.35/src/util/
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);
}