|
| Distribution.PreProcess | | Portability | GHC, Hugs | | Stability | alpha | | Maintainer | Isaac Jones <ijones@syntaxpolice.org> |
|
|
|
|
|
| Description |
|
|
| Synopsis |
|
|
|
| Documentation |
|
| preprocessSources |
|
|
| knownSuffixHandlers :: [PPSuffixHandler] |
| Standard preprocessors: GreenCard, c2hs, hsc2hs, happy, alex and cpphs. |
|
| ppSuffixes :: [PPSuffixHandler] -> [String] |
| Convenience function; get the suffixes of these preprocessors. |
|
| type PPSuffixHandler = (String, BuildInfo -> LocalBuildInfo -> PreProcessor) |
| A preprocessor for turning non-Haskell files with the given extension
into plain Haskell source files. |
|
| type PreProcessor = FilePath -> FilePath -> Int -> IO ExitCode |
The interface to a preprocessor, which may be implemented using an
external program, but need not be. The arguments are the name of
the input file, the name of the output file and a verbosity level.
Here is a simple example that merely prepends a comment to the given
source file:
ppTestHandler :: PreProcessor
ppTestHandler inFile outFile verbose
= do when (verbose > 0) $
putStrLn (inFile++" has been preprocessed to "++outFile)
stuff <- readFile inFile
writeFile outFile ("-- preprocessed as a test\n\n" ++ stuff)
return ExitSuccess
|
|
| removePreprocessed |
| :: FilePath | search Location | | -> [String] | Modules | | -> [String] | suffixes | | -> IO () | | | Remove the preprocessed .hs files. (do we need to get some .lhs files too?) |
|
|
| removePreprocessedPackage |
| :: PackageDescription | | | -> FilePath | root of source tree (where to look for hsSources) | | -> [String] | suffixes | | -> IO () | |
|
|
| ppCpp :: BuildInfo -> LocalBuildInfo -> PreProcessor |
|
| ppCpp' :: [String] -> BuildInfo -> LocalBuildInfo -> PreProcessor |
|
| ppGreenCard :: PreProcessor |
|
| ppC2hs :: PreProcessor |
|
| ppHsc2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor |
|
| ppHappy :: BuildInfo -> LocalBuildInfo -> PreProcessor |
|
| ppAlex :: BuildInfo -> LocalBuildInfo -> PreProcessor |
|
| ppUnlit :: PreProcessor |
|
| Produced by Haddock version 0.6 |