]> git.draconx.ca Git - cdecl99.git/blob - README.md
Release 1.3.
[cdecl99.git] / README.md
1 Cdecl99 is a tool to help construct or understand complicated C declarations.
2 Inspired by the venerable cdecl, which predates C's standardization in 1989,
3 cdecl99 implements more or less the same concept but for modern C.
4
5 Unlike the original cdecl, cdecl99 supports all relevant C99 keywords, has no
6 undue restrictions on identifiers, understands features such as complex types,
7 variadic functions and named parameters, and also has the ability to parse
8 "plain" type names (which do not declare an identifier).
9
10 At this time there is no support for new declaration syntax introduced in C11,
11 including atomic types, `_Alignas`, `_Thread_local` or `_Noreturn` specifers.
12
13 The package includes both an executable program (cdecl99) and a library
14 (libcdecl) which can be used by other programs to provide cdecl-like
15 functionality.
16
17 # Prerequisites
18
19 Cdecl99 is writtin in C, so a working C compiler is required.  Certain
20 optional features depend on the use of external libraries.  In particular,
21
22 * the [GNU Readline library][readline-homepage] is needed for
23   interactive line-editing and history functionality, and
24
25 * the [GNU libintl library][gettext-homepage] (included with the GNU C
26   library) is needed in order to support localized program messages.
27   However, the core functionality of translating C declarations to/from
28   pseudo-English is not localizable.
29
30 [readline-homepage]: https://www.gnu.org/software/readline/
31 [gettext-homepage]: https://www.gnu.org/software/gettext/
32
33 # Contributing
34
35 Please send suggestions, bug reports, patches or any other
36 correspondence regarding cdecl99 by electronic mail to
37 [Nick Bowler \<nbowler@draconx.ca\>][email].
38
39 [email]: mailto:nbowler@draconx.ca
40
41 # License
42
43 Cdecl99 is free software: you can redistribute it and/or modify it under
44 the terms of the GNU General Public License as published by the Free Software
45 Foundation, either version 3 of the License or (at your option) any later
46 version.
47
48 {::comment}
49 Copyright © 2011, 2019, 2021 Nick Bowler
50 {:/comment}