preprocessor docs