
%{
#include "calc.h"
#include "y.tab.h"
char *newstring();
%}

%%

[A-Za-z][A-Za-z0-9]*	{ yylval.string = newstring(yytext); return IDENT; }
"-"?[0-9]*"."[0-9]+	{ yylval.real = atof(yytext); return REALCONST; }
"-"?[0-9]+		{ yylval.integer = atoi(yytext); return INTCONST; }
"["|"]"|[-=()+*/;]	{ return yytext[0]; }
.			;

%%

char *newstring(str)
     char *str;
{
  char *nstr;
  
  nstr = (char *) malloc(strlen(str)+1);
  strcpy (nstr, str);
  return nstr;
}


