TAL Programmer's Guide

Source Listing
Compiler Listing
15–4 096254 Tandem Computers Incorporated
If the ABSLIST directive is in effect, the compiler attempts to list the address for each
line relative to location C[0]. The limitations on the use of ABSLIST are given in the
directive description in the TAL Reference Manual.
Lexical-Level Counter The lexical-level counter is a single-digit value that represents the compiler’s
interpretation of the current source line. The values have the following meaning:
Value Lexical Level
0 Global level
1 Procedure level
2 Subprocedure level
BEGIN-END Pair Counter The BEGIN-END pair counter indicates approximately the nesting of data elements
(such as structures and substructures) and compound statements (such as IF
statements, CASE statements, and CASE expressions). For unlabeled CASE
statements, the counter also indicates the case selector.
To count BEGIN keywords and to match each with an END keyword in structure
declarations and in instructions that generate code, the compiler increments the
counter for each BEGIN and decrements it for each END. The compiler displays the
value of the counter for each line of source text, except when it reports CASE selector
values.
When listing a CASE statement body, the compiler reports the case selector in the form
CEn, where n represents the case selector number. The compiler prints this string in
the BEGIN-END pair counter column of the next line it displays when it has
recognized the corresponding CASE branch. Because the compiler uses only one pass,
however, by the time the compiler can distinguish an unlabeled CASE statement from
a labeled one, it is usually too late to print the CE0 tag on the first line of case
alternative zero. If case alternative zero constitutes only one line, the CE0 tag does not
appear at all.
Figure 15-3 shows part of a sample listing page that illustrates the BEGIN-END pair
counter.