%option noyywrap
%{
#include<stdio.h>
void yyerror(char *);
%}
letter [a-z A-Z]
digit [0-9]
%%
else
|int
|float {printf
("
%s is a keyword",yytext);}
{digit}+ {printf("%s is a number",yytext);}
{letter}({letter}|{digit})* {printf("%s is an identifier",yytext);}
{op}+ {printf
("
%s is an operator",yytext);} . yyerror("error");
%%
void yyerror(char *s)
{
fprintf(stderr,"%s\n",s);
}
int main()
{
yylex();
return 0;
}
CiVvcHRpb24gbm95eXdyYXAKJXsKCSNpbmNsdWRlPHN0ZGlvLmg+Cgl2b2lkIHl5ZXJyb3IoY2hhciAqKTsKJX0KbGV0dGVyICAgIFthLXogQS1aXQpkaWdpdCAgICBbMC05XQpvcCAgICAgICBbLSsqXQolJQplbHNlfGludHxmbG9hdCAgICAge3ByaW50ZigiJXMgaXMgYSBrZXl3b3JkIix5eXRleHQpO30KCntkaWdpdH0rICAgICB7cHJpbnRmKCIlcyBpcyBhIG51bWJlciIseXl0ZXh0KTt9CntsZXR0ZXJ9KHtsZXR0ZXJ9fHtkaWdpdH0pKiAgICB7cHJpbnRmKCIlcyBpcyBhbiBpZGVudGlmaWVyIix5eXRleHQpO30Ke29wfSsgICAge3ByaW50ZigiJXMgaXMgYW4gb3BlcmF0b3IiLHl5dGV4dCk7fQouIHl5ZXJyb3IoImVycm9yIik7CiUlCnZvaWQgeXllcnJvcihjaGFyICpzKQp7CmZwcmludGYoc3RkZXJyLCIlc1xuIixzKTsKfQppbnQgbWFpbigpCnsKICAgICAgICB5eWxleCgpOwoJcmV0dXJuIDA7Cn0K