A portable C/C++ preprocessor