changed result type of preprocessor to include line numbers