Alternative C/C++ preprocessor