For a 'wholefile_with_synclines' style preprocessor, the module must provide the following class methods:
Class->pp_style() - must return the string 'wholefile_with_synclines'
$tempfile = Class->preprocess(sourcefile => $filename, includepaths => [$path1, $path2...], defines => {name1 => 'value1'...} )
This should preprocess the file and return a filename for the output file, which will be deleted later