%{
int token_count = 0;
%}
%%
"int"|"float"|"char"|"return"|"if"|"else"|"while"|"for"|"do"|"void" { token_count++; }
[a-zA-Z_][a-zA-Z0-9_]* { token_count++; } // identifiers
[0-9]+ { token_count++; } // integers
[=+\-*/%<>&|!^] { token_count++; } // operators
[{}();,] { token_count++; } // symbols
[ \t\n]+ { /* ignore whitespace */ }
. { token_count++; } // any other character as token
%%
int main(int argc, char **argv)
{
yylex();
printf
("Total
number of tokens
: %d\n", token_count); return 0;
}
int yywrap() {
return 1;
}
JXsKaW50IHRva2VuX2NvdW50ID0gMDsKJX0KCiUlCiJpbnQifCJmbG9hdCJ8ImNoYXIifCJyZXR1cm4ifCJpZiJ8ImVsc2UifCJ3aGlsZSJ8ImZvciJ8ImRvInwidm9pZCIgICAgeyB0b2tlbl9jb3VudCsrOyB9ClthLXpBLVpfXVthLXpBLVowLTlfXSogICAgeyB0b2tlbl9jb3VudCsrOyB9ICAgLy8gaWRlbnRpZmllcnMKWzAtOV0rICAgICAgICAgICAgICAgICAgICB7IHRva2VuX2NvdW50Kys7IH0gICAvLyBpbnRlZ2VycwpbPStcLSovJTw+JnwhXl0gICAgICAgICAgIHsgdG9rZW5fY291bnQrKzsgfSAgIC8vIG9wZXJhdG9ycwpbe30oKTssXSAgICAgICAgICAgICAgICAgIHsgdG9rZW5fY291bnQrKzsgfSAgIC8vIHN5bWJvbHMKWyBcdFxuXSsgICAgICAgICAgICAgICAgICB7IC8qIGlnbm9yZSB3aGl0ZXNwYWNlICovIH0KLiAgICAgICAgICAgICAgICAgICAgICAgICB7IHRva2VuX2NvdW50Kys7IH0gICAvLyBhbnkgb3RoZXIgY2hhcmFjdGVyIGFzIHRva2VuCiUlCgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCnsKICAgIHl5bGV4KCk7CiAgICBwcmludGYoIlRvdGFsIG51bWJlciBvZiB0b2tlbnM6ICVkXG4iLCB0b2tlbl9jb3VudCk7CiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9Cg==