HELP CROSSREF                                        JL Cunningham, June 1982

This library program is a prototype cross-referencer for POP programs. I
intend to enhance it, and would welcome any suggestions for suitable
enhancements - also, I have not made any great effort to make it foolproof,
hoping that people will mail me about its deficiencies. Even so, it is
useful in its present form.

To use it, load the library, and give the command CROSSREF followed by the
names of some files. (File names must have extensions, or string quotes round
them; e.g. foo.baz is an acceptable file name, and so is 'foo', but foo is
not.)  For example, to cross-reference files BOO.P and HOO.P do

    lib crossref;
    crossref boo.p hoo.p;

If you have been editing these files, you should do ENTER W before doing
the cross-referencing. If the files are successfully found and
cross-referenced, the following messages will be printed:

    ;;; Looking at boo.p
    ;;; Looking at hoo.p
    ;;; Writing crossref.log

The result of the cross-reference will be a file called CROSSREF.LOG, which
you can VED or print. This file will contain a listing of the variables
appearing in the files, with information on the names of the files in which
they are used, the number of times they appear, and the use they are put to.
Further calls of CROSSREF will overwrite any information already in
CROSSREF.LOG.

In the present version there are two user-definable procedures, to control
output:
    ignoreable(<word>) -> boolean;
                        This is a boolean procedure which takes a word as
                        argument. If this procedure returns TRUE, then the
                        <word> is completely ignored by the cross-referencer.
                        The default value currently ignores words which can't
                        be assigned to (i.e. protected words and constants).
    unimportant(<word>);
                        Like ignoreable, but used to suppress mention of
                        <word> in final list of variables used as globals. The
                        default value regards variables which have a procedure
                        as their value (at the time of cross-referencing) as
                        unimportant. If the files being cross-referenced have
                        not been loaded these will only be system procedures,
                        but if they have been loaded, then library procedures
                        also will be suppressed.

See SHOWLIB *CROSSREF for the program code.
