%{
#include <stdio.h>
%}
/* Definitions */
DIGIT [0-9]
ID [a-zA-Z][a-zA-Z0-9]*
%%
/* Rules Section */
/* Keywords */
int
|float|char
|if
|else
|while
|for
|return
{ printf("Keyword : %s\n", yytext); }
/* Identifiers */
{ID} { printf("Identifier : %s\n", yytext); }
/* Floating Numbers */
{DIGIT}+\.{DIGIT}+
/* Integers */
{DIGIT
}+ { printf
("
Integer : %s\n", yytext); }
/* Increment & Decrement */
"
++"
{ printf
("Increment
Op : ++\n"
); } "
--"
{ printf
("Decrement
Op : --\n"
); }
/* Operators */
"+"|"-"|"*"|"/"|"="|"%"
{ printf("Operator : %s\n", yytext); }
/* Special Symbols */
"(" | ")" | "{" | "}" | ";" | ","
{ printf("Special Symbol : %s\n", yytext); }
/* Ignore spaces and tabs */
[ \t\n]+
;
/* Any other character */
.
{ printf("Unknown :%s\n",yytext);}
%%
int main() {
printf("Enter input:\n");
yylex();
return 0;
}
int yywrap() {
return 1;
}
JXsgCiNpbmNsdWRlIDxzdGRpby5oPiAKJX0gCiAKLyogRGVmaW5pdGlvbnMgKi8gCkRJR0lUICAgWzAtOV0gCklEICAgICAgW2EtekEtWl1bYS16QS1aMC05XSogCiAKJSUgCi8qIFJ1bGVzIFNlY3Rpb24gKi8gCiAKLyogS2V5d29yZHMgKi8gCmludHxmbG9hdHxjaGFyfGlmfGVsc2V8d2hpbGV8Zm9yfHJldHVybiAKICAgICAgICAgICAgICAgIHsgcHJpbnRmKCJLZXl3b3JkICAgICAgICA6ICVzXG4iLCB5eXRleHQpOyB9IAogCi8qIElkZW50aWZpZXJzICovIAp7SUR9ICAgICAgICAgICAgeyBwcmludGYoIklkZW50aWZpZXIgICAgIDogJXNcbiIsIHl5dGV4dCk7IH0gCiAKLyogRmxvYXRpbmcgTnVtYmVycyAqLyAKe0RJR0lUfStcLntESUdJVH0rICAKICAgICAgICAgICAgICAgIHsgcHJpbnRmKCJGbG9hdCBOdW1iZXIgICA6ICVzXG4iLCB5eXRleHQpOyB9IAogCi8qIEludGVnZXJzICovIAp7RElHSVR9KyAgICAgICAgeyBwcmludGYoIkludGVnZXIgICAgICAgIDogJXNcbiIsIHl5dGV4dCk7IH0gCiAKLyogSW5jcmVtZW50ICYgRGVjcmVtZW50ICovIAoiKysiICAgICAgICAgICAgeyBwcmludGYoIkluY3JlbWVudCBPcCAgIDogKytcbiIpOyB9IAoiLS0iICAgICAgICAgICAgeyBwcmludGYoIkRlY3JlbWVudCBPcCAgIDogLS1cbiIpOyB9IAogCi8qIE9wZXJhdG9ycyAqLyAKIisifCItInwiKiJ8Ii8ifCI9InwiJSIgIAogICAgICAgICAgICAgICAgeyBwcmludGYoIk9wZXJhdG9yICAgICAgIDogJXNcbiIsIHl5dGV4dCk7IH0gCiAKLyogU3BlY2lhbCBTeW1ib2xzICovIAoiKCIgfCAiKSIgfCAieyIgfCAifSIgfCAiOyIgfCAiLCIgIAogICAgICAgICAgICAgICAgeyBwcmludGYoIlNwZWNpYWwgU3ltYm9sIDogJXNcbiIsIHl5dGV4dCk7IH0gCi8qIElnbm9yZSBzcGFjZXMgYW5kIHRhYnMgKi8gClsgXHRcbl0rICAgICAgICAKOyAKLyogQW55IG90aGVyIGNoYXJhY3RlciAqLyAKLiAgICAgICAgICAgICAgIAp7IHByaW50ZigiVW5rbm93biAgICAgICAgOiVzXG4iLHl5dGV4dCk7fQolJSAKaW50IG1haW4oKSB7IApwcmludGYoIkVudGVyIGlucHV0OlxuIik7IAp5eWxleCgpOyAKcmV0dXJuIDA7IAp9IAppbnQgeXl3cmFwKCkgeyAKcmV0dXJuIDE7IAp9IA==