[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
| Title: | Languages | 
| Notice: | Speaking In Tongues | 
| Moderator: | TLE::TOKLAS::FELDMAN | 
|  | 
| Created: | Sat Jan 25 1986 | 
| Last Modified: | Wed May 21 1997 | 
| Last Successful Update: | Fri Jun 06 1997 | 
| Number of topics: | 394 | 
| Total number of notes: | 2683 | 
141.0. "CDECL - Compose C declarations" by ARGUS::STAPLETON () Wed May 27 1987 12:00
Posted to the following conferences:
	TLE::LANGUAGES
	CAFEIN::MS_LANGUAGES
	{COLORS,MOSAIC,RAINBO,VIKING}::RAINBOW
	{COLORS,MOSAIC,RAINBO,VIKING}::VAXMATE
Feel free to post this elsewhere if you can think of other appropriate
conferences.
===============================================================================
How many times have you looked at a C program and wondered what a particular
declaration meant?  How many times have you slaved over figuring out how to
declare something in C?  Well, I have a program to help you!  This program
was obtained from MIMSY.UMD.EDU on the ARPANET by anonymous FTP, as a result
of seeing it mentioned in a USENET news article.
An example of what CDECL does:
    If you enter:
	declare fptab as array of pointer to function returning pointer to char
    CDECL will type out:
	char *(*fptab[])()
    If you enter:
	explain char *(*fptab[])()
    CDECL will type out:
	declare fptab as array of pointer to function returning pointer to char
Listed below is where you can get the files for either a VMS version or an
MS-DOS version of CDECL.
===============================================================================
		    ARGUS::DISK$USER:[STAPLETON.xxxxx]
For VMS		For MS-DOS	Comment................................
[.VDECL]	[.MDECL]
CDECL.1;1    =	CDECL.1;1	Unformatted MAN page
CDECL.DOC;1  =	CDECL.DOC;1	Formatted MAN page from local Ultrix-32m system
CDECL.EXE;1	CDECL.EXE;1	Executble for specific system
CDGRAM.C;2			Modified to work on VMS
CDGRAM.C;1   =	CDGRAM.C;1	Generated by YACC on local Ultrix-32m system
CDGRAM.Y;1   =	CDGRAM.Y;1	Input for CDGRAM.C
CDLEX.C;2	CDLEX.C;2	Modified for VMS and MS-DOS
CDLEX.C;1    =	CDLEX.C;1	Generated by LEX on local Ultrix-32m system
CDLEX.L;1    =	CDLEX.L;1	Input for CDLEX.C
CDSUPP.C;1   =	CDSUPP.C;1	Support functions for final program
MAKEFILE.;1  =	MAKEFILE.;1	Make file to erect CDECL
===============================================================================
The files with an equal sign between them are identical.  CDGRAM.C had to be
modified only for VMS.  The files in the original distribution are:
	Makefile, cdecl.1, cdgram.y, cdlex.l, and cdsupp.c
The rest of the files were generated on various local systems as noted above.
    Enjoy
	JTS/hs
| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 141.1 | Please put in the ToolShed | AKQJ10::YARBROUGH | Why is computing so labor intensive? | Thu May 28 1987 08:51 | 4 | 
|  | Sounds ideal for the Software Tools Clearinghouse. Please contact 
METOO::TOOLSHED for details. (METOO=57643, as of a short time ago.)
Lynn Yarbrough 
 | 
| 141.2 | Half a loaf | DENTON::AMARTIN | Alan H. Martin | Thu May 28 1987 11:39 | 5 | 
|  | Re .0:
Note that this program does not handle the type specifier void or
declarations containing function prototypes.
				/AHM
 | 
| 141.3 |  | ARGUS::STAPLETON |  | Thu May 28 1987 13:05 | 6 | 
|  |     Re: .1 - Feel free to copy it!
    Re: .2 - I don't know squat about writing compilers, lexical scanners,
    etc.  If you are willing to modify CDECL, I will rebuild it and
    offer the new version to the net.
    
    	JTS/hs
 | 
| 141.4 | Digital has it now! | TLE::RMEYERS | Randy Meyers | Thu May 28 1987 13:43 | 5 | 
|  | Re: .0
The program is a bit redundant for users of VAX C.  If you compile
your programs /LIST/SHOW=SYMBOLS, the listing file demystifies all
the declarations in the program.
 | 
| 141.5 |  | ARGUS::STAPLETON |  | Fri May 29 1987 10:29 | 12 | 
|  |     Re: .4
    
    Thanks for the tip about /LIST/SHOW=SYMBOLS.  I didn't know about
    it, but that only makes CDECL half redundant.  CDECL is still useful
    for translating english into C as in:
    
    	declare foo as etc...
    
    CDECL also does casts.  Is there a way of getting VAX C to explain
    complex casts?
    
    	JTS/hs
 | 
| 141.6 | LSE Extension? | JHEREG::TANNENBAUM | TPU Developer | Sat May 30 1987 15:55 | 3 | 
|  |     Is CDECL callable?  It might be interesting to mix it with LSE...
    
    	- Barry
 |