%{
#include <stdio.h>
int line = 1, word = 0, chars = 0;
%}
%%
[a-zA-Z0-9]+ { word++; chars += yyleng; } // Count words and characters
\n { line++; } // Count lines
. { chars++; } // Count other characters
%%
int yywrap() { return 1; }
int main() {
yyin = fopen("data.txt", "r");
if (!yyin) {
printf
("Cannot
open file data
.txt\n"
); return 1;
}
yylex();
printf("\nNumber of lines : %d", line);
printf("\nNumber of words : %d", word);
printf("\nNumber of characters : %d\n", chars);
fclose(yyin);
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbGluZSA9IDEsIHdvcmQgPSAwLCBjaGFycyA9IDA7CiV9CgolJQoKW2EtekEtWjAtOV0rICAgIHsgd29yZCsrOyBjaGFycyArPSB5eWxlbmc7IH0gICAvLyBDb3VudCB3b3JkcyBhbmQgY2hhcmFjdGVycwpcbiAgICAgICAgICAgICAgeyBsaW5lKys7IH0gICAgICAgICAgICAgICAgICAgLy8gQ291bnQgbGluZXMKLiAgICAgICAgICAgICAgIHsgY2hhcnMrKzsgfSAgICAgICAgICAgICAgICAgIC8vIENvdW50IG90aGVyIGNoYXJhY3RlcnMKCiUlCgppbnQgeXl3cmFwKCkgeyByZXR1cm4gMTsgfQoKaW50IG1haW4oKSB7CiAgICB5eWluID0gZm9wZW4oImRhdGEudHh0IiwgInIiKTsKICAgIGlmICgheXlpbikgewogICAgICAgIHByaW50ZigiQ2Fubm90IG9wZW4gZmlsZSBkYXRhLnR4dFxuIik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICB5eWxleCgpOwogICAgcHJpbnRmKCJcbk51bWJlciBvZiBsaW5lcyA6ICVkIiwgbGluZSk7CiAgICBwcmludGYoIlxuTnVtYmVyIG9mIHdvcmRzIDogJWQiLCB3b3JkKTsKICAgIHByaW50ZigiXG5OdW1iZXIgb2YgY2hhcmFjdGVycyA6ICVkXG4iLCBjaGFycyk7CiAgICBmY2xvc2UoeXlpbik7CiAgICByZXR1cm4gMDsKfQo=