The language-c package

[Tags:bsd3, library, test]

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 C11 and clang/GNU extensions.

[Skip to Readme]


Versions 0.3.0, 0.3.1,, 0.3.2,, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5.0, 0.6, 0.6.1
Change log ChangeLog
Dependencies array, base (<5), bytestring (>=0.9.0), containers, directory, filepath, pretty, process, syb [details]
License BSD3
Copyright LICENSE
Stability experimental
Category Language
Home page
Bug tracker
Source repository head: git clone
Uploaded Tue Mar 7 06:46:59 UTC 2017 by BenediktHuber
Distributions Arch:0.6.1, Debian:0.4.7, Fedora:0.5.0, FreeBSD:0.4.7, LTSHaskell:0.5.0, NixOS:0.6, Stackage:0.6.1, Tumbleweed:0.5.0
Downloads 16425 total (236 in the last 30 days)
0 []
Status Docs available [build log]
Last success reported on 2017-03-07 [all 1 reports]




splitbaseChoose the new smaller, split-up base package.EnabledAutomatic
usebytestringsUse ByteString as InputStream datatypeEnabledAutomatic
separatesybData.Generics available in separate package.EnabledAutomatic
allwarningsTurn on all warnings for building (development)DisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for language-c

Readme for language-c-0.6.1

= Language.C =

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


== 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
to configure.

== Compatibility ==

Tested with ghc-7.10.3 (Linux).
It is recommended to use the most recent platform release:

== C Language Compatibility ==

Currently unsupported C11 constructs:
 - static assertion 6.7.10 (_Static_assert)
 - generic selection (_Generic)
 - _Atomic, _Alignas, _Thread_local
 - Universal character names

Currently unsupported GNU C extensions:
 - __auto_type
 - __float128
 - __builtin_offsetof
   char a[__builtin_offsetof (struct S, sa->f)
 - _Decimal32
 - Extended assembler
   __asm__ __volatile__ ("" : : : );
   __asm__ goto ("" : : : : label);

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