%{
#include <stdio.h>
int macro_count = 0;
int header_count = 0;
%}
%%
^[ \t]*#define { macro_count++; }
^[ \t]*#include { header_count++; }
.|\n ; /* Ignore all other input */
%%
int main() {
printf("Enter C program (Press Ctrl+D to end input):\n\n");
yylex();
printf("\nNumber of macros defined: %d\n", macro_count);
printf
("
Number of header files included
: %d\n", header_count);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFjcm9fY291bnQgPSAwOwppbnQgaGVhZGVyX2NvdW50ID0gMDsKJX0KCiUlCgpeWyBcdF0qI2RlZmluZSAgICAgIHsgbWFjcm9fY291bnQrKzsgfQpeWyBcdF0qI2luY2x1ZGUgICAgIHsgaGVhZGVyX2NvdW50Kys7IH0KCi58XG4gICAgICAgICAgICAgICAgOyAgIC8qIElnbm9yZSBhbGwgb3RoZXIgaW5wdXQgKi8KCiUlCgppbnQgbWFpbigpIHsKICAgIHByaW50ZigiRW50ZXIgQyBwcm9ncmFtIChQcmVzcyBDdHJsK0QgdG8gZW5kIGlucHV0KTpcblxuIik7CiAgICB5eWxleCgpOwoKICAgIHByaW50ZigiXG5OdW1iZXIgb2YgbWFjcm9zIGRlZmluZWQ6ICVkXG4iLCBtYWNyb19jb3VudCk7CiAgICBwcmludGYoIk51bWJlciBvZiBoZWFkZXIgZmlsZXMgaW5jbHVkZWQ6ICVkXG4iLCBoZWFkZXJfY291bnQpOwoKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7Cn0=