1 ^L
 2           /* BEGIN INCLUDE FILE lisp_readtable.incl.pl1 */
 3 
 4 dcl num_macs fixed bin static init(8);  /* size of efficient portion of macro_table */
 5 
 6                                                   /* if changed, the declarations below must also be changed */
 7 dcl read_table_dim_vector dimension(1) fixed bin static init(145); /* number of dbl words in read_table data */
 8 
 9 
10 
11 dcl 1 read_table aligned based(addr(addr(readtable)->based_ptr -> atom.value)->based_ptr -> array_info.array_data_ptr),
12       2 macro_table(8) fixed bin(71),             /* -> exprs for first few macros */
13       2 more_macros fixed bin(71),                /* list of any remaining macros */
14       2 syntax (0:131) bit(27) aligned, /* syntax bits for 128 ascii chars + 4 pseudo chars */
15       2 translation (0:131) fixed bin aligned,    /* character translation or index in macro_table */
16       2 status_terpri bit(1) aligned,             /* "1"b if (status terpri) is t */
17       2 status_underline bit(1) aligned,          /* "1"b if (status _) is t */
18 
19       2 status_ttyread bit(1) aligned,            /* not actually used at present */
20       2 abbreviate_on_files bit(1) aligned,       /* (sstatus abbrev 1) */
21       2 abbreviate_on_flat bit(1) aligned,        /* (sstatus abbrev 2) */
22       2 words_not_used_yet (3) bit(36) aligned;
23 
24 
25           /* Manifest constants for syntax bits */
26 
27 dcl (
28 
29 forcefeed           init("000000100000000000000000000"b),   /* used only by ITS lisp */
30 vertical_motion     init("000000010000000000000000000"b),   /* bit on for NL and NP characters */
31 string_quote_exp    init("000000001000000000000000000"b),   /* string quote if bit12=1, exponent if bit12 = 0 */
32 special             init("000000000100000000000000000"b),   /* always slash if in atom */
33 single_char_object  init("000000000010000000000000000"b),
34 blank               init("000000000001000000000000000"b),   /* space, tab, comma, nl, etc. */
35 lparn               init("000000000000100000000000000"b),   /* "(", bit12 => super left paren */
36 dotted_pair_dot     init("000000000000010000000000000"b),   /* the two uses of "." are kept seperate */
37 rparn               init("000000000000001000000000000"b),   /* ")", bit12 => super right paren */
38 macro               init("000000000000000100000000000"b),
39 slashifier          init("000000000000000010000000000"b),
40 rubout              init("000000000000000001000000000"b),             /* used only by ITS lisp */
41 slash_if_first      init("000000000000000000100000000"b),   /* slashify if first char in pname */
42 decimal_point       init("000000000000000000010000000"b),
43 slash_if_not_first  init("000000000000000000001000000"b),   /* slashify on output when in pname & not 1st */
44 slash_output        init("000000000000000000101000000"b),   /* slashify on output when in pname */
45 bit12               init("000000000000000000000100000"b),   /* selects from two meanings of certain other bits */
46                                                             /* NOTE: this is not really bit 12 anymore, but keep name */
47 splice              init("000000000000000000000100000"b),   /* splicing macro */
48 shift_scale         init("000000000000000000000010000"b),   /* left shift if bit12 = 1
49                                                      fixed point scale if bit12 = 0 */
50 plus_minus          init("000000000000000000000001000"b),   /* + if bit12 = 0, - if bit12 = 1 */
51 digit               init("000000000000000000000000100"b),   /* decimal digit */
52 extd_alpha          init("000000000000000000000000010"b),   /* extended alphabetic */
53 alpha               init("000000000000000000000000001"b)    /* familiar alphabetic */
54 
55 ) bit(27) static;
56 
57           /* End include file lisp_readtable.incl.pl1 */
58 ^L