%{
#include <stdio.h>
int line_count = 0, space_count = 0, tab_count = 0, other_count = 0;
%}
%%
\n { line_count++; }
[ ] { space_count++; }
\t { tab_count++; }
. { other_count++; }
%%
int main()
{
printf("Enter input (Ctrl+D to end):\n");
yylex();
printf("\nNumber of lines: %d\n", line_count);
printf
("
Number of spaces
: %d\n", space_count); printf
("
Number of tabs
: %d\n", tab_count); printf
("
Number of other characters
: %d\n", other_count); return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBsaW5lX2NvdW50ID0gMCwgc3BhY2VfY291bnQgPSAwLCB0YWJfY291bnQgPSAwLCBvdGhlcl9jb3VudCA9IDA7CiV9CgolJQpcbiAgICAgICAgICB7IGxpbmVfY291bnQrKzsgfQpbIF0gICAgICAgICB7IHNwYWNlX2NvdW50Kys7IH0KXHQgICAgICAgICAgeyB0YWJfY291bnQrKzsgfQouICAgICAgICAgICB7IG90aGVyX2NvdW50Kys7IH0KJSUKCmludCBtYWluKCkKewogICAgcHJpbnRmKCJFbnRlciBpbnB1dCAoQ3RybCtEIHRvIGVuZCk6XG4iKTsKICAgIHl5bGV4KCk7CiAgICBwcmludGYoIlxuTnVtYmVyIG9mIGxpbmVzOiAlZFxuIiwgbGluZV9jb3VudCk7CiAgICBwcmludGYoIk51bWJlciBvZiBzcGFjZXM6ICVkXG4iLCBzcGFjZV9jb3VudCk7CiAgICBwcmludGYoIk51bWJlciBvZiB0YWJzOiAlZFxuIiwgdGFiX2NvdW50KTsKICAgIHByaW50ZigiTnVtYmVyIG9mIG90aGVyIGNoYXJhY3RlcnM6ICVkXG4iLCBvdGhlcl9jb3VudCk7CiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9Cg==