1 /* Begin include file alm_xref_nodes.incl.pl1.
 2    This file defines the structures of the two nodes which make up the symbol tree
 3    maintained by ALM (table_) for use in generating the cross-reference.
 4    First written on 07/23/72 at 14:54:03 by R F Mabee.
 5    Last modified on 07/27/72 at 08:48:06 by R F Mabee. */
 6 
 7  declare  1 symbol_tree_node based aligned,                 /* Binary name tree, sorted alphabetically. */
 8             2 high_sublist fixed binary,                    /* Relative pointer to symbol_tree_node.name_rel. */
 9             2 low_sublist fixed binary,
10             2 line_list_forward_rel bit (18) unaligned,     /* Thread of line number nodes. */
11             2 line_list_backward_rel bit (18) unaligned,    /* They are doubly threaded. */
12           /* Above prefix must occupy three words, as pointers all point at next item. */
13             2 name_rel bit (18) unaligned,                  /* Relative pointer to ACC symbol name. */
14             2 next_rel bit (18) unaligned,                  /* Hash bucket thread. */
15             2 flags bit (18) unaligned,           /* Used by table_. */
16             2 value bit (18) unaligned,           /* Value associated with symbol. */
17             2 location_counter bit (18) unaligned, /* Relative pointer to l.c. bead. */
18             2 filler bit (18) unaligned,          /* Probably used, not needed for xref. */
19             2 origin bit (18) unaligned,          /* Origin for a location counter node. */
20             2 padding bit (18) unaligned;         /* So PL/I does right thing with above. */
21           /* The format of the rest of the node depends on what kind of symbol it is,
22               which is why the line list is put before the visible part of the node. */
23 
24  declare  1 line_node based aligned,                        /* Sorted list of referencing line numbers. */
25             2 forward_rel bit (18) unaligned,               /* Thread of line_nodes. */
26             2 backward_rel bit (18) unaligned,              /* Doubly threaded. */
27             2 line_no fixed binary;                         /* Combined line number and relative address of file name node. */
28 
29 /* End of include file alm_xref_nodes.incl.pl1. */