%{
#include <stdio.h>
%}
%%
"if" { printf("TOKEN: %-10s CATEGORY: Keyword\n", yytext); }
"else" { printf("TOKEN: %-10s CATEGORY: Keyword\n", yytext); }
[0-9]+ { printf("TOKEN: %-10s CATEGORY: Number\n", yytext); }
[a-zA-Z_][a-zA-Z0-9_]* { printf("TOKEN: %-10s CATEGORY: Identifier\n", yytext); }
"+"|"-"|"*"|"/"|"=" { printf("TOKEN: %-10s CATEGORY: Operator\n", yytext); }
[ \t\n] ;
. { printf("TOKEN: %-10s CATEGORY: Invalid Character\n", yytext); }
%%
int main() {
yylex();
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgolJQoiaWYiICAgICAgICAgICAgeyBwcmludGYoIlRPS0VOOiAlLTEwcyBDQVRFR09SWTogS2V5d29yZFxuIiwgeXl0ZXh0KTsgfQoiZWxzZSIgICAgICAgICAgeyBwcmludGYoIlRPS0VOOiAlLTEwcyBDQVRFR09SWTogS2V5d29yZFxuIiwgeXl0ZXh0KTsgfQpbMC05XSsgICAgICAgICAgeyBwcmludGYoIlRPS0VOOiAlLTEwcyBDQVRFR09SWTogTnVtYmVyXG4iLCB5eXRleHQpOyB9ClthLXpBLVpfXVthLXpBLVowLTlfXSogeyBwcmludGYoIlRPS0VOOiAlLTEwcyBDQVRFR09SWTogSWRlbnRpZmllclxuIiwgeXl0ZXh0KTsgfQoiKyJ8Ii0ifCIqInwiLyJ8Ij0iICAgIHsgcHJpbnRmKCJUT0tFTjogJS0xMHMgQ0FURUdPUlk6IE9wZXJhdG9yXG4iLCB5eXRleHQpOyB9ClsgXHRcbl0gICAgICAgICA7Ci4gICAgICAgICAgICAgICB7IHByaW50ZigiVE9LRU46ICUtMTBzIENBVEVHT1JZOiBJbnZhbGlkIENoYXJhY3RlclxuIiwgeXl0ZXh0KTsgfQolJQoKaW50IG1haW4oKSB7CiAgICB5eWxleCgpOwogICAgcmV0dXJuIDA7Cn0K