Language.Preprocessor.Cpphs

| cpphs | Source code | Contents | Index
Language.Preprocessor.Cpphs |
Portability | All
Stability | experimental
Maintainer | Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk>
Description
Include the interface that is exported
Synopsis
runCpphs :: CpphsOptions -> FilePath -> String -> String
cppIfdef :: FilePath -> [(String, String)] -> [String] -> BoolOptions -> String -> [(Posn, String)]
macroPass :: [(String, String)] -> BoolOptions -> [(Posn, String)] -> String
data CpphsOptions = CpphsOptions {
infiles :: [FilePath]
outfiles :: [FilePath]
defines :: [(String, String)]
includes :: [String]
preInclude :: [FilePath]
boolopts :: BoolOptions
}
data BoolOptions = BoolOptions {
macros :: Bool
locations :: Bool
pragma :: Bool
stripEol :: Bool
stripC89 :: Bool
lang :: Bool
ansi :: Bool
layout :: Bool
literate :: Bool
warnings :: Bool
}
parseOptions :: [String] -> Either String CpphsOptions
defaultCpphsOptions :: CpphsOptions
defaultBoolOptions :: BoolOptions
Documentation
runCpphs :: CpphsOptions -> FilePath -> String -> String | Source
cppIfdef | Source
:: FilePath | File for error reports
-> [(String, String)] | Pre-defined symbols and their values
-> [String] | Search path for #includes
-> BoolOptions | Options controlling output style
-> String | The input file content
-> [(Posn, String)] | The file after processing (in lines)
Run a first pass of cpp, evaluating #ifdef's and processing #include's, whilst taking account of #define's and #undef's as we encounter them.
macroPass | Source
:: [(String, String)] | Pre-defined symbols and their values
-> BoolOptions | Options that alter processing style
-> [(Posn, String)] | The input file content
-> String | The file after processing
Walk through the document, replacing calls of macros with the expanded RHS.
data CpphsOptions | Source
Cpphs options structure.
Constructors
CpphsOptions |
infiles :: [FilePath] |
outfiles :: [FilePath] |
defines :: [(String, String)] |
includes :: [String] |
preInclude :: [FilePath] | Files to #include before anything else
boolopts :: BoolOptions |
data BoolOptions | Source
Options representable as Booleans.
Constructors
BoolOptions |
macros :: Bool | Leave #define and #undef in output of ifdef?
locations :: Bool | Place #line droppings in output?
pragma :: Bool | Keep #pragma in final output?
stripEol :: Bool | Remove C eol (//) comments everywhere?
stripC89 :: Bool | Remove C inline (/**/) comments everywhere?
lang :: Bool | Lex input as Haskell code?
ansi :: Bool | Permit stringise # and catenate ## operators?
layout :: Bool | Retain newlines in macro expansions?
literate :: Bool | Remove literate markup?
warnings :: Bool | Issue warnings?
parseOptions :: [String] -> Either String CpphsOptions | Source
Parse all command-line options.
defaultCpphsOptions :: CpphsOptions | Source
Default options.
defaultBoolOptions :: BoolOptions | Source
Default settings of boolean options.
Produced by Haddock version 0.8