language-c-0.3.1.1: Analysis and generation of C codeContentsIndex
Language.C.System.Preprocess
Portabilityportable
Stabilityexperimental
Maintainerbenedikt.huber@gmail.com
Description
Invoking external preprocessors.
Synopsis
class Preprocessor cpp where
parseCPPArgs :: cpp -> [String] -> Either String (CppArgs, [String])
runCPP :: cpp -> CppArgs -> IO ExitCode
data CppOption
= IncludeDir FilePath
| Define String String
| Undefine String
| IncludeFile FilePath
data CppArgs = CppArgs {
cppOptions :: [CppOption]
extraOptions :: [String]
cppTmpDir :: Maybe FilePath
inputFile :: FilePath
outputFile :: Maybe FilePath
}
rawCppArgs :: [String] -> FilePath -> CppArgs
addCppOption :: CppArgs -> CppOption -> CppArgs
addExtraOption :: CppArgs -> String -> CppArgs
runPreprocessor :: Preprocessor cpp => cpp -> CppArgs -> IO (Either ExitCode InputStream)
isPreprocessed :: FilePath -> Bool
Documentation
class Preprocessor cpp where
Preprocessor encapsulates the abstract interface for invoking C preprocessors
Methods
parseCPPArgs :: cpp -> [String] -> Either String (CppArgs, [String])
parse the given command line arguments, and return a pair of parsed and ignored arguments
runCPP :: cpp -> CppArgs -> IO ExitCode
run the preprocessor
show/hide Instances
data CppOption
Generic Options for the preprocessor
Constructors
IncludeDir FilePath
Define String String
Undefine String
IncludeFile FilePath
data CppArgs
Generic arguments for the preprocessor
Constructors
CppArgs
cppOptions :: [CppOption]
extraOptions :: [String]
cppTmpDir :: Maybe FilePath
inputFile :: FilePath
outputFile :: Maybe FilePath
rawCppArgs :: [String] -> FilePath -> CppArgs
use the given preprocessor arguments without analyzing them
addCppOption :: CppArgs -> CppOption -> CppArgs
add a typed option to the given preprocessor arguments
addExtraOption :: CppArgs -> String -> CppArgs
add a string option to the given preprocessor arguments
runPreprocessor :: Preprocessor cpp => cpp -> CppArgs -> IO (Either ExitCode InputStream)
run the preprocessor and return an InputStream if preprocesssing succeeded
isPreprocessed :: FilePath -> Bool
guess whether a file is preprocessed (file end with .i)
Produced by Haddock version 2.7.2