support for #define, #undef, #pragma