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

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Cpphs is a re-implementation of the C pre-processor that is both more compatible with Haskell, and itself written in Haskell so that it can be distributed with compilers.

This version of the C pre-processor is pretty-much feature-complete and compatible with traditional (K&R) pre-processors. Additional features include: a plain-text mode; an option to unlit literate code files; and an option to turn off macro-expansion.

Old homepage: https://archives.haskell.org/projects.haskell.org/cpphs/


[Skip to Readme]

Properties

Versions 1.3, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.13.1, 1.13.2, 1.13.3, 1.14, 1.15, 1.16, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.18.3, 1.18.4, 1.18.5, 1.18.6, 1.18.7, 1.18.8, 1.18.9, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.20.7, 1.20.8, 1.20.9, 1.20.9.1, 1.20.10, 1.20.10
Change log CHANGELOG.md
Dependencies base (>=4.9 && <5), directory (<1.4), polyparse (>=1.13 && <1.14), time (>=1.5 && <2) [details]
License LicenseRef-LGPL
Copyright 2004-2017, Malcolm Wallace
Author Malcolm Wallace <Malcolm.Wallace@me.com>
Maintainer Andreas Abel
Category Development
Bug tracker https://github.com/haskell-pkg-janitors/cpphs/issues
Source repo head: git clone https://github.com/haskell-pkg-janitors/cpphs.git
Uploaded by AndreasAbel at 2025-09-14T15:47:35Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for cpphs-1.20.10

[back to package description]

Hackage version Stackage LTS version cpphs on Stackage Nightly Cabal build

cpphs

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

cpphs is a re-implementation of the C pre-processor that is both more compatible with Haskell, and itself written in Haskell so that it can be distributed with compilers.

This version of the C pre-processor is pretty-much feature-complete and compatible with traditional (K&R) pre-processors. Additional features include: a plain-text mode; an option to unlit literate code files; and an option to turn off macro-expansion.

Usage

cpphs  [filename | -Dsym | -Dsym=val | -Ipath]+  [-Ofile]
       [ --include=file ]*
       [ --nomacro | --noline | --nowarn | --strip | --strip-eol |
         --pragma | --text | --hashes | --layout | --unlit |
         --linepragma ]*
       [ --cpp compatopts ]

For fuller details, see docs/index.html.

If you want to use cpphs as a completely drop-in replacement for the real cpp, that is, to accept the same arguments, and have broadly the same behaviour in response to them, then use the --cpp compatibility option.

(c) 2004-2017 Malcolm Wallace (Malcolm.Wallace@me.com)

Licence

These library modules are distributed under the terms of the LGPL. The application module cpphs.hs is GPL.

This software comes with no warranty. Use at your own risk.

If you have a commercial use for cpphs, and feel the terms of the (L)GPL are too onerous, you have the option of distributing unmodified binaries (only, not sources) under the terms of a different licence (see LICENCE-commercial).

Website

Description see: https://hackage.haskell.org/package/cpphs

Old homepage: https://archives.haskell.org/projects.haskell.org/cpphs/