hansen@pegasus.UUCP (Tony L. Hansen) (02/11/88)
I've just sent to comp.sources.unix a new version of cdecl which adds support for the new features of ANSI C and C++, as well as maintaining all the old features of the old cdecl program. This includes all the new keywords for the two new languages and function prototypes. The program compiles on System V, 4.2BSD and MS-DOS; see the makefile for more information on the different environments. Here are the comments from the program which list all of the changes made. /* * cdecl - ANSI C and C++ declaration composer & decoder * * originally written * Graham Ross * once at tektronix!tekmdp!grahamr * * modified to provide hints for unsupported types * added argument lists for functions * added 'explain cast' grammar * added #ifdef for 'create program' feature * ???? (sorry, I lost your name and login) * * conversion to ANSI C * David Wolverton * ihnp4!houxs!daw * * merged D. Wolverton's ANSI C version w/ ????'s version * added function prototypes * added C++ declarations * made type combination checking table driven * added checks for void variable combinations * made 'create program' feature a runtime option * added file parsing as well as just stdin * added help message at beginning * added prompts when on a TTY or in interactive mode * added getopt() usage * added -a, -r, -p, -c, -d, -D, -V, -i and -+ options * delinted * added #defines for those without getopt or void * added 'set options' command * added 'quit/exit' command * added synonyms * Tony Hansen * attmail!tony, ihnp4!pegasus!hansen */ Here is a portion of the manual page: NAME cdecl, c++decl - Compose C and C++ type declarations SYNOPSIS cdecl [-a | -+ | -p | -r] [-cidDV] [files ...] c++decl [-a | -+ | -p | -r] [-cidDV] [files ...] DESCRIPTION Cdecl (and c++decl ) is a program for encoding and decoding C (C++) type-declarations. The C language (the default for cdecl , or with the -a option) is based on the (draft proposed) X3J11 ANSI Standard; optionally, the C language may be based on the pre-ANSI definition defined by Kernighan & Ritchie's The C Programming Language book (the -p option is used), or the C language defined by the Ritchie PDP-11 C compiler (the -r option is used). The C++ language (the default for c++decl , or with the -+ option) is based on Stroustrup's The C++ Programming Language, plus the version 2.0 additions to the language. Cdecl reads the named files for statements in the language described below. A transformation is made from that language to C (C++) or pseudo-English. The results of this transformation are written on standard output. If no files are named, or a filename of ``-'' is encountered, standard input will be read. If standard input is coming from a terminal, (or the -i option is used), a prompt will be written to the terminal before each line. COMMAND LANGUAGE There are six statements in the language. The declare statement composes a C type-declaration from a verbose description. The cast statement composes a C type-cast as might appear in an expression. The explain statement decodes a C type-declaration or cast, producing a verbose description. The help (or ?) statement provides a help message. The quit (or exit) statement (or the end of file) exits the program. The set statement allows the command line options to be set interactively. Some synonyms are permitted during a declaration: character -> char, constant -> const, enumeration -> enum, func -> function, integer -> int, ptr -> pointer, ref -> reference, ret -> returning, structure -> struct, and vector -> array. Tony Hansen ihnp4!pegasus!hansen, attmail!tony