%{
#include <stdio.h>
int line_count = 0, space_count = 0, tab_count = 0, char_count = 0;
%}
%%
\n { line_count++; }
[ ] { space_count++; }
\t { tab_count++; }
. { char_count++; }
%%
int main() {
printf("Enter input text (Ctrl+D to end on Linux/Mac, Ctrl+Z on Windows):\n");
yylex();
printf("\nStatistics:\n");
printf("Lines: %d\n", line_count);
printf("Spaces: %d\n", space_count);
printf("Tabs: %d\n", tab_count);
printf("Other characters: %d\n", char_count);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBsaW5lX2NvdW50ID0gMCwgc3BhY2VfY291bnQgPSAwLCB0YWJfY291bnQgPSAwLCBjaGFyX2NvdW50ID0gMDsKJX0KCiUlClxuICAgICAgeyBsaW5lX2NvdW50Kys7IH0KWyBdICAgICB7IHNwYWNlX2NvdW50Kys7IH0KXHQgICAgICB7IHRhYl9jb3VudCsrOyB9Ci4gICAgICAgeyBjaGFyX2NvdW50Kys7IH0KJSUKCmludCBtYWluKCkgewogICAgcHJpbnRmKCJFbnRlciBpbnB1dCB0ZXh0IChDdHJsK0QgdG8gZW5kIG9uIExpbnV4L01hYywgQ3RybCtaIG9uIFdpbmRvd3MpOlxuIik7CiAgICB5eWxleCgpOwogICAgcHJpbnRmKCJcblN0YXRpc3RpY3M6XG4iKTsKICAgIHByaW50ZigiTGluZXM6ICVkXG4iLCBsaW5lX2NvdW50KTsKICAgIHByaW50ZigiU3BhY2VzOiAlZFxuIiwgc3BhY2VfY291bnQpOwogICAgcHJpbnRmKCJUYWJzOiAlZFxuIiwgdGFiX2NvdW50KTsKICAgIHByaW50ZigiT3RoZXIgY2hhcmFjdGVyczogJWRcbiIsIGNoYXJfY291bnQpOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQ==