%{
#include <stdio.h>
%}
%option noyywrap
%%
\n { num_newlines++; }
[ \t] { num_spaces++; }
[a-zA-Z]+ { num_words++; }
[+\-*\/] { num_operators++; }
[0-9]+ { num_operands++; }
[a-zA-Z]+ { num_identifiers++; }
[0-9]+ { num_constants++; }
[=,;] { num_special_symbols++; }
[aeiouAEIOU]{ num_vowels++; }
[^aeiouAEIOU \t\n] { num_consonants++; }
%%
int yywrap() {
return 1;
}
int main() {
yylex();
printf
("
Number of newlines
: %d\n", num_newlines); printf
("
Number of spaces
: %d\n", num_spaces); printf
("
Number of words
: %d\n", num_words); printf
("
Number of operators
: %d\n", num_operators); printf
("
Number of operands
: %d\n", num_operands); printf
("
Number of identifiers
: %d\n", num_identifiers); printf
("
Number of constants
: %d\n", num_constants); printf
("
Number of special symbols
: %d\n", num_special_symbols); printf
("
Number of vowels
: %d\n", num_vowels); printf
("
Number of consonants
: %d\n", num_consonants); return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9Cgolb3B0aW9uIG5veXl3cmFwCgolJQoKXG4gICAgICAgICAgeyBudW1fbmV3bGluZXMrKzsgfQpbIFx0XSAgICAgICB7IG51bV9zcGFjZXMrKzsgfQpbYS16QS1aXSsgICB7IG51bV93b3JkcysrOyB9ClsrXC0qXC9dICAgIHsgbnVtX29wZXJhdG9ycysrOyB9ClswLTldKyAgICAgIHsgbnVtX29wZXJhbmRzKys7IH0KW2EtekEtWl0rICAgeyBudW1faWRlbnRpZmllcnMrKzsgfQpbMC05XSsgICAgICB7IG51bV9jb25zdGFudHMrKzsgfQpbPSw7XSAgICAgICB7IG51bV9zcGVjaWFsX3N5bWJvbHMrKzsgfQpbYWVpb3VBRUlPVV17IG51bV92b3dlbHMrKzsgfQpbXmFlaW91QUVJT1UgXHRcbl0geyBudW1fY29uc29uYW50cysrOyB9CgolJQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9CgppbnQgbWFpbigpIHsKICAgIHl5bGV4KCk7CiAgICBwcmludGYoIk51bWJlciBvZiBuZXdsaW5lczogJWRcbiIsIG51bV9uZXdsaW5lcyk7CiAgICBwcmludGYoIk51bWJlciBvZiBzcGFjZXM6ICVkXG4iLCBudW1fc3BhY2VzKTsKICAgIHByaW50ZigiTnVtYmVyIG9mIHdvcmRzOiAlZFxuIiwgbnVtX3dvcmRzKTsKICAgIHByaW50ZigiTnVtYmVyIG9mIG9wZXJhdG9yczogJWRcbiIsIG51bV9vcGVyYXRvcnMpOwogICAgcHJpbnRmKCJOdW1iZXIgb2Ygb3BlcmFuZHM6ICVkXG4iLCBudW1fb3BlcmFuZHMpOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgaWRlbnRpZmllcnM6ICVkXG4iLCBudW1faWRlbnRpZmllcnMpOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgY29uc3RhbnRzOiAlZFxuIiwgbnVtX2NvbnN0YW50cyk7CiAgICBwcmludGYoIk51bWJlciBvZiBzcGVjaWFsIHN5bWJvbHM6ICVkXG4iLCBudW1fc3BlY2lhbF9zeW1ib2xzKTsKICAgIHByaW50ZigiTnVtYmVyIG9mIHZvd2VsczogJWRcbiIsIG51bV92b3dlbHMpOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgY29uc29uYW50czogJWRcbiIsIG51bV9jb25zb25hbnRzKTsKICAgIHJldHVybiAwOwp9Cg==