COLEMAN@UMBSKY.BITNET (01/27/88)
Hello!
After three weeks of relative inactivity, I'm ready to distribute the
INDEX program which Paul Charette of the Naval Underwater Systems Centre
(charettep@nusc-wpn.arpa) obtained from a DECUS tape. For those of you
who either don't recall all the details or never saw his messages, they
can be found below in their entirety. Just send me your BITnet address
and I'll get it to you as soon as humanly possible.
ARPAnet readers -- read below for the node address and other relevant
info for FTPing it.
Steve Coleman
Computing Services
University of Massachusetts at Boston
Harbor Campus
Boston Mass 02125 USA
(617) 929-7805
BITnet: COLEMAN@UMBSKY
===============================================================================
(Message #1)
Greetings and Permutations,
About two weeks ago, I requested information about a program which
would analyze FORTRAN code and generate flow charts. Thanks to responses
by many of you, I traced down INDEX, a DECUS program which is touted as
a "FORTRAN Cross Referencer and Flow Chart Generator". (embed disclaimer)
I haven't had time to test it out, so I can't speak for it's usefulness or
reliability, but it looks quite useful.
If you would like a copy, I will gladly forward the source to you.
I wish I could make it available for Anonymous FTP, but our site doesn't
allow anonymous access. Be warned, however, that it is quite large, however
(23 files, ~3000 blocks of source, with the largest file having 880 blocks).
I tried packing it using VMS_SHAR, with MAX_PART_SIZE = 64
INDEX-FORTRAN CROSS REFERENCE AND FLOW CHART
ABSTRACT
INDEX is a FORTRAN source cross-referencing and flow charting
utility that allows the user to look at individual source files
(optionally saving the data for an overall SUPER INDEX) and determine
what variables are used on what lines and how they are used.
Furthermore the user can select for display/save for SUPER INDEX only
those variables or COMMON blocks with the characteristics that he is
interested in-global/local, assigned value/not assigned value,
used/unused, imported/exported, etc in any combination. Also
available is the optional ability to show up to four additional items
of information for display during the regular and SUPER INDEX:
The variable storage location information (local, in COMMON,
passed by argument, etc).
The variable type (REAL F_Floating, structured etc)
Usage in FUNCTION/SUBROUTINE calls (routine used in and
argument number).
A user selected tag of up to 31 characters.
The data saved for a SUPER INDEX listing (consisting of 6 data items
as outlined above) can be displayed with a great deal of flexibility
as to the data item selection, order and format (or saved in an ISAM
data file for the user to work on directly). A special option of the
SUPER INDEX allows the output of a list of module entry points which
pass data in and out by argument, the name of each argument and it's
type , the name of any module which call that entry point along with
the the name of each variable passed in the corresponding argument
position and it's type. The resulting information supplied allows the
user to follow the flow of data throughout a program or find the usage
of any selected data variable as required.
If selected, the user may at the same time generate a flow chart
of the source file currently being cross-referenced.
If wanted, the user can generate in place of the SUPER INDEX, an
entry point cross reference listing showing who calls who and is
called by who (with optional graphical tree output).
=============================================================================
(Message #2)
INDEX is now available through anonymous FTP from garfld.msfc.nasa.gov.
Their ARPAnet node number is 128.158.1.1. The anonymous account username
is ANON. The password is GUEST. Enjoy!
=============================================================================
-------KIMBLE@UTKVX3.BITNET (04/04/88)
index
JOE@FHCRCVAX.BITNET (Joe Meadows) (04/05/88)
This is a modification for the INDEX / FIND utility. Note that INDEX and
FIND are the same utility, only the name is different. This utility can
be found on the Fall '87 Decus tape, under [VAX87E.MEADOWS.INDEX], and was
posted previously to info-vax.
This fixes behaviour of /CHARACTERISTICS qualifier.
--- In search.c , find the following -----------
if (search->si_v_char) {
if (((search->si_l_charset & fh2->fh2$l_filechar) == search->si_l_charset)
&& ((search->si_l_charclr & fh2->fh2$l_filechar) == search->si_l_charclr))
--- and change to ------------------------------
if (search->si_v_char) {
if ((search->si_l_charset & fh2->fh2$l_filechar)
&& (!(search->si_l_charclr & fh2->fh2$l_filechar)))
------------------------------------------------
This solves two problems at once, the previous code would force all
negated keywords to behave as though they were not negated, and all present
keywords would have to be true (i.e. /CHAR=(READ,WRITE) would only match if
the file had BOTH read and write verify set, whereas the help said it would
be EITHER).
The behaviour with this modification is as documented, if any of the
present keywords hold true and if none of the negated keywords hold true
for the file, then the file is displayed.
A possible future modification would be to modify it so that
you can ask that BOTH need to be set. Perhaps I could change it so that
/CHARACTERISTICS=(READ+WRITE) would test for read AND write, and
/CHARACTERISTICS=(READ,WRITE) would test for read OR write. No one has
written to me asking for such a modification, so perhaps it's not such a
wanted item..
Joe Meadows Jr.
VAX/VMS System Manager / guru in training
Fred Hutchinson Cancer Research Center
1124 Columbia St.
Seattle Wa. 98104
bitnet - JOE@FHCRCVAX
arpa - JOE%FHCRCVAX.BITNET@WISCVM.WISC.EDU
voice - (206) 467-4970