tmcdonell / language-c

Source repository for https://hackage.haskell.org/package/language-c

Home Page:http://visq.github.io/language-c/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

= 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);

IEC 60559:
  Since language-c-0.8, extended floating point types are supported (gcc 7 feature). Package maintainers may decide to disable these types (flag iecFpExtension) to work around the fact that the _Float128 type is redefined by glibc >= 2.26 if gcc < 7 is used for preprocessing:
  /* The type _Float128 exists only since GCC 7.0.  */
  # if !__GNUC_PREREQ (7, 0) || defined __cplusplus
  typedef __float128 _Float128;
  # endif

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

About

Source repository for https://hackage.haskell.org/package/language-c

http://visq.github.io/language-c/

License:Other


Languages

Language:Haskell 45.7%Language:C 41.1%Language:Yacc 8.1%Language:Logos 2.5%Language:Shell 1.4%Language:Makefile 1.0%Language:CSS 0.1%Language:Ruby 0.1%Language:C++ 0.0%