COMPILATION LISTING OF SEGMENT pl1_error_print Compiled by: Multics PL/I Compiler, Release 32c, of June 16, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 07/31/89 1402.3 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 /* Print PL/I error messages. 12* 13* Initial Version: 14 June, 1968 by BLW 14* Modified: 30 July 1969 by JDM for pl1 15* Modified: 10 January 1970 by CTC for new error message format 16* Rewritten: 17 August 1970 by P. Green for Version II 17* Modified: 16 January 1971 by BLW to print text of bad statement 18* Modified: 13 February 1977 by RAB to fix 1577 19* Modified: 770712 by PG to add pl1_severity_ 20* Modified 771020 by PG to fix 1677 21* Modified 780807 by PG to permit char(256) tokens to be substituted for "$". 22* Modified 23 October 1980 by M. N. Davidoff to fix 1977, an unitialized variable causes tokens to be quoted when 23* they shouldn't be. 24**/ 25 /* format: style3 */ 26 pl1_error_print: 27 procedure; 28 29 /* parameter */ 30 31 dcl count fixed bin (31); 32 dcl error_number fixed bin (15); 33 dcl source_line fixed bin (15); 34 dcl source_seg fixed bin (11); 35 dcl start fixed bin (31); 36 dcl 1 statement_id like source_id; 37 dcl token_pt ptr; 38 39 /* automatic */ 40 41 dcl brief bit (1) aligned; 42 dcl console bit (1) aligned; 43 dcl error_messages ptr; 44 dcl head char (261) varying; 45 dcl message_length fixed bin (21); 46 dcl message_start fixed bin (21); 47 dcl no_message bit (1) aligned; 48 dcl sev fixed bin; 49 dcl source_pt ptr; 50 51 /* based */ 52 53 dcl 1 message_segment aligned based (error_messages), 54 2 index_block (0:500), 55 3 message_pointer 56 fixed bin (15), /* Pointer to start of message */ 57 3 severity fixed bin (15), /* Severity level for this message */ 58 3 len fixed bin (15), /* Number of characters in this message */ 59 2 message_block char (248000) unaligned; /* Text for all messages */ 60 61 /* builtin */ 62 63 dcl (hbound, lbound, length, max, maxlength, min, null, search, string, substr, verify) 64 builtin; 65 66 /* entry */ 67 68 dcl ioa_ entry options (variable); 69 dcl ioa_$rsnnl entry options (variable); 70 71 /* external static */ 72 73 dcl cg_static_$debug bit (1) aligned external static; 74 dcl pl1_severity_ fixed bin (35) external static; 75 dcl pl1_stat_$abort_label 76 label external static; 77 dcl pl1_stat_$brief_error_mode 78 bit (1) aligned external static; 79 dcl pl1_stat_$err_stm ptr external static; 80 dcl pl1_stat_$error_memory 81 bit (504) aligned external static; 82 dcl pl1_stat_$error_messages 83 ptr external static; 84 dcl pl1_stat_$error_width 85 fixed bin external static; 86 dcl pl1_stat_$greatest_severity 87 fixed bin external static; 88 dcl pl1_stat_$last_severity 89 fixed bin (15) external static; 90 dcl 1 pl1_stat_$last_statement_id 91 like source_id external static; 92 dcl pl1_stat_$severity_plateau 93 fixed bin external static; 94 1 1 /* BEGIN INCLUDE FILE ... token.incl.pl1 */ 1 2 1 3 dcl 1 token based aligned, 1 4 2 node_type bit(9) unaligned, 1 5 2 type bit(9) unaligned, 1 6 2 loc bit(18) unaligned, /* symtab offset for identifiers, "p" flag for constants */ 1 7 2 declaration ptr unaligned, 1 8 2 next ptr unaligned, 1 9 2 size fixed(9), 1 10 2 string char(n refer(token.size)); 1 11 1 12 /* END INCLUDE FILE ... token.incl.pl1 */ 95 2 1 /* BEGIN INCLUDE FILE ... token_types.incl.pl1 */ 2 2 2 3 dcl ( no_token initial("000000000"b), /* token types */ 2 4 identifier initial("100000000"b), 2 5 isub initial("010000000"b), 2 6 plus initial("001000001"b), 2 7 minus initial("001000010"b), 2 8 asterisk initial("001000011"b), 2 9 slash initial("001000100"b), 2 10 expon initial("001000101"b), 2 11 not initial("001000110"b), 2 12 and initial("001000111"b), 2 13 or initial("001001000"b), 2 14 cat initial("001001001"b), 2 15 eq initial("001001010"b), 2 16 ne initial("001001011"b), 2 17 lt initial("001001100"b), 2 18 gt initial("001001101"b), 2 19 le initial("001001110"b), 2 20 ge initial("001001111"b), 2 21 ngt initial("001010000"b), 2 22 nlt initial("001010001"b), 2 23 assignment initial("001010010"b), 2 24 colon initial("001010011"b), 2 25 semi_colon initial("001010100"b), 2 26 comma initial("001010101"b), 2 27 period initial("001010110"b), 2 28 arrow initial("001010111"b), 2 29 left_parn initial("001011000"b), 2 30 right_parn initial("001011001"b), 2 31 percent initial("001011100"b), 2 32 bit_string initial("000100001"b), 2 33 char_string initial("000100010"b), 2 34 bin_integer initial("000110001"b), 2 35 dec_integer initial("000110011"b), 2 36 fixed_bin initial("000110000"b), 2 37 fixed_dec initial("000110010"b), 2 38 float_bin initial("000110100"b), 2 39 float_dec initial("000110110"b), 2 40 i_bin_integer initial("000111001"b), 2 41 i_dec_integer initial("000111011"b), 2 42 i_fixed_bin initial("000111000"b), 2 43 i_fixed_dec initial("000111010"b), 2 44 i_float_bin initial("000111100"b), 2 45 i_float_dec initial("000111110"b)) bit (9) aligned internal static options (constant); 2 46 2 47 dcl ( is_identifier initial ("100000000"b), /* token type masks */ 2 48 is_isub initial ("010000000"b), 2 49 is_delimiter initial ("001000000"b), 2 50 is_constant initial ("000100000"b), 2 51 is_arith_constant initial ("000010000"b), /* N.B. not really a mask...s/b "000110000"b */ 2 52 is_arithmetic_constant initial ("000110000"b), 2 53 is_imaginary_constant initial ("000111000"b), 2 54 is_float_constant initial ("000110100"b), 2 55 is_decimal_constant initial ("000110010"b), 2 56 is_integral_constant initial ("000110001"b) 2 57 ) bit(9) internal static aligned options(constant); 2 58 2 59 /* END INCLUDE FILE ... token_types.incl.pl1 */ 96 3 1 dcl pl1_stat_$token_list_ptr ptr external static; /* pointer to token list */ 3 2 dcl token_list(token_list_length) ptr based(token_list_pointer); 3 3 dcl token_list_pointer ptr initial(pl1_stat_$token_list_ptr); /* for efficiency only */ 3 4 dcl token_list_length fixed(15) internal static initial(3000) options(constant); 3 5 3 6 dcl 1 pl1_stat_$statement_id external static, 3 7 2 file_number bit(8), 3 8 2 line_number bit(14), 3 9 2 statement_number bit(5); 3 10 3 11 dcl 1 t_table based(token_list(k)) aligned, 3 12 2 node_type bit(9) unaligned, 3 13 2 type bit(9) unaligned, 3 14 2 loc bit(18) unaligned, 3 15 2 declaration ptr unaligned, 3 16 2 next ptr unaligned, 3 17 2 size fixed(9), 3 18 2 string char(n refer(t_table.size)); 97 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)); 98 5 1 dcl 1 source_id structure unaligned, 5 2 2 file_number bit(8), 5 3 2 line_number bit(14), 5 4 2 statement_number bit(5); 99 6 1 /****^ ********************************************************* 6 2* * * 6 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 6 4* * * 6 5* ********************************************************* */ 6 6 6 7 /* BEGIN INCLUDE FILE ... language_utility.incl.pl1 */ 6 8 6 9 6 10 /****^ HISTORY COMMENTS: 6 11* 1) change(89-07-10,RWaters), approve(89-07-10,MCR8118), audit(89-07-19,Vu), 6 12* install(89-07-31,MR12.3-1066): 6 13* Removed the obsolete parameter source_line from the dcl of error_(). 6 14* END HISTORY COMMENTS */ 6 15 6 16 /* Modified: 6 Jun 1979 by PG to add rank and byte 6 17* * Modified: 9 Jul 1989 by RW updated the declaration of error_ 6 18* */ 6 19 6 20 declare adjust_count entry(pointer); 6 21 /* parameter 1: (input) any node pointer */ 6 22 6 23 declare bindec entry(fixed bin(31)) reducible 6 24 returns(character(12) aligned); 6 25 /* parameter 1: (input) bin value */ 6 26 /* return: (output) character value with blanks */ 6 27 6 28 declare bindec$vs entry(fixed bin(31)) reducible 6 29 returns(character(12) aligned varying); 6 30 /* parameter 1: (input) binary value */ 6 31 /* return: (output) char value without blanks */ 6 32 6 33 declare binoct entry(fixed bin(31)) reducible 6 34 returns(char(12) aligned); 6 35 /* parameter 1: (input) binary value */ 6 36 /* return: (output) char value with blanks */ 6 37 6 38 declare binary_to_octal_string entry(fixed bin(31)) reducible 6 39 returns(char(12) aligned); 6 40 /* parameter 1: (input) binary value */ 6 41 /* return: (output) right-aligned char value */ 6 42 6 43 declare binary_to_octal_var_string entry(fixed bin(31)) reducible 6 44 returns(char(12) varying aligned); 6 45 /* parameter 1: (input) binary value */ 6 46 /* returns: (output) char value without blanks */ 6 47 6 48 declare compare_expression entry(pointer,pointer) reducible 6 49 returns(bit(1) aligned); 6 50 /* parameter 1: (input) any node pointer */ 6 51 /* parameter 2: (input) any node pointer */ 6 52 /* return: (output) compare bit */ 6 53 6 54 declare constant_length entry (pointer, fixed bin (71)) 6 55 returns (bit (1) aligned); 6 56 /* parameter 1: (input) reference node pointer */ 6 57 /* parameter 2: (input) value of constant length */ 6 58 /* return: (output) "1"b if constant length */ 6 59 6 60 declare convert entry(pointer,bit(36) aligned) 6 61 returns(pointer); 6 62 /* parameter 1: (input) any node pointer */ 6 63 /* parameter 2: (input) target type */ 6 64 /* return: (output) target value tree pointer */ 6 65 6 66 declare convert$to_integer entry(pointer,bit(36)aligned) 6 67 returns(pointer); 6 68 /* parameter 1: (input) any node pointer */ 6 69 /* parameter 2: (input) target type */ 6 70 /* return: (output) target value tree pointer */ 6 71 6 72 declare convert$from_builtin entry(pointer,bit(36) aligned) 6 73 returns(pointer); 6 74 /* parameter 1: (input) any node pointer */ 6 75 /* parameter 2: (input) target type */ 6 76 /* return: (output) target value tree pointer */ 6 77 6 78 declare convert$validate entry(pointer,pointer); 6 79 /* parameter 1: (input) source value tree pointer */ 6 80 /* parameter 2: (input) target reference node pointer */ 6 81 6 82 declare convert$to_target_fb entry(pointer,pointer) 6 83 returns(pointer); 6 84 /* parameter 1: (input) source value tree pointer */ 6 85 /* parameter 2: (input) target reference node pointer */ 6 86 /* return: (output) target value tree pointer */ 6 87 6 88 declare convert$to_target entry(pointer,pointer) 6 89 returns(pointer); 6 90 /* parameter 1: (input) source value tree pointer */ 6 91 /* parameter 2: (input) target reference node pointer */ 6 92 /* return: (output) target value tree pointer */ 6 93 6 94 declare copy_expression entry(pointer unaligned) 6 95 returns(pointer); 6 96 /* parameter 1: (input) any node pointer */ 6 97 /* return: (output) any node pointer */ 6 98 6 99 declare copy_expression$copy_sons entry(pointer,pointer); 6 100 /* parameter 1: (input) father symbol node pointer */ 6 101 /* parameter 2: (input) stepfather symbol node ptr */ 6 102 6 103 declare copy_unique_expression entry(pointer) 6 104 returns(pointer); 6 105 /* parameter 1: (input) any node pointer */ 6 106 /* return: (output) any node pointer */ 6 107 6 108 declare create_array entry() 6 109 returns(pointer); 6 110 /* return: (output) array node pointer */ 6 111 6 112 declare create_block entry(bit(9) aligned,pointer) 6 113 returns(pointer); 6 114 /* parameter 1: (input) block type */ 6 115 /* parameter 2: (input) father block node pointer */ 6 116 /* return: (output) block node pointer */ 6 117 6 118 declare create_bound entry() 6 119 returns(pointer); 6 120 /* return: (output) bound node pointer */ 6 121 6 122 declare create_context entry(pointer,pointer) 6 123 returns(pointer); 6 124 /* parameter 1: (input) block node pointer */ 6 125 /* parameter 2: (input) token pointer */ 6 126 /* return: (output) context node pointer */ 6 127 6 128 declare create_cross_reference entry() 6 129 returns(pointer); 6 130 /* return: (output) cross reference node pointer */ 6 131 6 132 declare create_default entry 6 133 returns(pointer); 6 134 /* return: (output) default node pointer */ 6 135 6 136 declare create_identifier entry() 6 137 returns(pointer); 6 138 /* return: (output) token node pointer */ 6 139 6 140 declare create_label entry(pointer,pointer,bit(3) aligned) 6 141 returns(pointer); 6 142 /* parameter 1: (input) block node pointer */ 6 143 /* parameter 2: (input) token node pointer */ 6 144 /* parameter 3: (input) declare type */ 6 145 /* return: (output) label node pointer */ 6 146 6 147 declare create_list entry(fixed bin(15)) 6 148 returns(pointer); 6 149 /* parameter 1: (input) number of list elements */ 6 150 /* return: (output) list node pointer */ 6 151 6 152 declare create_operator entry(bit(9) aligned,fixed bin(15)) 6 153 returns(pointer); 6 154 /* parameter 1: (input) operator type */ 6 155 /* parameter 2: (input) number of operands */ 6 156 /* return: (output) operator node pointer */ 6 157 6 158 declare create_reference entry(pointer) 6 159 returns(pointer); 6 160 /* parameter 1: (input) symbol node pointer */ 6 161 /* return: (output) reference node pointer */ 6 162 6 163 declare create_statement entry(bit(9) aligned,pointer,pointer,bit(12) aligned) 6 164 returns(pointer); 6 165 /* parameter 1: (input) statement type */ 6 166 /* parameter 2: (input) block node pointer */ 6 167 /* parameter 3: (input) label node pointer */ 6 168 /* parameter 4: (input) conditions */ 6 169 /* return: (output) statement node pointer */ 6 170 6 171 declare create_statement$prologue entry(bit(9) aligned,pointer,pointer,bit(12) aligned) 6 172 returns(pointer); 6 173 /* parameter 1: (input) statement type */ 6 174 /* parameter 2: (input) block node pointer */ 6 175 /* parameter 3: (input) label node pointer */ 6 176 /* parameter 4: (input) conditions */ 6 177 /* return: (output) statement node pointer */ 6 178 6 179 declare create_storage entry(fixed bin(15)) 6 180 returns(pointer); 6 181 /* parameter 1: (input) number of words */ 6 182 /* return: (output) storage block pointer */ 6 183 6 184 declare create_symbol entry(pointer,pointer,bit(3) aligned) 6 185 returns(pointer); 6 186 /* parameter 1: (input) block node pointer */ 6 187 /* parameter 2: (input) token node pointer */ 6 188 /* parameter 3: (input) declare type */ 6 189 /* return: (output) symbol node pointer */ 6 190 6 191 declare create_token entry (character (*), bit (9) aligned) 6 192 returns (ptr); 6 193 /* parameter 1: (input) token string */ 6 194 /* parameter 2: (input) token type */ 6 195 /* return: (output) token node ptr */ 6 196 6 197 declare create_token$init_hash_table entry (); 6 198 6 199 declare create_token$protected entry (char (*), bit (9) aligned, bit (18) aligned) 6 200 returns (ptr); 6 201 /* parameter 1: (input) token string */ 6 202 /* parameter 2: (input) token type */ 6 203 /* parameter 3: (input) protected flag */ 6 204 /* return: (output) token node ptr */ 6 205 6 206 declare decbin entry(character(*) aligned) reducible 6 207 returns(fixed bin(31)); 6 208 /* parameter 1: (input) decimal character string */ 6 209 /* return: (output) binary value */ 6 210 6 211 declare declare_constant entry(bit(*) aligned,bit(36) aligned,fixed bin(31),fixed bin(15)) 6 212 returns(pointer); 6 213 /* parameter 1: (input) value */ 6 214 /* parameter 2: (input) type */ 6 215 /* parameter 3: (input) size */ 6 216 /* parameter 4: (input) scale */ 6 217 /* return: (output) reference node pointer */ 6 218 6 219 declare declare_constant$bit entry(bit(*) aligned) 6 220 returns(pointer); 6 221 /* parameter 1: (input) bit */ 6 222 /* return: (output) reference node pointer */ 6 223 6 224 declare declare_constant$char entry(character(*) aligned) 6 225 returns(pointer); 6 226 /* parameter 1: (input) character */ 6 227 /* return: (output) reference node pointer */ 6 228 6 229 declare declare_constant$desc entry(bit(*) aligned) 6 230 returns(pointer); 6 231 /* parameter 1: (input) descriptor bit value */ 6 232 /* return: (output) reference node pointer */ 6 233 6 234 declare declare_constant$integer entry(fixed bin(31)) /* note...should really be fixed bin(24) */ 6 235 returns(pointer); 6 236 /* parameter 1: (input) integer */ 6 237 /* return: (output) reference node pointer */ 6 238 6 239 declare declare_descriptor entry(pointer,pointer,pointer,pointer,bit(2) aligned) 6 240 returns(pointer); 6 241 /* parameter 1: (input) block node pointer */ 6 242 /* parameter 2: (input) statement node pointer */ 6 243 /* parameter 3: (input) symbol node pointer */ 6 244 /* parameter 4: (input) loc pointer */ 6 245 /* parameter 5: (input) array descriptor bit 6 246* cross_section bit */ 6 247 /* return: (output) reference node pointer */ 6 248 6 249 declare declare_descriptor$ctl entry(pointer,pointer,pointer,pointer,bit(2) aligned) 6 250 returns(pointer); 6 251 /* parameter 1: (input) block node pointer */ 6 252 /* parameter 2: (input) statement node pointer */ 6 253 /* parameter 3: (input) symbol node pointer */ 6 254 /* parameter 4: (input) loc pointer */ 6 255 /* parameter 5: (input) array descriptor bit 6 256* cross_section bit */ 6 257 /* return: (output) reference node pointer */ 6 258 6 259 declare declare_descriptor$param entry(pointer,pointer,pointer,pointer,bit(2) aligned) 6 260 returns(pointer); 6 261 /* parameter 1: (input) block node pointer */ 6 262 /* parameter 2: (input) statement node pointer */ 6 263 /* parameter 3: (input) symbol node pointer */ 6 264 /* parameter 4: (input) loc pointer */ 6 265 /* parameter 5: (input) array descriptor bit 6 266* cross_section bit */ 6 267 /* return: (output) reference node pointer */ 6 268 6 269 declare declare_integer entry(pointer) 6 270 returns(pointer); 6 271 /* parameter 1: (input) block node pointer */ 6 272 /* return: (output) reference node pointer */ 6 273 6 274 declare declare_picture entry(char(*)aligned,pointer,fixed bin(15)); 6 275 /* parameter 1: (input) picture string */ 6 276 /* parameter 2: (input) symbol node pointer */ 6 277 /* parameter 3: (output) error code, if any */ 6 278 6 279 declare declare_picture_temp entry(char(*) aligned,fixed bin(31),bit(1) aligned,bit(1) aligned) 6 280 returns(pointer); 6 281 /* parameter 1: (input) picture string */ 6 282 /* parameter 2: (input) scalefactor of picture */ 6 283 /* parameter 3: (input) ="1"b => complex picture */ 6 284 /* parameter 4: (input) ="1"b => unaligned temp */ 6 285 /* return: (output) reference node pointer */ 6 286 6 287 declare declare_pointer entry(pointer) 6 288 returns(pointer); 6 289 /* parameter 1: (input) block node pointer */ 6 290 /* return: (output) reference node pointer */ 6 291 6 292 declare declare_temporary entry(bit(36) aligned,fixed bin(31),fixed bin(15),pointer) 6 293 returns(pointer); 6 294 /* parameter 1: (input) type */ 6 295 /* parameter 2: (input) precision */ 6 296 /* parameter 3: (input) scale */ 6 297 /* parameter 4: (input) length */ 6 298 /* return: (output) reference node pointer */ 6 299 6 300 declare decode_node_id entry(pointer,bit(1) aligned) 6 301 returns(char(120) varying); 6 302 /* parameter 1: (input) node pointer */ 6 303 /* parameter 2: (input) ="1"b => capitals */ 6 304 /* return: (output) source line id */ 6 305 6 306 declare decode_source_id entry( 7 1 1 structure unaligned, 7 2 2 /* file_number */ bit(8), 7 3 2 /* line_number */ bit(14), 7 4 2 /* stmt_number */ bit(5), 6 307 6 308 bit(1) aligned) 6 309 returns(char(120) varying); 6 310 /* parameter 1: (input) source id */ 6 311 /* parameter 2: (input) ="1"b => capitals */ 6 312 /* return: (output) source line id */ 6 313 6 314 declare error entry(fixed bin(15),pointer,pointer); 6 315 /* parameter 1: (input) error number */ 6 316 /* parameter 2: (input) statement node pointer or null*/ 6 317 /* parameter 3: (input) token node pointer */ 6 318 6 319 declare error$omit_text entry(fixed bin(15),pointer,pointer); 6 320 /* parameter 1: (input) error number */ 6 321 /* parameter 2: (input) statement node pointer or null*/ 6 322 /* parameter 3: (input) token node pointer */ 6 323 6 324 declare error_ entry(fixed bin(15), 8 1 1 structure unaligned, 8 2 2 /* file_number */ bit(8), 8 3 2 /* line_number */ bit(14), 8 4 2 /* stmt_number */ bit(5), 6 325 6 326 pointer,fixed bin(8),fixed bin(23),fixed bin(11)); 6 327 /* parameter 1: (input) error number */ 6 328 /* parameter 2: (input) statement id */ 6 329 /* parameter 3: (input) any node pointer */ 6 330 /* parameter 4: (input) source segment */ 6 331 /* parameter 5: (input) source starting character */ 6 332 /* parameter 6: (input) source length */ 6 333 6 334 declare error_$no_text entry(fixed bin(15), 9 1 1 structure unaligned, 9 2 2 /* file_number */ bit(8), 9 3 2 /* line_number */ bit(14), 9 4 2 /* stmt_number */ bit(5), 6 335 6 336 pointer); 6 337 /* parameter 1: (input) error number */ 6 338 /* parameter 2: (input) statement id */ 6 339 /* parameter 3: (input) any node pointer */ 6 340 6 341 declare error_$initialize_error entry(); 6 342 6 343 declare error_$finish entry(); 6 344 6 345 declare free_node entry(pointer); 6 346 /* parameter 1: any node pointer */ 6 347 6 348 declare get_array_size entry(pointer,fixed bin(3)); 6 349 /* parameter 1: (input) symbol node pointer */ 6 350 /* parameter 2: (input) units */ 6 351 6 352 declare get_size entry(pointer); 6 353 /* parameter 1: (input) symbol node pointer */ 6 354 6 355 declare merge_attributes external entry(pointer,pointer) 6 356 returns(bit(1) aligned); 6 357 /* parameter 1: (input) target symbol node pointer */ 6 358 /* parameter 2: (input) source symbol node pointer */ 6 359 /* return: (output) "1"b if merge was unsuccessful */ 6 360 6 361 declare optimizer entry(pointer); 6 362 /* parameter 1: (input) root pointer */ 6 363 6 364 declare parse_error entry(fixed bin(15),pointer); 6 365 /* parameter 1: (input) error number */ 6 366 /* parameter 2: (input) any node pointer */ 6 367 6 368 declare parse_error$no_text entry(fixed bin(15),pointer); 6 369 /* parameter 1: (input) error number */ 6 370 /* parameter 2: (input) any node pointer */ 6 371 6 372 declare pl1_error_print$write_out 6 373 entry(fixed bin(15), 10 1 1 structure unaligned, 10 2 2 /* file_number */ bit(8), 10 3 2 /* line_number */ bit(14), 10 4 2 /* stmt_number */ bit(5), 6 374 6 375 pointer,fixed bin(11),fixed bin(31),fixed bin(31),fixed bin(15)); 6 376 /* parameter 1: (input) error number */ 6 377 /* parameter 2: (input) statement identification */ 6 378 /* parameter 3: (input) any node pointer */ 6 379 /* parameter 4: (input) source segment */ 6 380 /* parameter 5: (input) source character index */ 6 381 /* parameter 6: (input) source length */ 6 382 /* parameter 7: (input) source line */ 6 383 6 384 declare pl1_error_print$listing_segment 6 385 entry(fixed bin(15), 11 1 1 structure unaligned, 11 2 2 /* file_number */ bit(8), 11 3 2 /* line_number */ bit(14), 11 4 2 /* stmt_number */ bit(5), 6 386 6 387 pointer); 6 388 /* parameter 1: (input) error number */ 6 389 /* parameter 2: (input) statement identification */ 6 390 /* parameter 3: (input) token node pointer */ 6 391 6 392 declare pl1_print$varying entry(character(*) aligned varying); 6 393 /* parameter 1: (input) string */ 6 394 6 395 declare pl1_print$varying_nl entry(character(*) aligned varying); 6 396 /* parameter 1: (input) string */ 6 397 6 398 declare pl1_print$non_varying entry(character(*) aligned,fixed bin(31)); 6 399 /* parameter 1: (input) string */ 6 400 /* parameter 2: (input) string length or 0 */ 6 401 6 402 declare pl1_print$non_varying_nl entry(character(*) aligned,fixed bin(31)); 6 403 /* parameter 1: (input) string */ 6 404 /* parameter 2: (input) string length or 0 */ 6 405 6 406 declare pl1_print$string_pointer entry(pointer,fixed bin(31)); 6 407 /* parameter 1: (input) string pointer */ 6 408 /* parameter 2: (input) string size */ 6 409 6 410 declare pl1_print$string_pointer_nl entry(pointer,fixed bin(31)); 6 411 /* parameter 1: (input) string pointer */ 6 412 /* parameter 2: (input) string length or 0 */ 6 413 6 414 declare pl1_print$unaligned_nl entry(character(*) unaligned,fixed bin(31)); 6 415 /* parameter 1: (input) string */ 6 416 /* parameter 2: (input) length */ 6 417 6 418 declare pl1_print$for_lex entry (ptr, fixed bin (14), fixed bin (21), fixed bin (21), bit (1) aligned, bit (1) aligned); 6 419 /* parameter 1: (input) ptr to base of source segment */ 6 420 /* parameter 2: (input) line number */ 6 421 /* parameter 3: (input) starting offset in source seg */ 6 422 /* parameter 4: (input) number of chars to copy */ 6 423 /* parameter 5: (input) ON iff shd print line number */ 6 424 /* parameter 6: (input) ON iff line begins in comment */ 6 425 6 426 declare refer_extent entry(pointer,pointer); 6 427 /* parameter 1: (input/output) null,ref node,op node pointer */ 6 428 /* parameter 2: (input) null,ref node,op node pointer */ 6 429 6 430 declare reserve$clear entry() 6 431 returns(pointer); 6 432 /* return: (output) pointer */ 6 433 6 434 declare reserve$declare_lib entry(fixed bin(15)) 6 435 returns(pointer); 6 436 /* parameter 1: (input) builtin function number */ 6 437 /* return: (output) pointer */ 6 438 6 439 declare reserve$read_lib entry(fixed bin(15)) 6 440 returns(pointer); 6 441 /* parameter 1: (input) builtin function number */ 6 442 /* return: (output) pointer */ 6 443 6 444 declare semantic_translator entry(); 6 445 6 446 declare semantic_translator$abort entry(fixed bin(15),pointer); 6 447 /* parameter 1: (input) error number */ 6 448 /* parameter 2: (input) any node pointer */ 6 449 6 450 declare semantic_translator$error entry(fixed bin(15),pointer); 6 451 /* parameter 1: (input) error number */ 6 452 /* parameter 2: (input) any node pointer */ 6 453 6 454 declare share_expression entry(ptr) 6 455 returns(ptr); 6 456 /* parameter 1: (input) usually operator node pointer */ 6 457 /* return: (output) tree pointer or null */ 6 458 6 459 declare token_to_binary entry(ptr) reducible 6 460 returns(fixed bin(31)); 6 461 /* parameter 1: (input) token node pointer */ 6 462 /* return: (output) converted binary value */ 6 463 6 464 /* END INCLUDE FILE ... language_utility.incl.pl1 */ 100 101 102 write_out: 103 entry (error_number, statement_id, token_pt, source_seg, start, count, source_line); 104 105 m = source_seg; 106 107 if m > -1 108 then source_pt = source.seg_ptr; 109 else source_pt = null; 110 111 pl1_stat_$error_width = min (pl1_stat_$error_width, maxlength (head)); 112 console = "1"b; 113 goto begin; 114 115 listing_segment: 116 entry (error_number, statement_id, token_pt); 117 118 m = 0; 119 pl1_stat_$error_width = 120; 120 console = "0"b; 121 122 begin: 123 error_messages = pl1_stat_$error_messages; 124 brief = pl1_stat_$brief_error_mode | error_messages = null; 125 sev = 2; 126 no_message = "1"b; 127 128 if error_messages ^= null 129 then if lbound (message_segment.index_block, 1) <= error_number 130 & error_number <= hbound (message_segment.index_block, 1) 131 then do; 132 message_start = message_segment.index_block (error_number).message_pointer; 133 message_length = message_segment.index_block (error_number).len; 134 no_message = message_start = -1; 135 136 if ^no_message 137 then sev = message_segment.index_block (error_number).severity; 138 end; 139 140 pl1_stat_$last_severity = sev; 141 pl1_severity_, pl1_stat_$greatest_severity = max (pl1_stat_$greatest_severity, sev); 142 143 if console 144 then do; 145 if sev >= pl1_stat_$severity_plateau 146 then call print_message; 147 148 pl1_stat_$err_stm = null; 149 150 if sev > 3 151 then goto pl1_stat_$abort_label; 152 end; 153 else call print_message; 154 155 return; 156 157 print_message: 158 procedure; 159 160 dcl inserted bit (1) aligned; 161 dcl scan_index fixed bin (21); 162 dcl word char (261) varying; 163 164 if sev = 1 165 then call ioa_$rsnnl ("^/WARNING ^d", head, 0, error_number); 166 167 else if sev = 4 168 then call ioa_$rsnnl ("^/FATAL ERROR ^d", head, 0, error_number); 169 170 else call ioa_$rsnnl ("^/ERROR ^d, SEVERITY ^d", head, 0, error_number, sev); 171 172 if string (statement_id) ^= ""b & m > -1 173 then do; 174 word = decode_source_id (statement_id, "1"b); 175 176 if substr (word, 1, 1) = "S" 177 then head = head || " IN "; 178 else head = head || " ON "; 179 180 head = head || word; 181 end; 182 183 if cg_static_$debug & pl1_stat_$err_stm ^= null 184 then do; 185 call ioa_$rsnnl (" (^p)", word, 0, pl1_stat_$err_stm); 186 head = head || word; 187 end; 188 189 call print_line (head); 190 191 if console & (brief | substr (pl1_stat_$error_memory, error_number, 1)) 192 then do; 193 if token_pt ^= null 194 then call ioa_ ("^a", quote_token (token_pt)); 195 196 call print_source_statement; 197 198 return; 199 end; 200 201 else if no_message 202 then return; 203 204 substr (pl1_stat_$error_memory, error_number, 1) = "1"b; 205 206 /* Error message construction. */ 207 208 inserted = token_pt = null; 209 scan_index = 1; 210 head = ""; 211 do while (next_string ()); 212 if ^inserted & substr (word, 1, 1) = "$" 213 then do; 214 word = quote_token (token_pt) || substr (word, 2); 215 inserted = "1"b; 216 end; 217 218 if length (head) = 0 219 then head = word; 220 221 else if length (head) + 1 + length (word) <= pl1_stat_$error_width 222 then head = head || " " || word; 223 else do; 224 call print_line (head); 225 head = word; 226 end; 227 end; 228 229 call print_line (head); 230 231 if console 232 then call print_source_statement; 233 234 return; 235 236 /* Extract the next word from the current message. */ 237 238 next_string: 239 procedure returns (bit (1) aligned); 240 241 dcl word_length fixed bin (21); 242 243 dcl message char (message_length) defined (message_segment.message_block) position (message_start); 244 245 word_length = verify (substr (message, scan_index), " ") - 1; 246 if word_length < 0 247 then return ("0"b); 248 249 scan_index = scan_index + word_length; 250 251 word_length = search (substr (message, scan_index), " ") - 1; 252 if word_length < 0 253 then word_length = length (substr (message, scan_index)); 254 255 word = substr (message, scan_index, word_length); 256 scan_index = scan_index + word_length; 257 258 return ("1"b); 259 end next_string; 260 261 /* Quote a token if necessary. */ 262 263 quote_token: 264 procedure (p) returns (char (259) varying); 265 266 dcl p ptr; 267 268 dcl type bit (9) aligned; 269 270 type = p -> token.type; 271 272 if type = identifier | type = isub | type = char_string | (type & is_delimiter) = is_delimiter 273 then return ("""" || p -> token.string || """"); 274 275 else if type = bit_string 276 then return ("""" || substr (p -> token.string, 1, max (length (p -> token.string) - 1, 0)) || """b"); 277 278 else return (p -> token.string); 279 end quote_token; 280 281 print_source_statement: 282 procedure; 283 284 dcl 1 segment aligned based (source_pt), 285 2 spacer char (start) unaligned, 286 2 line char (count) unaligned; 287 288 if brief | source_pt = null | string (statement_id) = ""b 289 | string (statement_id) = string (pl1_stat_$last_statement_id) | count <= 0 | start < 0 290 then return; 291 292 string (pl1_stat_$last_statement_id) = string (statement_id); 293 call ioa_ ("SOURCE:^-^a", segment.line); 294 end print_source_statement; 295 296 print_line: 297 procedure (line); 298 299 dcl line char (*) varying; 300 301 if console 302 then call ioa_ ("^a", line); 303 else call pl1_print$varying_nl (line); 304 end print_line; 305 306 end print_message; 307 308 end pl1_error_print; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/31/89 1338.4 pl1_error_print.pl1 >spec>install>MR12.3-1066>pl1_error_print.pl1 95 1 09/14/77 1705.7 token.incl.pl1 >ldd>include>token.incl.pl1 96 2 11/30/78 1227.4 token_types.incl.pl1 >ldd>include>token_types.incl.pl1 97 3 09/14/77 1705.7 token_list.incl.pl1 >ldd>include>token_list.incl.pl1 98 4 05/03/76 1320.4 source_list.incl.pl1 >ldd>include>source_list.incl.pl1 99 5 05/06/74 1745.0 source_id.incl.pl1 >ldd>include>source_id.incl.pl1 100 6 07/31/89 1332.6 language_utility.incl.pl1 >spec>install>MR12.3-1066>language_utility.incl.pl1 6-307 7 05/06/74 1746.9 source_id_descriptor.incl.pl1 >ldd>include>source_id_descriptor.incl.pl1 6-325 8 05/06/74 1746.9 source_id_descriptor.incl.pl1 >ldd>include>source_id_descriptor.incl.pl1 6-335 9 05/06/74 1746.9 source_id_descriptor.incl.pl1 >ldd>include>source_id_descriptor.incl.pl1 6-374 10 05/06/74 1746.9 source_id_descriptor.incl.pl1 >ldd>include>source_id_descriptor.incl.pl1 6-386 11 05/06/74 1746.9 source_id_descriptor.incl.pl1 >ldd>include>source_id_descriptor.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. bit_string constant bit(9) initial dcl 2-3 ref 275 brief 000100 automatic bit(1) dcl 41 set ref 124* 191 288 cg_static_$debug 000014 external static bit(1) dcl 73 ref 183 char_string constant bit(9) initial dcl 2-3 ref 272 console 000101 automatic bit(1) dcl 42 set ref 112* 120* 143 191 231 301 count parameter fixed bin(31,0) dcl 31 ref 102 288 293 293 decode_source_id 000050 constant entry external dcl 6-306 ref 174 error_messages 000102 automatic pointer dcl 43 set ref 122* 124 128 128 128 132 133 136 245 251 252 255 error_number parameter fixed bin(15,0) dcl 32 set ref 102 115 128 128 132 133 136 164* 167* 170* 191 204 hbound builtin function dcl 63 ref 128 head 000104 automatic varying char(261) dcl 44 set ref 111 164* 167* 170* 176* 176 178* 178 180* 180 186* 186 189* 210* 218 218* 221 221* 221 224* 225* 229* identifier constant bit(9) initial dcl 2-3 ref 272 index_block based structure array level 2 dcl 53 ref 128 128 inserted 000230 automatic bit(1) dcl 160 set ref 208* 212 215* ioa_ 000010 constant entry external dcl 68 ref 193 293 301 ioa_$rsnnl 000012 constant entry external dcl 69 ref 164 167 170 185 is_delimiter constant bit(9) initial dcl 2-47 ref 272 272 isub constant bit(9) initial dcl 2-3 ref 272 lbound builtin function dcl 63 ref 128 len 2 based fixed bin(15,0) array level 3 dcl 53 ref 133 length builtin function dcl 63 ref 218 221 221 252 275 line based char level 2 in structure "segment" packed packed unaligned dcl 284 in procedure "print_source_statement" set ref 293* line parameter varying char dcl 299 in procedure "print_line" set ref 296 301* 303* m 000220 automatic fixed bin(15,0) dcl 4-1 set ref 105* 107 107 118* 172 max builtin function dcl 63 ref 141 275 maxlength builtin function dcl 63 ref 111 message defined char packed unaligned dcl 243 ref 245 251 252 255 message_block 2737 based char(248000) level 2 packed packed unaligned dcl 53 ref 245 245 251 251 252 252 255 255 message_length 000207 automatic fixed bin(21,0) dcl 45 set ref 133* 243 message_pointer based fixed bin(15,0) array level 3 dcl 53 ref 132 message_segment based structure level 1 dcl 53 message_start 000210 automatic fixed bin(21,0) dcl 46 set ref 132* 134 245 251 252 255 min builtin function dcl 63 ref 111 no_message 000211 automatic bit(1) dcl 47 set ref 126* 134* 136 201 null builtin function dcl 63 ref 109 124 128 148 183 193 208 288 p parameter pointer dcl 266 ref 263 270 272 275 275 278 pl1_print$varying_nl 000052 constant entry external dcl 6-395 ref 303 pl1_severity_ 000016 external static fixed bin(35,0) dcl 74 set ref 141* pl1_stat_$abort_label 000020 external static label variable dcl 75 ref 150 pl1_stat_$brief_error_mode 000022 external static bit(1) dcl 77 ref 124 pl1_stat_$err_stm 000024 external static pointer dcl 79 set ref 148* 183 185* pl1_stat_$error_memory 000026 external static bit(504) dcl 80 set ref 191 204* pl1_stat_$error_messages 000030 external static pointer dcl 82 ref 122 pl1_stat_$error_width 000032 external static fixed bin(17,0) dcl 84 set ref 111* 111 119* 221 pl1_stat_$greatest_severity 000034 external static fixed bin(17,0) dcl 86 set ref 141 141* pl1_stat_$last_severity 000036 external static fixed bin(15,0) dcl 88 set ref 140* pl1_stat_$last_statement_id 000040 external static structure level 1 packed packed unaligned dcl 90 set ref 288 292* pl1_stat_$severity_plateau 000042 external static fixed bin(17,0) dcl 92 ref 145 pl1_stat_$source_list_ptr 000046 external static pointer dcl 4-4 ref 107 pl1_stat_$token_list_ptr 000044 external static pointer dcl 3-1 ref 3-3 scan_index 000231 automatic fixed bin(21,0) dcl 161 set ref 209* 245 249* 249 251 252 255 256* 256 search builtin function dcl 63 ref 251 seg_ptr 6 based pointer level 2 packed packed unaligned dcl 4-8 ref 107 segment based structure level 1 dcl 284 sev 000212 automatic fixed bin(17,0) dcl 48 set ref 125* 136* 140 141 145 150 164 167 170* severity 1 based fixed bin(15,0) array level 3 dcl 53 ref 136 size 3 based fixed bin(9,0) level 2 dcl 1-3 ref 272 275 275 278 source based structure level 1 dcl 4-8 source_id 000221 automatic structure level 1 packed packed unaligned dcl 5-1 source_line parameter fixed bin(15,0) dcl 33 ref 102 source_list based pointer array dcl 4-5 ref 107 source_pt 000214 automatic pointer dcl 49 set ref 107* 109* 288 293 source_seg parameter fixed bin(11,0) dcl 34 ref 102 105 start parameter fixed bin(31,0) dcl 35 ref 102 288 293 statement_id parameter structure level 1 packed packed unaligned dcl 36 set ref 102 115 172 174* 288 288 292 string 4 based char level 2 in structure "token" dcl 1-3 in procedure "pl1_error_print" ref 272 275 275 278 string builtin function dcl 63 in procedure "pl1_error_print" set ref 172 288 288 288 292* 292 substr builtin function dcl 63 set ref 176 191 204* 212 214 245 251 252 255 275 token based structure level 1 dcl 1-3 token_list_pointer 000216 automatic pointer initial dcl 3-3 set ref 3-3* token_pt parameter pointer dcl 37 set ref 102 115 193 193* 208 214* type 0(09) based bit(9) level 2 in structure "token" packed packed unaligned dcl 1-3 in procedure "pl1_error_print" ref 270 type 000354 automatic bit(9) dcl 268 in procedure "quote_token" set ref 270* 272 272 272 272 275 verify builtin function dcl 63 ref 245 word 000232 automatic varying char(261) dcl 162 set ref 174* 176 180 185* 186 212 214* 214 218 221 221 225 255* word_length 000344 automatic fixed bin(21,0) dcl 241 set ref 245* 246 249 251* 252 252* 255 256 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. adjust_count 000000 constant entry external dcl 6-20 and internal static bit(9) initial dcl 2-3 arrow internal static bit(9) initial dcl 2-3 assignment internal static bit(9) initial dcl 2-3 asterisk internal static bit(9) initial dcl 2-3 bin_integer internal static bit(9) initial dcl 2-3 binary_to_octal_string 000000 constant entry external dcl 6-38 binary_to_octal_var_string 000000 constant entry external dcl 6-43 bindec 000000 constant entry external dcl 6-23 bindec$vs 000000 constant entry external dcl 6-28 binoct 000000 constant entry external dcl 6-33 cat internal static bit(9) initial dcl 2-3 colon internal static bit(9) initial dcl 2-3 comma internal static bit(9) initial dcl 2-3 compare_expression 000000 constant entry external dcl 6-48 constant_length 000000 constant entry external dcl 6-54 convert 000000 constant entry external dcl 6-60 convert$from_builtin 000000 constant entry external dcl 6-72 convert$to_integer 000000 constant entry external dcl 6-66 convert$to_target 000000 constant entry external dcl 6-88 convert$to_target_fb 000000 constant entry external dcl 6-82 convert$validate 000000 constant entry external dcl 6-78 copy_expression 000000 constant entry external dcl 6-94 copy_expression$copy_sons 000000 constant entry external dcl 6-99 copy_unique_expression 000000 constant entry external dcl 6-103 create_array 000000 constant entry external dcl 6-108 create_block 000000 constant entry external dcl 6-112 create_bound 000000 constant entry external dcl 6-118 create_context 000000 constant entry external dcl 6-122 create_cross_reference 000000 constant entry external dcl 6-128 create_default 000000 constant entry external dcl 6-132 create_identifier 000000 constant entry external dcl 6-136 create_label 000000 constant entry external dcl 6-140 create_list 000000 constant entry external dcl 6-147 create_operator 000000 constant entry external dcl 6-152 create_reference 000000 constant entry external dcl 6-158 create_statement 000000 constant entry external dcl 6-163 create_statement$prologue 000000 constant entry external dcl 6-171 create_storage 000000 constant entry external dcl 6-179 create_symbol 000000 constant entry external dcl 6-184 create_token 000000 constant entry external dcl 6-191 create_token$init_hash_table 000000 constant entry external dcl 6-197 create_token$protected 000000 constant entry external dcl 6-199 dec_integer internal static bit(9) initial dcl 2-3 decbin 000000 constant entry external dcl 6-206 declare_constant 000000 constant entry external dcl 6-211 declare_constant$bit 000000 constant entry external dcl 6-219 declare_constant$char 000000 constant entry external dcl 6-224 declare_constant$desc 000000 constant entry external dcl 6-229 declare_constant$integer 000000 constant entry external dcl 6-234 declare_descriptor 000000 constant entry external dcl 6-239 declare_descriptor$ctl 000000 constant entry external dcl 6-249 declare_descriptor$param 000000 constant entry external dcl 6-259 declare_integer 000000 constant entry external dcl 6-269 declare_picture 000000 constant entry external dcl 6-274 declare_picture_temp 000000 constant entry external dcl 6-279 declare_pointer 000000 constant entry external dcl 6-287 declare_temporary 000000 constant entry external dcl 6-292 decode_node_id 000000 constant entry external dcl 6-300 eq internal static bit(9) initial dcl 2-3 error 000000 constant entry external dcl 6-314 error$omit_text 000000 constant entry external dcl 6-319 error_ 000000 constant entry external dcl 6-324 error_$finish 000000 constant entry external dcl 6-343 error_$initialize_error 000000 constant entry external dcl 6-341 error_$no_text 000000 constant entry external dcl 6-334 expon internal static bit(9) initial dcl 2-3 fixed_bin internal static bit(9) initial dcl 2-3 fixed_dec internal static bit(9) initial dcl 2-3 float_bin internal static bit(9) initial dcl 2-3 float_dec internal static bit(9) initial dcl 2-3 free_node 000000 constant entry external dcl 6-345 ge internal static bit(9) initial dcl 2-3 get_array_size 000000 constant entry external dcl 6-348 get_size 000000 constant entry external dcl 6-352 gt internal static bit(9) initial dcl 2-3 i_bin_integer internal static bit(9) initial dcl 2-3 i_dec_integer internal static bit(9) initial dcl 2-3 i_fixed_bin internal static bit(9) initial dcl 2-3 i_fixed_dec internal static bit(9) initial dcl 2-3 i_float_bin internal static bit(9) initial dcl 2-3 i_float_dec internal static bit(9) initial dcl 2-3 is_arith_constant internal static bit(9) initial dcl 2-47 is_arithmetic_constant internal static bit(9) initial dcl 2-47 is_constant internal static bit(9) initial dcl 2-47 is_decimal_constant internal static bit(9) initial dcl 2-47 is_float_constant internal static bit(9) initial dcl 2-47 is_identifier internal static bit(9) initial dcl 2-47 is_imaginary_constant internal static bit(9) initial dcl 2-47 is_integral_constant internal static bit(9) initial dcl 2-47 is_isub internal static bit(9) initial dcl 2-47 le internal static bit(9) initial dcl 2-3 left_parn internal static bit(9) initial dcl 2-3 lt internal static bit(9) initial dcl 2-3 merge_attributes 000000 constant entry external dcl 6-355 minus internal static bit(9) initial dcl 2-3 ne internal static bit(9) initial dcl 2-3 ngt internal static bit(9) initial dcl 2-3 nlt internal static bit(9) initial dcl 2-3 no_token internal static bit(9) initial dcl 2-3 not internal static bit(9) initial dcl 2-3 optimizer 000000 constant entry external dcl 6-361 or internal static bit(9) initial dcl 2-3 parse_error 000000 constant entry external dcl 6-364 parse_error$no_text 000000 constant entry external dcl 6-368 percent internal static bit(9) initial dcl 2-3 period internal static bit(9) initial dcl 2-3 pl1_error_print$listing_segment 000000 constant entry external dcl 6-384 pl1_error_print$write_out 000000 constant entry external dcl 6-372 pl1_print$for_lex 000000 constant entry external dcl 6-418 pl1_print$non_varying 000000 constant entry external dcl 6-398 pl1_print$non_varying_nl 000000 constant entry external dcl 6-402 pl1_print$string_pointer 000000 constant entry external dcl 6-406 pl1_print$string_pointer_nl 000000 constant entry external dcl 6-410 pl1_print$unaligned_nl 000000 constant entry external dcl 6-414 pl1_print$varying 000000 constant entry external dcl 6-392 pl1_stat_$last_source external static fixed bin(15,0) dcl 4-3 pl1_stat_$source_seg external static fixed bin(8,0) dcl 4-2 pl1_stat_$statement_id external static structure level 1 packed packed unaligned dcl 3-6 plus internal static bit(9) initial dcl 2-3 refer_extent 000000 constant entry external dcl 6-426 reserve$clear 000000 constant entry external dcl 6-430 reserve$declare_lib 000000 constant entry external dcl 6-434 reserve$read_lib 000000 constant entry external dcl 6-439 right_parn internal static bit(9) initial dcl 2-3 semantic_translator 000000 constant entry external dcl 6-444 semantic_translator$abort 000000 constant entry external dcl 6-446 semantic_translator$error 000000 constant entry external dcl 6-450 semi_colon internal static bit(9) initial dcl 2-3 share_expression 000000 constant entry external dcl 6-454 slash internal static bit(9) initial dcl 2-3 source_list_length internal static fixed bin(15,0) initial dcl 4-6 t_table based structure level 1 dcl 3-11 token_list based pointer array dcl 3-2 token_list_length internal static fixed bin(15,0) initial dcl 3-4 token_to_binary 000000 constant entry external dcl 6-459 NAMES DECLARED BY EXPLICIT CONTEXT. begin 000160 constant label dcl 122 ref 113 listing_segment 000145 constant entry external dcl 115 next_string 001033 constant entry internal dcl 238 ref 211 pl1_error_print 000066 constant entry external dcl 26 print_line 001353 constant entry internal dcl 296 ref 189 224 229 print_message 000256 constant entry internal dcl 157 ref 145 153 print_source_statement 001272 constant entry internal dcl 281 ref 196 231 quote_token 001132 constant entry internal dcl 263 ref 193 214 write_out 000103 constant entry external dcl 102 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2110 2164 1642 2120 Length 2630 1642 54 427 245 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pl1_error_print 446 external procedure is an external procedure. print_message internal procedure shares stack frame of external procedure pl1_error_print. next_string internal procedure shares stack frame of external procedure pl1_error_print. quote_token internal procedure shares stack frame of external procedure pl1_error_print. print_source_statement internal procedure shares stack frame of external procedure pl1_error_print. print_line internal procedure shares stack frame of external procedure pl1_error_print. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pl1_error_print 000100 brief pl1_error_print 000101 console pl1_error_print 000102 error_messages pl1_error_print 000104 head pl1_error_print 000207 message_length pl1_error_print 000210 message_start pl1_error_print 000211 no_message pl1_error_print 000212 sev pl1_error_print 000214 source_pt pl1_error_print 000216 token_list_pointer pl1_error_print 000220 m pl1_error_print 000221 source_id pl1_error_print 000230 inserted print_message 000231 scan_index print_message 000232 word print_message 000344 word_length next_string 000354 type quote_token THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac tra_ext_2 shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. decode_source_id ioa_ ioa_$rsnnl pl1_print$varying_nl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_static_$debug pl1_severity_ pl1_stat_$abort_label pl1_stat_$brief_error_mode pl1_stat_$err_stm pl1_stat_$error_memory pl1_stat_$error_messages pl1_stat_$error_width pl1_stat_$greatest_severity pl1_stat_$last_severity pl1_stat_$last_statement_id pl1_stat_$severity_plateau pl1_stat_$source_list_ptr pl1_stat_$token_list_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 3 3 000057 26 000065 102 000074 105 000111 107 000114 109 000126 111 000130 112 000136 113 000140 115 000141 118 000153 119 000154 120 000157 122 000160 124 000163 125 000171 126 000173 128 000175 132 000206 133 000212 134 000215 136 000221 140 000225 141 000227 143 000234 145 000236 148 000242 150 000245 152 000253 153 000254 155 000255 157 000256 164 000257 167 000317 170 000355 172 000416 174 000427 176 000451 178 000470 180 000502 183 000514 185 000523 186 000552 189 000564 191 000567 193 000603 196 000637 198 000640 201 000641 204 000644 208 000653 209 000660 210 000662 211 000663 212 000671 214 000677 215 000736 218 000741 221 000751 223 001012 224 001013 225 001016 227 001023 229 001024 231 001027 234 001032 238 001033 243 001035 245 001037 246 001062 249 001065 251 001066 252 001111 255 001115 256 001125 258 001127 263 001132 270 001134 272 001141 275 001211 278 001257 281 001272 288 001273 292 001322 293 001325 294 001352 296 001353 301 001364 303 001410 304 001423 ----------------------------------------------------------- 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