%{
int n = 0 ;
%}
// rule section
%%
"while" | "if" | "else" { n++;
printf("\t keywords : %s", yytext);}
"int" | "float" { n++;
printf("\t keywords : %s", yytext);}
// count
number of identifiers
[a-zA-Z_] [a-zA-Z0-9_]* { n++;
printf("\t identifier : %s", yytext);}
"<=" | "==" | "=" | "++" | "-" | "*" | "+" { n++;
printf("\t operator : %s", yytext);}
[ () {} | , ; ] { n++;
printf("\t separator : %s", yytext);}
[0-9]* "." [0-9]+ { n++;
printf
("\t
float : %s", yytext);} [0-9]+ {n++;
printf
("\t
integer : %s", yytext);} . ;
%%
int main()
{
yylex();
printf("\n total no. of token = %d\n", n);
}
JXsgCmludCBuID0gMCA7IAolfSAKIAovLyBydWxlIHNlY3Rpb24gCiUlIAovL2NvdW50IG51bWJlciBvZiBrZXl3b3JkcyAKIndoaWxlIiB8ICJpZiIgfCAiZWxzZSIgeyBuKys7IApwcmludGYoIlx0IGtleXdvcmRzIDogJXMiLCB5eXRleHQpO30gCi8vIGNvdW50IG51bWJlciBvZiBrZXl3b3JkcyAKImludCIgfCAiZmxvYXQiIHsgbisrOyAKcHJpbnRmKCJcdCBrZXl3b3JkcyA6ICVzIiwgeXl0ZXh0KTt9IAovLyBjb3VudCBudW1iZXIgb2YgaWRlbnRpZmllcnMgClthLXpBLVpfXSBbYS16QS1aMC05X10qIHsgbisrOyAKcHJpbnRmKCJcdCBpZGVudGlmaWVyIDogJXMiLCB5eXRleHQpO30gCi8vIGNvdW50IG51bWJlciBvZiBvcGVyYXRvcnMgCiI8PSIgfCAiPT0iIHwgIj0iIHwgIisrIiB8ICItIiB8ICIqIiB8ICIrIiB7IG4rKzsgCnByaW50ZigiXHQgb3BlcmF0b3IgOiAlcyIsIHl5dGV4dCk7fSAKLy8gY291bnQgbnVtYmVyIG9mIHNlcGFyYXRvcnMgClsgKCkge30gfCAsIDsgXSB7IG4rKzsgCnByaW50ZigiXHQgc2VwYXJhdG9yIDogJXMiLCB5eXRleHQpO30gCi8vIGNvdW50IG51bWJlciBvZiBmbG9hdHMgClswLTldKiAiLiIgWzAtOV0rIHsgbisrOyAKcHJpbnRmKCJcdCBmbG9hdCA6ICVzIiwgeXl0ZXh0KTt9IAovLyBjb3VudCBudW1iZXIgb2YgaW50ZWdlcnMgClswLTldKyB7bisrOyAKcHJpbnRmKCJcdCBpbnRlZ2VyIDogJXMiLCB5eXRleHQpO30gCi4gOyAKJSUgCmludCBtYWluKCkgCnsgCnl5bGV4KCk7IApwcmludGYoIlxuIHRvdGFsIG5vLiBvZiB0b2tlbiA9ICVkXG4iLCBuKTsgCn0gCg==