/* 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 data type: %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
("\nTotal
number of tokens
= %d\n", n);}
LyogTGV4IGNvZGUgdG8gY291bnQgdG90YWwgbnVtYmVyIG9mIHRva2VucyAqLwolewppbnQgbiA9IDA7CiV9CgovLyBSdWxlIHNlY3Rpb24KJSUKLy8gQ291bnQgbnVtYmVyIG9mIGtleXdvcmRzCiJ3aGlsZSJ8ImlmInwiZWxzZSIgeyBuKys7IHByaW50ZigiXHQga2V5d29yZHM6ICVzIiwgeXl0ZXh0KTsgfQoKLy8gQ291bnQgbnVtYmVyIG9mIGRhdGEgdHlwZXMKImludCJ8ImZsb2F0IiB7IG4rKzsgcHJpbnRmKCJcdCBkYXRhIHR5cGU6ICVzIiwgeXl0ZXh0KTsgfQoKLy8gQ291bnQgbnVtYmVyIG9mIGlkZW50aWZpZXJzClthLXpBLVpfXVthLXpBLVowLTlfXSogeyBuKys7IHByaW50ZigiXHQgaWRlbnRpZmllcjogJXMiLCB5eXRleHQpOyB9CgovLyBDb3VudCBudW1iZXIgb2Ygb3BlcmF0b3JzCiI8PSJ8Ij09InwiPSJ8IisrInwiLSJ8IioifCIrIiB7IG4rKzsgcHJpbnRmKCJcdCBvcGVyYXRvcjogJXMiLCB5eXRleHQpOyB9CgovLyBDb3VudCBudW1iZXIgb2Ygc2VwYXJhdG9ycwpbKCl7fXwsIDtdIHsgbisrOyBwcmludGYoIlx0IHNlcGFyYXRvcjogJXMiLCB5eXRleHQpOyB9CgovLyBDb3VudCBudW1iZXIgb2YgZmxvYXRzClswLTldKiIuIlswLTldKyB7IG4rKzsgcHJpbnRmKCJcdCBmbG9hdDogJXMiLCB5eXRleHQpOyB9CgovLyBDb3VudCBudW1iZXIgb2YgaW50ZWdlcnMKWzAtOV0rIHsgbisrOyBwcmludGYoIlx0IGludGVnZXI6ICVzIiwgeXl0ZXh0KTsgfQouIDsKCiUlCgppbnQgbWFpbigpIHsKICAgIHl5bGV4KCk7CiAgICBwcmludGYoIlxuVG90YWwgbnVtYmVyIG9mIHRva2VucyA9ICVkXG4iLCBuKTsKfQo=