%{
#include <stdio.h>
#include <string.h>
%}
%%
const|final|break|else|while|for|if|idol|switch { printf("%s is a keyword\n", yytext); }
[a-zA-Z_][a-zA-Z0-9_]* { printf("%s is an identifier\n", yytext); }
[=+\-*/%] { printf("%s is an operator\n", yytext); }
[ \t\n]+ { /* skip whitespace */ }
. { printf("%s is an unknown token\n", yytext); }
%%
int main() {
yylex();
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KJX0KCiUlCgpjb25zdHxmaW5hbHxicmVha3xlbHNlfHdoaWxlfGZvcnxpZnxpZG9sfHN3aXRjaCAgIHsgcHJpbnRmKCIlcyBpcyBhIGtleXdvcmRcbiIsIHl5dGV4dCk7IH0KW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIGlzIGFuIGlkZW50aWZpZXJcbiIsIHl5dGV4dCk7IH0KWz0rXC0qLyVdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIGlzIGFuIG9wZXJhdG9yXG4iLCB5eXRleHQpOyB9ClsgXHRcbl0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgLyogc2tpcCB3aGl0ZXNwYWNlICovIH0KLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIGlzIGFuIHVua25vd24gdG9rZW5cbiIsIHl5dGV4dCk7IH0KCiUlCgppbnQgbWFpbigpIHsKICAgIHl5bGV4KCk7IAogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsgCn0K