%{
#include <stdio.h>
int lines = 0, spaces = 0, tabs = 0, other_chars = 0;
%}
%%
\n { lines++; }
" " { spaces++; }
\t { tabs++; }
. { other_chars++; }
%%
int main() {
printf("Enter the input (Ctrl+D to end input in Linux/Mac, Ctrl+Z in Windows):\n");
yylex();
printf("Lines: %d\nSpaces: %d\nTabs: %d\nOther characters: %d\n", lines, spaces, tabs, other_chars);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBsaW5lcyA9IDAsIHNwYWNlcyA9IDAsIHRhYnMgPSAwLCBvdGhlcl9jaGFycyA9IDA7CiV9CgolJQpcbiAgICAgIHsgbGluZXMrKzsgfQoiICIgICAgeyBzcGFjZXMrKzsgfQpcdCAgICAgeyB0YWJzKys7IH0KLiAgICAgIHsgb3RoZXJfY2hhcnMrKzsgfQolJQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIHRoZSBpbnB1dCAoQ3RybCtEIHRvIGVuZCBpbnB1dCBpbiBMaW51eC9NYWMsIEN0cmwrWiBpbiBXaW5kb3dzKTpcbiIpOwogICAgeXlsZXgoKTsKICAgIHByaW50ZigiTGluZXM6ICVkXG5TcGFjZXM6ICVkXG5UYWJzOiAlZFxuT3RoZXIgY2hhcmFjdGVyczogJWRcbiIsIGxpbmVzLCBzcGFjZXMsIHRhYnMsIG90aGVyX2NoYXJzKTsKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7Cn0=