Language C is a haskell library for the analysis and generation of C code. It features a complete, well tested parser and pretty printer for all of C99 and a large set of GNU extensions. (Here, examples/Process.hs parses and analyzes the input file, and then just prints the program from AST; it accepts the same options as cpp/gcc; it must break iff the code is bad .) (fork of imz's language-c_process_analyze-silently)  (https://hackage.haskell.org/package/language-c)

root

= Language.C =

Language.C is a parser and pretty-printer framework for C99 and the extensions of gcc.

See http://www.sivity.net/projects/language.c/

== Build and Install ==

cabal install

-- or --

runhaskell Setup.hs configure FLAGS
runhaskell Setup.hs build
runhaskell Setup.hs install

Provide the set of flags passing
 --flags="<flags-seperated-by-space>"
to configure.

== Compatibility ==

Tested with ghc-7.2 (Ubuntu) and ghc-7.4 (Ubuntu).
It is recommended to use the most recent platform release: http://hackage.haskell.org/platform/.

== Sources ==

see src/README

== Examples ==

A couple of small examples are available in /examples

== Testing ==

A couple of regression tests can be run via
> cd test/harness; make

For more tests, see test/README.