COMPILATION LISTING OF SEGMENT display Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1622.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 di: display: proc; 12 13 /* Modified: 29 November 1979 by PCK to produce tree level indented output */ 14 15 dcl display_block entry(ptr,bit(1) aligned,bit(1) aligned, 16 bit(1) aligned,fixed bin); 17 dcl display_statement entry(ptr,bit(1) aligned,fixed bin); 18 dcl display_source entry(ptr,fixed bin); 19 dcl (display_array, display_list, display_exp, display_symbol) 20 entry(ptr,fixed bin); 21 dcl show_ms$pt entry(ptr); 22 23 dcl show_statement ext entry(char(*) aligned), 24 show_declaration ext entry(char(*) aligned,char(*) aligned), 25 display_any_node_name ext entry(char(*) aligned,ptr,fixed bin); 26 27 dcl ioa_ entry options(variable), 28 cv_dec_ entry(char(*) aligned) returns(fixed bin), 29 cu_$arg_count entry(fixed bin(15)), 30 cu_$arg_ptr entry(fixed bin(15),ptr,fixed bin(15),fixed bin(15)), 31 cu_$gen_call entry(entry,ptr), 32 cu_$arg_list_ptr entry(ptr); 33 34 dcl (k,tree_level) fixed bin; 35 dcl (string,string2,string3) char(12) aligned; 36 dcl display_stat_$brief_display bit(1) ext static; 37 dcl argstring char(arglen) based(argpt); 38 dcl (code,arglen) fixed bin(15), 39 (ap1,argpt) pointer; 40 41 42 dcl (addr,baseptr,fixed,index,min,null,ptr,substr) builtin; 43 dcl program_interrupt condition; 44 45 dcl p ptr, 46 (no_dcls,sourceb,walk) bit(1) aligned, 47 (i,j,n) fixed bin(15), 48 (pl1_stat_$root,pl1_stat_$cur_block,pl1_stat_$cur_statement) ptr ext, 49 cv_oct_ entry(char(*) aligned) returns(fixed); 50 51 dcl disp_xeq bit(1) aligned; 52 1 1 /* BEGIN INCLUDE FILE ... pl1_tree_areas.incl.pl1 */ 1 2 1 3 /* format: style3 */ 1 4 dcl tree_area area based (pl1_stat_$tree_area_ptr); 1 5 dcl xeq_tree_area area based (pl1_stat_$xeq_tree_area_ptr); 1 6 1 7 dcl pl1_stat_$tree_area_ptr 1 8 ptr ext static, 1 9 pl1_stat_$xeq_tree_area_ptr 1 10 ptr ext static; 1 11 1 12 /* END INCLUDE FILE ... op_codes.incl.pl1 */ 53 2 1 dcl pl1_stat_$token_list_ptr ptr external static; /* pointer to token list */ 2 2 dcl token_list(token_list_length) ptr based(token_list_pointer); 2 3 dcl token_list_pointer ptr initial(pl1_stat_$token_list_ptr); /* for efficiency only */ 2 4 dcl token_list_length fixed(15) internal static initial(3000) options(constant); 2 5 2 6 dcl 1 pl1_stat_$statement_id external static, 2 7 2 file_number bit(8), 2 8 2 line_number bit(14), 2 9 2 statement_number bit(5); 2 10 2 11 dcl 1 t_table based(token_list(k)) aligned, 2 12 2 node_type bit(9) unaligned, 2 13 2 type bit(9) unaligned, 2 14 2 loc bit(18) unaligned, 2 15 2 declaration ptr unaligned, 2 16 2 next ptr unaligned, 2 17 2 size fixed(9), 2 18 2 string char(n refer(t_table.size)); 54 3 1 /* BEGIN INCLUDE FILE ... token_types.incl.pl1 */ 3 2 3 3 dcl ( no_token initial("000000000"b), /* token types */ 3 4 identifier initial("100000000"b), 3 5 isub initial("010000000"b), 3 6 plus initial("001000001"b), 3 7 minus initial("001000010"b), 3 8 asterisk initial("001000011"b), 3 9 slash initial("001000100"b), 3 10 expon initial("001000101"b), 3 11 not initial("001000110"b), 3 12 and initial("001000111"b), 3 13 or initial("001001000"b), 3 14 cat initial("001001001"b), 3 15 eq initial("001001010"b), 3 16 ne initial("001001011"b), 3 17 lt initial("001001100"b), 3 18 gt initial("001001101"b), 3 19 le initial("001001110"b), 3 20 ge initial("001001111"b), 3 21 ngt initial("001010000"b), 3 22 nlt initial("001010001"b), 3 23 assignment initial("001010010"b), 3 24 colon initial("001010011"b), 3 25 semi_colon initial("001010100"b), 3 26 comma initial("001010101"b), 3 27 period initial("001010110"b), 3 28 arrow initial("001010111"b), 3 29 left_parn initial("001011000"b), 3 30 right_parn initial("001011001"b), 3 31 percent initial("001011100"b), 3 32 bit_string initial("000100001"b), 3 33 char_string initial("000100010"b), 3 34 bin_integer initial("000110001"b), 3 35 dec_integer initial("000110011"b), 3 36 fixed_bin initial("000110000"b), 3 37 fixed_dec initial("000110010"b), 3 38 float_bin initial("000110100"b), 3 39 float_dec initial("000110110"b), 3 40 i_bin_integer initial("000111001"b), 3 41 i_dec_integer initial("000111011"b), 3 42 i_fixed_bin initial("000111000"b), 3 43 i_fixed_dec initial("000111010"b), 3 44 i_float_bin initial("000111100"b), 3 45 i_float_dec initial("000111110"b)) bit (9) aligned internal static options (constant); 3 46 3 47 dcl ( is_identifier initial ("100000000"b), /* token type masks */ 3 48 is_isub initial ("010000000"b), 3 49 is_delimiter initial ("001000000"b), 3 50 is_constant initial ("000100000"b), 3 51 is_arith_constant initial ("000010000"b), /* N.B. not really a mask...s/b "000110000"b */ 3 52 is_arithmetic_constant initial ("000110000"b), 3 53 is_imaginary_constant initial ("000111000"b), 3 54 is_float_constant initial ("000110100"b), 3 55 is_decimal_constant initial ("000110010"b), 3 56 is_integral_constant initial ("000110001"b) 3 57 ) bit(9) internal static aligned options(constant); 3 58 3 59 /* END INCLUDE FILE ... token_types.incl.pl1 */ 55 4 1 dcl m fixed bin(15); 4 2 dcl pl1_stat_$source_seg fixed bin(8) ext static; 4 3 dcl pl1_stat_$last_source fixed bin(15) ext static; 4 4 dcl pl1_stat_$source_list_ptr ptr ext static; 4 5 dcl source_list(0:source_list_length) ptr based(pl1_stat_$source_list_ptr); 4 6 dcl source_list_length fixed bin(15) internal static initial(255) options(constant); 4 7 4 8 dcl 1 source based(source_list(m)) aligned, 4 9 2 node_type unal bit(9), 4 10 2 source_id unal structure, 4 11 3 file_number bit(8), 4 12 3 line_number bit(14), 4 13 3 statement_number bit(5), 4 14 2 standard_object_info aligned structure, 4 15 3 uid bit(36), 4 16 3 dtm fixed bin(71), 4 17 2 seg_ptr unal ptr, 4 18 2 name unal ptr, 4 19 2 source_length unal fixed bin(24), 4 20 2 pathlen unal fixed bin(10), 4 21 2 pathname char(n refer(source.pathlen)); 56 5 1 /* BEGIN INCLUDE FILE ... nodes.incl.pl1 */ 5 2 5 3 /* Modified: 26 Dec 1979 by PCK to implement by name assignment */ 5 4 5 5 dcl ( block_node initial("000000001"b), 5 6 statement_node initial("000000010"b), 5 7 operator_node initial("000000011"b), 5 8 reference_node initial("000000100"b), 5 9 token_node initial("000000101"b), 5 10 symbol_node initial("000000110"b), 5 11 context_node initial("000000111"b), 5 12 array_node initial("000001000"b), 5 13 bound_node initial("000001001"b), 5 14 format_value_node initial("000001010"b), 5 15 list_node initial("000001011"b), 5 16 default_node initial("000001100"b), 5 17 machine_state_node initial("000001101"b), 5 18 source_node initial("000001110"b), 5 19 label_node initial("000001111"b), 5 20 cross_reference_node initial("000010000"b), 5 21 sf_par_node initial("000010001"b), 5 22 temporary_node initial("000010010"b), 5 23 label_array_element_node initial("000010011"b), 5 24 by_name_agg_node initial("000010100"b)) 5 25 bit(9) internal static aligned options(constant); 5 26 5 27 dcl 1 node based aligned, 5 28 2 type unal bit(9), 5 29 2 source_id unal structure, 5 30 3 file_number bit(8), 5 31 3 line_number bit(14), 5 32 3 statement_number bit(5); 5 33 5 34 /* END INCLUDE FILE ... nodes.incl.pl1 */ 57 58 59 dcl based_ptr ptr based; 60 61 dcl 1 arglist based, 62 2 number bit(17), 63 2 filler fixed, 64 2 arg(1) ptr; 65 6 1 /* BEGIN INCLUDE FILE ... block.incl.pl1 */ 6 2 /* Modified 22 Ocober 1980 by M. N. Davidoff to increase max block.number to 511 */ 6 3 /* format: style3,idind30 */ 6 4 6 5 declare 1 block aligned based, 6 6 2 node_type bit (9) unaligned, 6 7 2 source_id structure unaligned, 6 8 3 file_number bit (8), 6 9 3 line_number bit (14), 6 10 3 statement_number bit (5), 6 11 2 father ptr unaligned, 6 12 2 brother ptr unaligned, 6 13 2 son ptr unaligned, 6 14 2 declaration ptr unaligned, 6 15 2 end_declaration ptr unaligned, 6 16 2 default ptr unaligned, 6 17 2 end_default ptr unaligned, 6 18 2 context ptr unaligned, 6 19 2 prologue ptr unaligned, 6 20 2 end_prologue ptr unaligned, 6 21 2 main ptr unaligned, 6 22 2 end_main ptr unaligned, 6 23 2 return_values ptr unaligned, 6 24 2 return_count ptr unaligned, 6 25 2 plio_ps ptr unaligned, 6 26 2 plio_fa ptr unaligned, 6 27 2 plio_ffsb ptr unaligned, 6 28 2 plio_ssl ptr unaligned, 6 29 2 plio_fab2 ptr unaligned, 6 30 2 block_type bit (9) unaligned, 6 31 2 prefix bit (12) unaligned, 6 32 2 like_attribute bit (1) unaligned, 6 33 2 no_stack bit (1) unaligned, 6 34 2 get_data bit (1) unaligned, 6 35 2 flush_at_call bit (1) unaligned, 6 36 2 processed bit (1) unaligned, 6 37 2 text_displayed bit (1) unaligned, 6 38 2 number fixed bin (9) unsigned unaligned, 6 39 2 free_temps dimension (3) ptr, /* these fields are used by the code generator */ 6 40 2 temp_list ptr, 6 41 2 entry_list ptr, 6 42 2 o_and_s ptr, 6 43 2 why_nonquick aligned, 6 44 3 auto_adjustable_storage bit (1) unaligned, 6 45 3 returns_star_extents bit (1) unaligned, 6 46 3 stack_extended_by_args bit (1) unaligned, 6 47 3 invoked_by_format bit (1) unaligned, 6 48 3 format_statement bit (1) unaligned, 6 49 3 io_statements bit (1) unaligned, 6 50 3 assigned_to_entry_var bit (1) unaligned, 6 51 3 condition_statements bit (1) unaligned, 6 52 3 no_owner bit (1) unaligned, 6 53 3 recursive_call bit (1) unaligned, 6 54 3 options_non_quick bit (1) unaligned, 6 55 3 options_variable bit (1) unaligned, 6 56 3 never_referenced bit (1) unaligned, 6 57 3 pad_nonquick bit (5) unaligned, 6 58 2 prologue_flag bit (1) unaligned, 6 59 2 options_main bit (1) unaligned, 6 60 2 pad bit (16) unaligned, 6 61 2 number_of_entries fixed bin (17), 6 62 2 level fixed bin (17), 6 63 2 last_auto_loc fixed bin (17), 6 64 2 symbol_block fixed bin (17), 6 65 2 entry_info fixed bin (18), 6 66 2 enter structure unaligned, 6 67 3 start fixed bin (17), 6 68 3 end fixed bin (17), 6 69 2 leave structure unaligned, 6 70 3 start fixed bin (17), 6 71 3 end fixed bin (17), 6 72 2 owner ptr; 6 73 6 74 declare max_block_number fixed bin internal static options (constant) initial (511); 6 75 6 76 /* END INCLUDE FILE ... block.incl.pl1 */ 66 67 68 /*eject */ 69 70 begin: 71 disp_xeq = "0"b; 72 73 common: 74 on condition(program_interrupt) goto done; 75 no_dcls, 76 sourceb, 77 walk = "0"b; 78 tree_level = 0; 79 call cu_$arg_count(i); 80 if i = 0 then do; 81 call ioa_("display | di -options-^/^a^/^a", 82 "options are: root | main | cur_block | cur_statement (walk) (no_dcls) (source)", 83 " brief | long 84 token_list (_n)"); 85 call ioa_( 86 " source_list (_n) (min'ed with pl1_stat_$last_source) 87 arg arg# offset# 88 seg#|offset# (default seg is tree_) 89 statement file#.line#.statement# 90 dcl iden1 iden2 ... (10 max)"); 91 return; 92 end; 93 94 call cu_$arg_ptr(1,argpt,arglen,code); 95 ap1=argpt; 96 string=argstring; 97 if substr(string,1,4) = "dcl " then go to show_dcl; 98 99 if substr(string,1,8) = "brief " 100 then do; 101 display_stat_$brief_display = "1"b; 102 return; 103 end; 104 105 if substr(string,1,8) = "long " 106 then do; 107 display_stat_$brief_display = "0"b; 108 return; 109 end; 110 111 call cu_$arg_ptr(2,argpt,arglen,code); 112 if code ^= 0 then string2=""; else string2=argstring; 113 call cu_$arg_ptr(3,argpt,arglen,code); 114 if code ^= 0 then string3=""; else string3=argstring; 115 116 if substr(string,1,8) = "source_l" then go to source_list_; 117 if substr(string,1,8) = "token_li" then go to token_list_; 118 if substr(string,1,8) = "statemen" then go to show_stm; 119 if substr(string,1,4) = "root" 120 then p = pl1_stat_$root; 121 else if substr(string,1,8) = "cur_bloc" 122 then p = pl1_stat_$cur_block; 123 else if substr(string,1,8) = "cur_stat" 124 then p = pl1_stat_$cur_statement; 125 else if substr(string,1,4) = "main" 126 then if pl1_stat_$root ^= null then p = pl1_stat_$root -> block.son; else goto null_ptr; 127 else if substr(string,1,4) = "arg " 128 then do; 129 n = cv_oct_(string2); 130 p = addr(p); 131 p = ptr(p,cv_oct_(string3)); 132 if n > fixed(p -> arglist.number,17) 133 then do; 134 call ioa_("no arg ^d",n); 135 return; 136 end; 137 p = p -> arglist.arg(n) -> based_ptr; 138 end; 139 else do; 140 if disp_xeq 141 then p = pl1_stat_$xeq_tree_area_ptr; 142 else p = pl1_stat_$root; 143 n = index(string,"|"); 144 if n = 0 then p = ptr(p,cv_oct_(string)); 145 else p = ptr(baseptr(cv_oct_(substr(string,1,n-1))), 146 cv_oct_(substr(string,n+1))); 147 end; 148 149 if p = null 150 then do; 151 null_ptr: 152 call ioa_("Pointer is null"); 153 return; 154 end; 155 156 if substr(string2,1,4) = "walk" then walk="1"b; else 157 if substr(string3,1,4) = "walk" then walk="1"b; 158 if substr(string2,1,8) = "no_dcls " then no_dcls="1"b; else 159 if substr(string3,1,8) = "no_dcls " then no_dcls="1"b; 160 if substr(string2,1,8) = "source " then sourceb="1"b; else 161 if substr(string3,1,8) = "source " then sourceb="1"b; 162 163 n = fixed(p -> node.type,17,0); 164 if n > fixed(temporary_node,9,0) then n = 0; 165 166 call ioa_("Displaying ^p",p); 167 goto switch(n); 168 169 switch(0): 170 switch(7): 171 switch(17): 172 call display_any_node_name("No display program for",p,tree_level+1); 173 return; 174 175 switch(1): 176 call display_block(p,walk,no_dcls,sourceb,tree_level+1); 177 return; 178 179 switch(3): 180 switch(4): 181 switch(5): 182 switch(10): 183 switch(16): 184 switch(18): 185 call display_exp(p,tree_level+1); 186 return; 187 188 switch(8): 189 switch(9): 190 call display_array(p,tree_level+1); 191 return; 192 193 switch(11): 194 call display_list(p,tree_level+1); 195 return; 196 197 switch(2): 198 call display_statement(p,sourceb,tree_level+1); 199 return; 200 201 switch(6): 202 switch(12): 203 switch(15): 204 call display_symbol(p,tree_level+1); 205 return; 206 207 switch(13): 208 call show_ms$pt(p); 209 return; 210 211 switch(14): 212 call display_source(p,tree_level+1); 213 return; 214 215 show_stm: 216 call show_statement(string2); 217 return; 218 219 show_dcl: 220 ap1->argstring=""; /* zap "dcl" */ 221 call cu_$arg_list_ptr(argpt); 222 call cu_$gen_call(show_declaration,argpt); 223 224 done: return; 225 226 token_list_: 227 n = cv_dec_(string2); 228 if n = 0 then n = 3000; 229 do k = 1 to n; 230 if token_list(k)=null then return; 231 232 if t_table.type = semi_colon & n = 3000 233 then return; 234 235 call display_exp(token_list(k),tree_level+1); 236 end; 237 return; 238 239 source_list_: 240 m = pl1_stat_$last_source; 241 n = cv_dec_(string2); 242 if n = 0 243 then do; 244 n = m; 245 j = 0; 246 end; 247 else j, n = min(n,m); 248 do i = j to n; 249 call display_source(source_list(i),tree_level+1); 250 end; 251 return; 252 253 dix: display_xeq: entry; 254 disp_xeq = "1"b; 255 go to common; 256 257 end display; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1502.6 display.pl1 >dumps>old>recomp>display.pl1 53 1 07/21/80 1546.3 pl1_tree_areas.incl.pl1 >ldd>include>pl1_tree_areas.incl.pl1 54 2 09/14/77 1705.7 token_list.incl.pl1 >ldd>include>token_list.incl.pl1 55 3 11/30/78 1227.4 token_types.incl.pl1 >ldd>include>token_types.incl.pl1 56 4 05/03/76 1320.4 source_list.incl.pl1 >ldd>include>source_list.incl.pl1 57 5 07/21/80 1546.3 nodes.incl.pl1 >ldd>include>nodes.incl.pl1 66 6 08/13/81 2043.5 block.incl.pl1 >ldd>include>block.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. addr builtin function dcl 42 ref 130 ap1 000116 automatic pointer dcl 38 set ref 95* 219 arg 2 based pointer array level 2 dcl 61 ref 137 arglen 000114 automatic fixed bin(15,0) dcl 38 set ref 94* 96 111* 112 113* 114 219 arglist based structure level 1 unaligned dcl 61 argpt 000120 automatic pointer dcl 38 set ref 94* 95 96 111* 112 113* 114 221* 222* argstring based char unaligned dcl 37 set ref 96 112 114 219* based_ptr based pointer dcl 59 ref 137 baseptr builtin function dcl 42 ref 145 block based structure level 1 dcl 6-5 code 000113 automatic fixed bin(15,0) dcl 38 set ref 94* 111* 112 113* 114 cu_$arg_count 000042 constant entry external dcl 27 ref 79 cu_$arg_list_ptr 000050 constant entry external dcl 27 ref 221 cu_$arg_ptr 000044 constant entry external dcl 27 ref 94 111 113 cu_$gen_call 000046 constant entry external dcl 27 ref 222 cv_dec_ 000040 constant entry external dcl 27 ref 226 241 cv_oct_ 000062 constant entry external dcl 45 ref 129 131 144 145 145 disp_xeq 000140 automatic bit(1) dcl 51 set ref 70* 140 254* display_any_node_name 000034 constant entry external dcl 23 ref 169 display_array 000016 constant entry external dcl 19 ref 188 display_block 000010 constant entry external dcl 15 ref 175 display_exp 000022 constant entry external dcl 19 ref 179 235 display_list 000020 constant entry external dcl 19 ref 193 display_source 000014 constant entry external dcl 18 ref 211 249 display_stat_$brief_display 000052 external static bit(1) unaligned dcl 36 set ref 101* 107* display_statement 000012 constant entry external dcl 17 ref 197 display_symbol 000024 constant entry external dcl 19 ref 201 fixed builtin function dcl 42 ref 132 163 164 i 000135 automatic fixed bin(15,0) dcl 45 set ref 79* 80 248* 249* index builtin function dcl 42 ref 143 ioa_ 000036 constant entry external dcl 27 ref 81 85 134 151 166 j 000136 automatic fixed bin(15,0) dcl 45 set ref 245* 247* 248 k 000100 automatic fixed bin(17,0) dcl 34 set ref 229* 230 232 235* m 000144 automatic fixed bin(15,0) dcl 4-1 set ref 239* 244 247 min builtin function dcl 42 ref 247 n 000137 automatic fixed bin(15,0) dcl 45 set ref 129* 132 134* 137 143* 144 145 145 145 145 163* 164 164* 167 226* 228 228* 229 232 241* 242 244* 247 247* 248 no_dcls 000132 automatic bit(1) dcl 45 set ref 75* 158* 158* 175* node based structure level 1 dcl 5-27 null builtin function dcl 42 ref 125 149 230 number based bit(17) level 2 packed unaligned dcl 61 ref 132 p 000130 automatic pointer dcl 45 set ref 119* 121* 123* 125* 130* 130 131* 131 132 137* 137 140* 142* 144* 144 145* 149 163 166* 169* 175* 179* 188* 193* 197* 201* 207* 211* pl1_stat_$cur_block 000056 external static pointer dcl 45 ref 121 pl1_stat_$cur_statement 000060 external static pointer dcl 45 ref 123 pl1_stat_$last_source 000070 external static fixed bin(15,0) dcl 4-3 ref 239 pl1_stat_$root 000054 external static pointer dcl 45 ref 119 125 125 142 pl1_stat_$source_list_ptr 000072 external static pointer dcl 4-4 ref 249 pl1_stat_$token_list_ptr 000066 external static pointer dcl 2-1 ref 2-3 pl1_stat_$xeq_tree_area_ptr 000064 external static pointer dcl 1-7 ref 140 program_interrupt 000122 stack reference condition dcl 43 ref 73 ptr builtin function dcl 42 ref 131 144 145 semi_colon constant bit(9) initial dcl 3-3 ref 232 show_declaration 000032 constant entry external dcl 23 ref 222 222 show_ms$pt 000026 constant entry external dcl 21 ref 207 show_statement 000030 constant entry external dcl 23 ref 215 son 3 based pointer level 2 packed unaligned dcl 6-5 ref 125 source_list based pointer array dcl 4-5 set ref 249* sourceb 000133 automatic bit(1) dcl 45 set ref 75* 160* 160* 175* 197* string 000102 automatic char(12) dcl 35 set ref 96* 97 99 105 116 117 118 119 121 123 125 127 143 144* 145 145 145 145 string2 000105 automatic char(12) dcl 35 set ref 112* 112* 129* 156 158 160 215* 226* 241* string3 000110 automatic char(12) dcl 35 set ref 114* 114* 131* 156 158 160 substr builtin function dcl 42 ref 97 99 105 116 117 118 119 121 123 125 127 145 145 145 145 156 156 158 158 160 160 t_table based structure level 1 dcl 2-11 temporary_node constant bit(9) initial dcl 5-5 ref 164 token_list based pointer array dcl 2-2 set ref 230 232 235* token_list_pointer 000142 automatic pointer initial dcl 2-3 set ref 230 232 235 2-3* tree_level 000101 automatic fixed bin(17,0) dcl 34 set ref 78* 169 175 179 188 193 197 201 211 235 249 type 0(09) based bit(9) level 2 in structure "t_table" packed unaligned dcl 2-11 in procedure "display" ref 232 type based bit(9) level 2 in structure "node" packed unaligned dcl 5-27 in procedure "display" ref 163 walk 000134 automatic bit(1) dcl 45 set ref 75* 156* 156* 175* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. and internal static bit(9) initial dcl 3-3 array_node internal static bit(9) initial dcl 5-5 arrow internal static bit(9) initial dcl 3-3 assignment internal static bit(9) initial dcl 3-3 asterisk internal static bit(9) initial dcl 3-3 bin_integer internal static bit(9) initial dcl 3-3 bit_string internal static bit(9) initial dcl 3-3 block_node internal static bit(9) initial dcl 5-5 bound_node internal static bit(9) initial dcl 5-5 by_name_agg_node internal static bit(9) initial dcl 5-5 cat internal static bit(9) initial dcl 3-3 char_string internal static bit(9) initial dcl 3-3 colon internal static bit(9) initial dcl 3-3 comma internal static bit(9) initial dcl 3-3 context_node internal static bit(9) initial dcl 5-5 cross_reference_node internal static bit(9) initial dcl 5-5 dec_integer internal static bit(9) initial dcl 3-3 default_node internal static bit(9) initial dcl 5-5 eq internal static bit(9) initial dcl 3-3 expon internal static bit(9) initial dcl 3-3 fixed_bin internal static bit(9) initial dcl 3-3 fixed_dec internal static bit(9) initial dcl 3-3 float_bin internal static bit(9) initial dcl 3-3 float_dec internal static bit(9) initial dcl 3-3 format_value_node internal static bit(9) initial dcl 5-5 ge internal static bit(9) initial dcl 3-3 gt internal static bit(9) initial dcl 3-3 i_bin_integer internal static bit(9) initial dcl 3-3 i_dec_integer internal static bit(9) initial dcl 3-3 i_fixed_bin internal static bit(9) initial dcl 3-3 i_fixed_dec internal static bit(9) initial dcl 3-3 i_float_bin internal static bit(9) initial dcl 3-3 i_float_dec internal static bit(9) initial dcl 3-3 identifier internal static bit(9) initial dcl 3-3 is_arith_constant internal static bit(9) initial dcl 3-47 is_arithmetic_constant internal static bit(9) initial dcl 3-47 is_constant internal static bit(9) initial dcl 3-47 is_decimal_constant internal static bit(9) initial dcl 3-47 is_delimiter internal static bit(9) initial dcl 3-47 is_float_constant internal static bit(9) initial dcl 3-47 is_identifier internal static bit(9) initial dcl 3-47 is_imaginary_constant internal static bit(9) initial dcl 3-47 is_integral_constant internal static bit(9) initial dcl 3-47 is_isub internal static bit(9) initial dcl 3-47 isub internal static bit(9) initial dcl 3-3 label_array_element_node internal static bit(9) initial dcl 5-5 label_node internal static bit(9) initial dcl 5-5 le internal static bit(9) initial dcl 3-3 left_parn internal static bit(9) initial dcl 3-3 list_node internal static bit(9) initial dcl 5-5 lt internal static bit(9) initial dcl 3-3 machine_state_node internal static bit(9) initial dcl 5-5 max_block_number internal static fixed bin(17,0) initial dcl 6-74 minus internal static bit(9) initial dcl 3-3 ne internal static bit(9) initial dcl 3-3 ngt internal static bit(9) initial dcl 3-3 nlt internal static bit(9) initial dcl 3-3 no_token internal static bit(9) initial dcl 3-3 not internal static bit(9) initial dcl 3-3 operator_node internal static bit(9) initial dcl 5-5 or internal static bit(9) initial dcl 3-3 percent internal static bit(9) initial dcl 3-3 period internal static bit(9) initial dcl 3-3 pl1_stat_$source_seg external static fixed bin(8,0) dcl 4-2 pl1_stat_$statement_id external static structure level 1 packed unaligned dcl 2-6 pl1_stat_$tree_area_ptr external static pointer dcl 1-7 plus internal static bit(9) initial dcl 3-3 reference_node internal static bit(9) initial dcl 5-5 right_parn internal static bit(9) initial dcl 3-3 sf_par_node internal static bit(9) initial dcl 5-5 slash internal static bit(9) initial dcl 3-3 source based structure level 1 dcl 4-8 source_list_length internal static fixed bin(15,0) initial dcl 4-6 source_node internal static bit(9) initial dcl 5-5 statement_node internal static bit(9) initial dcl 5-5 symbol_node internal static bit(9) initial dcl 5-5 token_list_length internal static fixed bin(15,0) initial dcl 2-4 token_node internal static bit(9) initial dcl 5-5 tree_area based area(1024) dcl 1-4 xeq_tree_area based area(1024) dcl 1-5 NAMES DECLARED BY EXPLICIT CONTEXT. begin 000273 constant label dcl 70 common 000274 constant label dcl 73 ref 255 di 000265 constant entry external dcl 11 display 000255 constant entry external dcl 11 display_xeq 001603 constant entry external dcl 253 dix 001613 constant entry external dcl 253 done 001427 constant label dcl 224 ref 73 null_ptr 001037 constant label dcl 151 ref 125 show_dcl 001377 constant label dcl 219 ref 97 show_stm 001365 constant label dcl 215 ref 118 source_list_ 001517 constant label dcl 239 ref 116 switch 000000 constant label array(0:18) dcl 169 ref 167 token_list_ 001430 constant label dcl 226 ref 117 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2162 2256 1626 2172 Length 2614 1626 74 321 334 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME display 214 external procedure is an external procedure. on unit on line 73 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME display 000100 k display 000101 tree_level display 000102 string display 000105 string2 display 000110 string3 display 000113 code display 000114 arglen display 000116 ap1 display 000120 argpt display 000130 p display 000132 no_dcls display 000133 sourceb display 000134 walk display 000135 i display 000136 j display 000137 n display 000140 disp_xeq display 000142 token_list_pointer display 000144 m display THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return tra_ext enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr cu_$gen_call cv_dec_ cv_oct_ display_any_node_name display_array display_block display_exp display_list display_source display_statement display_symbol ioa_ show_declaration show_ms$pt show_statement THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. display_stat_$brief_display pl1_stat_$cur_block pl1_stat_$cur_statement pl1_stat_$last_source pl1_stat_$root pl1_stat_$source_list_ptr pl1_stat_$token_list_ptr pl1_stat_$xeq_tree_area_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 3 000246 11 000254 70 000273 73 000274 75 000313 78 000316 79 000317 80 000326 81 000330 85 000362 91 000376 94 000377 95 000416 96 000420 97 000424 99 000427 101 000432 102 000435 105 000436 107 000440 108 000442 111 000443 112 000462 112 000470 113 000475 114 000514 114 000522 116 000527 117 000532 118 000534 119 000536 121 000546 123 000556 125 000565 127 000602 129 000604 130 000623 131 000625 132 000646 134 000652 135 000673 137 000674 138 000701 140 000702 142 000711 143 000715 144 000726 145 000750 147 001032 149 001033 151 001037 153 001056 156 001057 156 001065 158 001072 158 001101 160 001106 160 001115 163 001122 164 001125 166 001132 167 001155 169 001157 173 001211 175 001212 177 001234 179 001235 186 001251 188 001252 191 001266 193 001267 195 001303 197 001304 199 001322 201 001323 205 001337 207 001340 209 001347 211 001350 213 001364 215 001365 217 001376 219 001377 221 001403 222 001412 224 001427 226 001430 228 001447 229 001452 230 001460 232 001467 235 001500 236 001514 237 001516 239 001517 241 001522 242 001540 244 001541 245 001543 246 001544 247 001545 248 001552 249 001560 250 001577 251 001601 253 001602 254 001621 255 001623 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved