%{
extern char *yylval;
char * strsave(char *s)
{
        char * p = calloc(strlen(s)+1, 1);
        if (p)
                return strcpy(p, s);
        fputs("no room\n", stderr), exit(1);
}

%}


real ([0-9]*\.[0-9]+)
integer [0-9]+
nl   \n
id [a-z]+
%%
[ \t]+    ;
{real}     { yylval = strsave(yytext);return(NUMBER);}
{integer}     { yylval = strsave(yytext);return(NUMBER);}
{id}       {yylval = strsave(yytext); return(ID); }
{nl}   {  return ('\n'); }
.      {  return(yytext[0]);}
%%
