%{
#include<stdio.h>
int lc=0, tc=0, sc=0, cc=0;
%}
%%
\n { lc++; }
\t { tc++; }
" " { sc++; }
[^\n\t ] { cc++; }
%%
int yywrap() {
return 1;
}
int main() {
printf("Enter text (Ctrl+D to end input):\n");
yylex();
printf
("The
number of lines
: %d\n", lc); printf
("The
number of blank spaces
: %d\n", sc); printf
("The
number of tabs
: %d\n", tc); printf
("The
number of other characters
: %d\n", cc);
return 0;
}
JXsKICAgICNpbmNsdWRlPHN0ZGlvLmg+CiAgICBpbnQgbGM9MCwgdGM9MCwgc2M9MCwgY2M9MDsKJX0KCiUlCgpcbiAgICAgeyBsYysrOyB9Clx0ICAgICB7IHRjKys7IH0KIiAiICAgIHsgc2MrKzsgfQpbXlxuXHQgXSB7IGNjKys7IH0KCiUlCgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7Cn0KCmludCBtYWluKCkgewogICAgcHJpbnRmKCJFbnRlciB0ZXh0IChDdHJsK0QgdG8gZW5kIGlucHV0KTpcbiIpOwogICAgeXlsZXgoKTsKICAgIAogICAgcHJpbnRmKCJUaGUgbnVtYmVyIG9mIGxpbmVzOiAlZFxuIiwgbGMpOwogICAgcHJpbnRmKCJUaGUgbnVtYmVyIG9mIGJsYW5rIHNwYWNlczogJWRcbiIsIHNjKTsKICAgIHByaW50ZigiVGhlIG51bWJlciBvZiB0YWJzOiAlZFxuIiwgdGMpOwogICAgcHJpbnRmKCJUaGUgbnVtYmVyIG9mIG90aGVyIGNoYXJhY3RlcnM6ICVkXG4iLCBjYyk7CgogICAgcmV0dXJuIDA7Cn0K