%{
#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=