/*Lex code to count total number of tokens */
%{
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);
}
CgovKkxleCBjb2RlIHRvIGNvdW50IHRvdGFsIG51bWJlciBvZiB0b2tlbnMgKi8KCiAgCiV7ICAKCmludCBuID0gMCA7ICAgCiV9ICAKCiAgCi8vIHJ1bGUgc2VjdGlvbiAKJSUgIAoKICAKLy9jb3VudCBudW1iZXIgb2Yga2V5d29yZHMgCgoid2hpbGUifCJpZiJ8ImVsc2UiIHtuKys7cHJpbnRmKCJcdCBrZXl3b3JkcyA6ICVzIiwgeXl0ZXh0KTt9ICAgCgogIAovLyBjb3VudCBudW1iZXIgb2Yga2V5d29yZHMgCgoiaW50InwiZmxvYXQiIHtuKys7cHJpbnRmKCJcdCBrZXl3b3JkcyA6ICVzIiwgeXl0ZXh0KTt9ICAgIAoKICAKLy8gY291bnQgbnVtYmVyIG9mIGlkZW50aWZpZXJzIAoKW2EtekEtWl9dW2EtekEtWjAtOV9dKiB7bisrO3ByaW50ZigiXHQgaWRlbnRpZmllciA6ICVzIiwgeXl0ZXh0KTt9ICAKCiAgCi8vIGNvdW50IG51bWJlciBvZiBvcGVyYXRvcnMgCgoiPD0ifCI9PSJ8Ij0ifCIrKyJ8Ii0ifCIqInwiKyIge24rKztwcmludGYoIlx0IG9wZXJhdG9yIDogJXMiLCB5eXRleHQpO30gCgogIAovLyBjb3VudCBudW1iZXIgb2Ygc2VwYXJhdG9ycyAKClsoKXt9fCwgO10gICAge24rKztwcmludGYoIlx0IHNlcGFyYXRvciA6ICVzIiwgeXl0ZXh0KTt9ICAKCiAgCi8vIGNvdW50IG51bWJlciBvZiBmbG9hdHMgCgpbMC05XSoiLiJbMC05XSsge24rKztwcmludGYoIlx0IGZsb2F0IDogJXMiLCB5eXRleHQpO30gICAKCiAgCi8vIGNvdW50IG51bWJlciBvZiBpbnRlZ2VycyAKClswLTldKyB7bisrO3ByaW50ZigiXHQgaW50ZWdlciA6ICVzIiwgeXl0ZXh0KTt9ICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAKLiAgICA7IAolJSAgCgogICAKCiAgIAoKaW50IG1haW4oKSAgCgogIAp7ICAKCiAgICAgIAoKICAgIHl5bGV4KCk7IAoKICAgICAgCgogICAgcHJpbnRmKCJcbiB0b3RhbCBuby4gb2YgdG9rZW4gPSAlZFxuIiwgbik7ICAgIAoKICAgICAgIAp9ICA=