cpphs-1.3: 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

-> Bool

Leave #define and #undef in output?

-> Bool

Place #line droppings in output?

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

-> Bool

Strip C-comments?

-> Bool

Accept # and ## operators?

-> Bool

Retain layout in macros?

-> Bool

Input language (Haskell/not)

-> [(Posn, String)]

The input file content

-> String

The file after processing

Walk through the document, replacing calls of macros with their expanded RHS.