]> git.draconx.ca Git - homepage.git/blob - content/projects/cdecl99.md
Fix media queries that disable justification.
[homepage.git] / content / projects / cdecl99.md
1 ---
2 title: Cdecl99
3 copyright: 2019 Nick Bowler
4 license: gpl-3 or (at your option) any later version
5 ---
6
7 Cdecl99 is a tool to help construct or understand complicated C declarations.
8 Inspired by the venerable cdecl, which predates C's standardization in 1989,
9 cdecl99 implements more or less the same concept but for modern C.
10
11 Unlike the original cdecl, cdecl99 supports all relevant C99 keywords, has no
12 undue restrictions on identifiers, understands features such as complex types,
13 variadic functions and named parameters, and also has the ability to parse
14 "plain" type names (which do not declare an identifier).
15
16 At this time there is no support for new declaration syntax introduced in C11,
17 including atomic types, `_Alignas`, `_Thread_local` or `_Noreturn` specifers.
18
19 The package includes both an executable program (cdecl99) and a library
20 (libcdecl) which can be used by other programs to provide cdecl-like
21 functionality.
22
23 # Obtaining cdecl99
24
25 [cdecl99-gitweb]: //git.draconx.ca/gitweb/cdecl99.git
26
27 There are presently no released versions of cdecl99.  The development sources
28 [may be browsed online][cdecl99-gitweb] or cloned directly using git, e.g.,
29
30 <kbd>git clone https://git.draconx.ca/cdecl99.git</kbd>
31
32 # Dependencies
33
34 [readline-homepage]: https://www.gnu.org/software/readline/
35 [gettext-homepage]: https://www.gnu.org/software/gettext/
36
37 Cdecl99 is written in C, so a working C compiler is required.  All external
38 library dependencies are optional and provide additional functionality.
39
40 The [GNU readline library][readline-homepage] is used to provide interactive
41 line-editing and history functionality.
42
43 The [GNU libintl library][gettext-homepage] (included with the GNU C library)
44 is used to support localized program messages.  However, the core functionality
45 of translating C declarations into pseudo-English is not localizable since the
46 output is intended to be machine-readable.
47
48 Building from the development sources may require additional build tools.
49
50 # License
51
52 Cdecl99 is free software: you can redistribute it and/or modify it under
53 the terms of the GNU General Public License as published by the Free Software
54 Foundation, either version 3 of the License or (at your option) any later
55 version.