%{ int k = 0; int o = 0; int i = 0; %} %% int|main|printf|scanf|char|if|else|for|switch|case k++; [+*/%&=] o++; [a-zA-Z_][a-zA-Z0-9_]* i++; . ; \n ; %% int main(void) { yylex(); printf("%d keywords\n", k); printf("%d operators\n", o); printf("%d identifiers\n", i); } int yywrap() { return 1; }