%{
int num_lines = 0;
int num_spaces = 0;
int num_tabs = 0;
int num_others = 0;
%}
%%
\n { num_lines++; }
[ \t] { num_spaces++; }
[\x01-\x09\x0b-\x1f\x7f] { num_tabs++; }
. { num_others++; }
%%
int main() {
yylex();
printf
("
Number of lines
: %d\n", num_lines); printf
("
Number of spaces
: %d\n", num_spaces); printf
("
Number of tabs
/meta characters
: %d\n", num_tabs); printf
("
Number of other characters
: %d\n", num_others);
return 0;
}
int yywrap() {
return 1;
}
JXsgCmludCBudW1fbGluZXMgPSAwOyAKaW50IG51bV9zcGFjZXMgPSAwOyAKaW50IG51bV90YWJzID0gMDsgCmludCBudW1fb3RoZXJzID0gMDsgCiV9IAogCiUlIApcbiB7IG51bV9saW5lcysrOyB9IApbIFx0XSB7IG51bV9zcGFjZXMrKzsgfSAKW1x4MDEtXHgwOVx4MGItXHgxZlx4N2ZdIHsgbnVtX3RhYnMrKzsgfSAKLiB7IG51bV9vdGhlcnMrKzsgfSAKJSUgCiAKaW50IG1haW4oKSB7IAp5eWxleCgpOyAKcHJpbnRmKCJOdW1iZXIgb2YgbGluZXM6ICVkXG4iLCBudW1fbGluZXMpOyAKcHJpbnRmKCJOdW1iZXIgb2Ygc3BhY2VzOiAlZFxuIiwgbnVtX3NwYWNlcyk7IApwcmludGYoIk51bWJlciBvZiB0YWJzL21ldGEgY2hhcmFjdGVyczogJWRcbiIsIG51bV90YWJzKTsgCnByaW50ZigiTnVtYmVyIG9mIG90aGVyIGNoYXJhY3RlcnM6ICVkXG4iLCBudW1fb3RoZXJzKTsgCiAKcmV0dXJuIDA7IAp9IAogCmludCB5eXdyYXAoKSB7IApyZXR1cm4gMTsgCn0g