%{
// Description Part
#include<stdio.h>
int lines = 0, spaces = 0, tabs = 0, characters = 0;
%}
%%
// Rule Section
\n { lines++; characters++; }
\t { tabs++; characters++; }
" " { spaces++; characters++; }
. { characters++; }
%%
int main() {
// Main Section
yylex();
printf("Characters = %d\n", characters);
printf("Tabs = %d\n", tabs);
printf("Spaces = %d\n", spaces);
printf("Lines = %d\n", lines);
return 0;
}
int yywrap() {
return 1;
}
JXsKICAgIC8vIERlc2NyaXB0aW9uIFBhcnQKICAgICNpbmNsdWRlPHN0ZGlvLmg+CiAgICAKICAgIGludCBsaW5lcyA9IDAsIHNwYWNlcyA9IDAsIHRhYnMgPSAwLCBjaGFyYWN0ZXJzID0gMDsKJX0KCiUlCi8vIFJ1bGUgU2VjdGlvbgoKXG4gICAgICB7IGxpbmVzKys7IGNoYXJhY3RlcnMrKzsgfQpcdCAgICAgIHsgdGFicysrOyBjaGFyYWN0ZXJzKys7IH0KIiAiICAgICB7IHNwYWNlcysrOyBjaGFyYWN0ZXJzKys7IH0KLiAgICAgICB7IGNoYXJhY3RlcnMrKzsgfQoKJSUKCmludCBtYWluKCkgewogICAgLy8gTWFpbiBTZWN0aW9uCiAgICB5eWxleCgpOyAKICAgIHByaW50ZigiQ2hhcmFjdGVycyA9ICVkXG4iLCBjaGFyYWN0ZXJzKTsKICAgIHByaW50ZigiVGFicyA9ICVkXG4iLCB0YWJzKTsKICAgIHByaW50ZigiU3BhY2VzID0gJWRcbiIsIHNwYWNlcyk7CiAgICBwcmludGYoIkxpbmVzID0gJWRcbiIsIGxpbmVzKTsKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7Cn0K