3
FWEB version 1.62 (September 25, 1998)
5
Based on version 0.5 of S. Levy's CWEB [copyright (C) 1987 Princeton University]
7
@x-----------------------------------------------------------------------------
9
@ Various structure definitions for identifier truncation.
14
end = (np+1)->byte_start;
15
if(*end == BP_MARKER && np != npmax) end = ((BP *)end)->byte_start@;
17
@d MAX_ID_LENGTH 32 // Truncated identifiers can't be longer than this.
22
IN_COMMON boolean truncate_ids; /* Truncate identifers? */
23
IN_COMMON unsigned short tr_max[]; /* Truncate to this length. */
24
IN_COMMON name_pointer npmax; /* |name_ptr - 1|. */
27
/* Back-pointer structure points back to the original name in |name_dir|. */
30
ASCII c; // Dummy byte that always remains~|BP_MARKER|.
32
CONST ASCII HUGE *byte_start,HUGE *byte_end; /* Points to original,
34
struct Bp HUGE *next; /* Links to next back-pointer structure, in
35
case a truncated name came from more than one original name. */
36
struct Trunc HUGE *Root;
39
/* Info about a truncated identifier. */
42
boolean Language; // All languages associated with this name.
43
size_t num[NUM_LANGUAGES];
44
// \# of instances of the truncated name.
45
ASCII HUGE *id, HUGE *id_end; // Truncated variable name.
46
BP HUGE *first, HUGE *last; // First and last back-pointer structures.
47
struct Trunc HUGE *next; // Next structure in truncated chain.