cpphs-1.5: A liberalised re-implementation of cpp, the C pre-processor.

PortabilityAll
Stabilityexperimental
MaintainerMalcolm Wallace <Malcolm.Wallace@cs.york.ac.uk>

Language.Preprocessor.Cpphs

Description

Include the interface that is exported

Synopsis

Documentation

cppIfdefSource

Arguments

:: 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.

macroPassSource

Arguments

:: [(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.

data BoolOptions Source

Options representable as Booleans.

Constructors

BoolOptions 

Fields

macros :: Bool

Leave #define and #undef in output of ifdef?

locations :: Bool

Place #line droppings in output?

pragma :: Bool

Keep #pragma in final output?

strip :: Bool

Remove C comments everywhere?

lang :: Bool

Lex input as Haskell code?

ansi :: Bool

Permit stringise # operators?

layout :: Bool

Retain newlines in macro expansions?

literate :: Bool

Remove literate markup?

warnings :: Bool

Issue warnings?

parseOptions :: [String] -> Either String CpphsOptionsSource

Parse all command-line options.

defaultBoolOptions :: BoolOptionsSource

Default settings of boolean options.