+-------------------------------------------------------------------------------
+-- HsPp phase
+run_phase HsPp basename suff input_fn output_fn
+ = do src_opts <- getOptionsFromSource input_fn
+ unhandled_flags <- processArgs dynamic_flags src_opts []
+ checkProcessArgsResult unhandled_flags basename suff
+
+ let orig_fn = basename ++ '.':suff
+ do_pp <- dynFlag ppFlag
+ if not do_pp then
+ -- no need to preprocess, just pass input file along
+ -- to the next phase of the pipeline.
+ return (Just input_fn)
+ else do
+ hspp_opts <- getOpts opt_F
+ hs_src_pp_opts <- readIORef v_Hs_source_pp_opts
+ SysTools.runPp ( [ SysTools.Option orig_fn
+ , SysTools.Option input_fn
+ , SysTools.FileOption "" output_fn
+ ] ++
+ map SysTools.Option hs_src_pp_opts ++
+ map SysTools.Option hspp_opts
+ )
+ return (Just output_fn)
+