%{
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==