%{
#include <stdio.h>
int count_less_than_5 = 0;
int count_greater_than_10 = 0;
%}
%%
[a-zA-Z0-9]+ {
int len = yyleng;
if (len < 5)
count_less_than_5++;
else if (len > 10)
count_greater_than_10++;
}
[ \t\n]+ ; // Ignore whitespace
. ; // Ignore any other character
%%
int main(int argc, char **argv) {
printf("Enter text (CTRL+D to end input):\n");
yylex();
printf("\nWords with length < 5: %d\n", count_less_than_5);
printf("Words with length > 10: %d\n", count_greater_than_10);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBjb3VudF9sZXNzX3RoYW5fNSA9IDA7CmludCBjb3VudF9ncmVhdGVyX3RoYW5fMTAgPSAwOwolfQoKJSUKW2EtekEtWjAtOV0rIHsKICAgIGludCBsZW4gPSB5eWxlbmc7CiAgICBpZiAobGVuIDwgNSkKICAgICAgICBjb3VudF9sZXNzX3RoYW5fNSsrOwogICAgZWxzZSBpZiAobGVuID4gMTApCiAgICAgICAgY291bnRfZ3JlYXRlcl90aGFuXzEwKys7Cn0KWyBcdFxuXSsgOyAgLy8gSWdub3JlIHdoaXRlc3BhY2UKLiA7ICAgICAgICAgLy8gSWdub3JlIGFueSBvdGhlciBjaGFyYWN0ZXIKJSUKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewogICAgcHJpbnRmKCJFbnRlciB0ZXh0IChDVFJMK0QgdG8gZW5kIGlucHV0KTpcbiIpOwogICAgeXlsZXgoKTsKICAgIHByaW50ZigiXG5Xb3JkcyB3aXRoIGxlbmd0aCA8IDU6ICVkXG4iLCBjb3VudF9sZXNzX3RoYW5fNSk7CiAgICBwcmludGYoIldvcmRzIHdpdGggbGVuZ3RoID4gMTA6ICVkXG4iLCBjb3VudF9ncmVhdGVyX3RoYW5fMTApOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQo=