/*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);
}
LypMZXggY29kZSB0byBjb3VudCB0b3RhbCBudW1iZXIgb2YgdG9rZW5zICovCgolewppbnQgbiA9IDAgOwolfQoKLy8gcnVsZSBzZWN0aW9uCiUlCgovL2NvdW50IG51bWJlciBvZiBrZXl3b3Jkcwoid2hpbGUifCJpZiJ8ImVsc2UiIHtuKys7cHJpbnRmKCJcdCBrZXl3b3JkcyA6ICVzIiwgeXl0ZXh0KTt9CgovLyBjb3VudCBudW1iZXIgb2Yga2V5d29yZHMKImludCJ8ImZsb2F0IiB7bisrO3ByaW50ZigiXHQga2V5d29yZHMgOiAlcyIsIHl5dGV4dCk7fQoKLy8gY291bnQgbnVtYmVyIG9mIGlkZW50aWZpZXJzClthLXpBLVpfXVthLXpBLVowLTlfXSoge24rKztwcmludGYoIlx0IGlkZW50aWZpZXIgOiAlcyIsIHl5dGV4dCk7fQoKLy8gY291bnQgbnVtYmVyIG9mIG9wZXJhdG9ycwoiPD0ifCI9PSJ8Ij0ifCIrKyJ8Ii0ifCIqInwiKyIge24rKztwcmludGYoIlx0IG9wZXJhdG9yIDogJXMiLCB5eXRleHQpO30KCi8vIGNvdW50IG51bWJlciBvZiBzZXBhcmF0b3JzClsoKXt9fCwgO10ge24rKztwcmludGYoIlx0IHNlcGFyYXRvciA6ICVzIiwgeXl0ZXh0KTt9CgovLyBjb3VudCBudW1iZXIgb2YgZmxvYXRzClswLTldKiIuIlswLTldKyB7bisrO3ByaW50ZigiXHQgZmxvYXQgOiAlcyIsIHl5dGV4dCk7fQoKLy8gY291bnQgbnVtYmVyIG9mIGludGVnZXJzClswLTldKyB7bisrO3ByaW50ZigiXHQgaW50ZWdlciA6ICVzIiwgeXl0ZXh0KTt9CQkJCQkJCgouIDsKJSUKCgppbnQgbWFpbigpCgp7CgkKCXl5bGV4KCk7CgkKCXByaW50ZigiXG4gdG90YWwgbm8uIG9mIHRva2VuID0gJWRcbiIsIG4pOwoJCn0KCgoKCg==