COMPILATION LISTING OF SEGMENT probe_compare_reference_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/11/88 1546.3 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Added format control comment to make the source more readable. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 22 23 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 probe_compare_reference_: 26 procedure (P_probe_info_ptr, P_operation, P_operand_1, P_operand_2, P_code) 27 returns (bit (1)); 28 29 /* 30* Modified in July 1977 by R.J.C. Kissel to handle new data ttypes. When any_to_any_ is 31* updated to handle all data types, all references to probe_assign_ should be changed to references 32* to assign_ and probe_assign_ and probe_convert_ should be deleted. 33* Modified 18 Nov 78 by James R. Davis to check for valid decimal and varying strings 34* Modified 18 Nov 79 by James R. Davis to use data_type_info_ and assign_computational_ 35* Modified June 83 JMAthane to handle PASCAL values. */ 36 /* Added version string to runtime_type_info structure 10/06/83 S. Herbst */ 37 38 dcl ( 39 P_probe_info_ptr pointer, 40 P_operation bit (18) aligned, 41 P_code fixed bin (35), 42 1 P_operand_1 aligned like reference_node, 43 1 P_operand_2 aligned like reference_node 44 ) parameter; 45 46 dcl 1 operand (2) aligned like reference_node; 47 /* copies of input operands */ 48 dcl 1 op_data (2) aligned like computational_data; 49 dcl 1 intermediate (2) aligned like computational_data; 50 51 dcl code fixed bin (35); 52 /* global error code */ 53 dcl operation_code fixed bin;/* binary verison of comparison operation */ 54 55 dcl 1 generation aligned like source_info based (generation_ptr); 56 /* enviroment */ 57 dcl generation_ptr pointer; 58 59 dcl 1 type_bits aligned, /* indicates type, base and mode */ 60 2 float bit (1) unaligned, 61 /* of the temp or target, which */ 62 2 binary bit (1) unaligned, 63 /* need not be the same as for the operand */ 64 2 complex bit (1) unaligned; 65 dcl 1 type_bits_copy aligned like type_bits; 66 67 dcl type_type fixed bin;/* type_bits, as in fixed bin (3) */ 68 69 dcl 1 common_info (0:7), /* indexed by type_type */ 70 2 type_array fixed bin initial /* type to convert to */ 71 (real_fix_dec_9bit_ls_dtype, 72 cplx_fix_dec_9bit_ls_dtype, 73 real_fix_bin_2_dtype, 74 cplx_fix_bin_2_dtype, 75 real_flt_dec_9bit_dtype, 76 cplx_flt_dec_9bit_dtype, 77 real_flt_bin_2_dtype, 78 cplx_flt_bin_2_dtype), 79 2 prec_array fixed bin 80 initial (59, 59, 71, 71, 59, 59, 63, 63), 81 /* precision of result */ 82 2 size_array fixed bin initial (30, 60, 2, 4, 32, 64, 2, 4); 83 /* number of words */ 84 85 dcl space (2) bit (1152) aligned; 86 /* enough to hold float decimal (59) complex */ 87 dcl first_based_char char (str_len (1)) based (str_ptr (1)); 88 dcl second_based_char char (str_len (2)) based (str_ptr (2)); 89 dcl first_based_bit bit (str_len (1)) based (str_ptr (1)); 90 dcl second_based_bit bit (str_len (2)) based (str_ptr (2)); 91 dcl str_len (2) fixed bin (21); 92 dcl str_ptr (2) pointer; 93 94 dcl result bit (1); /* often the result of the comapison */ 95 dcl i fixed bin; 96 97 dcl float_decimal decimal (59) float based; 98 /* overlay for a float decimal number */ 99 dcl float_decimal_complex decimal (59) float complex based; 100 /* and others ... */ 101 dcl fixed_decimal decimal (59, 0) fixed based; 102 dcl float_binary binary (63) float based; 103 dcl float_binary_complex binary (63) float complex based; 104 dcl fixed_binary binary (71) fixed based; 105 dcl fixed_binary_complex binary (71, 0) fixed complex based; 106 dcl based_label label based; 107 dcl based_entry entry variable based; 108 dcl based_integer fixed bin (35) based; 109 dcl based_ptr pointer based; 110 dcl based_packed_ptr pointer unaligned based; 111 dcl based_file file based; 112 113 dcl pointers (2) pointer; 114 dcl labels (2) label; 115 dcl entries (2) entry variable; 116 dcl 1 label aligned, 117 2 place pointer, 118 2 frame pointer; 119 dcl 1 entry aligned like label; 120 121 122 dcl reverse_result (7:12) bit (1) aligned internal static 123 options (constant) 124 initial /* ^= is the "reverse" of = */ 125 ("0"b, "0"b, "0"b, "1"b, "1"b, "1"b); 126 127 dcl wanted_result (7:12) fixed bin internal static 128 options (constant) 129 initial /* result (ie sign (-)) desired */ 130 (-1, 1, 0, 0, 1, -1); 131 132 133 dcl ( 134 probe_et_$bad_comparison, 135 probe_et_$bad_decimal, 136 probe_et_$bad_type, 137 probe_et_$bad_varying, 138 probe_et_$recorded_message 139 ) fixed bin (35) external static; 140 141 dcl probe_error_$record entry options (variable); 142 dcl valid_decimal_ entry (fixed bin, ptr, fixed bin) 143 returns (bit (1)); 144 dcl assign_$computational_ entry (ptr, ptr, fixed bin (35)); 145 dcl stu_$offset_to_pointer entry (pointer, pointer, pointer, pointer, 146 pointer, pointer) returns (pointer); 147 148 dcl (abs, addr, addrel, bin, ceil, character, fixed, max, null, 149 pointer, sign, string, substr, unspec) 150 builtin; 151 /* */ 152 153 probe_info_ptr = P_probe_info_ptr; 154 P_code = 0; /* unless we find otherwise */ 155 operation_code = bin (substr (P_operation, 4, 15), 17); 156 /* convert to a number */ 157 158 operand (1) = P_operand_1; /* copy arguments */ 159 operand (2) = P_operand_2; 160 161 if probe_info.language_type = PASCAL_lang_type then do; 162 do i = 1 to 2; 163 call set_pascal_term (operand (i)); 164 end; 165 if operand (1).type_ptr ^= operand (2).type_ptr 166 then go to BAD_OPERAND; 167 end; 168 do i = 1 to 2; /* get information about reference */ 169 call setup_str (operand (i), op_data (i)); 170 end; 171 172 173 if data_type_info_$info (op_data.data_type (1)).computational then do; 174 if ^data_type_info_$info (op_data.data_type (2)).computational 175 then 176 goto BAD_OPERAND; 177 178 if ^data_type_info_$info (op_data.data_type (1)).arithmetic & 179 ^data_type_info_$info (op_data.data_type (2)) 180 .arithmetic /* string to string */ 181 then do; 182 183 do i = 1 to 2; 184 185 if data_type_info_$info (op_data (i).data_type).varying 186 then do; 187 str_len (i) = op_data (i).address -> based_integer; 188 str_ptr (i) = addrel (op_data (i).address, 1); 189 190 if str_len (i) < 0 | str_len (i) > op_data (i).prec_or_length 191 then do; 192 call probe_error_$record (probe_info_ptr, 193 probe_et_$bad_varying, operand (i).name); 194 goto RECORDED_MESSAGE; 195 end; 196 end; 197 else do; 198 str_len (i) = op_data (i).prec_or_length; 199 str_ptr (i) = op_data (i).address; 200 end; 201 end; 202 if data_type_info_$info (op_data (1).data_type).char_string then do; 203 /* first is char */ 204 if data_type_info_$info (op_data (2).data_type).char_string 205 then do; 206 if first_based_char > second_based_char 207 then i = 1; 208 else if first_based_char = second_based_char 209 then i = 0; 210 else i = -1; 211 end; 212 else do; /* sec. is bit */ 213 if first_based_char > character (second_based_bit) 214 then i = 1; 215 else if first_based_char = character (second_based_bit) 216 then i = 0; 217 else i = -1; 218 end; /* char:bit */ 219 end; /* chart to ? */ 220 else do; 221 if data_type_info_$info (op_data (2).data_type).char_string 222 then do; 223 if character (first_based_bit) > second_based_char 224 then i = 1; 225 else if character (first_based_bit) = second_based_char 226 then i = 0; 227 else i = -1; 228 end; 229 else do; 230 if first_based_bit > second_based_bit 231 then i = 1; 232 else if first_based_bit = second_based_bit 233 then i = 0; 234 else i = -1; 235 end; /* bit:bit */ 236 end; 237 if reverse_result (operation_code) 238 then return (^(wanted_result (operation_code) = i)); 239 else return (wanted_result (operation_code) = i); 240 end; /* string comparisons */ 241 242 243 else do; /* at least one is arith */ 244 245 do i = 1 to 2; 246 if data_type_info_$info (op_data (i).data_type).decimal 247 then 248 if ^valid_decimal_ (op_data (i).data_type, 249 op_data.address (i), (op_data (i).prec_or_length)) 250 then do; /* and BAD!! */ 251 call probe_error_$record (probe_info_ptr, 252 probe_et_$bad_decimal, operand (i).name); 253 goto RECORDED_MESSAGE; 254 end; 255 end; 256 257 /* must convert to common type for comparison */ 258 259 type_bits = compute_type_bits (op_data (1).data_type); 260 type_bits_copy = compute_type_bits (op_data (2).data_type); 261 string (type_bits) = string (type_bits) | string (type_bits_copy); 262 263 type_type = fixed (string (type_bits), 3, 0); 264 265 intermediate (*).data_type = common_info (type_type).type_array; 266 intermediate (*).flags = "0"b; 267 intermediate (*).prec_or_length = 268 common_info (type_type).prec_array; 269 intermediate (*).picture_image_ptr = null (); 270 271 do i = 1 to 2; 272 intermediate (i).scale = op_data (i).scale; 273 if data_type_info_$info (op_data (i).data_type).decimal & 274 type_bits.binary 275 then 276 intermediate (i).scale = 277 ceil (abs (op_data (i).scale) * 3.332) 278 * sign (op_data (i).scale); 279 end; 280 281 intermediate (*).scale = 282 max (intermediate (1).scale, intermediate (2).scale); 283 284 do i = 1 to 2; 285 intermediate (i).address = addr (space (i)); 286 call assign_$computational_ (addr (intermediate (i)), 287 addr (op_data (i)), code); 288 if code ^= 0 289 then goto SOME_ERROR; 290 end; 291 292 293 /* perform comparison */ 294 295 if type_bits.complex /* complex only allows equla or not equal */ 296 then do; 297 if P_operation ^= EQUALS & P_operation ^= NOT_EQUALS 298 then 299 goto BAD_COMPARISON; 300 if ^type_bits.binary /* we will compare fixed as float */ 301 then result = 302 (addr (space (1)) -> float_decimal_complex 303 = addr (space (2)) -> float_decimal_complex); 304 else if type_bits.float 305 then result = 306 (addr (space (1)) -> float_binary_complex 307 = addr (space (2)) -> float_binary_complex); 308 else result = 309 (addr (space (1)) -> fixed_binary_complex 310 = addr (space (2)) -> fixed_binary_complex); 311 if reverse_result (operation_code) 312 /* is result really ^ result */ 313 then return (^result); 314 else return (result); 315 end; 316 else do; 317 if ^type_bits.binary 318 then do; 319 if type_bits.float 320 then i = sign (addr (space (1)) -> float_decimal 321 - addr (space (2)) -> float_decimal); 322 else i = sign (addr (space (1)) -> fixed_decimal 323 - addr (space (2)) -> fixed_decimal); 324 end; 325 else do; 326 if type_bits.float 327 then i = sign (addr (space (1)) -> float_binary 328 - addr (space (2)) -> float_binary); 329 else i = sign (addr (space (1)) -> fixed_binary 330 - addr (space (2)) -> fixed_binary); 331 end; 332 if reverse_result (operation_code) 333 then return (^(wanted_result (operation_code) = i)); 334 else return (wanted_result (operation_code) = i); 335 end; 336 337 338 end; /* arith compare */ 339 end; /* computational compares */ 340 else if op_data (1).data_type = pointer_dtype 341 | op_data (1).data_type = offset_dtype then do; 342 343 do i = 1 to 2; 344 if P_operation ^= EQUALS & P_operation ^= NOT_EQUALS 345 then 346 goto BAD_COMPARISON; 347 if op_data (i).data_type = pointer_dtype 348 then if op_data (i).flags.packed 349 then pointers (i) = op_data.address (i) -> based_packed_ptr; 350 else pointers (i) = op_data.address (i) -> based_ptr; 351 else if op_data (i).data_type = offset_dtype /* offset */ 352 then do; 353 generation_ptr = operand (i).source_info_ptr; 354 pointers (i) = 355 stu_$offset_to_pointer (generation.block_ptr, 356 operand (i).symbol_ptr, op_data.address (i), 357 generation.stack_ptr, 358 (generation.seg_info_ptr -> seg_info.linkage_ptr), 359 generation.block_ptr); 360 end; 361 else go to BAD_OPERAND; 362 end; 363 364 365 result = pointers (1) = pointers (2); 366 if reverse_result (operation_code) 367 then return (^result); 368 else return (result); 369 370 371 end; /* pointer and offset */ 372 else if op_data (1).data_type = label_dtype | 373 op_data (1).data_type = label_constant_runtime_dtype 374 then do; 375 if P_operation ^= EQUALS & P_operation ^= NOT_EQUALS 376 then 377 goto BAD_COMPARISON; 378 379 do i = 1 to 2; /* prepare both operands */ 380 if op_data (i).data_type = label_dtype 381 then labels (i) = op_data.address (i) -> based_label; 382 else if op_data (i).data_type = label_constant_runtime_dtype 383 then do; 384 label.place = op_data.address (i); 385 label.frame = 386 operand (i).source_info_ptr -> source_info.stack_ptr; 387 labels (i) = addr (label) -> based_label; 388 end; 389 else go to BAD_OPERAND; 390 end; 391 392 result = labels (1) = labels (2); 393 if reverse_result (operation_code) 394 then return (^result); 395 else return (result); 396 397 end; /* label */ 398 else if op_data (1).data_type = entry_dtype then do; 399 do i = 1 to 2; 400 if op_data (i).data_type = entry_dtype 401 /* entry variable */ 402 then entries (i) = op_data.address (i) -> based_entry; 403 else if op_data (i).data_type = int_entry_runtime_dtype 404 then do; 405 entry.place = op_data.address (i); 406 entry.frame = 407 operand (i).source_info_ptr -> source_info.stack_ptr; 408 entries (i) = addr (entry) -> based_entry; 409 end; 410 else if op_data (i).data_type = ext_entry_runtime_dtype 411 then do; 412 entry.place = op_data.address (i); 413 entry.frame = null; 414 entries (i) = addr (entry) -> based_entry; 415 end; 416 else go to BAD_OPERAND; 417 end; 418 419 420 if P_operation ^= EQUALS & P_operation ^= NOT_EQUALS 421 then 422 goto BAD_COMPARISON; 423 424 result = entries (1) = entries (2); 425 if reverse_result (operation_code) 426 then return (^result); 427 else return (result); 428 end; /* entry */ 429 else if op_data (1).data_type = file_dtype then do; 430 if op_data (2).data_type ^= file_dtype 431 /* can only compare two files */ 432 then go to BAD_OPERAND; 433 434 if P_operation = EQUALS 435 then do; 436 return (op_data.address (1) -> based_file 437 = op_data.address (2) -> based_file); 438 end; 439 if P_operation = NOT_EQUALS 440 then do; 441 return (op_data.address (1) -> based_file 442 ^= op_data.address (2) -> based_file); 443 end; 444 goto BAD_COMPARISON; 445 446 end; /* file */ 447 448 449 /* fall through */ 450 451 BAD_OPERAND: 452 call probe_error_$record (probe_info_ptr, probe_et_$bad_type, 453 operand (1).name, operand (2).name); 454 goto RECORDED_MESSAGE; 455 456 457 BAD_COMPARISON: 458 code = probe_et_$bad_comparison; 459 goto SOME_ERROR; 460 461 462 RECORDED_MESSAGE: 463 code = probe_et_$recorded_message; 464 goto SOME_ERROR; 465 466 467 SOME_ERROR: 468 P_code = code; 469 return ("0"b); /* since it failed for other reasons, as well */ 470 471 472 set_pascal_term: 473 proc (ref); 474 475 /* Transformation of a PASCAL value to more general type value, 476* in order to allow comparison between PASCAL value and probe constants, 477* comparison between typed pointers, 478* comparison between values subranges of same type.. */ 479 480 dcl 1 ref like reference_node parameter aligned; 481 482 dcl barr (100) bit (1) unal based (ref.address_ptr); 483 dcl get_size_in_bits_ entry (fixed bin, fixed bin (35), bit (1)) 484 returns (fixed bin); 485 dcl probe_pascal_$real_type entry (fixed bin (35), ptr, fixed bin (35), ptr) 486 ; 487 dcl 1 type_info like runtime_type_info; 488 489 call probe_pascal_$real_type (ref.type, ref.type_ptr, ref.type, 490 ref.type_ptr); /* if subrange */ 491 492 if ref.type = pascal_char_dtype then do; 493 ref.type = char_dtype; 494 ref.packed = "1"b; 495 ref.address_ptr = addr (barr (ref.precision - 8)); 496 end; 497 if ref.type = pascal_user_defined_type_instance_dtype then do; 498 if ref.type_ptr -> pascal_symbol_node_header.array_info 499 & ref.type_ptr -> pascal_symbol_node_header.packed then do; 500 type_info.version = RUNTIME_TYPE_INFO_VERSION_1; 501 502 call runtime_symbol_info_$type (type_ptr, addr (type_info), code); 503 if code ^= 0 504 then 505 go to SOME_ERROR; 506 507 if type_info.base_type = pascal_char_dtype 508 & runtime_symbol_info_$array_dims (ref.type_ptr) = 1 then do; 509 ref.precision = 510 get_size_in_bits_ ((ref.type), ref.precision, ref.packed) 511 / 9; 512 ref.type = char_dtype; 513 ref.type_ptr = null; 514 ref.packed = "1"b; 515 end; 516 end; 517 else if ref.type_ptr -> pascal_symbol_node_header.type 518 = pascal_typed_pointer_type_dtype then do; 519 ref.type = pointer_dtype; 520 ref.type_ptr = null; 521 if ref.precision = 36 522 then ref.packed = "1"b; 523 else ref.packed = "0"b; 524 end; 525 end; 526 else if ref.type = pascal_enumerated_type_element_dtype then do; 527 ref.type = pascal_enumerated_type_instance_dtype; 528 ref.type_ptr = runtime_symbol_info_$father_type (ref.symbol_ptr); 529 end; 530 531 if ref.type = pascal_enumerated_type_instance_dtype 532 | ref.type = pascal_boolean_dtype then do; 533 if ref.precision >= 36 534 then ref.type = real_fix_bin_2_uns_dtype; 535 else ref.type = real_fix_bin_1_uns_dtype; 536 ref.packed = "1"b; 537 end; 538 539 if ref.type = pascal_user_defined_type_instance_dtype 540 | ref.type = pascal_text_file_dtype then do; 541 if ref.type_ptr -> pascal_symbol_node_header.type = pascal_set_dtype 542 then ref.type_ptr = null; /* to allow comparison with <> constants */ 543 ref.type = bit_dtype; 544 ref.packed = "1"b; 545 end; 546 end; 547 548 setup_str: 549 proc (ref, comp); 550 551 dcl 1 ref parameter aligned like reference_node; 552 dcl 1 comp parameter aligned like computational_data; 553 dcl 1 an_encoded_value aligned like encoded_precision; 554 555 comp.address = ref.address_ptr; 556 comp.data_type = ref.type; 557 string (comp.flags) = "0"b; 558 comp.flags.packed = ref.flags.packed; 559 if data_type_info_$info (ref.type).arithmetic 560 then do; 561 unspec (an_encoded_value) = unspec (ref.precision); 562 comp.prec_or_length = an_encoded_value.prec; 563 comp.scale = an_encoded_value.scale; 564 end; 565 else do; 566 comp.prec_or_length = ref.precision; 567 comp.scale = 0; 568 end; 569 if ref.type = picture_runtime_dtype 570 then comp.picture_image_ptr = pointer (ref.symbol_ptr, ref.precision); 571 else comp.picture_image_ptr = null (); 572 end setup_str; 573 574 compute_type_bits: 575 proc (P_dtype) returns (1 aligned like type_bits); 576 577 dcl P_dtype fixed bin parameter; 578 579 dcl 1 d_type_bits aligned like type_bits; 580 581 582 if data_type_info_$info (P_dtype).arithmetic then do; 583 d_type_bits.float = ^data_type_info_$info (P_dtype).fixed; 584 d_type_bits.binary = ^data_type_info_$info (P_dtype).decimal; 585 d_type_bits.complex = data_type_info_$info (P_dtype).complex; 586 end; 587 588 else do; 589 d_type_bits.float = "0"b; 590 if data_type_info_$info (P_dtype).bit_string 591 then 592 d_type_bits.binary = "1"b; 593 else d_type_bits.binary = "0"b; 594 d_type_bits.complex = "0"b; 595 end; 596 return (d_type_bits); 597 end compute_type_bits; 598 599 600 /* */ 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 601 2 1 /* BEGIN INCLUDE FILE probe_references.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 2 5* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 2 6* Added new field (c_symbol) for C-Probe support. 2 7* 2) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 2 8* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 2 9* Added new field (c_sub_c_ptr) for C-Probe_support. 2 10* END HISTORY COMMENTS */ 2 11 2 12 /* Split out of probe_tokens, 04/22/79 WOS */ 2 13 /* modified for probe variables Feb 19 80 JRD */ 2 14 /* Modified June 83 JMAthane to add "type_ptr" and "builtin" fields */ 2 15 2 16 dcl 1 reference_node aligned based, /* information about a reference */ 2 17 2 symbol_ptr pointer aligned, /* to symbol table entry for reference */ 2 18 2 type_ptr pointer aligned, /* to symbol table entry for type (null if none) */ 2 19 2 address_ptr pointer aligned, /* to location of variable */ 2 20 2 base_addr pointer aligned, /* pointer on which whole symbol is based */ 2 21 2 source_info_ptr pointer aligned, /* to symbol structure for reference */ 2 22 2 23 2 name char (256) unaligned varying, /* symbol name */ 2 24 2 25 2 type fixed bin (35), /* data type */ 2 26 2 descriptor fixed bin (35), /* type || packed */ 2 27 2 precision fixed bin (35), /* scale and precision */ 2 28 2 flags, 2 29 3 packed bit (1) unal, /* data is in packed format */ 2 30 3 constant bit (1) unal, /* data is really a constant */ 2 31 3 cross_section bit (1) unal, /* reference is an array cross-section */ 2 32 3 function bit (1) unal, /* reference is function value */ 2 33 3 octal bit (1) unal, /* indicates that this is the octal bif */ 2 34 3 star_extent bit (1) unal, /* reference is a star subscript for father */ 2 35 3 have_generation bit (1) unal, /* this reference has an explicitly specified generation */ 2 36 3 pseudo_var bit (1) unal, /* it is ok to assign to it */ 2 37 3 probe_variable bit (1) unal, 2 38 3 path bit (1) unal, /* it's a pathname/virtual entry */ 2 39 3 builtin bit (1) unal, /* probe builtinvalue */ 2 40 3 c_ptr_to_char bit (1) unal, 2 41 3 c_sub_c_ptr bit (1) unal, 2 42 3 pad2 bit (23) unal, 2 43 2 44 2 optional_info, /* information which may or may not be present */ 2 45 3 argument_list pointer unaligned, /* pointer to reference_arg_list */ 2 46 3 subscript_ptr pointer unaligned, /* pointer to reference_subscripts */ 2 47 3 n_arguments fixed bin, /* number of arguments in argument list */ 2 48 3 n_subscripts fixed bin, /* number of subscripts present */ 2 49 2 50 2 constant_token_ptr pointer unaligned, /* pointer to constant token if this is a constant */ 2 51 2 subscript_refs_ptr pointer unaligned, /* pointer to array of subscript reference node pointers */ 2 52 2 invocation_level fixed bin, /* invocation level number ("[-17]") for this reference */ 2 53 2 probe_var_info_ptr ptr unal, /* only if flags.probe_variable */ 2 54 2 c_symbol_ptr ptr unal, 2 55 2 pad1 (9) pointer unaligned, 2 56 2 end_of_reference_node pointer aligned; 2 57 2 58 2 59 dcl 1 reference_arg_list aligned based, /* argument list; based on reference.argument_list */ 2 60 2 number fixed bin, /* number of arguments actually present */ 2 61 2 node (16) pointer aligned; /* reference node pointers for each argument */ 2 62 2 63 2 64 dcl 1 reference_subscripts aligned based, /* subscript array; based on reference.subscript_ptr */ 2 65 2 number fixed bin, /* number actually present */ 2 66 2 value (2, 16) fixed bin (24); /* values for lower and upper bound for each */ 2 67 2 68 2 69 dcl 1 subscript_reference_ptrs aligned based, /* array of pointers to subscript reference nodes */ 2 70 2 ptr (2, 16) pointer aligned; 2 71 2 72 /* END INCLUDE FILE probe_references.incl.pl1 */ 602 3 1 /* BEGIN INCLUDE FILE probe_tokens.incl.pl1 */ 3 2 /* Split up into probe_tokens and probe_references, 04/22/79 WOS */ 3 3 3 4 dcl 1 token_header aligned based, /* header information common to all tokens */ 3 5 2 next pointer unaligned, /* pointer to next token in chain */ 3 6 2 prev pointer unaligned, /* same for previous token */ 3 7 2 type bit (18) aligned, 3 8 2 buffer_ptr pointer unaligned, /* pointer to beginning of input buffer */ 3 9 2 location fixed bin (17) unal, /* offset in input buffer */ 3 10 2 length fixed bin (17) unal, 3 11 2 flags aligned, 3 12 (3 leading_whitespace, /* there is whitespace before thios token */ 3 13 3 trailing_whitespace) bit (1) unaligned, /* and same for after */ 3 14 3 pad1 bit (34) unaligned; 3 15 3 16 dcl 1 token aligned based, /* produced by scan_probe_input_ */ 3 17 2 header aligned like token_header; /* that's all there is */ 3 18 3 19 dcl 1 identifier aligned based, /* keyword or identifier token */ 3 20 2 header aligned like token_header, 3 21 2 length fixed bin, /* length of name */ 3 22 2 name pointer unaligned; /* to string in buffer containing name */ 3 23 3 24 dcl 1 operator aligned based, /* for punctuation */ 3 25 2 header aligned like token_header; /* nothing but a header here */ 3 26 3 27 dcl 1 constant aligned based, /* for strings pointers numbers etc */ 3 28 2 header aligned like token_header, 3 29 2 encoded_precision aligned, /* encoded precision kludge for assign_ */ 3 30 3 scale fixed bin (17) unaligned, /* arithmetic scale */ 3 31 3 precision fixed bin (17) unaligned, /* arithmetic precision or other size */ 3 32 2 scale_and_precision fixed bin (35), /* An identical copy of the two values above */ 3 33 2 data_type fixed bin, /* standard data type code + packed bit */ 3 34 2 data_ptr pointer unaligned; 3 35 3 36 3 37 dcl (OPERATOR_TYPE init ("100"b), /* types for above */ 3 38 NAME_TYPE init ("010"b), 3 39 CONSTANT_TYPE init ("001"b)) bit (18) internal static options (constant); 3 40 3 41 3 42 dcl current_identifier_name /* Overlays for looking at the current tokens */ 3 43 char (probe_info.ct -> identifier.length) based (probe_info.ct -> identifier.name); 3 44 dcl 1 current_constant aligned like constant based (probe_info.ct); 3 45 dcl 1 current_token aligned like token based (probe_info.ct); 3 46 3 47 /* END INCLUDE FILE probe_tokens.incl.pl1 */ 603 4 1 /* BEGIN INCLUDE FILE ... probe_operators.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 7* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 8* Added new C operators. 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 /* These are the operator.types for each defined operator */ 4 13 /* Modified June 83 JMAthane for PASCAL_ARROW new operator */ 4 14 /* Added PASCAL_RANGE and PASCAL_ASSIGN 07/26/83 S. Herbst */ 4 15 /* Modified April 88 Hinatsu Addition of C types */ 4 16 4 17 dcl (PLUS init ("400001"b3), MINUS init ("400002"b3), 4 18 TIMES init ("400003"b3), SLASH init ("400004"b3), 4 19 OR_BAR init ("400005"b3), NOT_SIGN init ("400006"b3), 4 20 LESS_THAN init ("400007"b3), GREATER_THAN init ("400010"b3), 4 21 EQUALS init ("400011"b3), NOT_EQUALS init ("400012"b3), 4 22 NOT_GREATER_THAN init ("400013"b3), NOT_LESS_THAN init ("400014"b3), 4 23 PERIOD init ("400015"b3), COLON init ("400016"b3), 4 24 AMPERSAND init ("400017"b3), PERCENT init ("400020"b3), 4 25 DOLLAR_SIGN init ("400021"b3), LEFT_BRACKET init ("400022"b3), 4 26 RIGHT_BRACKET init ("400023"b3), ARROW init ("400024"b3), 4 27 COMMA init ("400025"b3), QUESTION_MARK init ("400026"b3), 4 28 PASCAL_ARROW init ("400027"b3), PASCAL_RANGE init ("400030"b3), 4 29 PASCAL_ASSIGN init ("400031"b3), 4 30 4 31 /* Additons to support C types */ 4 32 C_LEFT_SHIFT init ("400032"b3), C_RIGHT_SHIFT init ("400033"b3), 4 33 4 34 /* operator 28 are left for future expansion */ 4 35 4 36 LEFT_PAREN init ("400035"b3), RIGHT_PAREN init ("400036"b3), 4 37 C_EQUAL init ("400037"b3), C_NOT_EQUAL init ("400040"b3), 4 38 SEMI_COLON init ("400041"b3), NEW_LINE init ("400042"b3), 4 39 C_INDIRECTION init ("400034"b3) 4 40 4 41 ) bit (18) aligned internal static options (constant); 4 42 4 43 dcl OPERATOR_VALUES (0:34) char (4) varying internal static options (constant) init 4 44 ("????", "+", "-", "*", "/", "|", "^", "<", 4 45 ">", "=", "^=", "<=", ">=", ".", ":", "&", 4 46 "%", "$", "[", "]", "->", ",", "?", "^", 4 47 "..", ":=", "<<", ">>", "*", "(", ")", 4 48 "==", "!=", ";"," 4 49 "); 4 50 4 51 /* END INCLUDE FILE ... probe_operators.incl.pl1 */ 604 5 1 /* BEGIN INCLUDE FILE ... probe_lang_types.incl.pl1 5 2* 5 3* JRD 26 June 79 5 4* MBW 31 July 1981 to add algol68 */ 5 5 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 5 9* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 5 10* Added C Language type. 5 11* END HISTORY COMMENTS */ 5 12 5 13 5 14 /* Modified June 83 JMAthane to add PASCAL language type */ 5 15 /* Modified April 88 Hinatsu to add C language type */ 5 16 5 17 dcl (UNKNOWN_lang_type init (1), 5 18 OTHER_lang_type init (2), 5 19 PL1_lang_type init (3), 5 20 FORTRAN_lang_type init (4), 5 21 COBOL_lang_type init (5), 5 22 ALM_lang_type init (6), 5 23 ALGOL68_lang_type init (7), 5 24 PASCAL_lang_type init (8), 5 25 C_lang_type init (9)) fixed bin internal static options (constant); 5 26 5 27 dcl official_language_names (9) char (32) internal static options (constant) init 5 28 ("Unknown", "other", "PL/I", "FORTRAN", "COBOL", "ALM", "Algol 68", "Pascal", "C"); 5 29 5 30 dcl palatable_language_names (9) char (32) internal static options (constant) init 5 31 ("Unknown", "Other", "pl1", "fortran", "cobol", "alm", "algol68", "pascal", "c"); 5 32 5 33 /* END INCLUDE FILE ... probe_lang_types.incl.pl1 */ 605 6 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 6 2* 6 3* James R. Davis 2 July 79 */ 6 4 6 5 dcl 1 source_info based aligned, 6 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 6 7 2 instruction_ptr ptr, /* to last instruction executed */ 6 8 2 block_ptr ptr, /* to runtime_block node */ 6 9 2 stack_ptr ptr, /* to a stack frame */ 6 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 6 11 2 seg_info_ptr ptr; /* to seg_info */ 6 12 6 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 6 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 6 15 6 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 606 7 1 /* BEGIN INCLUDE FILE ... probe_seg_info.incl.pl1 7 2* 7 3* 25 June 79 JRDavis 7 4* 7 5* Modified 7 April 1983, TO - Add fields for character offset/line 7 6* correction per file. 7 7**/ 7 8 7 9 dcl 1 seg_info based aligned, /* place to remember information about object seg */ 7 10 2 language_type fixed bin, /* language of source program */ 7 11 2 bits aligned, 7 12 3 ignore_case bit (1) unal, 7 13 3 bound_segment bit (1) unaligned, 7 14 3 component bit (1) unaligned, 7 15 3 pad bit (33) unal, 7 16 2 names, /* where to find it */ 7 17 3 directory_name character (168) unal, /* what directory */ 7 18 3 entry_name character (32) unal, /* what segment */ 7 19 3 segname character (32) unal, /* procedure segname definition */ 7 20 2 identifier fixed bin (71), /* time of object creation */ 7 21 2 pointers, /* location of various parts of segment */ 7 22 3 symbol_header_ptr ptr unal, /* to symbol section */ 7 23 3 original_source_ptr ptr unal, /* to segment source map */ 7 24 3 statement_map_ptr ptr unal, /* to segment statement map */ 7 25 3 break_info ptr unal, /* for unbound segments, and start of chain for 7 26* bound ones, -> break_map !obsolete, I think! */ 7 27 3 chain ptr unal, /* to entry for next component if bound */ 7 28 3 linkage_ptr ptr unal, /* to linkage section */ 7 29 2 bounds aligned, /* structure of bounds information */ 7 30 3 text_bounds, 7 31 4 start fixed bin (35), 7 32 4 end fixed bin (35), 7 33 3 symbol_bounds, 7 34 4 start fixed bin (35), 7 35 4 end fixed bin (35), 7 36 2 map_size fixed bin, /* size of statement map */ 7 37 2 error_code fixed bin (35), /* errors encoutered while getting info, are recorded here */ 7 38 2 bound_create_time fixed bin (71), /* time seg containing was bound or compiled. */ 7 39 2 bound_sym_header ptr unal, /* to sym. section header for bound seg */ 7 40 2 pad (1) fixed bin (35), 7 41 7 42 2 nfiles fixed bin, 7 43 2 per_file (seg_info_nfiles refer (seg_info.nfiles)), 7 44 3 file_pointers ptr unal, 7 45 3 break_line (0:3) fixed bin (18) unsigned unaligned; 7 46 7 47 dcl seg_info_nfiles fixed bin; /* for allocation purposes */ 7 48 7 49 7 50 /* END INCLUDE FILE ... probe_seg_info.incl.pl1 */ 607 608 8 1 /* BEGIN INCLUDE FILE ... computational_data.incl.pl1 8 2* 8 3* 12 July 79 JRDavis */ 8 4 8 5 /* this is the format of the structure given to assign_$computational_ 8 6* that describes the data to be assigned */ 8 7 8 8 dcl 1 computational_data aligned based, 8 9 2 address ptr aligned, /* to data */ 8 10 2 data_type fixed bin (17), /* standard descriptor type */ 8 11 2 flags aligned, 8 12 3 packed bit (1) unal, 8 13 3 pad bit (35) unal, 8 14 2 prec_or_length fixed bin (24), /* string length or arith prec */ 8 15 2 scale fixed bin (35), /* must be zero even if has no scale */ 8 16 2 picture_image_ptr ptr aligned; /* to picture image block */ 8 17 8 18 /* END INCLUDE FILE ... computational_data.incl.pl1 */ 609 9 1 /* BEGIN INCLUDE FILE ... data_type_info_.incl.pl1 9 2* 9 3* attributes of each Multics data type. You may not rely on the dimension never exceeding 64 9 4* James R. Davis 6 Apr 79 9 5* Modified JMAthane June 83 to add "type" bit field 9 6* Upped bound from 64 to 80 10/18/83 S. Herbst 9 7* Added "hex" and "generic" bits 01/23/84 S. Herbst 9 8* Upped bound from 80 to 86 01/81/84 R. Gray 9 9* Upper bound from 86 to 87 JMAthane (for Pascal strings type dtype) 9 10**/ 9 11 9 12 9 13 /****^ HISTORY COMMENTS: 9 14* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 9 15* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 9 16* The data_type_info array now has 87 entries instead of 86 due to 9 17* introduction of pascal_string_type_dtype. 9 18* END HISTORY COMMENTS */ 9 19 9 20 dcl data_type_info_$version_number fixed bin external static; 9 21 dcl data_type_info_this_version fixed bin internal static options (constant) init (1); 9 22 9 23 dcl 1 data_type_info_$info (87) aligned external static, 9 24 2 computational bit (1) unal, 9 25 2 arithmetic bit (1) unal, 9 26 2 arithmetic_attributes unal, /* only valid if arithmetic */ 9 27 3 fixed bit (1) unal, /* PL/I type */ 9 28 3 complex bit (1) unal, /* PL/I mode */ 9 29 3 decimal bit (1) unal, /* PL/I base */ 9 30 3 signed bit (1) unal, 9 31 3 trailing_sign bit (1) unal, /* only valid if signed */ 9 32 3 decimal_attributes unal, /* only valid if decimal */ 9 33 4 packed_dec bit (1) unal, /* 4 bits per digit or 9 */ 9 34 4 digit_aligned bit (1) unal, /* valid for packed_dec only */ 9 35 4 overpunched bit (1) unal, 9 36 2 char_string bit (1) unal, /* valid for non-arithmetic */ 9 37 2 bit_string bit (1) unal, /* valid for non-arithmetic */ 9 38 2 varying bit (1) unal, /* for bit or char only */ 9 39 2 type bit (1) unal, /* this symbol is a type */ 9 40 2 hex bit (1) unal, /* a hexadecimal type (eg., hex floating point) */ 9 41 2 generic bit (1) unal, /* eg., real_flt_dec_generic_dtype */ 9 42 2 pad bit (20) unal; 9 43 9 44 dcl data_type_info_$ninebit_sign_chars char (2) external static; 9 45 dcl data_type_info_$ninebit_digit_chars char (10) external static; 9 46 dcl data_type_info_$ninebit_overpunched_sign_chars char (22) external static; 9 47 9 48 dcl data_type_info_$max_decimal_precision fixed bin external static; 9 49 dcl data_type_info_$max_float_binary_precision fixed bin external static; 9 50 dcl data_type_info_$max_fixed_binary_precision fixed bin external static; 9 51 9 52 9 53 /* END INCLUDE FILE ... data_type_info_.incl.pl1 */ 610 10 1 /* BEGIN INCLUDE FILE ... encoded_precision.incl.pl1 10 2* 10 3* This is the format used by assign_ to encode the precision and scale of 10 4* arithmetic data into one word. This structure should be assigned (use unspec) 10 5* to a fixed bin (35). 10 6**/ 10 7 10 8 dcl 1 encoded_precision based aligned, 10 9 2 scale fixed bin (17) unal, 10 10 2 prec fixed bin (18) unsigned unal; 10 11 10 12 /* END INCLUDE FILE ... encoded_precision.incl.pl1 */ 611 11 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 11 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 11 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 11 8* Objects of this type are PASCAL string types. 11 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 11 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 11 11* Added the new C types. 11 12* END HISTORY COMMENTS */ 11 13 11 14 /* This include file defines mnemonic names for the Multics 11 15* standard descriptor types, using both pl1 and cobol terminology. 11 16* PG 780613 11 17* JRD 790530 11 18* JRD 791016 11 19* MBW 810731 11 20* TGO 830614 Add hex types. 11 21* Modified June 83 JMAthane to add PASCAL data types 11 22* TGO 840120 Add float dec extended and generic, float binary generic 11 23**/ 11 24 11 25 dcl (real_fix_bin_1_dtype init (1), 11 26 real_fix_bin_2_dtype init (2), 11 27 real_flt_bin_1_dtype init (3), 11 28 real_flt_bin_2_dtype init (4), 11 29 cplx_fix_bin_1_dtype init (5), 11 30 cplx_fix_bin_2_dtype init (6), 11 31 cplx_flt_bin_1_dtype init (7), 11 32 cplx_flt_bin_2_dtype init (8), 11 33 real_fix_dec_9bit_ls_dtype init (9), 11 34 real_flt_dec_9bit_dtype init (10), 11 35 cplx_fix_dec_9bit_ls_dtype init (11), 11 36 cplx_flt_dec_9bit_dtype init (12), 11 37 pointer_dtype init (13), 11 38 offset_dtype init (14), 11 39 label_dtype init (15), 11 40 entry_dtype init (16), 11 41 structure_dtype init (17), 11 42 area_dtype init (18), 11 43 bit_dtype init (19), 11 44 varying_bit_dtype init (20), 11 45 char_dtype init (21), 11 46 varying_char_dtype init (22), 11 47 file_dtype init (23), 11 48 real_fix_dec_9bit_ls_overp_dtype init (29), 11 49 real_fix_dec_9bit_ts_overp_dtype init (30), 11 50 real_fix_bin_1_uns_dtype init (33), 11 51 real_fix_bin_2_uns_dtype init (34), 11 52 real_fix_dec_9bit_uns_dtype init (35), 11 53 real_fix_dec_9bit_ts_dtype init (36), 11 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 11 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 11 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 11 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 11 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 11 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 11 60 real_flt_dec_4bit_bytealigned_dtype init (44), 11 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 11 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 11 63 real_flt_hex_1_dtype init (47), 11 64 real_flt_hex_2_dtype init (48), 11 65 cplx_flt_hex_1_dtype init (49), 11 66 cplx_flt_hex_2_dtype init (50), 11 67 c_typeref_dtype init (54), 11 68 c_enum_dtype init (55), 11 69 c_enum_const_dtype init (56), 11 70 c_union_dtype init (57), 11 71 algol68_straight_dtype init (59), 11 72 algol68_format_dtype init (60), 11 73 algol68_array_descriptor_dtype init (61), 11 74 algol68_union_dtype init (62), 11 75 11 76 cobol_comp_6_dtype init (1), 11 77 cobol_comp_7_dtype init (1), 11 78 cobol_display_ls_dtype init (9), 11 79 cobol_structure_dtype init (17), 11 80 cobol_char_string_dtype init (21), 11 81 cobol_display_ls_overp_dtype init (29), 11 82 cobol_display_ts_overp_dtype init (30), 11 83 cobol_display_uns_dtype init (35), 11 84 cobol_display_ts_dtype init (36), 11 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 11 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 11 87 cobol_comp_5_uns_dtype init (40), 11 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 11 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 11 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 11 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 11 92 cplx_flt_dec_generic_dtype init (84), 11 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 11 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 11 95 11 96 dcl (ft_integer_dtype init (1), 11 97 ft_real_dtype init (3), 11 98 ft_double_dtype init (4), 11 99 ft_complex_dtype init (7), 11 100 ft_complex_double_dtype init (8), 11 101 ft_external_dtype init (16), 11 102 ft_logical_dtype init (19), 11 103 ft_char_dtype init (21), 11 104 ft_hex_real_dtype init (47), 11 105 ft_hex_double_dtype init (48), 11 106 ft_hex_complex_dtype init (49), 11 107 ft_hex_complex_double_dtype init (50) 11 108 ) fixed bin internal static options (constant); 11 109 11 110 dcl (algol68_short_int_dtype init (1), 11 111 algol68_int_dtype init (1), 11 112 algol68_long_int_dtype init (2), 11 113 algol68_real_dtype init (3), 11 114 algol68_long_real_dtype init (4), 11 115 algol68_compl_dtype init (7), 11 116 algol68_long_compl_dtype init (8), 11 117 algol68_bits_dtype init (19), 11 118 algol68_bool_dtype init (19), 11 119 algol68_char_dtype init (21), 11 120 algol68_byte_dtype init (21), 11 121 algol68_struct_struct_char_dtype init (22), 11 122 algol68_struct_struct_bool_dtype init (20) 11 123 ) fixed bin internal static options (constant); 11 124 11 125 dcl (label_constant_runtime_dtype init (24), 11 126 int_entry_runtime_dtype init (25), 11 127 ext_entry_runtime_dtype init (26), 11 128 ext_procedure_runtime_dtype init (27), 11 129 picture_runtime_dtype init (63) 11 130 ) fixed bin internal static options (constant); 11 131 11 132 dcl (pascal_integer_dtype init (1), 11 133 pascal_real_dtype init (4), 11 134 pascal_label_dtype init (24), 11 135 pascal_internal_procedure_dtype init (25), 11 136 pascal_exportable_procedure_dtype init (26), 11 137 pascal_imported_procedure_dtype init (27), 11 138 pascal_typed_pointer_type_dtype init (64), 11 139 pascal_char_dtype init (65), 11 140 pascal_boolean_dtype init (66), 11 141 pascal_record_file_type_dtype init (67), 11 142 pascal_record_type_dtype init (68), 11 143 pascal_set_dtype init (69), 11 144 pascal_enumerated_type_dtype init (70), 11 145 pascal_enumerated_type_element_dtype init (71), 11 146 pascal_enumerated_type_instance_dtype init (72), 11 147 pascal_user_defined_type_dtype init (73), 11 148 pascal_user_defined_type_instance_dtype init (74), 11 149 pascal_text_file_dtype init (75), 11 150 pascal_procedure_type_dtype init (76), 11 151 pascal_variable_formal_parameter_dtype init (77), 11 152 pascal_value_formal_parameter_dtype init (78), 11 153 pascal_entry_formal_parameter_dtype init (79), 11 154 pascal_parameter_procedure_dtype init (80), 11 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 11 156 11 157 11 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 612 12 1 /* BEGIN INCLUDE FILE ... pascal_symbol_node.incl.pl1 */ 12 2 12 3 /****^ HISTORY COMMENTS: 12 4* 1) change(86-09-15,JMAthane), approve(86-09-15,MCR7525), 12 5* audit(86-09-15,Martinson), install(86-11-12,MR12.0-1208): 12 6* Added size_is_encoded field in header. 12 7* END HISTORY COMMENTS */ 12 8 12 9 /* Written January 1983 by Melanie Weaver */ 12 10 /* Added size_is_encoded field in header May 85. JMAthane */ 12 11 12 12 dcl 1 pascal_symbol_node_header aligned based, 12 13 2 flags unaligned, /* indicate which pieces the node contains */ 12 14 3 version_flag bit (1) unaligned, /* always "0"b for post-version II PL/I format */ 12 15 3 aligned bit (1) unaligned, 12 16 3 packed bit (1) unaligned, 12 17 3 in_with_block bit (1) unaligned, 12 18 3 name_next bit (1) unaligned, 12 19 3 base_type_info bit (1) unaligned, 12 20 3 address bit (1) unaligned, 12 21 3 father_brother bit (1) unaligned, 12 22 3 son_level bit (1) unaligned, 12 23 3 father_type_successor bit (1) unaligned, 12 24 3 size bit (1) unaligned, 12 25 3 offset bit (1) unaligned, 12 26 3 subrange_limits bit (1) unaligned, 12 27 3 array_info bit (1) unaligned, 12 28 3 variant_info bit (1) unaligned, 12 29 3 size_is_encoded bit (1) unaligned, 12 30 3 pad bit (2) unaligned, 12 31 2 version fixed bin (17) unaligned, /* version of this node format */ 12 32 2 type fixed bin (17) unaligned, /* (extended) data type */ 12 33 2 type_offset fixed bin (18) unsigned unaligned; /* rel ptr to type node */ 12 34 12 35 dcl 1 pascal_name_next aligned based, 12 36 2 name fixed bin (18) unsigned unaligned, /* rel ptr to acc name */ 12 37 2 next_token fixed bin (18) unsigned unaligned; /* rel ptr to next of same class */ 12 38 12 39 dcl 1 pascal_base_type_info aligned based, 12 40 2 base_type fixed bin (17) unaligned, /* type of type */ 12 41 2 base_type_offset fixed bin (18) unsigned unaligned; 12 42 12 43 dcl 1 pascal_address aligned based, 12 44 2 location fixed bin (18) unsigned unaligned, /* location in storage class */ 12 45 2 class fixed bin (6) unsigned unaligned, /* storage class */ 12 46 2 use_digit bit (1) unaligned, 12 47 2 units bit (2) unaligned, /* addressing units */ 12 48 2 offset_is_encoded bit (1) unaligned, /* "1"b if pascal_offset is encoded */ 12 49 2 pad bit (8) unaligned; 12 50 12 51 dcl 1 pascal_father_brother aligned based, 12 52 2 father fixed bin (18) unsigned unaligned, /* rel ptr to father node */ 12 53 2 brother fixed bin (18) unsigned unaligned; /* rel ptr to brother node */ 12 54 12 55 dcl 1 pascal_son_level aligned based, 12 56 2 son fixed bin (18) unsigned unaligned, /* rel ptr to son node */ 12 57 2 level fixed bin (6) unsigned unaligned, /* record level; also enum. type elt. */ 12 58 2 pad bit (12) unaligned; 12 59 12 60 dcl 1 pascal_father_type_successor aligned based, 12 61 2 father_type fixed bin (17) unaligned, 12 62 2 successor fixed bin (18) unsigned unaligned; 12 63 12 64 dcl pascal_size fixed bin (35) based; /* precision, string size, etc. */ 12 65 12 66 dcl pascal_offset fixed bin (35) based; /* offset from address */ 12 67 12 68 dcl 1 pascal_subrange_limits aligned based, 12 69 2 flags aligned, 12 70 3 lower_bound_is_encoded bit (1) unaligned, 12 71 3 upper_bound_is_encoded bit (1) unaligned, 12 72 3 pad bit (34) unaligned, 12 73 2 subrange_lower_bound 12 74 fixed bin (35), 12 75 2 subrange_upper_bound 12 76 fixed bin (35); 12 77 12 78 dcl 1 pascal_array_info aligned based, /* info about array subscripts */ 12 79 2 access_info aligned, 12 80 3 ndims fixed bin (6) unsigned unaligned, /* number of dimensions */ 12 81 3 use_digit fixed bin (1) unsigned unaligned, /* if "1"b and units are half words, 12 82* units are really digits */ 12 83 3 array_units fixed bin (2) unsigned unaligned, 12 84 3 virtual_origin_is_encoded 12 85 bit (1) unaligned, 12 86 3 pad bit (26) unaligned, 12 87 2 virtual_origin fixed bin (35), 12 88 2 bounds (nd refer (pascal_array_info.access_info.ndims)) 12 89 aligned, 12 90 3 lower fixed bin (35), 12 91 3 upper fixed bin (35), 12 92 3 multiplier fixed bin (35), 12 93 3 subscript_type fixed bin (17) unaligned, 12 94 3 subscript_type_offset 12 95 fixed bin (18) unsigned unaligned, 12 96 3 flags aligned, 12 97 4 lower_is_encoded 12 98 bit (1) unaligned, 12 99 4 upper_is_encoded 12 100 bit (1) unaligned, 12 101 4 multiplier_is_encoded 12 102 bit (1) unaligned, 12 103 4 pad bit (33) unaligned; 12 104 12 105 dcl 1 pascal_variant_info aligned based, /* info to locate a record's variants */ 12 106 2 number_of_variants 12 107 fixed bin (17) unaligned, 12 108 2 pad bit (18) unaligned, 12 109 2 first_value_in_set fixed bin (35) unaligned, /* value corresponding to the first bit in set stings */ 12 110 2 case (nvariants refer 12 111 (pascal_variant_info.number_of_variants)), 12 112 3 set_offset fixed bin (18) unsigned unaligned, /* bit string specifies cases; 12 113* set's base type is this node's type */ 12 114 3 brother fixed bin (18) unsigned unaligned; /* rel ptr to brother for this variant */ 12 115 12 116 dcl 1 pascal_encoded_value aligned based, /* extended encoded value format */ 12 117 2 code bit (6) unaligned, /* tells how to interpret the other fields */ 12 118 2 (n1, n2) bit (6) unaligned, 12 119 2 n3 fixed bin (18) unsigned unaligned; 12 120 12 121 dcl nvariants fixed bin (17); 12 122 dcl nd fixed bin (6) unsigned; 12 123 12 124 12 125 12 126 /* END INCLUDE FILE ... pascal_symbol_node.incl.pl1 */ 613 13 1 /* BEGIN INCLUDE FILE runtime_symbol_info_.incl.pl1 */ 13 2 13 3 13 4 /****^ HISTORY COMMENTS: 13 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 13 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 13 7* Added runtime_symbol_info_$subrange entry which was missing. Added 13 8* has_dimensions and has subrange_limits fields in type_info record. 13 9* Structure version numbers have not been changed since this change does not 13 10* affect existing programs. 13 11* END HISTORY COMMENTS */ 13 12 13 13 /* Declarations for using the various entry points in runtime_symbol_info_ */ 13 14 /* NOTE: These entries do not support PL/1 version 1. */ 13 15 13 16 /* Made structures aligned, removed variable extent from runtime_array_info.bounds 08/25/83 S. Herbst */ 13 17 /* Added version strings to structures 10/05/83 S. Herbst */ 13 18 /* Added has_dimensions and has_subrange_limits bits in type_info 13 19*Added subrange entry. JMAthane 08/31/84 */ 13 20 13 21 13 22 dcl runtime_symbol_info_$type entry (ptr, ptr, fixed bin (35)); 13 23 13 24 dcl 1 runtime_type_info aligned based, 13 25 2 version char (8), /* = "RUNTYP_1" */ 13 26 2 flags, 13 27 3 aligned bit (1) unal, 13 28 3 packed bit (1) unal, 13 29 3 size_is_encoded bit (1) unal, 13 30 3 has_dimensions bit (1) unal, 13 31 3 has_subrange_limits bit (1) unal, 13 32 3 pad bit (23) unal, 13 33 2 scale fixed bin (7) unal, 13 34 2 (type, base_type) fixed bin (18) unsigned unal, 13 35 2 (type_addr, base_type_addr) ptr, 13 36 2 size fixed bin (35); 13 37 13 38 dcl runtime_symbol_info_$father entry (ptr) returns (ptr); 13 39 13 40 dcl runtime_symbol_info_$brother entry (ptr) returns (ptr); 13 41 13 42 dcl runtime_symbol_info_$father_type entry (ptr) returns (ptr); 13 43 13 44 dcl runtime_symbol_info_$son entry (ptr) returns (ptr); 13 45 13 46 dcl runtime_symbol_info_$successor entry (ptr) returns (ptr); 13 47 13 48 dcl runtime_symbol_info_$name entry (ptr) returns (ptr); 13 49 13 50 dcl runtime_symbol_info_$level entry (ptr) returns (fixed bin); 13 51 13 52 dcl runtime_symbol_info_$next entry (ptr) returns (ptr); 13 53 13 54 dcl runtime_symbol_info_$address entry (ptr, ptr, fixed bin (35)); 13 55 13 56 dcl 1 runtime_address_info aligned based, 13 57 2 version char (8), /* = "RUNADR_1" */ 13 58 2 location fixed bin (18) unsigned unal, 13 59 2 class fixed bin (6) unsigned unal, 13 60 2 use_digit fixed bin (1) unsigned unal, 13 61 2 units fixed bin (2) unsigned unal, 13 62 2 offset_is_encoded bit (1) unal, 13 63 2 pad bit (8) unal, 13 64 2 offset fixed bin (35); 13 65 13 66 dcl runtime_symbol_info_$array_dims entry (ptr) returns (fixed bin); 13 67 13 68 dcl runtime_symbol_info_$array entry (ptr, ptr, fixed bin (35)); 13 69 13 70 dcl 1 runtime_array_info aligned based, 13 71 2 version char (8), /* = "RUNARY_1" */ 13 72 2 access_info aligned, 13 73 3 ndims fixed bin (6) unsigned unaligned, /* number of dimensions */ 13 74 3 use_digit fixed bin (1) unsigned unaligned, /* if "1"b and units are half words, 13 75* units are really digits */ 13 76 3 array_units fixed bin (2) unsigned unaligned, 13 77 3 virtual_origin_is_encoded 13 78 bit (1) unaligned, 13 79 3 pad bit (26) unaligned, 13 80 2 virtual_origin fixed bin (35), 13 81 2 bounds (16) 13 82 aligned, 13 83 3 flags aligned, 13 84 4 lower_is_encoded 13 85 bit (1) unaligned, 13 86 4 upper_is_encoded 13 87 bit (1) unaligned, 13 88 4 multiplier_is_encoded 13 89 bit (1) unaligned, 13 90 4 pad bit (33) unaligned, 13 91 3 lower fixed bin (35), 13 92 3 upper fixed bin (35), 13 93 3 multiplier fixed bin (35), 13 94 3 subscript_type fixed bin (35), 13 95 3 subscript_type_addr ptr; 13 96 13 97 dcl n_dims fixed bin; 13 98 13 99 dcl runtime_symbol_info_$n_variants entry (ptr) returns (fixed bin (35)); 13 100 13 101 dcl runtime_symbol_info_$variant entry (ptr, ptr, fixed bin (35)); 13 102 13 103 dcl 1 runtime_variant_info aligned based, 13 104 2 version char (8), /* = "RUNVAR_1" */ 13 105 2 number_of_variants fixed bin, 13 106 2 first_value_in_set fixed bin (35), /* value corresponding to the first bit in set stings */ 13 107 2 case (n_variants), 13 108 3 set_addr ptr, /* bit string specifies cases; 13 109* set's base type is this node's type */ 13 110 3 brother_addr ptr; /* ptr to brother for this variant */ 13 111 13 112 dcl n_variants fixed bin (35); 13 113 13 114 dcl runtime_symbol_info_$subrange entry (ptr, ptr, fixed bin (35)); 13 115 13 116 dcl 1 runtime_subrange_info based, 13 117 2 version char (8), /* = "RUNSUB_1" */ 13 118 2 flags aligned, 13 119 3 has_subrange_limits bit (1) unal, 13 120 3 lower_bound_is_encoded bit (1) unal, 13 121 3 upper_bound_is_encoded bit (1) unal, 13 122 3 pad bit (33) unal, 13 123 2 subrange_lower_bound fixed bin (35), 13 124 2 subrange_upper_bound fixed bin (35); 13 125 13 126 13 127 dcl RUNTIME_TYPE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNTYP_1"); 13 128 dcl RUNTIME_ADDRESS_INFO_VERSION_1 char (8) int static options (constant) init ("RUNADR_1"); 13 129 dcl RUNTIME_ARRAY_INFO_VERSION_1 char (8) int static options (constant) init ("RUNARY_1"); 13 130 dcl RUNTIME_VARIANT_INFO_VERSION_1 char (8) int static options (constant) init ("RUNVAR_1"); 13 131 dcl RUNTIME_SUBRANGE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNSUB_1"); 13 132 13 133 13 134 /* END INCLUDE FILE runtime_symbol_info_.incl.pl1 */ 614 615 616 end probe_compare_reference_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/88 1545.0 probe_compare_reference_.pl1 >spec>install>MR12.2-1210>probe_compare_reference_.pl1 601 1 10/27/88 1339.2 probe_info.incl.pl1 >ldd>include>probe_info.incl.pl1 602 2 11/11/88 1543.8 probe_references.incl.pl1 >spec>install>MR12.2-1210>probe_references.incl.pl1 603 3 11/26/79 1320.6 probe_tokens.incl.pl1 >ldd>include>probe_tokens.incl.pl1 604 4 10/26/88 1255.5 probe_operators.incl.pl1 >ldd>include>probe_operators.incl.pl1 605 5 10/26/88 1255.5 probe_lang_types.incl.pl1 >ldd>include>probe_lang_types.incl.pl1 606 6 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.incl.pl1 607 7 11/02/83 1845.0 probe_seg_info.incl.pl1 >ldd>include>probe_seg_info.incl.pl1 609 8 11/01/79 1612.9 computational_data.incl.pl1 >ldd>include>computational_data.incl.pl1 610 9 11/12/86 1748.0 data_type_info_.incl.pl1 >ldd>include>data_type_info_.incl.pl1 611 10 07/11/79 1711.3 encoded_precision.incl.pl1 >ldd>include>encoded_precision.incl.pl1 612 11 10/26/88 1255.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 613 12 11/12/86 1748.0 pascal_symbol_node.incl.pl1 >ldd>include>pascal_symbol_node.incl.pl1 614 13 11/12/86 1748.0 runtime_symbol_info_.incl.pl1 >ldd>include>runtime_symbol_info_.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. EQUALS constant bit(18) initial dcl 4-17 ref 297 344 375 420 434 NOT_EQUALS constant bit(18) initial dcl 4-17 ref 297 344 375 420 439 PASCAL_lang_type constant fixed bin(17,0) initial dcl 5-17 ref 161 P_code parameter fixed bin(35,0) dcl 38 set ref 25 154* 467* P_dtype parameter fixed bin(17,0) dcl 577 ref 574 582 583 584 585 590 P_operand_1 parameter structure level 1 dcl 38 ref 25 158 P_operand_2 parameter structure level 1 dcl 38 ref 25 159 P_operation parameter bit(18) dcl 38 ref 25 155 297 297 344 344 375 375 420 420 434 439 P_probe_info_ptr parameter pointer dcl 38 ref 25 153 RUNTIME_TYPE_INFO_VERSION_1 000000 constant char(8) initial packed unaligned dcl 13-127 ref 500 abs builtin function dcl 148 ref 273 addr builtin function dcl 148 ref 285 286 286 286 286 300 300 304 304 308 308 319 319 322 322 326 326 329 329 387 408 414 495 502 502 addrel builtin function dcl 148 ref 188 address parameter pointer level 2 in structure "comp" dcl 552 in procedure "setup_str" set ref 555* address 000430 automatic pointer array level 2 in structure "intermediate" dcl 49 in procedure "probe_compare_reference_" set ref 285* address 000410 automatic pointer array level 2 in structure "op_data" dcl 48 in procedure "probe_compare_reference_" set ref 187 188 199 246* 347 350 354* 380 384 400 405 412 436 436 441 441 address_ptr 4 parameter pointer level 2 in structure "ref" dcl 551 in procedure "setup_str" ref 555 address_ptr 4 parameter pointer level 2 in structure "ref" dcl 480 in procedure "set_pascal_term" set ref 495* 495 an_encoded_value 000710 automatic structure level 1 dcl 553 set ref 561* arithmetic 0(01) 000032 external static bit(1) array level 2 packed packed unaligned dcl 9-23 ref 178 178 559 582 arithmetic_attributes 0(02) 000032 external static structure array level 2 packed packed unaligned dcl 9-23 array_info 0(13) based bit(1) level 3 packed packed unaligned dcl 12-12 ref 498 assign_$computational_ 000026 constant entry external dcl 144 ref 286 barr based bit(1) array packed unaligned dcl 482 set ref 495 base_type 3(18) 000670 automatic fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 487 set ref 507 based_entry based entry variable dcl 107 ref 400 408 414 based_file based file variable dcl 111 ref 436 436 441 441 based_integer based fixed bin(35,0) dcl 108 ref 187 based_label based label variable dcl 106 ref 380 387 based_packed_ptr based pointer packed unaligned dcl 110 ref 347 based_ptr based pointer dcl 109 ref 350 bin builtin function dcl 148 ref 155 binary 0(01) 000720 automatic bit(1) level 2 in structure "d_type_bits" packed packed unaligned dcl 579 in procedure "compute_type_bits" set ref 584* 590* 593* binary 0(01) 000454 automatic bit(1) level 2 in structure "type_bits" packed packed unaligned dcl 59 in procedure "probe_compare_reference_" set ref 273 300 317 bit_dtype constant fixed bin(17,0) initial dcl 11-25 ref 543 bit_string 0(11) 000032 external static bit(1) array level 2 packed packed unaligned dcl 9-23 ref 590 block_ptr 4 based pointer level 2 dcl 55 set ref 354* 354* ceil builtin function dcl 148 ref 273 char_dtype constant fixed bin(17,0) initial dcl 11-25 ref 493 512 char_string 0(10) 000032 external static bit(1) array level 2 packed packed unaligned dcl 9-23 ref 202 204 221 character builtin function dcl 148 ref 213 215 223 225 code 000450 automatic fixed bin(35,0) dcl 51 set ref 286* 288 457* 462* 467 502* 503 common_info 000457 automatic structure array level 1 unaligned dcl 69 comp parameter structure level 1 dcl 552 set ref 548 complex 0(02) 000454 automatic bit(1) level 2 in structure "type_bits" packed packed unaligned dcl 59 in procedure "probe_compare_reference_" set ref 295 complex 0(02) 000720 automatic bit(1) level 2 in structure "d_type_bits" packed packed unaligned dcl 579 in procedure "compute_type_bits" set ref 585* 594* complex 0(03) 000032 external static bit(1) array level 3 in structure "data_type_info_$info" packed packed unaligned dcl 9-23 in procedure "probe_compare_reference_" ref 585 computational 000032 external static bit(1) array level 2 packed packed unaligned dcl 9-23 ref 173 174 computational_data based structure level 1 dcl 8-8 constant based structure level 1 dcl 3-27 cplx_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 cplx_fix_dec_9bit_ls_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 cplx_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 cplx_flt_dec_9bit_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 d_type_bits 000720 automatic structure level 1 dcl 579 set ref 596 data_type 2 000430 automatic fixed bin(17,0) array level 2 in structure "intermediate" dcl 49 in procedure "probe_compare_reference_" set ref 265* data_type 2 parameter fixed bin(17,0) level 2 in structure "comp" dcl 552 in procedure "setup_str" set ref 556* data_type 2 000410 automatic fixed bin(17,0) array level 2 in structure "op_data" dcl 48 in procedure "probe_compare_reference_" set ref 173 174 178 178 185 202 204 221 246 246* 259* 260* 273 340 340 347 351 372 372 380 382 398 400 403 410 429 430 data_type_info_$info 000032 external static structure array level 1 dcl 9-23 decimal 0(04) 000032 external static bit(1) array level 3 packed packed unaligned dcl 9-23 ref 246 273 584 encoded_precision based structure level 1 dcl 10-8 entries 000634 automatic entry variable array dcl 115 set ref 400* 408* 414* 424 424 entry 000650 automatic structure level 1 dcl 119 set ref 408 414 entry_dtype constant fixed bin(17,0) initial dcl 11-25 ref 398 400 ext_entry_runtime_dtype constant fixed bin(17,0) initial dcl 11-125 ref 410 file_dtype constant fixed bin(17,0) initial dcl 11-25 ref 429 430 first_based_bit based bit packed unaligned dcl 89 ref 223 225 230 232 first_based_char based char packed unaligned dcl 87 ref 206 208 213 215 fixed builtin function dcl 148 in procedure "probe_compare_reference_" ref 263 fixed 0(02) 000032 external static bit(1) array level 3 in structure "data_type_info_$info" packed packed unaligned dcl 9-23 in procedure "probe_compare_reference_" ref 583 fixed_binary based fixed bin(71,0) dcl 104 ref 329 329 fixed_binary_complex based complex fixed bin(71,0) dcl 105 ref 308 308 fixed_decimal based fixed dec(59,0) dcl 101 ref 322 322 flags 3 000410 automatic structure array level 2 in structure "op_data" dcl 48 in procedure "probe_compare_reference_" flags 3 000430 automatic structure array level 2 in structure "intermediate" dcl 49 in procedure "probe_compare_reference_" set ref 266* flags based structure level 2 in structure "pascal_symbol_node_header" packed packed unaligned dcl 12-12 in procedure "probe_compare_reference_" flags 3 parameter structure level 2 in structure "comp" dcl 552 in procedure "setup_str" set ref 557* flags 116 parameter structure level 2 in structure "ref" dcl 480 in procedure "set_pascal_term" flags 116 parameter structure level 2 in structure "ref" dcl 551 in procedure "setup_str" float 000720 automatic bit(1) level 2 in structure "d_type_bits" packed packed unaligned dcl 579 in procedure "compute_type_bits" set ref 583* 589* float 000454 automatic bit(1) level 2 in structure "type_bits" packed packed unaligned dcl 59 in procedure "probe_compare_reference_" set ref 304 319 326 float_binary based float bin(63) dcl 102 ref 326 326 float_binary_complex based complex float bin(63) dcl 103 ref 304 304 float_decimal based float dec(59) dcl 97 ref 319 319 float_decimal_complex based complex float dec(59) dcl 99 ref 300 300 frame 2 000644 automatic pointer level 2 in structure "label" dcl 116 in procedure "probe_compare_reference_" set ref 385* frame 2 000650 automatic pointer level 2 in structure "entry" dcl 119 in procedure "probe_compare_reference_" set ref 406* 413* generation based structure level 1 dcl 55 generation_ptr 000452 automatic pointer dcl 57 set ref 353* 354 354 354 354 get_size_in_bits_ 000042 constant entry external dcl 483 ref 509 i 000617 automatic fixed bin(17,0) dcl 95 set ref 162* 163* 168* 169 169* 183* 185 187 187 188 188 190 190 190 192 198 198 199 199* 206* 208* 210* 213* 215* 217* 223* 225* 227* 230* 232* 234* 237 239 245* 246 246 246 246 251* 271* 272 272 273 273 273 273* 284* 285 285 286 286 286 286* 319* 322* 326* 329* 332 334 343* 347 347 347 347 350 350 351 353 354 354 354* 379* 380 380 380 382 384 385 387* 399* 400 400 400 403 405 406 408 410 412 414* int_entry_runtime_dtype constant fixed bin(17,0) initial dcl 11-125 ref 403 intermediate 000430 automatic structure array level 1 dcl 49 set ref 286 286 label 000644 automatic structure level 1 dcl 116 set ref 387 label_constant_runtime_dtype constant fixed bin(17,0) initial dcl 11-125 ref 372 382 label_dtype constant fixed bin(17,0) initial dcl 11-25 ref 372 380 labels 000624 automatic label variable array dcl 114 set ref 380* 387* 392 392 language_type 21 based fixed bin(17,0) level 3 dcl 1-18 ref 161 linkage_ptr 103 based pointer level 3 packed packed unaligned dcl 7-9 ref 354 max builtin function dcl 148 ref 281 name 12 000100 automatic varying char(256) array level 2 dcl 46 set ref 192* 251* 451* 451* null builtin function dcl 148 ref 269 413 513 520 541 571 offset_dtype constant fixed bin(17,0) initial dcl 11-25 ref 340 351 op_data 000410 automatic structure array level 1 dcl 48 set ref 169* 286 286 operand 000100 automatic structure array level 1 dcl 46 set ref 158* 159* 163* 169* operation_code 000451 automatic fixed bin(17,0) dcl 53 set ref 155* 237 237 239 311 332 332 334 366 393 425 packed 116 parameter bit(1) level 3 in structure "ref" packed packed unaligned dcl 551 in procedure "setup_str" ref 558 packed 3 000410 automatic bit(1) array level 3 in structure "op_data" packed packed unaligned dcl 48 in procedure "probe_compare_reference_" set ref 347 packed 0(02) based bit(1) level 3 in structure "pascal_symbol_node_header" packed packed unaligned dcl 12-12 in procedure "probe_compare_reference_" ref 498 packed 116 parameter bit(1) level 3 in structure "ref" packed packed unaligned dcl 480 in procedure "set_pascal_term" set ref 494* 509* 514* 521* 523* 536* 544* packed 3 parameter bit(1) level 3 in structure "comp" packed packed unaligned dcl 552 in procedure "setup_str" set ref 558* pascal_boolean_dtype constant fixed bin(17,0) initial dcl 11-132 ref 531 pascal_char_dtype constant fixed bin(17,0) initial dcl 11-132 ref 492 507 pascal_enumerated_type_element_dtype constant fixed bin(17,0) initial dcl 11-132 ref 526 pascal_enumerated_type_instance_dtype constant fixed bin(17,0) initial dcl 11-132 ref 527 531 pascal_set_dtype constant fixed bin(17,0) initial dcl 11-132 ref 541 pascal_symbol_node_header based structure level 1 dcl 12-12 pascal_text_file_dtype constant fixed bin(17,0) initial dcl 11-132 ref 539 pascal_typed_pointer_type_dtype constant fixed bin(17,0) initial dcl 11-132 ref 517 pascal_user_defined_type_instance_dtype constant fixed bin(17,0) initial dcl 11-132 ref 497 539 picture_image_ptr 6 000430 automatic pointer array level 2 in structure "intermediate" dcl 49 in procedure "probe_compare_reference_" set ref 269* picture_image_ptr 6 parameter pointer level 2 in structure "comp" dcl 552 in procedure "setup_str" set ref 569* 571* picture_runtime_dtype constant fixed bin(17,0) initial dcl 11-125 ref 569 place 000644 automatic pointer level 2 in structure "label" dcl 116 in procedure "probe_compare_reference_" set ref 384* place 000650 automatic pointer level 2 in structure "entry" dcl 119 in procedure "probe_compare_reference_" set ref 405* 412* pointer builtin function dcl 148 ref 569 pointer_dtype constant fixed bin(17,0) initial dcl 11-25 ref 340 347 519 pointers 000620 automatic pointer array dcl 113 in procedure "probe_compare_reference_" set ref 347* 350* 354* 365 365 pointers 76 based structure level 2 in structure "seg_info" dcl 7-9 in procedure "probe_compare_reference_" prec 0(18) 000710 automatic fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 553 set ref 562 prec_array 1 000457 automatic fixed bin(17,0) initial array level 2 dcl 69 set ref 69* 69* 69* 69* 69* 69* 69* 69* 267 prec_or_length 4 000430 automatic fixed bin(24,0) array level 2 in structure "intermediate" dcl 49 in procedure "probe_compare_reference_" set ref 267* prec_or_length 4 000410 automatic fixed bin(24,0) array level 2 in structure "op_data" dcl 48 in procedure "probe_compare_reference_" set ref 190 198 246 prec_or_length 4 parameter fixed bin(24,0) level 2 in structure "comp" dcl 552 in procedure "setup_str" set ref 562* 566* precision 115 parameter fixed bin(35,0) level 2 in structure "ref" dcl 480 in procedure "set_pascal_term" set ref 495 509* 509* 521 533 precision 115 parameter fixed bin(35,0) level 2 in structure "ref" dcl 551 in procedure "setup_str" ref 561 566 569 probe_error_$record 000022 constant entry external dcl 141 ref 192 251 451 probe_et_$bad_comparison 000010 external static fixed bin(35,0) dcl 133 ref 457 probe_et_$bad_decimal 000012 external static fixed bin(35,0) dcl 133 set ref 251* probe_et_$bad_type 000014 external static fixed bin(35,0) dcl 133 set ref 451* probe_et_$bad_varying 000016 external static fixed bin(35,0) dcl 133 set ref 192* probe_et_$recorded_message 000020 external static fixed bin(35,0) dcl 133 ref 462 probe_info based structure level 1 dcl 1-18 probe_info_ptr 000654 automatic pointer dcl 1-86 set ref 153* 161 192* 251* 451* probe_pascal_$real_type 000044 constant entry external dcl 485 ref 489 random_info 17 based structure level 2 dcl 1-18 real_fix_bin_1_uns_dtype constant fixed bin(17,0) initial dcl 11-25 ref 535 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 real_fix_bin_2_uns_dtype constant fixed bin(17,0) initial dcl 11-25 ref 533 real_fix_dec_9bit_ls_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 real_flt_dec_9bit_dtype constant fixed bin(17,0) initial dcl 11-25 ref 69 ref parameter structure level 1 dcl 551 in procedure "setup_str" ref 548 ref parameter structure level 1 dcl 480 in procedure "set_pascal_term" set ref 472 reference_node based structure level 1 dcl 2-16 result 000616 automatic bit(1) packed unaligned dcl 94 set ref 300* 304* 308* 311 314 365* 366 368 392* 393 395 424* 425 427 reverse_result 000010 constant bit(1) initial array dcl 122 ref 237 311 332 366 393 425 runtime_symbol_info_$array_dims 000040 constant entry external dcl 13-66 ref 507 runtime_symbol_info_$father_type 000036 constant entry external dcl 13-42 ref 528 runtime_symbol_info_$type 000034 constant entry external dcl 13-22 ref 502 runtime_type_info based structure level 1 dcl 13-24 scale 000710 automatic fixed bin(17,0) level 2 in structure "an_encoded_value" packed packed unaligned dcl 553 in procedure "setup_str" set ref 563 scale 5 parameter fixed bin(35,0) level 2 in structure "comp" dcl 552 in procedure "setup_str" set ref 563* 567* scale 5 000410 automatic fixed bin(35,0) array level 2 in structure "op_data" dcl 48 in procedure "probe_compare_reference_" set ref 272 273 273 scale 5 000430 automatic fixed bin(35,0) array level 2 in structure "intermediate" dcl 49 in procedure "probe_compare_reference_" set ref 272* 273* 281* 281 281 second_based_bit based bit packed unaligned dcl 90 ref 213 215 230 232 second_based_char based char packed unaligned dcl 88 ref 206 208 223 225 seg_info based structure level 1 dcl 7-9 seg_info_ptr 12 based pointer level 2 dcl 55 ref 354 sign builtin function dcl 148 ref 273 319 322 326 329 size_array 2 000457 automatic fixed bin(17,0) initial array level 2 dcl 69 set ref 69* 69* 69* 69* 69* 69* 69* 69* source_info based structure level 1 dcl 6-5 source_info_ptr 10 000100 automatic pointer array level 2 dcl 46 set ref 353 385 406 space 000507 automatic bit(1152) array dcl 85 set ref 285 300 300 304 304 308 308 319 319 322 322 326 326 329 329 stack_ptr 6 based pointer level 2 in structure "source_info" dcl 6-5 in procedure "probe_compare_reference_" ref 385 406 stack_ptr 6 based pointer level 2 in structure "generation" dcl 55 in procedure "probe_compare_reference_" set ref 354* str_len 000610 automatic fixed bin(21,0) array dcl 91 set ref 187* 190 190 198* 206 206 208 208 213 213 215 215 223 223 225 225 230 230 232 232 str_ptr 000612 automatic pointer array dcl 92 set ref 188* 199* 206 206 208 208 213 213 215 215 223 223 225 225 230 230 232 232 string builtin function dcl 148 set ref 261* 261 261 263 557* stu_$offset_to_pointer 000030 constant entry external dcl 145 ref 354 substr builtin function dcl 148 ref 155 symbol_ptr parameter pointer level 2 in structure "ref" dcl 551 in procedure "setup_str" ref 569 symbol_ptr 000100 automatic pointer array level 2 in structure "operand" dcl 46 in procedure "probe_compare_reference_" set ref 354* symbol_ptr parameter pointer level 2 in structure "ref" dcl 480 in procedure "set_pascal_term" set ref 528* token based structure level 1 dcl 3-16 token_header based structure level 1 dcl 3-4 type 1 based fixed bin(17,0) level 2 in structure "pascal_symbol_node_header" packed packed unaligned dcl 12-12 in procedure "probe_compare_reference_" ref 517 541 type 113 parameter fixed bin(35,0) level 2 in structure "ref" dcl 551 in procedure "setup_str" ref 556 559 569 type 113 parameter fixed bin(35,0) level 2 in structure "ref" dcl 480 in procedure "set_pascal_term" set ref 489* 489* 492 493* 497 509 512* 519* 526 527* 531 531 533* 535* 539 539 543* type_array 000457 automatic fixed bin(17,0) initial array level 2 dcl 69 set ref 69* 69* 69* 69* 69* 69* 69* 69* 265 type_bits 000454 automatic structure level 1 dcl 59 set ref 259* 261* 261 263 type_bits_copy 000455 automatic structure level 1 dcl 65 set ref 260* 261 type_info 000670 automatic structure level 1 unaligned dcl 487 set ref 502 502 type_ptr 2 parameter pointer level 2 in structure "ref" dcl 480 in procedure "set_pascal_term" set ref 489* 489* 498 498 502* 507* 513* 517 520* 528* 541 541* type_ptr 2 000100 automatic pointer array level 2 in structure "operand" dcl 46 in procedure "probe_compare_reference_" set ref 165 165 type_type 000456 automatic fixed bin(17,0) dcl 67 set ref 263* 265 267 unspec builtin function dcl 148 set ref 561* 561 valid_decimal_ 000024 constant entry external dcl 142 ref 246 varying 0(12) 000032 external static bit(1) array level 2 packed packed unaligned dcl 9-23 ref 185 version 000670 automatic char(8) level 2 packed packed unaligned dcl 487 set ref 500* wanted_result 000002 constant fixed bin(17,0) initial array dcl 127 ref 237 239 332 334 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALGOL68_lang_type internal static fixed bin(17,0) initial dcl 5-17 ALM_lang_type internal static fixed bin(17,0) initial dcl 5-17 AMPERSAND internal static bit(18) initial dcl 4-17 ARROW internal static bit(18) initial dcl 4-17 COBOL_lang_type internal static fixed bin(17,0) initial dcl 5-17 COLON internal static bit(18) initial dcl 4-17 COMMA internal static bit(18) initial dcl 4-17 CONSTANT_TYPE internal static bit(18) initial packed unaligned dcl 3-37 C_EQUAL internal static bit(18) initial dcl 4-17 C_INDIRECTION internal static bit(18) initial dcl 4-17 C_LEFT_SHIFT internal static bit(18) initial dcl 4-17 C_NOT_EQUAL internal static bit(18) initial dcl 4-17 C_RIGHT_SHIFT internal static bit(18) initial dcl 4-17 C_lang_type internal static fixed bin(17,0) initial dcl 5-17 DOLLAR_SIGN internal static bit(18) initial dcl 4-17 FORTRAN_lang_type internal static fixed bin(17,0) initial dcl 5-17 GREATER_THAN internal static bit(18) initial dcl 4-17 LEFT_BRACKET internal static bit(18) initial dcl 4-17 LEFT_PAREN internal static bit(18) initial dcl 4-17 LESS_THAN internal static bit(18) initial dcl 4-17 MINUS internal static bit(18) initial dcl 4-17 NAME_TYPE internal static bit(18) initial packed unaligned dcl 3-37 NEW_LINE internal static bit(18) initial dcl 4-17 NOT_GREATER_THAN internal static bit(18) initial dcl 4-17 NOT_LESS_THAN internal static bit(18) initial dcl 4-17 NOT_SIGN internal static bit(18) initial dcl 4-17 OPERATOR_TYPE internal static bit(18) initial packed unaligned dcl 3-37 OPERATOR_VALUES internal static varying char(4) initial array dcl 4-43 OR_BAR internal static bit(18) initial dcl 4-17 OTHER_lang_type internal static fixed bin(17,0) initial dcl 5-17 PASCAL_ARROW internal static bit(18) initial dcl 4-17 PASCAL_ASSIGN internal static bit(18) initial dcl 4-17 PASCAL_RANGE internal static bit(18) initial dcl 4-17 PERCENT internal static bit(18) initial dcl 4-17 PERIOD internal static bit(18) initial dcl 4-17 PL1_lang_type internal static fixed bin(17,0) initial dcl 5-17 PLUS internal static bit(18) initial dcl 4-17 QUESTION_MARK internal static bit(18) initial dcl 4-17 RIGHT_BRACKET internal static bit(18) initial dcl 4-17 RIGHT_PAREN internal static bit(18) initial dcl 4-17 RUNTIME_ADDRESS_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 13-128 RUNTIME_ARRAY_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 13-129 RUNTIME_SUBRANGE_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 13-131 RUNTIME_VARIANT_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 13-130 SEMI_COLON internal static bit(18) initial dcl 4-17 SLASH internal static bit(18) initial dcl 4-17 TIMES internal static bit(18) initial dcl 4-17 UNKNOWN_lang_type internal static fixed bin(17,0) initial dcl 5-17 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 11-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 11-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 11-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 11-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 11-25 area_dtype internal static fixed bin(17,0) initial dcl 11-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 11-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 11-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 11-25 c_union_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 11-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 11-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 11-25 current_constant based structure level 1 dcl 3-44 current_identifier_name based char packed unaligned dcl 3-42 current_source based structure level 1 dcl 6-13 current_token based structure level 1 dcl 3-45 data_type_info_$max_decimal_precision external static fixed bin(17,0) dcl 9-48 data_type_info_$max_fixed_binary_precision external static fixed bin(17,0) dcl 9-50 data_type_info_$max_float_binary_precision external static fixed bin(17,0) dcl 9-49 data_type_info_$ninebit_digit_chars external static char(10) packed unaligned dcl 9-45 data_type_info_$ninebit_overpunched_sign_chars external static char(22) packed unaligned dcl 9-46 data_type_info_$ninebit_sign_chars external static char(2) packed unaligned dcl 9-44 data_type_info_$version_number external static fixed bin(17,0) dcl 9-20 data_type_info_this_version internal static fixed bin(17,0) initial dcl 9-21 expression_area based area(1024) dcl 1-95 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 11-125 ft_char_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 11-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 11-96 identifier based structure level 1 dcl 3-19 initial_source based structure level 1 dcl 6-14 n_dims automatic fixed bin(17,0) dcl 13-97 n_variants automatic fixed bin(35,0) dcl 13-112 nd automatic fixed bin(6,0) unsigned dcl 12-122 nvariants automatic fixed bin(17,0) dcl 12-121 official_language_names internal static char(32) initial array packed unaligned dcl 5-27 operator based structure level 1 dcl 3-24 palatable_language_names internal static char(32) initial array packed unaligned dcl 5-30 pascal_address based structure level 1 dcl 12-43 pascal_array_info based structure level 1 dcl 12-78 pascal_base_type_info based structure level 1 dcl 12-39 pascal_encoded_value based structure level 1 dcl 12-116 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_father_brother based structure level 1 dcl 12-51 pascal_father_type_successor based structure level 1 dcl 12-60 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_name_next based structure level 1 dcl 12-35 pascal_offset based fixed bin(35,0) dcl 12-66 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_size based fixed bin(35,0) dcl 12-64 pascal_son_level based structure level 1 dcl 12-55 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_subrange_limits based structure level 1 dcl 12-68 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 11-132 pascal_variant_info based structure level 1 dcl 12-105 probe_area based area(1024) dcl 1-93 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 11-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 11-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 11-25 reference_arg_list based structure level 1 dcl 2-59 reference_subscripts based structure level 1 dcl 2-64 runtime_address_info based structure level 1 dcl 13-56 runtime_array_info based structure level 1 dcl 13-70 runtime_subrange_info based structure level 1 unaligned dcl 13-116 runtime_symbol_info_$address 000000 constant entry external dcl 13-54 runtime_symbol_info_$array 000000 constant entry external dcl 13-68 runtime_symbol_info_$brother 000000 constant entry external dcl 13-40 runtime_symbol_info_$father 000000 constant entry external dcl 13-38 runtime_symbol_info_$level 000000 constant entry external dcl 13-50 runtime_symbol_info_$n_variants 000000 constant entry external dcl 13-99 runtime_symbol_info_$name 000000 constant entry external dcl 13-48 runtime_symbol_info_$next 000000 constant entry external dcl 13-52 runtime_symbol_info_$son 000000 constant entry external dcl 13-44 runtime_symbol_info_$subrange 000000 constant entry external dcl 13-114 runtime_symbol_info_$successor 000000 constant entry external dcl 13-46 runtime_symbol_info_$variant 000000 constant entry external dcl 13-101 runtime_variant_info based structure level 1 dcl 13-103 scratch_area based area(1024) dcl 1-92 seg_info_nfiles automatic fixed bin(17,0) dcl 7-47 structure_dtype internal static fixed bin(17,0) initial dcl 11-25 subscript_reference_ptrs based structure level 1 dcl 2-69 varying_bit_dtype internal static fixed bin(17,0) initial dcl 11-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 11-25 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_COMPARISON 002263 constant label dcl 457 ref 297 344 375 420 444 BAD_OPERAND 002236 constant label dcl 451 ref 165 174 351 382 410 430 RECORDED_MESSAGE 002267 constant label dcl 462 ref 194 253 454 SOME_ERROR 002273 constant label dcl 467 ref 288 459 464 503 compute_type_bits 002633 constant entry internal dcl 574 ref 259 260 probe_compare_reference_ 000121 constant entry external dcl 25 set_pascal_term 002303 constant entry internal dcl 472 ref 163 setup_str 002561 constant entry internal dcl 548 ref 169 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3166 3236 2735 3176 Length 3742 2735 50 467 231 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_compare_reference_ 673 external procedure is an external procedure. set_pascal_term internal procedure shares stack frame of external procedure probe_compare_reference_. setup_str internal procedure shares stack frame of external procedure probe_compare_reference_. compute_type_bits internal procedure shares stack frame of external procedure probe_compare_reference_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_compare_reference_ 000100 operand probe_compare_reference_ 000410 op_data probe_compare_reference_ 000430 intermediate probe_compare_reference_ 000450 code probe_compare_reference_ 000451 operation_code probe_compare_reference_ 000452 generation_ptr probe_compare_reference_ 000454 type_bits probe_compare_reference_ 000455 type_bits_copy probe_compare_reference_ 000456 type_type probe_compare_reference_ 000457 common_info probe_compare_reference_ 000507 space probe_compare_reference_ 000610 str_len probe_compare_reference_ 000612 str_ptr probe_compare_reference_ 000616 result probe_compare_reference_ 000617 i probe_compare_reference_ 000620 pointers probe_compare_reference_ 000624 labels probe_compare_reference_ 000634 entries probe_compare_reference_ 000644 label probe_compare_reference_ 000650 entry probe_compare_reference_ 000654 probe_info_ptr probe_compare_reference_ 000670 type_info set_pascal_term 000710 an_encoded_value setup_str 000720 d_type_bits compute_type_bits THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp call_ext_out_desc call_ext_out return_mac sign_mac mpfx2 shorten_stack ext_entry trunc_fx2 ceil_fx2 any_to_any_truncate_divide_fx1 sign THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_$computational_ complex_binary_op_ get_size_in_bits_ probe_error_$record probe_pascal_$real_type runtime_symbol_info_$array_dims runtime_symbol_info_$father_type runtime_symbol_info_$type stu_$offset_to_pointer valid_decimal_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. data_type_info_$info probe_et_$bad_comparison probe_et_$bad_decimal probe_et_$bad_type probe_et_$bad_varying probe_et_$recorded_message LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 25 000113 69 000126 153 000354 154 000360 155 000361 158 000365 159 000371 161 000375 162 000400 163 000405 164 000414 165 000416 168 000422 169 000427 170 000443 173 000445 174 000453 178 000457 183 000465 185 000473 187 000503 188 000506 190 000514 192 000520 194 000542 196 000543 198 000544 199 000547 201 000554 202 000556 204 000564 206 000570 208 000604 210 000607 211 000611 213 000612 215 000637 217 000664 219 000667 221 000670 223 000674 225 000722 227 000747 228 000752 230 000753 232 000767 234 000772 237 000774 239 001012 245 001024 246 001031 251 001063 253 001106 255 001107 259 001111 260 001115 261 001121 263 001124 265 001127 266 001147 267 001164 269 001203 271 001217 272 001225 273 001231 279 001261 281 001263 284 001303 285 001311 286 001317 288 001336 290 001340 295 001342 297 001345 300 001355 304 001372 308 001422 311 001446 314 001462 317 001470 319 001473 322 001506 324 001515 326 001516 329 001526 332 001532 334 001547 340 001560 343 001565 344 001573 347 001603 350 001626 351 001634 353 001636 354 001642 362 001674 365 001676 366 001703 368 001717 372 001725 375 001731 379 001741 380 001747 382 001765 384 001767 385 001772 387 001777 390 002005 392 002007 393 002020 395 002034 398 002042 399 002044 400 002051 403 002067 405 002071 406 002074 408 002101 409 002107 410 002110 412 002112 413 002115 414 002117 417 002125 420 002127 424 002137 425 002150 427 002163 429 002170 430 002172 434 002175 436 002203 439 002217 441 002221 444 002235 451 002236 454 002262 457 002263 459 002266 462 002267 464 002272 467 002273 469 002276 472 002303 489 002305 492 002323 493 002330 494 002332 495 002334 497 002342 498 002345 500 002351 502 002353 503 002370 507 002372 509 002417 512 002451 513 002453 514 002455 516 002457 517 002460 519 002465 520 002467 521 002471 523 002477 525 002501 526 002502 527 002504 528 002506 531 002517 533 002526 535 002534 536 002536 539 002540 541 002545 543 002554 544 002556 546 002560 548 002561 555 002563 556 002566 557 002571 558 002572 559 002576 561 002603 562 002605 563 002610 564 002613 566 002614 567 002616 569 002617 571 002630 572 002632 574 002633 582 002635 583 002643 584 002652 585 002662 586 002667 589 002670 590 002672 593 002700 594 002702 596 002704 ----------------------------------------------------------- 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