%{
#include <stdio.h>
int word_count = 0;
int line_count = 0;
%}
%%
[ \t]+ ; // Ignore spaces and tabs
\n { line_count++; } // Count each newline as a line
[^ \t\n]+ { word_count++; } // Count sequences of non-space characters as words
%%
int main() {
printf("Enter text (Ctrl+D to end input on Linux / Ctrl+Z on Windows):\n");
yylex(); // Start scanning
printf
("\nTotal
number of lines
: %d\n", line_count);printf
("Total
number of words
: %d\n", word_count);return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgd29yZF9jb3VudCA9IDA7CmludCBsaW5lX2NvdW50ID0gMDsKJX0KCiUlClsgXHRdKyAgICAgICAgICAgICAgIDsgICAgICAgLy8gSWdub3JlIHNwYWNlcyBhbmQgdGFicwpcbiAgICAgICAgICAgICAgICAgICB7IGxpbmVfY291bnQrKzsgfSAgIC8vIENvdW50IGVhY2ggbmV3bGluZSBhcyBhIGxpbmUKW14gXHRcbl0rICAgICAgICAgICAgeyB3b3JkX2NvdW50Kys7IH0gICAvLyBDb3VudCBzZXF1ZW5jZXMgb2Ygbm9uLXNwYWNlIGNoYXJhY3RlcnMgYXMgd29yZHMKJSUKCmludCBtYWluKCkgewpwcmludGYoIkVudGVyIHRleHQgKEN0cmwrRCB0byBlbmQgaW5wdXQgb24gTGludXggLyBDdHJsK1ogb24gV2luZG93cyk6XG4iKTsKeXlsZXgoKTsgLy8gU3RhcnQgc2Nhbm5pbmcKcHJpbnRmKCJcblRvdGFsIG51bWJlciBvZiBsaW5lczogJWRcbiIsIGxpbmVfY291bnQpOwpwcmludGYoIlRvdGFsIG51bWJlciBvZiB3b3JkczogJWRcbiIsIHdvcmRfY291bnQpOwpyZXR1cm4gMDsKfQ==