%{
#include <stdio.h>
int line_count = 0;
int word_count = 0;
int char_count = 0;
%}
%%
\n {
line_count++;
char_count += strlen(yytext);
}
[a-zA-Z0-9_]+ {
word_count++;
char_count += strlen(yytext);
}
[ \t] {
char_count += strlen(yytext);
}
. {
char_count += strlen(yytext);
}
%%
int main() {
printf("Enter text (press Ctrl+D when finished):\n");
yylex();
printf("\nResults:\n");
printf
("
Number of lines
: %d\n", line_count); printf
("
Number of words
: %d\n", word_count); printf("Total characters: %d\n", char_count);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBsaW5lX2NvdW50ID0gMDsKaW50IHdvcmRfY291bnQgPSAwOwppbnQgY2hhcl9jb3VudCA9IDA7CiV9CgolJQpcbiB7IAogICAgbGluZV9jb3VudCsrOwogICAgY2hhcl9jb3VudCArPSBzdHJsZW4oeXl0ZXh0KTsKfQpbYS16QS1aMC05X10rIHsKICAgIHdvcmRfY291bnQrKzsKICAgIGNoYXJfY291bnQgKz0gc3RybGVuKHl5dGV4dCk7Cn0KWyBcdF0gewogICAgY2hhcl9jb3VudCArPSBzdHJsZW4oeXl0ZXh0KTsKfQouIHsKICAgIGNoYXJfY291bnQgKz0gc3RybGVuKHl5dGV4dCk7Cn0KCiUlCgppbnQgbWFpbigpIHsKICAgIHByaW50ZigiRW50ZXIgdGV4dCAocHJlc3MgQ3RybCtEIHdoZW4gZmluaXNoZWQpOlxuIik7CiAgICB5eWxleCgpOwogICAgCiAgICBwcmludGYoIlxuUmVzdWx0czpcbiIpOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgbGluZXM6ICVkXG4iLCBsaW5lX2NvdW50KTsKICAgIHByaW50ZigiTnVtYmVyIG9mIHdvcmRzOiAlZFxuIiwgd29yZF9jb3VudCk7CiAgICBwcmludGYoIlRvdGFsIGNoYXJhY3RlcnM6ICVkXG4iLCBjaGFyX2NvdW50KTsKICAgIAogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQ==