CREF is a Standard Lisp program for processing a set of Standard LISP function definitions to produce:
The program will also check that functions are called with the correct number of arguments, and print a diagnostic message otherwise.
The output is alphabetized on the first seven characters of each function name.
Algebraic procedures in REDUCE are treated as if they were symbolic, so that algebraic constructs will actually appear as calls to symbolic functions, such as AEVAL.
To invoke the cross reference program, the switch CREF is used. on cref causes the cref program to load and the cross-referencing process to begin. After all the required definitions are loaded, off cref will cause the cross-reference listing to be produced. For example, if you wish to cross-reference all functions in the file tst.red, and produce the cross-reference listing in the file tst.crf, the following sequence can be used:
To process more than one file, more IN statements may be added before the call of off cref, or the IN statement changed to include a list of files.
Functions with the flag NOLIST will not be examined or output. Initially, all Standard Lisp functions are so flagged. (In fact, they are kept on a list NOLIST!*, so if you wish to see references to all functions, then CREF should be first loaded with the command load cref, and this variable then set to NIL).
It should also be remembered that any macros with the property list flag EXPAND, or, if the switch FORCE is on, without the property list flag NOEXPAND, will be expanded before the definition is seen by the cross-reference program, so this flag can also be used to select those macros you require expanded and those you do not.