%{
#include <stdio.h>
%}
%%
"int"|"float"|"if"|"else"|"while"|"for"|"return"|"char"|"double" { printf("%s : Keyword\n", yytext); }
[a-zA-Z_][a-zA-Z0-9_]* { printf("%s : Identifier\n", yytext); }
[0-9]+ { printf("%s : Constant\n", yytext); }
"+"|"-"|"*"|"/"|"="|"<"|">" { printf("%s : Operator\n", yytext); }
"//".* { printf("%s : Comment (Single-line)\n", yytext); }
[ \t\n] { /* ignore spaces */ }
. { printf("%s : Special Character\n", yytext); }
%%
int main() {
printf("Enter your code (press Ctrl+D to end):\n");
yylex();
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgolJQoiaW50InwiZmxvYXQifCJpZiJ8ImVsc2UifCJ3aGlsZSJ8ImZvciJ8InJldHVybiJ8ImNoYXIifCJkb3VibGUiICAgeyBwcmludGYoIiVzIDogS2V5d29yZFxuIiwgeXl0ZXh0KTsgfQoKW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgICAgeyBwcmludGYoIiVzIDogSWRlbnRpZmllclxuIiwgeXl0ZXh0KTsgfQoKWzAtOV0rICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIDogQ29uc3RhbnRcbiIsIHl5dGV4dCk7IH0KCiIrInwiLSJ8IioifCIvInwiPSJ8IjwifCI+IiAgICB7IHByaW50ZigiJXMgOiBPcGVyYXRvclxuIiwgeXl0ZXh0KTsgfQoKIi8vIi4qICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIDogQ29tbWVudCAoU2luZ2xlLWxpbmUpXG4iLCB5eXRleHQpOyB9CgpbIFx0XG5dICAgICAgICAgICAgICAgICAgICB7IC8qIGlnbm9yZSBzcGFjZXMgKi8gfQoKLiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIiVzIDogU3BlY2lhbCBDaGFyYWN0ZXJcbiIsIHl5dGV4dCk7IH0KJSUKCmludCBtYWluKCkgewogICAgcHJpbnRmKCJFbnRlciB5b3VyIGNvZGUgKHByZXNzIEN0cmwrRCB0byBlbmQpOlxuIik7CiAgICB5eWxleCgpOwogICAgcmV0dXJuIDA7Cn0K