home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_300
/
329_02
/
xcxref.doc
< prev
next >
Wrap
Text File
|
1990-06-12
|
12KB
|
246 lines
XCXREF - A 'C' Concordance Utility
========================================
'XCXREF' is a cross-reference utility for 'C' programs. It
is derived from another program named 'XC' developed as indicat-
ed below.
Option flags support the following features:
- Routing of list output to any combination of disk, printer
and video.
- Cross-referencing of reserved words.
- Processing of nested include files.
- Proper processing of nested comments.
- Generation of program listing only.
- Variable output page width.
- Indirect and direct file name input.
- Alternate path direction.
Usage: xcxref <filename> ... <flag(s)>
All files selected are cross-referenced together. The variable
listing will show every occurance, for example, of 'var' in
every file.
Flags: -e = Write program data to log file.
-g = Ignore missing files.
-i = Enable #include processing.
-l = Generate listing only - no xref.
-o <outfile> = Write output to named file.
-p = Write output to line printer LPT1.
-r = Cross-reference 'C' reserved words.
-s = Write output to video screen.
-w width = Width of output page; default = 78
max = 150.
Flags MUST FOLLOW all input file names.
Separate any flag parameters from the flag by at least
one space.
Examples:
xcxref file1.c
xcxref main.c file1.c file2.c file3.c -o xref.lst -w 120
xcxref @xfile file3.c file4.c -o xref.lst -w 120
xfile contains... file1.c file2.c
History:
XC - version 1.0 January, 1982
Copyright (c) 1982 by Philip N. Hisley
Philip N. Hisley
548H Jamestown Court
Edgewood, Maryland 21040
(301) 679-4606
Released for non-commercial distribution only
Converted to IBM/PC CI/C86 by David N. Smith,
May/June 1983 with enhancements and Lattice compiler
support in December 1983.
David N. Smith
44 Ole Musket Lane
Danbury, CT 06810
(203) 748-5934
CompuServe: 73145,153
Changes Copyright (c) 1983 by David N. Smith
Permission granted to copy for non-commercial purposes.
PC Enhancements include:
1) Nested #INCLUDE statements
2) Single spaced cross-reference list
3) Removal of tabbing on output device
(Since many printers don't support it)
4) #INCLUDE statements with both "--" and <-->
syntax and with a full fileid in the quotes.
(Paths are not supported.)
5) Multiple input filenames on command line.
The current PC version only supports Lattice.
Conversion to others should be relatively easy but see
the compile time variable "Lattice" for compiler specific
sections.
XCXREF - Version 1.0; May, 1990
Martin D. Winnick
5301 El Arbol Drive
Carlsbad, CA 92008
(619) 438-8154
CompuServe: 71665,456
Changes Copyright (c) 1990 by Martin D. Winnick.
Permission granted to copy for non-commercial purposes.
The following is a brief summary of the XCXREF changes:
Converted to IBM/PC Microsoft QuickC. Program renamed
to 'XCXREF' due to extensive code and functional
changes.
The source code has been reformatted into a more read-
able style, variable names have been changed to a
meaningful word rather than a coded acronym and the
program modified (I hope) to conform to the new ANSI
standards. Additional comments have been added where I
felt they were needed. Dead code has been removed,
including all conditional compilation code.
The number of referenced symbols raised to 5000 from 749.
Although this is still a memory bounded program for the
cross reference data. I have tested it on an IBM PC/XT,
640KB, CGA, 30MB hard disk. The largest cross reference
I have tried included 15+ programs consisting of 30,000
lines of code, producing 350+ output pages with 2000+
referenced symbols.
The accompanying xc.exe is compiled as a 'compact'
model. This or any other large data model is necessary
to accomodate the increased number of symbol references.
Command line Flags usage:
-e = Write program data to log file
Key program variable data will be written to a log
file, XCXREF.LOG, in the event of either a recoverable
error condition or abnormal error program exit. Any
partial cross reference created to the abnormal exit
is retained. Upon a successful program completion the
ending values of these program variables will also be
written to the log file.
-g = Ignore missing files
If this flag is not entered any file selected and not
found by the program will cause termination of the
process. If it is entered the not-found condition will
be ignored, a message will be displayed, and processing
will continue with the next file.
-i = Enable #include processing
If this flag is not entered all #include files will be
ignored, a message will be displayed, and processing
will continue.
-l = Generate listing only - no xref
The program(s) will be listed to the output types
specified. No cross reference will be created.
-o <outfile> = Write output to named file
All program output will be written to the named disk
file. This may be in addition to other types of pro-
gram output such as the printer and video screen. Do
not enclose the file name in the '<>' brackets.
-p = Write output to line printer LPT1
The -p command line flag will direct the program and
crossreference listing to the line printer, LPT1. This
is in addition to any other directed output. Printing
is accomplished by direct calls to the operating system
BIOS. This has the (undesirable ?) side effect of
tying this version to PCs using MS/PC-DOS.
It is suggested that when using this option that you
set '-w 132' on the command line and set your printer
to condensed, 17.5 CPI, print mode. The program in-
serts two index numbers at the beginning of each print
line. These and long coded lines may cause the print
lines to be 'folded' making the listing difficult to
read.
-r = Cross-reference 'C' reserved words
'C' reserved words are normally ignored. This option
will cause them to be treated as normal variables and
they will be included in the cross reference.
-s = Write output to video screen
The -s command line flag will direct the program and
crossreference listing to the video screen. This is in
addition to any other directed output. Display is
accomplished by direct calls to the operating system
BIOS. This has the (undesirable ?) side effect of
tying this version to PCs using MS/PC-DOS.
-w width = Width of output page; default = 78
max = 150
This option defines the width of a 'page' output line.
This is used for all three output media.
Command line Program name usage:
The programs to be cross referenced may be entered on
the command line with the option flags or in an indi-
rect reference list file or a combination of these two
methods.
If the first character of a file name on the command
line is an @ it is a reference to an ASCII file con-
taining a list of file names. The program when it
encounters this will then get the program names, and
any additional paths from that file. On file EOF
XCXREF will return to the command line.
NOTE: The first character of any file name in a list
file CANNOT be an @.
A sample @file is included with this package.
In addition, the indirect file may contain up to four
alternate path designations for use in locating pro-
grams entered.
Each is expected as '#qpathn <dr:\path\path\>', the 'n'
may be 1 - 4. There must be a space before the '<' and
the actual path must be enclosed in the "<>" brackets.
These may be anywhere in the file. They will become
effective when encountered.
Qpaths may only be entered via the indirect list file,
they cannot be entered on the command line. Once
entered the path will be retained unless cleared or
reentered.
To clear an alternate path enter as #qpathn <>.
Program names are expected to be without any path
designation. They are normally expected to be in the
default logged directory. If a program is not found
there then the four alternate paths, if any, are tried
in sequence. If the program is still not found it is
processed according to the -g option flag.
If a fully qualified program name is entered it will
override the the use of the default and alternate
paths. If it is not found these other paths will NOT
be tried.