%{
#include <stdio.h>
%}
 
DIGIT   [0-9]
KEYWORD if|else|while|int
ID      [_a-zA-Z][a-zA-Z0-9]*
OP      "
>"
|"
<"
|"
="
|"
<="
|"
>="
|"
+"
|"
-"
|"
*"
|"
/"
 SC      "'"|":"|";"|","|"("|")"
 
%%
{DIGIT}+        { printf("%s is a digit\n", yytext); }
{KEYWORD}       { printf("%s is a keyword\n", yytext); }
{ID}            { printf("%s is an identifier\n", yytext); }
{OP}            { printf("%s is an operator\n", yytext); }
{SC}            { printf("%s is a special character\n", yytext); }
[ \t\n]+        { /* skip whitespace */ }
.               { printf("%s is an unknown character\n", yytext); }
%%
 
int main()
{
    printf("Enter the string:\n");
    yylex();
    return 0;
}
 
int yywrap()
{
    return 1;
}
 
				JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgpESUdJVCAgIFswLTldCktFWVdPUkQgaWZ8ZWxzZXx3aGlsZXxpbnQKSUQgICAgICBbX2EtekEtWl1bYS16QS1aMC05XSoKT1AgICAgICAiPiJ8IjwifCI9InwiPD0ifCI+PSJ8IisifCItInwiKiJ8Ii8iClNDICAgICAgIicifCI6InwiOyJ8IiwifCIoInwiKSIKCiUlCntESUdJVH0rICAgICAgICB7IHByaW50ZigiJXMgaXMgYSBkaWdpdFxuIiwgeXl0ZXh0KTsgfQp7S0VZV09SRH0gICAgICAgeyBwcmludGYoIiVzIGlzIGEga2V5d29yZFxuIiwgeXl0ZXh0KTsgfQp7SUR9ICAgICAgICAgICAgeyBwcmludGYoIiVzIGlzIGFuIGlkZW50aWZpZXJcbiIsIHl5dGV4dCk7IH0Ke09QfSAgICAgICAgICAgIHsgcHJpbnRmKCIlcyBpcyBhbiBvcGVyYXRvclxuIiwgeXl0ZXh0KTsgfQp7U0N9ICAgICAgICAgICAgeyBwcmludGYoIiVzIGlzIGEgc3BlY2lhbCBjaGFyYWN0ZXJcbiIsIHl5dGV4dCk7IH0KWyBcdFxuXSsgICAgICAgIHsgLyogc2tpcCB3aGl0ZXNwYWNlICovIH0KLiAgICAgICAgICAgICAgIHsgcHJpbnRmKCIlcyBpcyBhbiB1bmtub3duIGNoYXJhY3RlclxuIiwgeXl0ZXh0KTsgfQolJQoKaW50IG1haW4oKQp7CiAgICBwcmludGYoIkVudGVyIHRoZSBzdHJpbmc6XG4iKTsKICAgIHl5bGV4KCk7CiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpCnsKICAgIHJldHVybiAxOwp9Cg==