%{
int lines = 0, spaces = 0, tabs = 0, meta = 0, others = 0;
%}
%%
\n { lines++; }
" " { spaces++; }
\t { tabs++; }
[!@#$%^&*()_+=<>?/\\] { meta++; }
. { others++; }
%%
int main() {
yylex();
printf("Lines: %d\nSpaces: %d\nTabs: %d\nMeta Characters: %d\nOther Characters: %d\n",
lines, spaces, tabs, meta, others);
return 0;
}
int yywrap() { return 1; }
JXsKaW50IGxpbmVzID0gMCwgc3BhY2VzID0gMCwgdGFicyA9IDAsIG1ldGEgPSAwLCBvdGhlcnMgPSAwOwolfQoKJSUKClxuICAgICAgeyBsaW5lcysrOyB9CiIgIiAgICAgeyBzcGFjZXMrKzsgfQpcdCAgICAgIHsgdGFicysrOyB9ClshQCMkJV4mKigpXys9PD4/L1xcXSB7IG1ldGErKzsgfQouICAgICAgIHsgb3RoZXJzKys7IH0KCiUlCgppbnQgbWFpbigpIHsKICAgIHl5bGV4KCk7CgogICAgcHJpbnRmKCJMaW5lczogJWRcblNwYWNlczogJWRcblRhYnM6ICVkXG5NZXRhIENoYXJhY3RlcnM6ICVkXG5PdGhlciBDaGFyYWN0ZXJzOiAlZFxuIiwgCiAgICAgICAgICAgIGxpbmVzLCBzcGFjZXMsIHRhYnMsIG1ldGEsIG90aGVycyk7CgogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7IHJldHVybiAxOyB9Cg==