%{
    int Line = 1;
    #define strdup(s) strcpy(new char[strlen(s)+1], s)
%}
%option noyywrap
%option nounput

A  [a-z]
N  [0-9]
AN [a-z0-9]

%%
{A}{AN}*        { yylval.st = strdup(yytext); return Identifier; }
{N}+            { yylval.in = atoi(yytext); return Integer_literal; }
[*+<]           { yylval.in = yytext[0]; return Operator; }
:=              { return Assign; }
"--".*          {  }
[ \t]           {  }
\n              { Line++; }
.               { printf("Lexical error line %d: %s\n", Line, yytext); }
%%
