%{
#include <stdio.h>
int char_count = 0;
int word_count = 0;
int line_count = 0;
%}
%%
\n { line_count++; char_count++; } // Count newlines and characters
[ \t]+ { char_count += yyleng; } // Count spaces/tabs as characters
[^\t\n ]+ { word_count++; char_count += yyleng; } // Count words and their characters
. { char_count++; } // Count any other characters
%%
int main(int argc, char **argv) {
yylex
(); // Call the lexer to process input
printf("Lines: %d\n", line_count);
printf("Words: %d\n", word_count);
printf("Characters: %d\n", char_count);
return 0;
}
int yywrap() {
return 1; // Indicates end of input
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgY2hhcl9jb3VudCA9IDA7CmludCB3b3JkX2NvdW50ID0gMDsKaW50IGxpbmVfY291bnQgPSAwOwolfQoKJSUKClxuICAgICAgICAgICAgICB7IGxpbmVfY291bnQrKzsgY2hhcl9jb3VudCsrOyB9ICAgICAgICAgICAgICAgICAgLy8gQ291bnQgbmV3bGluZXMgYW5kIGNoYXJhY3RlcnMKWyBcdF0rICAgICAgICAgIHsgY2hhcl9jb3VudCArPSB5eWxlbmc7IH0gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb3VudCBzcGFjZXMvdGFicyBhcyBjaGFyYWN0ZXJzClteXHRcbiBdKyAgICAgICB7IHdvcmRfY291bnQrKzsgY2hhcl9jb3VudCArPSB5eWxlbmc7IH0gICAgICAgICAgLy8gQ291bnQgd29yZHMgYW5kIHRoZWlyIGNoYXJhY3RlcnMKLiAgICAgICAgICAgICAgIHsgY2hhcl9jb3VudCsrOyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb3VudCBhbnkgb3RoZXIgY2hhcmFjdGVycwoKJSUKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAgeXlsZXgoKTsgIC8vIENhbGwgdGhlIGxleGVyIHRvIHByb2Nlc3MgaW5wdXQKCiAgICBwcmludGYoIkxpbmVzOiAlZFxuIiwgbGluZV9jb3VudCk7CiAgICBwcmludGYoIldvcmRzOiAlZFxuIiwgd29yZF9jb3VudCk7CiAgICBwcmludGYoIkNoYXJhY3RlcnM6ICVkXG4iLCBjaGFyX2NvdW50KTsKCiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOyAgIC8vIEluZGljYXRlcyBlbmQgb2YgaW5wdXQKfQo=