%{
int lines = 0, words = 0, chars = 0;
%}
%%
\n { lines++; chars++; } /* Count new lines */
[ \t]+ { chars += yyleng; } /* Count spaces and tabs */
[^ \t\n]+ { words++; chars += yyleng; } /* Count words and characters */
%%
int main()
{
yylex();
printf
("
Number of lines
: %d\n", lines); printf
("
Number of words
: %d\n", words); printf
("
Number of characters
: %d\n", chars); return 0;
}
int yywrap() { return 1; }
JXsKaW50IGxpbmVzID0gMCwgd29yZHMgPSAwLCBjaGFycyA9IDA7CiV9CgolJQpcbiAgICAgIHsgbGluZXMrKzsgY2hhcnMrKzsgfSAgICAgICAgICAgICAgICAvKiBDb3VudCBuZXcgbGluZXMgKi8KWyBcdF0rICB7IGNoYXJzICs9IHl5bGVuZzsgfSAgICAgICAgICAgICAgICAgLyogQ291bnQgc3BhY2VzIGFuZCB0YWJzICovClteIFx0XG5dKyB7IHdvcmRzKys7IGNoYXJzICs9IHl5bGVuZzsgfSAgICAgIC8qIENvdW50IHdvcmRzIGFuZCBjaGFyYWN0ZXJzICovCiUlCgppbnQgbWFpbigpCnsKICAgIHl5bGV4KCk7CiAgICBwcmludGYoIk51bWJlciBvZiBsaW5lczogJWRcbiIsIGxpbmVzKTsKICAgIHByaW50ZigiTnVtYmVyIG9mIHdvcmRzOiAlZFxuIiwgd29yZHMpOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgY2hhcmFjdGVyczogJWRcbiIsIGNoYXJzKTsKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgeyByZXR1cm4gMTsgfQ==