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