language-c-0.3.2.1: Analysis and generation of C code

Portabilityportable
Stabilityexperimental
Maintainerbenedikt.huber@gmail.com
Safe HaskellNone

Language.C.System.Preprocess

Description

Invoking external preprocessors.

Synopsis

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

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 

Fields

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)