%{
#include <stdio.h>
%}
DIGIT [0-9]
LETTER [a-zA-Z]
ID {LETTER}({LETTER}|{DIGIT})*
NUM {DIGIT}+
%%
int
|float|char
|double
|if
|else
|while
|for
|return
|void
{ printf("Keyword : %s\n", yytext); }
{ID} { printf("Identifier : %s\n", yytext); }
{NUM
} { printf
("
Number : %s\n", yytext); }
"=="|"="|"+"|"-"|"*"|"/"|"<"|">"|"<="|">="
{ printf("Operator : %s\n", yytext); }
";"|","|"("|")"|"{"|"}"
{ printf("Separator : %s\n", yytext); }
[ \t\n]+ ; /* Ignore spaces */
. { printf("Unknown : %s\n", yytext); }
%%
int main(void) {
printf("Enter input (press Ctrl+D / EOF after input):\n");
yylex();
return 0;
}
int yywrap(void) {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgpESUdJVCAgIFswLTldCkxFVFRFUiAgW2EtekEtWl0KSUQgICAgICB7TEVUVEVSfSh7TEVUVEVSfXx7RElHSVR9KSoKTlVNICAgICB7RElHSVR9KwoKJSUKaW50fGZsb2F0fGNoYXJ8ZG91YmxlfGlmfGVsc2V8d2hpbGV8Zm9yfHJldHVybnx2b2lkCiAgICAgICAgeyBwcmludGYoIktleXdvcmQgICAgIDogJXNcbiIsIHl5dGV4dCk7IH0KCntJRH0gICAgeyBwcmludGYoIklkZW50aWZpZXIgIDogJXNcbiIsIHl5dGV4dCk7IH0KCntOVU19ICAgeyBwcmludGYoIk51bWJlciAgICAgIDogJXNcbiIsIHl5dGV4dCk7IH0KCiI9PSJ8Ij0ifCIrInwiLSJ8IioifCIvInwiPCJ8Ij4ifCI8PSJ8Ij49IgogICAgICAgIHsgcHJpbnRmKCJPcGVyYXRvciAgICA6ICVzXG4iLCB5eXRleHQpOyB9CgoiOyJ8IiwifCIoInwiKSJ8InsifCJ9IgogICAgICAgIHsgcHJpbnRmKCJTZXBhcmF0b3IgICA6ICVzXG4iLCB5eXRleHQpOyB9CgpbIFx0XG5dKyAgIDsgICAvKiBJZ25vcmUgc3BhY2VzICovCgouICAgICAgIHsgcHJpbnRmKCJVbmtub3duICAgICA6ICVzXG4iLCB5eXRleHQpOyB9CiUlCgppbnQgbWFpbih2b2lkKSB7CiAgICBwcmludGYoIkVudGVyIGlucHV0IChwcmVzcyBDdHJsK0QgLyBFT0YgYWZ0ZXIgaW5wdXQpOlxuIik7CiAgICB5eWxleCgpOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAodm9pZCkgewogICAgcmV0dXJuIDE7Cn0K