]> git.draconx.ca Git - homepage.git/blobdiff - content/projects/cdecl99.md
Put some actual material on the site.
[homepage.git] / content / projects / cdecl99.md
diff --git a/content/projects/cdecl99.md b/content/projects/cdecl99.md
new file mode 100644 (file)
index 0000000..b6438ed
--- /dev/null
@@ -0,0 +1,55 @@
+---
+title: Cdecl99
+copyright: 2019 Nick Bowler
+license: gpl-3 or (at your option) any later version
+---
+
+Cdecl99 is a tool to help construct or understand complicated C declarations.
+Inspired by the venerable cdecl, which predates C's standardization in 1989,
+cdecl99 implements more or less the same concept but for modern C.
+
+Unlike the original cdecl, cdecl99 supports all relevant C99 keywords, has no
+undue restrictions on identifiers, understands features such as complex types,
+variadic functions and named parameters, and also has the ability to parse
+"plain" type names (which do not declare an identifier).
+
+At this time there is no support for new declaration syntax introduced in C11,
+including atomic types, `_Alignas`, `_Thread_local` or `_Noreturn` specifers.
+
+The package includes both an executable program (cdecl99) and a library
+(libcdecl) which can be used by other programs to provide cdecl-like
+functionality.
+
+# Obtaining cdecl99
+
+[cdecl99-gitweb]: //git.draconx.ca/gitweb/cdecl99.git
+
+There are presently no released versions of cdecl99.  The development sources
+[may be browsed online][cdecl99-gitweb] or cloned directly using git, e.g.,
+
+<kbd>git clone https://git.draconx.ca/cdecl99.git</kbd>
+
+# Dependencies
+
+[readline-homepage]: https://www.gnu.org/software/readline/
+[gettext-homepage]: https://www.gnu.org/software/gettext/
+
+Cdecl99 is written in C, so a working C compiler is required.  All external
+library dependencies are optional and provide additional functionality.
+
+The [GNU readline library][readline-homepage] is used to provide interactive
+line-editing and history functionality.
+
+The [GNU libintl library][gettext-homepage] (included with the GNU C library)
+is used to support localized program messages.  However, the core functionality
+of translating C declarations into pseudo-English is not localizable since the
+output is intended to be machine-readable.
+
+Building from the development sources may require additional build tools.
+
+# License
+
+Cdecl99 is free software: you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation, either version 3 of the License or (at your option) any later
+version.