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