cpphsSource codeContentsIndex
Language.Preprocessor.Cpphs
PortabilityAll
Stabilityexperimental
MaintainerMalcolm 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 -> StringSource
cppIfdefSource
:: FilePathFile for error reports
-> [(String, String)]Pre-defined symbols and their values
-> [String]Search path for #includes
-> BoolOptionsOptions controlling output style
-> StringThe 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.
macroPassSource
:: [(String, String)]Pre-defined symbols and their values
-> BoolOptionsOptions that alter processing style
-> [(Posn, String)]The input file content
-> StringThe 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 :: BoolLeave #define and #undef in output of ifdef?
locations :: BoolPlace #line droppings in output?
pragma :: BoolKeep #pragma in final output?
stripEol :: BoolRemove C eol (//) comments everywhere?
stripC89 :: BoolRemove C inline (/**/) comments everywhere?
lang :: BoolLex input as Haskell code?
ansi :: BoolPermit stringise # and catenate ## operators?
layout :: BoolRetain newlines in macro expansions?
literate :: BoolRemove literate markup?
warnings :: BoolIssue warnings?
parseOptions :: [String] -> Either String CpphsOptionsSource
Parse all command-line options.
defaultCpphsOptions :: CpphsOptionsSource
Default options.
defaultBoolOptions :: BoolOptionsSource
Default settings of boolean options.
Produced by Haddock version 0.8