%{
#include <stdio.h>
#include <stdlib.h>
%}
DIGIT [0-9]
ID [a-zA-Z_][a-zA-Z0-9_]*
%%
if|then|else|int|while|char { printf("%s is a keyword\n", yytext); }
{DIGIT}+ { printf("%s is a number\n", yytext); }
{DIGIT}+"."{DIGIT}+ { printf("%s is a floating point number\n", yytext); }
{ID} { printf("%s is an identifier\n", yytext); }
[ \t\n]+ { /* ignore whitespace */ }
[();{}] { printf("%s is a separator\n", yytext); }
[,] { printf("%s is a delimiter\n", yytext); }
%%
int main()
{
printf("Enter input:\n");
yylex();
return 0;
}
int yywrap(void)
{
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KJX0KRElHSVQgWzAtOV0KSUQgW2EtekEtWl9dW2EtekEtWjAtOV9dKgolJQppZnx0aGVufGVsc2V8aW50fHdoaWxlfGNoYXIgeyBwcmludGYoIiVzIGlzIGEga2V5d29yZFxuIiwgeXl0ZXh0KTsgfQp7RElHSVR9KyB7IHByaW50ZigiJXMgaXMgYSBudW1iZXJcbiIsIHl5dGV4dCk7IH0Ke0RJR0lUfSsiLiJ7RElHSVR9KyB7IHByaW50ZigiJXMgaXMgYSBmbG9hdGluZyBwb2ludCBudW1iZXJcbiIsIHl5dGV4dCk7IH0Ke0lEfSB7IHByaW50ZigiJXMgaXMgYW4gaWRlbnRpZmllclxuIiwgeXl0ZXh0KTsgfQpbIFx0XG5dKyB7IC8qIGlnbm9yZSB3aGl0ZXNwYWNlICovIH0KWygpO3t9XSB7IHByaW50ZigiJXMgaXMgYSBzZXBhcmF0b3JcbiIsIHl5dGV4dCk7IH0KWyxdIHsgcHJpbnRmKCIlcyBpcyBhIGRlbGltaXRlclxuIiwgeXl0ZXh0KTsgfQolJQppbnQgbWFpbigpCnsKcHJpbnRmKCJFbnRlciBpbnB1dDpcbiIpOwp5eWxleCgpOwpyZXR1cm4gMDsKfQppbnQgeXl3cmFwKHZvaWQpCnsKcmV0dXJuIDE7Cn0=