README - Sat Aug 20 23:22:04 MST 1988

The attached Lex source files are for filters that generate, 
for a C source file:
	(1) a list of external declarations (functions, arrays, 
		variables, structures);
		each declaration on one line, for manipulation 
		by awk, etc.;
		initializers replaced by a /*comment*/;
		function definitions with parameter declarations and
		a dummy statement with appropriate return:
			{ [return [(n)];] }
		preprocessing with cpp replaces defined names and executes
		compilation conditionals;
	(2) a file of identifiers suitable for inverted indexing, making
		a word list, etc.

Use of the filters is explained by example:
	(1) mk_cdeclist and the test targets in the Makefile show the 
		generation of a declaration list;
	(2) mk_indentlist shows the generation of a list of identifiers.

The make file works under csh/BSD and ksh/SYSV.
To test:
	copy a C source file and any non-system #include dependencies into
		the directory with the unshared files from cdeclist.shar
	run:
		make TESTC="C_src_file" testall
	you should get a file LLLLfilename, which is the declaration list,
		some intermediate files LLfilename and temp?, which shou
		what is going on at each stage, and a file ZZZZfilename,
		which is the list of C keywords and identifiers, 
		

The cdeclist filters, although simple, should parse most styles of coding.  
Adjustment may be needed for the new ANSI standard.  The output
is suitable for making a lint library.

The identlist filters are offered without much being claimed for them.
I use the list as a guide and aid, without assuming it absolutely correct.

The shell scripts mk_* were written under ksh on a SYSV machine, and they
need modification to run under csh or BSD.

John Rupley
 uucp: ..{cmcl2 | hao!ncar!noao}!arizona!rupley!local
 internet: rupley!local@megaron.arizona.edu
 (H) 30 Calle Belleza, Tucson AZ 85716 - (602) 325-4533
 (O) Dept. Biochemistry, Univ. Arizona, Tucson AZ 85721 - (602) 621-3929

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MANIFEST: (for cdeclist.shr1)

README
Makefile
cdeclist.1		man page

uncomment.l	|
cdeclist1.l	|
cdeclist2.l	|	shell wrapper and filters generating declaration list
cdeclist3.l	|
cdeclist4.l	|
mk_cdeclist	|

identlist.l	|	shell wrapper and filters generating file of identifiers
identlist1.l	|
mk_identlist	|

