%{
#include <stdio.h>
int lines = 0;
int spaces = 0;
int tabs = 0;
int others = 0;
%}
%%
\n { lines++; } // Count a new line
" " { spaces++; } // Count a space
"\t" { tabs++; } // Count a tab
. { others++; } // Count all other characters
%%
int main() {
yylex
(); // Call the Lex scanner to process the input
// Output the results
printf
("The
number of lines are
: %d\n", lines); printf
("The
number of spaces are
: %d\n", spaces); printf
("The
number of tab
-meta characters are
: %d\n", tabs); printf("The rest of the characters are: %d\n", others);
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbGluZXMgPSAwOwppbnQgc3BhY2VzID0gMDsKaW50IHRhYnMgPSAwOwppbnQgb3RoZXJzID0gMDsKJX0KCiUlCgpcbiAgICAgICAgICB7IGxpbmVzKys7IH0gICAgICAgICAgLy8gQ291bnQgYSBuZXcgbGluZQoiICIgICAgICAgICB7IHNwYWNlcysrOyB9ICAgICAgICAgLy8gQ291bnQgYSBzcGFjZQoiXHQiICAgICAgICB7IHRhYnMrKzsgfSAgICAgICAgICAgLy8gQ291bnQgYSB0YWIKLiAgICAgICAgICAgeyBvdGhlcnMrKzsgfSAgICAgICAgIC8vIENvdW50IGFsbCBvdGhlciBjaGFyYWN0ZXJzCgolJQoKaW50IG1haW4oKSB7CiAgICB5eWxleCgpOyAgLy8gQ2FsbCB0aGUgTGV4IHNjYW5uZXIgdG8gcHJvY2VzcyB0aGUgaW5wdXQKICAgIC8vIE91dHB1dCB0aGUgcmVzdWx0cwogICAgcHJpbnRmKCJUaGUgbnVtYmVyIG9mIGxpbmVzIGFyZTogJWRcbiIsIGxpbmVzKTsKICAgIHByaW50ZigiVGhlIG51bWJlciBvZiBzcGFjZXMgYXJlOiAlZFxuIiwgc3BhY2VzKTsKICAgIHByaW50ZigiVGhlIG51bWJlciBvZiB0YWItbWV0YSBjaGFyYWN0ZXJzIGFyZTogJWRcbiIsIHRhYnMpOwogICAgcHJpbnRmKCJUaGUgcmVzdCBvZiB0aGUgY2hhcmFjdGVycyBhcmU6ICVkXG4iLCBvdGhlcnMpOwogICAgcmV0dXJuIDA7Cn0K