A generic preprocessor
