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