TAL Programmer's Guide

Compiling With Cross-References
Compiling Programs
096254 Tandem Computers Incorporated 14–27
You add or delete classes from the current class list as follows. When you list more
than one class, enclose the list in parentheses.
To add classes to the current list, specify CROSSREF and list the classes you want
to add. The following example adds the one missing class to the default list:
?CROSSREF UNREF
To delete classes from the current list, specify NOCROSSREF and list the classes
you want to delete. The following example retains the procedure, subprocedure,
block, and template classes by deleting all other classes from the default list:
?NOCROSSREF (DEFINES,LABELS,LITERALS,PROCPARAMS,VARIABLES)
To add and delete classes, specify a CROSSREF that adds classes and a
NOCROSSREF that deletes classes:
?CROSSREF UNREF, NOCROSSREF LITERALS
Collecting
Cross-References
You can collect cross-reference information for individual procedures or data blocks.
When a CROSSREF without parameters appears, it starts collection of cross-references
at the beginning of a procedure or data block and remains in effect until a
NOCROSSREF without parameter appears. CROSSREF and NOCROSSREF without
parameters do not modify the class list.
For each class in effect at the end of the compilation, CROSSREF without parameters
collects the following information:
Identifier qualifiers—structure, subprocedure, and procedure identifiers
Compiler attributes—class and type modifiers
The name of the host source file
The type of reference—definition, invocation, parameter, write, or other
To start collecting cross-references, specify CROSSREF without parameters. To stop
collecting cross-references, specify NOCROSSREF without parameters. For example,
you can stop the collection for the private data block, and then start the collection for a
procedure:
?CROSSREF !Start collecting cross-references
NAME test;
INT i;
?NOCROSSREF !Stop cross-references for BLOCK
BLOCK PRIVATE;
INT j;
END BLOCK;
?CROSSREF !Start cross-references for procedure
PROC p MAIN;
BEGIN
!Lots of code
END;