@hackage language-c0.10.0
Analysis and generation of C code
Installation
Tested Compilers
Dependencies (10)
- array <0.6
- base >=4.9 && <5
- bytestring >=0.9.0 && <0.13
- containers >=0.3 && <0.9
- deepseq >=1.4.0.0 && <1.6
- directory <1.4 Show all…
Dependents (22)
@hackage/afv, @hackage/cil, @hackage/c-dsl, @hackage/c2hs, @hackage/acme-everything, @hackage/clua, Show all…
Package Flags
usebytestrings
(on by default)
Use ByteString as InputStream datatype
iecfpextension
(on by default)
Support IEC 60559 floating point extension (defines _Float128)
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/
C Language Compatibility
Currently unsupported C11 constructs:
- static assertion 6.7.10 (
_Static_assert
) - generic selection 6.5.1.1 (
_Generic
) _Atomic
,_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)
; __attribute__((packed))
: types featuring this attribute may have an incorrect size or alignment calculated.
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
Examples
A couple of small examples are available in examples
.
Testing
See test/README
.