language-c: Analysis and generation of C code

[ bsd3, language, library ] [ Propose Tags ]

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]

Flags

Automatic Flags
NameDescriptionDefault
splitbase

Choose the new smaller, split-up base package.

Enabled
usebytestrings

Use ByteString as InputStream datatype

Enabled
separatesyb

Data.Generics available in separate package.

Enabled
allwarnings

Turn on all warnings for building (development)

Disabled

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

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.3.0, 0.3.1, 0.3.1.1, 0.3.2, 0.3.2.1, 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, 0.7.0, 0.7.1, 0.7.2, 0.8, 0.8.1, 0.8.2, 0.8.3, 0.9, 0.9.0.1, 0.9.0.2, 0.9.1, 0.9.2, 0.9.3, 0.9.4
Change log ChangeLog
Dependencies array, base (<4 || >=4.6 && <4.13), bytestring (>=0.9.0), containers (<0.6), directory, filepath, pretty (<1.2.0), process, syb [details]
License BSD-3-Clause
Copyright LICENSE
Author AUTHORS
Maintainer benedikt.huber@gmail.com
Revised Revision 4 made by Bodigrim at 2024-10-18T22:00:27Z
Category Language
Home page http://visq.github.io/language-c/
Bug tracker https://github.com/visq/language-c/issues/
Source repo head: git clone https://github.com/visq/language-c.git
Uploaded by BenediktHuber at 2018-02-20T06:56:50Z
Distributions Arch:0.9.4, Debian:0.9.0.1, Fedora:0.9.2, FreeBSD:0.4.7, LTSHaskell:0.9.4, NixOS:0.9.3, Stackage:0.9.4, openSUSE:0.9.4
Reverse Dependencies 11 direct, 55 indirect [details]
Downloads 61394 total (382 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-02-20 [all 1 reports]

Readme for language-c-0.7.2

[back to package description]
= Language.C =

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

See http://visq.github.io/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.8, 7.10, 8.0 and 8.2.
It is recommended to use the most recent platform release: http://hackage.haskell.org/platform/.

== C Language Compatibility ==

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

Currently unsupported GNU C extensions:
 - __auto_type
 - __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.