%{
#include <stdio.h>
int charCount = 0, wordCount = 0, spaceCount = 0, lineCount = 0;
%}
%%
[ \t] { spaceCount++; charCount++; } /* Count spaces/tabs */
\n { lineCount++; charCount++; } /* Count newlines */
[a-zA-Z]+ { wordCount++; charCount += yyleng; } /* Count words, add their length */
. { charCount++; } /* Count any other character */
%%
int main() {
yylex();
printf("Characters: %d\n", charCount);
printf("Words: %d\n", wordCount);
printf("Spaces: %d\n", spaceCount);
printf("Lines: %d\n", lineCount);
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBjaGFyQ291bnQgPSAwLCB3b3JkQ291bnQgPSAwLCBzcGFjZUNvdW50ID0gMCwgbGluZUNvdW50ID0gMDsKJX0KCiUlClsgXHRdICAgICAgIHsgc3BhY2VDb3VudCsrOyBjaGFyQ291bnQrKzsgfSAvKiBDb3VudCBzcGFjZXMvdGFicyAqLwpcbiAgICAgICAgICB7IGxpbmVDb3VudCsrOyBjaGFyQ291bnQrKzsgfSAgLyogQ291bnQgbmV3bGluZXMgKi8KW2EtekEtWl0rICAgeyB3b3JkQ291bnQrKzsgY2hhckNvdW50ICs9IHl5bGVuZzsgfSAvKiBDb3VudCB3b3JkcywgYWRkIHRoZWlyIGxlbmd0aCAqLwouICAgICAgICAgICB7IGNoYXJDb3VudCsrOyB9ICAgICAgICAgICAgICAgLyogQ291bnQgYW55IG90aGVyIGNoYXJhY3RlciAqLwolJQoKaW50IG1haW4oKSB7CiAgICB5eWxleCgpOwogICAgcHJpbnRmKCJDaGFyYWN0ZXJzOiAlZFxuIiwgY2hhckNvdW50KTsKICAgIHByaW50ZigiV29yZHM6ICVkXG4iLCB3b3JkQ291bnQpOwogICAgcHJpbnRmKCJTcGFjZXM6ICVkXG4iLCBzcGFjZUNvdW50KTsKICAgIHByaW50ZigiTGluZXM6ICVkXG4iLCBsaW5lQ291bnQpOwogICAgcmV0dXJuIDA7Cn0=