A plugin framework for preprocessor DSLs in C/C++