%{
#include <stdio.h>
%}
%%
"int"|"float"|"char"|"if"|"else"|"while"|"for" { printf("Keyword: %s\n", yytext); }
[0-9]+ { printf
("
Number: %s\n", yytext); } [a-zA-Z_][a-zA-Z0-9_]* { printf("Identifier: %s\n", yytext); }
"=="|"="|"+"|"-"|"*"|"/"|"%" { printf("Operator: %s\n", yytext); }
";"|","|"(" | ")" | "{" | "}" { printf("Special Symbol: %s\n", yytext); }
[ \t\n]+ { /* ignore whitespace */ }
. { printf("Unknown character: %s\n", yytext); }
%%
int main() {
printf("Enter your source code (Press CTRL+D or CTRL+Z to end input):\n");
yylex();
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgolJQoiaW50InwiZmxvYXQifCJjaGFyInwiaWYifCJlbHNlInwid2hpbGUifCJmb3IiICAgICB7IHByaW50ZigiS2V5d29yZDogJXNcbiIsIHl5dGV4dCk7IH0KWzAtOV0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIk51bWJlcjogJXNcbiIsIHl5dGV4dCk7IH0KW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIklkZW50aWZpZXI6ICVzXG4iLCB5eXRleHQpOyB9CiI9PSJ8Ij0ifCIrInwiLSJ8IioifCIvInwiJSIgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRmKCJPcGVyYXRvcjogJXNcbiIsIHl5dGV4dCk7IH0KIjsifCIsInwiKCIgfCAiKSIgfCAieyIgfCAifSIgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIlNwZWNpYWwgU3ltYm9sOiAlc1xuIiwgeXl0ZXh0KTsgfQpbIFx0XG5dKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IC8qIGlnbm9yZSB3aGl0ZXNwYWNlICovIH0KLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGYoIlVua25vd24gY2hhcmFjdGVyOiAlc1xuIiwgeXl0ZXh0KTsgfQolJQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIHlvdXIgc291cmNlIGNvZGUgKFByZXNzIENUUkwrRCBvciBDVFJMK1ogdG8gZW5kIGlucHV0KTpcbiIpOwogICAgeXlsZXgoKTsKICAgIHJldHVybiAwOwp9Cg==