%{
#include <stdio.h>
int line_count = 0, space_count = 0, tab_count = 0;
%}
%%
\n { line_count++; }
[ ] { space_count++; }
\t { tab_count++; }
. { /* Ignore other characters */ }
%%
int main() {
printf("\n");
yylex(); // Run the lexical analyzer
printf("\n Lines: %d\n", line_count);
printf(" Spaces: %d\n", space_count);
printf(" Tabs: %d\n", tab_count);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBsaW5lX2NvdW50ID0gMCwgc3BhY2VfY291bnQgPSAwLCB0YWJfY291bnQgPSAwOwolfQoKJSUKXG4gICAgICAgICAgeyBsaW5lX2NvdW50Kys7IH0gICAgICAgClsgXSAgICAgICAgIHsgc3BhY2VfY291bnQrKzsgfSAgICAgIApcdCAgICAgICAgICB7IHRhYl9jb3VudCsrOyB9ICAgICAgICAKLiAgICAgICAgICAgeyAvKiBJZ25vcmUgb3RoZXIgY2hhcmFjdGVycyAqLyB9CiUlCgppbnQgbWFpbigpIHsKICAgIHByaW50ZigiXG4iKTsKICAgIHl5bGV4KCk7ICAvLyBSdW4gdGhlIGxleGljYWwgYW5hbHl6ZXIKICAgIHByaW50ZigiXG4gTGluZXM6ICVkXG4iLCBsaW5lX2NvdW50KTsKICAgIHByaW50ZigiIFNwYWNlczogJWRcbiIsIHNwYWNlX2NvdW50KTsKICAgIHByaW50ZigiIFRhYnM6ICVkXG4iLCB0YWJfY291bnQpOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQo=