COMPILATION LISTING OF SEGMENT pa_process_arguments Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1128.78_Tue_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 8 9 /****^ HISTORY COMMENTS: 10* 1) change(82-03-18,Spratt), approve(), audit(), install(): 11* Written. 12* 2) change(83-05-01,York), approve(), audit(), install(): 13* William M. York and Suzanne Krupp: to prepare for exposure release as 14* part of the new tape software. 15* 3) change(83-06-20,Spratt), approve(), audit(), install(): 16* Converted from process_arguments_.pl1. Renamed the main entry 17* $argument_list, added the $argument_array and $argument_string entries, 18* and the code which supports them. 19* 4) change(83-06-27,Spratt), approve(), audit(), install(): 20* Moved the search list code into a separate module, pa_search_list. 21* 5) change(83-06-29,York), approve(), audit(), install(): 22* Get all the excluded options out of the definition, fix checking 23* for required arguments, and add validation of arguments. 24* 6) change(83-07-01,York), approve(), audit(), install(): 25* Interpret a required argument as meaning that only one instance of the 26* argument is required even if more are allowed. Also improved error 27* messages and set proper maximum value lengths for the dimensions of the 28* result pva. 29* 7) change(83-07-01,Spratt), approve(), audit(), install(): 30* Fixed to use the new calling sequence of $get_default_linear_form. The 31* process_arguments_$argument_string entry is now used to parse the 32* default_linear_form into an initial result_print_vector_array. This 33* interaction should be improved so that the invocation of 34* pa_process_arguments which gets the default_linear_form and the 35* invocation of pa_process_arguments can share the processed form of the 36* definition. Fixed to call CONVERT_STRING_TO_ARG_LIST for the 37* default_linear_form. 38* 8) change(83-07-07,Spratt), approve(), audit(), install(): 39* Fixed to use a first_arg_idx of 1 when processing the default linear 40* form. Also fixed to report a missing explanation instead of taking a 41* null pointer fault. Changed to evaluate active strings in default linear 42* forms. 43* 9) change(83-07-08,Spratt), approve(), audit(), install(): 44* Changed to use "-quote -foo" instead of "--foo" to force the 45* interpretation of "-foo" as an option value and not an option reference 46* name. Moved the invocation of PRINT_EXPLANATION into the main 47* option-value-processing do-group of the ARG_LOOP to ensure that the 48* control_argument_ptr is set. 49* 10) change(83-07-20,Spratt), approve(), audit(), install(): 50* Changed the CONVERT_ARRAY_TO_LIST to return a null arg_list_ptr when the 51* input argument_array has one element which equals "". Changed 52* CONVERT_STRING_TO_LIST to return a null arg_list_ptr when the input 53* arg_string equals "". 54* 11) change(83-07-25,SKrupp), approve(), audit(), install(): 55* Fixed handling of implied options that have arguments prefixed by a 56* "-quote". Fixed MISPLACED_CONTROL_ARGUMENT to test for 57* control_argument_is_in_effect as well as what it already tests for. 58* 12) change(83-08-03,SKrupp), approve(), audit(), install(): 59* Added result validation and fixed assorted bugs. 60* 13) change(83-08-28,SKrupp), approve(), audit(), install(): 61* Added argument validation explanations and the ability to force arguments 62* to be taken literally in to the -quote facility. 63* 14) change(85-10-03,GWMay), approve(85-10-03,MCR7282), audit(85-12-16,GDixon), 64* install(85-12-17,MR12.0-1001): 65* Reformatted history comments. Modified PROCESS_ARGUMENT_LIST to 66* initialize the control_argument_is_in_effect, 67* using_implicit_control_argument and option_accepts_explicit_argument 68* switches to false. 69* END HISTORY COMMENTS */ 70 71 /* format: style2,ind3 */ 72 pa_process_arguments: 73 proc (); 74 75 76 /* START OF DECLARATIONS */ 77 /* Parameter */ 78 79 dcl p_command_name char (*); 80 dcl p_arg_processing_mode fixed bin; 81 dcl p_arg_list_ptr ptr; 82 dcl p_first_arg_idx fixed bin; 83 dcl p_arg_array (*) char (*) varying; 84 dcl p_arg_string char (*) varying; 85 dcl p_definition_print_vector_array_ptr 86 ptr; 87 dcl p_work_area_ptr ptr; 88 dcl p_result_print_vector_array_ptr 89 ptr; 90 dcl p_code fixed bin (35); 91 92 /* Automatic */ 93 94 dcl using_implicit_control_argument 95 bit (1) aligned init ("0"b); 96 dcl last_arg_idx_processed fixed bin init (0); 97 dcl first_arg_idx fixed bin init (0); 98 dcl (arg_list_ptr, default_arg_list_ptr) 99 ptr init (null); 100 dcl dim_idx fixed bin; 101 dcl max_value_arg_len fixed bin; 102 dcl (implied_control_argument_name_identifier, control_argument_name_identifier, 103 next_implied_control_argument_name_identifier, result_control_argument_name_identifier, 104 argument_name_identifier, initial_argument_name_identifier, next_argument_name_identifier, 105 option_presence_identifier, argument_presence_identifier, explanation_identifier, synonym_identifier, 106 validation_string_identifier, antonym_identifier, result_instance_identifier, 107 result_command_name_identifier, result_order_identifier, default_argument_value_identifier, 108 negative_default_argument_value_identifier, excluded_option_identifier) 109 fixed bin; 110 dcl implied_control_argument_ptr 111 ptr; 112 dcl vector_idx fixed bin; 113 dcl temp_idx fixed bin; 114 dcl real_vector_count fixed bin; 115 dcl control_argument_name_dim_id 116 fixed bin; 117 dcl old_control_argument_name_dim_id 118 fixed bin; 119 dcl old_print_vector_ptr ptr; 120 dcl old_control_argument_ptr 121 ptr; 122 dcl root_control_argument_ptr 123 ptr; 124 dcl arg_exists bit (1) aligned; 125 dcl option_accepts_explicit_argument 126 bit (1) aligned; 127 dcl control_argument_is_in_effect 128 bit (1) aligned init ("0"b); 129 dcl exists_implied_control_argument 130 bit (1) aligned init ("0"b); 131 dcl implied_control_argument_name_ptr 132 ptr; 133 dcl implied_control_argument_name_length 134 fixed bin; 135 dcl first_argument_name_ptr 136 pointer; 137 dcl first_argument_name_len 138 fixed bin; 139 dcl global_instance_count fixed bin init (0); 140 dcl value_idx fixed bin init (0); 141 dcl arg_idx fixed bin; 142 dcl nargs fixed bin; 143 dcl arg_ptr ptr; 144 dcl arg_len fixed bin; 145 dcl force_interpretation_as_non_control_argument 146 bit (1) aligned init ("0"b); 147 dcl control_argument_ptr ptr; 148 dcl arg_info_ptr ptr; 149 dcl name_array_idx fixed bin; 150 dcl active_string char (4096) varying; 151 dcl active_explanation char(4096) varying; 152 dcl result char (5) varying; 153 154 155 dcl name_array_count fixed bin init (0); 156 157 dcl 1 name_array (200), 158 2 name_ptr ptr, 159 2 def_ptr ptr, 160 2 antonym bit (1) aligned; 161 162 dcl 1 value (100), 163 2 arg_name_ptr ptr, 164 2 arg_name_len fixed bin, 165 2 arg_ptr ptr, 166 2 arg_len fixed bin; 167 168 dcl default_linear_form_string 169 char (4096) varying init (""); 170 dcl command_name_str char(86) var init(""); 171 dcl validate_result_identifier fixed bin; 172 dcl validate_result_explanation_identifier fixed bin; 173 dcl validate_result_list_ptr ptr; 174 dcl validate_result_explanation_list_ptr ptr; 175 dcl list_ptr ptr; 176 dcl node_ptr ptr; 177 dcl force_literal_identifier fixed bin; 178 dcl validate_explanation_identifier fixed bin; 179 180 /* Based */ 181 182 dcl based_real_fix_bin_1u fixed bin (35) based unaligned; 183 184 dcl name_array_name char (256) varying based (name_array (name_array_idx).name_ptr); 185 186 dcl active_string_length fixed bin (21) based (addr (active_string)); 187 dcl active_explanation_length 188 fixed bin(21) based(addr(active_explanation)); 189 dcl active_string_nonvarying 190 char (4096) based (addwordno (addr (active_string), 1)); 191 dcl active_explanation_nonvarying 192 char(4096) based(addwordno(addr(active_explanation), 1)); 193 194 dcl implied_control_argument_name 195 char (implied_control_argument_name_length) varying 196 based (implied_control_argument_name_ptr); 197 dcl first_argument_name char (first_argument_name_len) based (first_argument_name_ptr); 198 dcl arg char (arg_len) based (arg_ptr); 199 dcl arg_char_array (arg_len) char (1) based (arg_ptr); 200 201 dcl 1 control_argument based (control_argument_ptr), 202 2 next ptr, 203 2 previous ptr, 204 2 excluded_option_chain 205 pointer, 206 2 control_argument_name_ptr 207 ptr, 208 2 control_argument_name_length 209 fixed bin, 210 2 first_arg_vector_idx 211 fixed bin, 212 2 last_arg_vector_idx 213 fixed bin, 214 2 initial_arg_vector_idx 215 fixed bin, 216 2 vector_idx fixed bin, 217 2 instance_count fixed bin, /* how many so far this command line? */ 218 2 instances_required fixed bin, /* how many must we have? */ 219 2 flags unaligned, 220 3 accepts_explicit_argument 221 bit (1), 222 3 antonym bit (1), 223 3 pad bit (34); 224 225 dcl control_argument_name char (control_argument.control_argument_name_length) 226 based (control_argument.control_argument_name_ptr); 227 228 dcl 1 arg_info based (arg_info_ptr), 229 2 arg_name_ptr ptr, 230 2 arg_name_len fixed bin, 231 2 explanation_ptr ptr, 232 2 validation_string_ptr 233 ptr, 234 2 validation_string_length 235 fixed bin, 236 2 validate_explanation_ptr 237 ptr, 238 2 arg_def_vector_idx fixed bin, 239 2 number_of_required_occurences 240 fixed bin, 241 2 default_argument_value_ptr 242 pointer, 243 2 default_argument_value_len 244 fixed bin, 245 2 flags unaligned, 246 3 got_explicit_value 247 bit(1), 248 3 force_literal bit(1), 249 3 pad bit(34); 250 251 252 dcl arg_name char (arg_info.arg_name_len) based (arg_info.arg_name_ptr); 253 dcl arg_explanation char (sys_info$max_seg_size) varying based (arg_info.explanation_ptr); 254 dcl validation_string char (arg_info.validation_string_length) based (arg_info.validation_string_ptr); 255 dcl validate_explanation char(sys_info$max_seg_size) var based(arg_info.validate_explanation_ptr); 256 257 dcl 1 excluded_option aligned based, 258 2 next_excluded_option 259 pointer, 260 2 option_name_length fixed bin, 261 2 option_name char (excluded_option_name_length refer (excluded_option.option_name_length)); 262 dcl excluded_option_name_length 263 fixed bin; 264 265 dcl work_area area (sys_info$max_seg_size) based (p_work_area_ptr); 266 267 dcl 1 validate_result_list like list based(validate_result_list_ptr); 268 269 dcl 1 validate_result_explanation_list like list based(validate_result_explanation_list_ptr); 270 271 dcl 1 list based(list_ptr), 272 2 head_ptr ptr, 273 2 tail_ptr ptr; 274 275 dcl 1 node based(node_ptr), 276 2 str_len fixed bin(21), 277 2 str_ptr ptr, 278 2 next_ptr ptr; 279 280 281 /* Builtin */ 282 283 dcl (addr, addcharno, addwordno, after, index, length, null, reverse, rtrim, substr, unspec) builtin; 284 285 /* Condition */ 286 287 dcl active_function_error condition; 288 dcl cleanup condition; 289 dcl stringrange condition; 290 291 /* Constant */ 292 293 dcl MY_NAME init ("pa_process_arguments") char (20) static options (constant); 294 dcl ( 295 NO_MODE init (1), 296 PROMPT_MODE init (2), 297 MENU_MODE init (3), 298 NUMBER_OF_NON_ARGUMENT_DIMENSIONS 299 init (4), 300 SLOT_INCREASE_FACTOR init (25), 301 RETRY_LIMIT init (10) 302 ) fixed bin internal static options (constant); 303 dcl PROCESS_ARGUMENTS_SEARCH_LIST_NAME 304 init ("process_arguments") char (17) internal static options (constant); 305 306 dcl ( 307 COMMAND_NAME_DIM_NAME init ("command name"), 308 DEFAULT_LINEAR_FORM_DIM_NAME 309 init ("default linear form"), 310 CONTROL_ARGUMENT_NAME_DIM_NAME 311 init ("option"), 312 SYNONYM_DIM_NAME init ("synonym"), 313 ANTONYM_DIM_NAME init ("negative form"), 314 EXCLUDED_OPTION_DIM_NAME 315 init ("excluded option"), 316 IMPLIED_CONTROL_ARGUMENT_NAME_DIM_NAME 317 init ("initial implied option"), 318 NEXT_IMPLIED_CONTROL_ARGUMENT_NAME_DIM_NAME 319 init ("next implied option"), 320 ARGUMENT_NAME_DIM_NAME init ("argument"), 321 INITIAL_ARGUMENT_NAME_DIM_NAME 322 init ("initial argument"), 323 NEXT_ARGUMENT_NAME_DIM_NAME 324 init ("next argument"), 325 DEFAULT_ARGUMENT_VALUE_DIM_NAME 326 init ("default value"), 327 NEGATIVE_VALUE_DIM_NAME 328 init ("negative value"), 329 ARGUMENT_VALIDATION_STRING_DIM_NAME 330 init ("validation string"), 331 EXPLANATION_DIM_NAME init ("explanation"), 332 ARGUMENT_PRESENCE_DIM_NAME 333 init ("presence required"), 334 INSTANCE_DIM_NAME init ("instance"), 335 RESULT_ORDER_DIM_NAME init ("order"), 336 VALIDATE_RESULT_DIM_NAME 337 init("validate result"), 338 VALIDATE_RESULT_EXPLANATION_DIM_NAME 339 init("validate result explanation"), 340 VALIDATE_EXPLANATION_DIM_NAME 341 init("validate explanation"), 342 FORCE_LITERAL_DIM_NAME 343 init("force literal") 344 ) char (64) varying internal static options (constant); 345 dcl NO_ARGUMENT init ("NONE") char (32) varying internal static options (constant); 346 347 dcl LEFT_BOUND_STR init("&(") char(2) int static options(constant); 348 dcl RIGHT_BOUND_STR init(")") char(1) int static options(constant); 349 dcl ARG_PROC_MSG init("(argument processing)") char(21) int static options(constant); 350 351 dcl ( 352 CONTROL_ARGUMENT_NAME_DIM_IDX init(1), 353 INSTANCE_DIM_IDX init(2), 354 COMMAND_NAME_DIM_IDX init(3), 355 RESULT_ORDER_DIM_IDX init(4) 356 ) fixed bin int static options(constant); 357 358 /* Entry */ 359 360 dcl process_arguments_$argument_string 361 entry (char (*), fixed bin, char (*) var, ptr, ptr, ptr, fixed bin (35)); 362 363 dcl ioa_$rsnnl entry () options (variable); 364 365 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 366 dcl sub_err_ entry () options (variable); 367 dcl com_err_ entry () options (variable); 368 dcl ioa_ entry () options (variable); 369 dcl decode_descriptor_ entry (ptr, fixed bin, fixed bin, bit (1) aligned, fixed bin, fixed bin, fixed bin); 370 dcl search_paths_$get entry (char (*), bit (36), char (*), ptr, ptr, fixed bin, ptr, fixed bin (35)); 371 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 372 dcl requote_string_ entry (char (*)) returns (char (*)); 373 dcl process_arguments_$get_definition 374 entry (char (*) var, ptr, ptr, fixed bin (35)); 375 dcl process_arguments_$get_default_linear_form 376 entry (char (*) var, char (*) var, fixed bin (35)); 377 dcl process_arguments_$get_option_value 378 entry options(variable); 379 dcl cu_$evaluate_active_string 380 entry (ptr, char (*), fixed bin, char (*) var, fixed bin (35)); 381 dcl find_condition_frame_ entry (ptr) returns(ptr); 382 dcl find_condition_info_ entry (ptr, ptr, fixed bin(35)); 383 dcl define_area_ entry (ptr, fixed bin(35)); 384 dcl release_area_ entry (ptr); 385 386 /* External */ 387 388 dcl error_table_$asynch_change 389 fixed bin (35) ext static; 390 dcl error_table_$noarg fixed bin (35) ext static; 391 dcl vd_error_$dimension_already_defined 392 fixed bin (35) ext; 393 dcl vd_error_$no_vector fixed bin (35) ext; 394 dcl error_table_$fatal_error 395 fixed bin (35) ext; 396 dcl sys_info$max_seg_size fixed bin (35) ext static; 397 dcl error_table_$badopt fixed bin (35) ext; 398 dcl error_table_$bad_arg fixed bin (35) ext; 399 dcl error_table_$smallarg fixed bin(35) ext static; 400 dcl error_table_$unimplemented_version fixed bin(35) ext static; 401 402 /* END OF DECLARATIONS */ 403 404 argument_array: 405 entry (p_command_name, p_arg_processing_mode, p_arg_array, p_definition_print_vector_array_ptr, p_work_area_ptr, 406 p_result_print_vector_array_ptr, p_code); 407 call CONVERT_ARGUMENT_ARRAY_TO_LIST (p_arg_array, p_work_area_ptr, arg_list_ptr); 408 first_arg_idx = 1; 409 goto JOIN; 410 411 argument_string: 412 entry (p_command_name, p_arg_processing_mode, p_arg_string, p_definition_print_vector_array_ptr, p_work_area_ptr, 413 p_result_print_vector_array_ptr, p_code); 414 call CONVERT_ARGUMENT_STRING_TO_LIST (p_arg_string, p_work_area_ptr, arg_list_ptr); 415 first_arg_idx = 1; 416 goto JOIN; 417 418 419 argument_list: 420 entry (p_command_name, p_arg_processing_mode, p_arg_list_ptr, p_first_arg_idx, p_definition_print_vector_array_ptr, 421 p_work_area_ptr, p_result_print_vector_array_ptr, p_code); 422 arg_list_ptr = p_arg_list_ptr; 423 first_arg_idx = p_first_arg_idx; 424 425 JOIN: 426 427 command_name_str = rtrim(p_command_name) || " " || ARG_PROC_MSG; 428 429 p_result_print_vector_array_ptr = null; 430 if p_definition_print_vector_array_ptr = null 431 then 432 do; 433 call 434 process_arguments_$get_definition ((p_command_name), p_work_area_ptr, p_definition_print_vector_array_ptr, 435 p_code); 436 if p_code ^= 0 437 then 438 do; 439 call REPORT_MISSING_DEFINITION(p_code); 440 return; 441 end; 442 end; 443 444 call process_arguments_$get_default_linear_form ((p_command_name), default_linear_form_string, p_code); 445 if p_code ^= 0 | default_linear_form_string = "" 446 then do; 447 if (p_code = vd_error_$no_vector | default_linear_form_string = "") & 448 arg_list_ptr = null 449 then do; 450 p_code = vd_error_$no_vector; /* Make sure nonzero p_code is returned. */ 451 call com_err_((0), (command_name_str), "There is no default linear form."); 452 return; 453 end; 454 else if p_code = vd_error_$no_vector 455 then p_code = 0; 456 else if p_code ^= 0 457 then do; 458 call com_err_(p_code, (command_name_str), "Unable to get the default linear form for ""^a"".", p_command_name); 459 return; 460 end; 461 end; 462 463 call SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST; 464 alloc arg_info in (work_area); 465 print_vector_array_ptr = null; 466 467 if p_result_print_vector_array_ptr = null 468 then 469 do; 470 result_control_argument_name_identifier = 1; 471 result_command_name_identifier = 2; 472 result_instance_identifier = 3; 473 result_order_identifier = 4; 474 call 475 vector_util_$init_print_vector_array (p_work_area_ptr, SLOT_INCREASE_FACTOR, 476 CONTROL_ARGUMENT_NAME_DIM_NAME, COMMAND_NAME_DIM_NAME, INSTANCE_DIM_NAME, RESULT_ORDER_DIM_NAME, 477 p_result_print_vector_array_ptr, p_code); 478 if p_code ^= 0 479 then return; 480 end; 481 else call SET_RESULT_IDS; 482 483 p_result_print_vector_array_ptr 484 -> print_vector_array.dimension_table (result_command_name_identifier).maximum_value_length = 485 length (p_command_name); 486 487 if default_linear_form_string ^= "" 488 then 489 do; 490 call 491 cu_$evaluate_active_string (null (), "do " || requote_string_ ((default_linear_form_string)), 492 NORMAL_ACTIVE_STRING, default_linear_form_string, p_code); 493 if p_code ^= 0 494 then return; 495 496 497 call CONVERT_ARGUMENT_STRING_TO_LIST (default_linear_form_string, p_work_area_ptr, default_arg_list_ptr); 498 call PROCESS_ARGUMENT_LIST (default_arg_list_ptr, 1, p_code); 499 if p_code ^= 0 500 then return; 501 end; 502 503 if arg_list_ptr ^= null 504 then call PROCESS_ARGUMENT_LIST (arg_list_ptr, first_arg_idx, p_code); 505 506 if p_code ^= 0 507 then return; 508 509 /* Now compress the print vector array, removing entries that we 510* nulled out earlier. */ 511 512 do vector_idx = 1 to p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors; 513 if p_result_print_vector_array_ptr -> print_vector_array.vector_slot (vector_idx) = null () 514 then 515 do; /* copy the remaining vectors down one slot */ 516 p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors = 517 p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors - 1; 518 do temp_idx = vector_idx to p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors; 519 p_result_print_vector_array_ptr -> print_vector_array.vector_slot (temp_idx) = 520 p_result_print_vector_array_ptr -> print_vector_array.vector_slot (temp_idx + 1); 521 end; /* make sure to check the same slot again */ 522 vector_idx = vector_idx - 1; 523 end; 524 end; 525 526 call VALIDATE_RESULTS(p_code); 527 528 return; /* Effective end of process_arguments. */ 529 530 SET_IDS: 531 proc; 532 call SET_ID (SYNONYM_DIM_NAME, synonym_identifier); 533 call SET_ID (ANTONYM_DIM_NAME, antonym_identifier); 534 call SET_ID (EXCLUDED_OPTION_DIM_NAME, excluded_option_identifier); 535 call SET_ID (IMPLIED_CONTROL_ARGUMENT_NAME_DIM_NAME, implied_control_argument_name_identifier); 536 call SET_ID (EXPLANATION_DIM_NAME, explanation_identifier); 537 call SET_ID (CONTROL_ARGUMENT_NAME_DIM_NAME, control_argument_name_identifier); 538 call SET_ID (ARGUMENT_NAME_DIM_NAME, argument_name_identifier); 539 call SET_ID (INITIAL_ARGUMENT_NAME_DIM_NAME, initial_argument_name_identifier); 540 call SET_ID (NEXT_ARGUMENT_NAME_DIM_NAME, next_argument_name_identifier); 541 call SET_ID (DEFAULT_ARGUMENT_VALUE_DIM_NAME, default_argument_value_identifier); 542 call SET_ID (NEGATIVE_VALUE_DIM_NAME, negative_default_argument_value_identifier); 543 call SET_ID (NEXT_IMPLIED_CONTROL_ARGUMENT_NAME_DIM_NAME, next_implied_control_argument_name_identifier); 544 call SET_ID (ARGUMENT_PRESENCE_DIM_NAME, argument_presence_identifier); 545 call SET_ID (ARGUMENT_VALIDATION_STRING_DIM_NAME, validation_string_identifier); 546 call SET_ID (VALIDATE_RESULT_DIM_NAME, validate_result_identifier); 547 call SET_ID (VALIDATE_RESULT_EXPLANATION_DIM_NAME, validate_result_explanation_identifier); 548 call SET_ID (FORCE_LITERAL_DIM_NAME, force_literal_identifier); 549 call SET_ID (VALIDATE_EXPLANATION_DIM_NAME, validate_explanation_identifier); 550 551 end SET_IDS; 552 553 SET_ID: 554 proc (p_dim_name, p_identifier); 555 dcl p_dim_name char (*) varying; 556 dcl p_identifier fixed bin; 557 do p_identifier = 1 to p_definition_print_vector_array_ptr -> print_vector_array.number_of_dimensions 558 while (p_definition_print_vector_array_ptr -> print_vector_array.dimension_table (p_identifier).name 559 ^= p_dim_name); 560 end; 561 if p_identifier > p_definition_print_vector_array_ptr -> print_vector_array.number_of_dimensions 562 then p_identifier = -1; 563 end SET_ID; 564 565 SET_RESULT_IDS: 566 proc; 567 call SET_RESULT_ID (COMMAND_NAME_DIM_NAME, result_command_name_identifier); 568 call SET_RESULT_ID (RESULT_ORDER_DIM_NAME, result_order_identifier); 569 call SET_RESULT_ID (INSTANCE_DIM_NAME, result_instance_identifier); 570 call SET_RESULT_ID (CONTROL_ARGUMENT_NAME_DIM_NAME, result_control_argument_name_identifier); 571 end SET_RESULT_IDS; 572 573 SET_RESULT_ID: 574 proc (p_dimension_name, p_identifier); 575 576 dcl p_dimension_name char (*) varying; 577 dcl p_identifier fixed bin; 578 579 do p_identifier = 1 to p_result_print_vector_array_ptr -> print_vector_array.number_of_dimensions 580 while (p_result_print_vector_array_ptr -> print_vector_array.dimension_table (p_identifier).name 581 ^= p_dimension_name); 582 end; 583 if p_identifier > p_result_print_vector_array_ptr -> print_vector_array.number_of_dimensions 584 then p_identifier = -1; 585 586 end SET_RESULT_ID; 587 588 SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST: 589 proc; 590 591 dcl dim_idx fixed bin; 592 dcl temp_ptr pointer; 593 594 call SET_IDS; 595 print_vector_ptr = null; 596 control_argument_ptr = null; 597 control_argument_name_dim_id = -1; 598 implied_control_argument_name_ptr = null; 599 implied_control_argument_ptr = null; 600 exists_implied_control_argument = "0"b; 601 validate_result_list_ptr = null; 602 validate_result_explanation_list_ptr = null; 603 604 do vector_idx = 1 to p_definition_print_vector_array_ptr -> print_vector_array.number_of_vectors; 605 old_control_argument_name_dim_id = control_argument_name_dim_id; 606 old_print_vector_ptr = print_vector_ptr; 607 call SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID (vector_idx, print_vector_ptr, control_argument_name_dim_id); 608 if control_argument_name_dim_id = -1 609 then call SETUP_IMPLIED_CONTROL_ARGUMENT; 610 else 611 do; 612 if control_argument_ptr = null 613 then call SETUP_NEW_CONTROL_ARGUMENT; 614 615 616 /* check to see if we have finished the definition of the 617* option we were just working on */ 618 else if print_vector.dimension (control_argument_name_dim_id).value 619 ^= old_print_vector_ptr -> print_vector.dimension (old_control_argument_name_dim_id).value 620 then 621 do; 622 call CLOSE_OUT_CONTROL_ARGUMENT_DEFINITION; 623 call SETUP_NEW_CONTROL_ARGUMENT; 624 end; 625 626 /* see if this is the initial implied option */ 627 if vector_idx = control_argument.vector_idx 628 then if implied_control_argument_name_ptr ^= null 629 then if control_argument_name = implied_control_argument_name 630 then 631 do; 632 implied_control_argument_ptr = control_argument_ptr; 633 exists_implied_control_argument = "1"b; 634 end; 635 636 /* Now check for other dimensions in the vector that define 637* other attributes of the option */ 638 639 call GET_DIM_IDX (print_vector_ptr, argument_name_identifier, dim_idx); 640 if dim_idx > 0 641 then 642 do; 643 if print_vector_ptr -> print_vector.dimension (dim_idx).value = first_argument_name 644 then control_argument.initial_arg_vector_idx = vector_idx; 645 if control_argument.first_arg_vector_idx = 0 646 then 647 do; 648 control_argument.first_arg_vector_idx = vector_idx; 649 control_argument.last_arg_vector_idx = vector_idx; 650 end; 651 end; 652 653 /* See if there is an excluded option dimension */ 654 call GET_DIM_IDX (print_vector_ptr, excluded_option_identifier, dim_idx); 655 if dim_idx > 0 656 then 657 do; 658 excluded_option_name_length = length (print_vector_ptr -> print_vector.dimension (dim_idx).value); 659 allocate excluded_option in(work_area) set (temp_ptr); 660 temp_ptr -> excluded_option.option_name = print_vector_ptr -> print_vector.dimension (dim_idx).value; 661 temp_ptr -> excluded_option.next_excluded_option = control_argument.excluded_option_chain; 662 control_argument.excluded_option_chain = temp_ptr; 663 end; 664 665 /* see if the vector defines a synonym for the option */ 666 call ADD_SYNONYM; 667 668 end; 669 670 call SETUP_RESULT_VALIDATION_INFO(print_vector_ptr, validate_result_list_ptr, validate_result_explanation_list_ptr); 671 672 end; 673 674 /* We have run out of vectors, close out the last option definition */ 675 call CLOSE_OUT_CONTROL_ARGUMENT_DEFINITION; 676 677 end SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST; 678 679 ADD_SYNONYM: 680 proc; 681 dcl dim_idx fixed bin; 682 683 call GET_DIM_IDX (print_vector_ptr, synonym_identifier, dim_idx); 684 if dim_idx = -1 685 then return; 686 687 name_array_count = name_array_count + 1; 688 name_array (name_array_count).name_ptr = addr (print_vector.dimension (dim_idx).value); 689 name_array (name_array_count).def_ptr = control_argument_ptr; 690 691 /* See if this synonym is really an antonym. Will be used for filling 692* in the default value later. */ 693 call GET_DIM_IDX (print_vector_ptr, antonym_identifier, dim_idx); 694 name_array (name_array_count).antonym = (dim_idx ^= -1); 695 696 end ADD_SYNONYM; 697 698 SETUP_NEW_CONTROL_ARGUMENT: 699 proc (); 700 701 old_control_argument_ptr = control_argument_ptr; 702 703 alloc control_argument in (work_area); 704 control_argument.next = null; 705 control_argument.previous = old_control_argument_ptr; 706 if old_control_argument_ptr = null 707 then root_control_argument_ptr = control_argument_ptr; 708 else old_control_argument_ptr -> control_argument.next = control_argument_ptr; 709 710 /* relies on vector_idx being set by caller, presumably while looping 711* through all the vectors */ 712 control_argument.vector_idx = vector_idx; 713 714 control_argument.control_argument_name_ptr = 715 addrel (addr (print_vector.dimension (control_argument_name_dim_id).value), 1); 716 control_argument.control_argument_name_length = 717 length (print_vector.dimension (control_argument_name_dim_id).value); 718 719 control_argument.excluded_option_chain = null (); 720 control_argument.initial_arg_vector_idx = 0; 721 control_argument.first_arg_vector_idx = 0; 722 control_argument.last_arg_vector_idx = 0; 723 control_argument.accepts_explicit_argument = "0"b; 724 725 /* Get the name of the initial arg for this option. If there is no 726* such dimension, the option doesn't accept command line arguments. 727* However, it may still have one argument whose value will be filled 728* in from the default. This is how -long/-brief style flags work. */ 729 730 call GET_DIM_IDX (print_vector_ptr, initial_argument_name_identifier, dim_idx); 731 if dim_idx ^= -1 732 then 733 do; 734 first_argument_name_ptr = addrel (addr (print_vector_ptr -> print_vector.dimension (dim_idx).value), 1); 735 first_argument_name_len = length (print_vector_ptr -> print_vector.dimension (dim_idx).value); 736 control_argument.accepts_explicit_argument = "1"b; 737 end; 738 else 739 do; 740 first_argument_name_ptr = addr (NO_ARGUMENT); 741 first_argument_name_len = length (NO_ARGUMENT); 742 control_argument.accepts_explicit_argument = "0"b; 743 end; 744 745 /* at this point we should find the option_presence dimension a gets its 746* value, but it isn7t in the DB yet. */ 747 control_argument.instance_count = 0; /* this field isn't examined yet */ 748 control_argument.instances_required = 1; 749 750 end SETUP_NEW_CONTROL_ARGUMENT; 751 752 CLOSE_OUT_CONTROL_ARGUMENT_DEFINITION: 753 procedure; 754 755 if control_argument_ptr = null () 756 then return; 757 758 control_argument.last_arg_vector_idx = vector_idx - 1; 759 760 if ^control_argument.accepts_explicit_argument /* the option doesn't accept explicit args, but we still have 761* to set the initial arg idx so defaults work later */ 762 then control_argument.initial_arg_vector_idx = control_argument.first_arg_vector_idx; 763 764 /* if no argument matched the name of the first argument for this 765* option (as specified in the definition for this command), then 766* signal an error. */ 767 768 else if (control_argument.initial_arg_vector_idx = 0) 769 then call 770 sub_err_ (error_table_$fatal_error, MY_NAME, ACTION_CANT_RESTART, null (), 0, 771 "First argument of ""^a"" specified for option ""^a"" of command ""^a"" is not defined.", 772 first_argument_name, control_argument_name); 773 774 end CLOSE_OUT_CONTROL_ARGUMENT_DEFINITION; 775 776 SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID: 777 proc (p_vector_idx, p_print_vector_ptr, p_control_argument_name_dim_id); 778 dcl p_vector_idx fixed bin; 779 dcl p_print_vector_ptr ptr; 780 dcl p_control_argument_name_dim_id 781 fixed bin; 782 p_print_vector_ptr = p_definition_print_vector_array_ptr -> print_vector_array.vector_slot (p_vector_idx); 783 call GET_DIM_IDX (p_print_vector_ptr, control_argument_name_identifier, p_control_argument_name_dim_id); 784 end SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID; 785 786 SETUP_IMPLIED_CONTROL_ARGUMENT: 787 proc; 788 dcl dim_idx fixed bin; 789 call GET_DIM_IDX (print_vector_ptr, implied_control_argument_name_identifier, dim_idx); 790 791 if dim_idx = -1 792 then return; 793 implied_control_argument_name_ptr = addr (print_vector.dimension (dim_idx).value); 794 implied_control_argument_name_length = length (print_vector.dimension (dim_idx).value); 795 end SETUP_IMPLIED_CONTROL_ARGUMENT; 796 797 PROCESS_ARGUMENT_LIST: 798 proc (pal_p_arg_list_ptr, pal_p_first_arg_idx, pal_p_code); 799 dcl pal_p_arg_list_ptr ptr parameter; 800 dcl pal_p_first_arg_idx fixed bin parameter; 801 dcl pal_p_code fixed bin (35) parameter; 802 803 nargs = pal_p_arg_list_ptr -> arg_list.header.arg_count - pal_p_first_arg_idx + 1; 804 last_arg_idx_processed = pal_p_first_arg_idx - 1; 805 force_interpretation_as_non_control_argument = "0"b; 806 value_idx = 0; 807 max_value_arg_len = 0; 808 unspec(arg_info) = "0"b; 809 control_argument_is_in_effect = "0"b; 810 using_implicit_control_argument = "0"b; 811 option_accepts_explicit_argument = "0"b; 812 813 control_argument_ptr = null; 814 815 816 ARG_LOOP: 817 do arg_idx = pal_p_first_arg_idx to pal_p_arg_list_ptr -> arg_list.header.arg_count; 818 arg_ptr = pal_p_arg_list_ptr -> arg_list.arg_ptrs (arg_idx); 819 call decode_descriptor_ (pal_p_arg_list_ptr -> arg_list.desc_ptrs (arg_idx), 0, 0, "0"b, 0, arg_len, 0); 820 821 force_interpretation_as_non_control_argument = (force_interpretation_as_non_control_argument | 822 (arg_info.force_literal & control_argument_is_in_effect)); 823 824 /* if arg = "-quote" & ^force_interpretation_as_non_control_argument 825* then 826* do; 827* last_arg_idx_processed = arg_idx; 828* force_interpretation_as_non_control_argument = "1"b; 829* end; /* Now for the non-option cases. 830* else */ 831 832 if index (arg, "-") ^= 1 | force_interpretation_as_non_control_argument 833 then 834 do; /* if there is no explicit option in effect, 835* try the current implied option */ 836 force_interpretation_as_non_control_argument = "0"b; 837 if ^control_argument_is_in_effect 838 then if exists_implied_control_argument 839 then 840 do; /* If we already processed the previous token, 841* don't do it again. */ 842 if last_arg_idx_processed < (arg_idx - 1) 843 then call CLOSE_OUT_OPTION; 844 845 control_argument_ptr = implied_control_argument_ptr; 846 call 847 SETUP_FIRST_ARG_INFO (control_argument_ptr, option_accepts_explicit_argument, arg_info_ptr); 848 /* if this option doesn't accept an argument, 849* the current token is bogus */ 850 if ^option_accepts_explicit_argument 851 then call 852 sub_err_ (error_table_$fatal_error, MY_NAME, ACTION_CANT_RESTART, null (), 0, 853 "Error in definition. Implied option ^a doesn't accept arguments.", 854 control_argument_name); 855 856 control_argument_is_in_effect, using_implicit_control_argument = "1"b; 857 end; 858 if arg = "?" 859 then 860 do; 861 last_arg_idx_processed = arg_idx; 862 call PRINT_EXPLANATION; 863 end; 864 865 /* OK, the token is an argument to an option. */ 866 else 867 do; 868 869 call PROCESS_ARGUMENT (pal_p_code); 870 if pal_p_code = error_table_$bad_arg 871 then do; 872 call PRINT_VALIDATION_EXPLANATION(); 873 return; 874 end; 875 else if pal_p_code ^= 0 876 then return; 877 end; 878 end; 879 880 else if MISPLACED_CONTROL_ARGUMENT () 881 then 882 do; 883 pal_p_code = error_table_$noarg; 884 call 885 com_err_ (pal_p_code, (command_name_str), 886 "^/Encountered option ^a instead of the ^a argument to option ^a.", requote_string_ (arg), 887 requote_string_ (arg_name), requote_string_ (control_argument_name)); 888 return; 889 end; 890 891 /* The token is an option */ 892 else 893 CONTROL_ARGUMENT: 894 do; /* If we already processed the previous token, 895* don't do it again. */ 896 if last_arg_idx_processed < (arg_idx - 1) 897 then call CLOSE_OUT_OPTION; 898 899 using_implicit_control_argument = "0"b; 900 901 /* See if the token matches any known option name */ 902 do name_array_idx = 1 to name_array_count while (arg ^= name_array_name); 903 end; 904 if name_array_idx > name_array_count 905 then 906 do; 907 call REPORT_UNRECOGNIZED_CONTROL_ARGUMENT (); 908 return; 909 end; 910 911 control_argument_ptr = name_array (name_array_idx).def_ptr; 912 913 /* depending on which name (e.g. -foo vs. -no_foo) was used 914* to find this option, set the antonym flag */ 915 control_argument.antonym = name_array (name_array_idx).antonym; 916 917 /* fill in arg_info structure for the option's first arg */ 918 call SETUP_FIRST_ARG_INFO (control_argument_ptr, option_accepts_explicit_argument, arg_info_ptr); 919 920 /* if the option has args, future tokens should be interpreted 921* as "belonging" to this option, so we say the option is still 922* in effect. If the option has no args, future tokens are 923* unrelated to the option. */ 924 925 control_argument_is_in_effect = option_accepts_explicit_argument; 926 if ^control_argument_is_in_effect 927 then call CLOSE_OUT_OPTION; 928 end CONTROL_ARGUMENT; 929 end ARG_LOOP; 930 931 /* The loop above increments the arg_idx to one 932* past the last argument. Set it back for comparison purposes. */ 933 arg_idx = arg_idx - 1; 934 935 /* No more command line arguments. Check to see if any more were 936* required. */ 937 938 if using_implicit_control_argument 939 then 940 do; /* if the pending option is implicit we don't care if there 941* is no associated argument as long as we have seen at least 942* one instance of the option before, e.g. "copy foo bar" 943* is OK even though there is a pending implicit 944* -source_pathname option with a required argument */ 945 946 if control_argument.instance_count = 0 947 then 948 do; 949 call SETUP_FIRST_ARG_INFO (control_argument_ptr, option_accepts_explicit_argument, arg_info_ptr); 950 if ^option_accepts_explicit_argument 951 then call 952 sub_err_ (error_table_$fatal_error, MY_NAME, ACTION_CANT_RESTART, null (), 0, 953 "Error in definition. Implied option ^a doesn't accept arguments.", control_argument_name); 954 if (arg_info.number_of_required_occurences > 0) 955 then 956 do; 957 pal_p_code = error_table_$noarg; 958 call REPORT_MISSING_ARGUMENT (); 959 return; 960 end; 961 end; 962 end; 963 964 /* if the option was explicit, then honor the required flag */ 965 else if control_argument_is_in_effect 966 then if (arg_info.number_of_required_occurences > 0) 967 then 968 do; 969 pal_p_code = error_table_$noarg; 970 call REPORT_MISSING_ARGUMENT (); 971 return; 972 end; 973 974 /* Close out the last token if it hasn't been processed yet */ 975 if last_arg_idx_processed < arg_idx 976 then call CLOSE_OUT_OPTION; 977 978 end PROCESS_ARGUMENT_LIST; 979 980 PROCESS_ARGUMENT: 981 proc (p_code); 982 983 dcl p_code fixed bin (35) parameter; 984 dcl temp_value_idx fixed bin; 985 986 987 if ^control_argument_is_in_effect 988 then 989 do; 990 p_code = error_table_$bad_arg; 991 call com_err_ (p_code, (command_name_str), "^/Argument ^a can not be matched with any option.", arg); 992 return; 993 end; 994 995 /* Validate the argument value if possible */ 996 if arg_info.validation_string_ptr ^= null () 997 then 998 do; /* Get a temp for the requoted string */ 999 call 1000 ioa_$rsnnl ("do ^a ^a", active_string_nonvarying, active_string_length, 1001 requote_string_ ("[" || validation_string || "]"), requote_string_ (arg)); 1002 1003 on active_function_error 1004 begin; 1005 goto validation_error_return; 1006 end; 1007 1008 call cu_$evaluate_active_string (null (), (active_string), NORMAL_ACTIVE_STRING, result, p_code); 1009 if p_code ^= 0 1010 then return; 1011 1012 revert active_function_error; 1013 1014 if result ^= "true" 1015 then 1016 do; 1017 validation_error_return: 1018 p_code = error_table_$bad_arg; 1019 call 1020 com_err_ (p_code, (command_name_str), "^/Invalid argument ^a for option ^a", requote_string_ (arg), 1021 requote_string_ (control_argument_name)); 1022 return; 1023 end; 1024 end; 1025 1026 value_idx = value_idx + 1; 1027 value (value_idx).arg_name_ptr = arg_info.arg_name_ptr; 1028 value (value_idx).arg_name_len = arg_info.arg_name_len; 1029 value (value_idx).arg_ptr = arg_ptr; 1030 value (value_idx).arg_len = arg_len; 1031 max_value_arg_len = max (max_value_arg_len, arg_len); 1032 1033 call SETUP_NEXT_ARG_INFO (control_argument_ptr, arg_exists, arg_info_ptr); 1034 control_argument_is_in_effect = arg_exists; 1035 1036 if ^control_argument_is_in_effect 1037 then call CLOSE_OUT_OPTION; 1038 else 1039 do; 1040 do temp_value_idx = 1 to value_idx while (arg_info.arg_name_ptr ^= value (temp_value_idx).arg_name_ptr); 1041 end; 1042 if temp_value_idx <= value_idx 1043 then /* Only one occurence of each named argument can be present per "result" vector. */ 1044 call ADD_VALUE_TO_RESULT; 1045 end; 1046 end PROCESS_ARGUMENT; 1047 1048 GET_NEXT_IMPLIED_CONTROL_ARGUMENT: 1049 proc; 1050 print_vector_ptr = 1051 p_definition_print_vector_array_ptr -> print_vector_array.vector_slot (control_argument.vector_idx); 1052 1053 call GET_DIM_IDX (print_vector_ptr, next_implied_control_argument_name_identifier, dim_idx); 1054 if dim_idx = -1 1055 then return; 1056 else 1057 do; 1058 implied_control_argument_name_ptr = addr (print_vector.dimension (dim_idx).value); 1059 implied_control_argument_name_length = length (print_vector.dimension (dim_idx).value); 1060 do control_argument_ptr = root_control_argument_ptr repeat (control_argument.next) 1061 while (control_argument.next ^= null & control_argument_name ^= implied_control_argument_name); 1062 end; 1063 if control_argument_name = implied_control_argument_name 1064 then 1065 do; 1066 exists_implied_control_argument = "1"b; 1067 implied_control_argument_ptr = control_argument_ptr; 1068 end; 1069 else 1070 do; 1071 exists_implied_control_argument = "0"b; 1072 implied_control_argument_ptr = null; 1073 end; 1074 end; 1075 end GET_NEXT_IMPLIED_CONTROL_ARGUMENT; 1076 1077 /* Internal routine to close out the current option. This is called 1078* when we run out of arguments for a particular option (either by getting 1079* all the arguments we expect or encountering the next option), or when 1080* there are no more tokens on the command line. */ 1081 1082 CLOSE_OUT_OPTION: 1083 procedure; 1084 1085 if control_argument_ptr = null () 1086 then return; 1087 1088 /* If no explicit value was specified for the argument to this option 1089* then see if there was a default argument value in the definition. */ 1090 1091 if ^arg_info.got_explicit_value 1092 then if arg_info.default_argument_value_ptr ^= null () 1093 then 1094 do; 1095 value_idx = value_idx + 1; 1096 value (value_idx).arg_name_ptr = arg_info.arg_name_ptr; 1097 value (value_idx).arg_name_len = arg_info.arg_name_len; 1098 value (value_idx).arg_ptr = arg_info.default_argument_value_ptr; 1099 value (value_idx).arg_len = arg_info.default_argument_value_len; 1100 1101 max_value_arg_len = max (max_value_arg_len, value (value_idx).arg_len); 1102 end; 1103 1104 call ADD_VALUE_TO_RESULT; 1105 1106 /* If the option that we just processed is the same as the current 1107* implied option, move on to the next implied option */ 1108 if exists_implied_control_argument 1109 then if control_argument_name = implied_control_argument_name 1110 then call GET_NEXT_IMPLIED_CONTROL_ARGUMENT; 1111 1112 return; 1113 end CLOSE_OUT_OPTION; 1114 1115 /* Routine to add the vector for this option (including all argument values) 1116* to the result pva. */ 1117 1118 ADD_VALUE_TO_RESULT: 1119 proc; 1120 1121 dcl temp_value_idx fixed bin; 1122 dcl dim_idx fixed bin; 1123 dcl value_arg_name char (value (temp_value_idx).arg_name_len) 1124 based (value (temp_value_idx).arg_name_ptr); 1125 dcl instance_count_pic pic "999v"; 1126 dcl order_pic pic "999v"; 1127 1128 dcl value_arg char (value (temp_value_idx).arg_len) based (value (temp_value_idx).arg_ptr); 1129 1130 last_arg_idx_processed = arg_idx; 1131 1132 call 1133 vector_util_$append_general_print_vector (p_work_area_ptr, SLOT_INCREASE_FACTOR, "1"b, (-1), value_idx + 4, 1134 max (length (control_argument_name), length (p_command_name), max_value_arg_len), 1135 p_result_print_vector_array_ptr, p_code); 1136 if p_code ^= 0 1137 then 1138 do; 1139 call 1140 sub_err_ (p_code, p_command_name, "h", null, 0, 1141 "^/Unable to add the result vector for the ""^a"" control argument (and 1142 associated arguments) ending with argument number ^d.", control_argument_name, arg_idx); 1143 return; 1144 end; 1145 1146 print_vector_ptr = 1147 p_result_print_vector_array_ptr 1148 -> print_vector_array.vector_slot (p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors); 1149 1150 /* Fill in all the non-argument-value dimensions */ 1151 print_vector.dimension (INSTANCE_DIM_IDX).identifier = result_instance_identifier; 1152 instance_count_pic = global_instance_count; 1153 print_vector.dimension (INSTANCE_DIM_IDX).value = instance_count_pic; 1154 global_instance_count = global_instance_count + 1; 1155 1156 print_vector.dimension (CONTROL_ARGUMENT_NAME_DIM_IDX).identifier = result_control_argument_name_identifier; 1157 print_vector.dimension (CONTROL_ARGUMENT_NAME_DIM_IDX).value = control_argument_name; 1158 1159 /* now set the maximum option name length. */ 1160 p_result_print_vector_array_ptr 1161 -> print_vector_array.dimension_table (result_control_argument_name_identifier).maximum_value_length = 1162 max (p_result_print_vector_array_ptr 1163 -> print_vector_array.dimension_table (result_control_argument_name_identifier).maximum_value_length, 1164 length (control_argument_name)); 1165 1166 p_result_print_vector_array_ptr 1167 -> print_vector_array.dimension_table (result_control_argument_name_identifier).maximum_value_length = 1168 max (p_result_print_vector_array_ptr 1169 -> print_vector_array.dimension_table (result_control_argument_name_identifier).maximum_value_length, 1170 length (control_argument_name)); 1171 1172 print_vector.dimension (COMMAND_NAME_DIM_IDX).identifier = result_command_name_identifier; 1173 print_vector.dimension (COMMAND_NAME_DIM_IDX).value = p_command_name; 1174 print_vector.dimension (RESULT_ORDER_DIM_IDX).identifier = result_order_identifier; 1175 order_pic = p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors; 1176 print_vector.dimension (RESULT_ORDER_DIM_IDX).value = order_pic; 1177 1178 /* Now fill in all the arguments */ 1179 do temp_value_idx = 1 to value_idx; 1180 1181 /* skip over those dims that we already filled in */ 1182 dim_idx = temp_value_idx + NUMBER_OF_NON_ARGUMENT_DIMENSIONS; 1183 1184 call 1185 vector_util_$append_dimension_print (p_work_area_ptr, "0"b, value_arg_name, null, 1186 p_result_print_vector_array_ptr, print_vector.dimension (dim_idx).identifier, p_code); 1187 if p_code ^= 0 1188 then if p_code = vd_error_$dimension_already_defined 1189 then p_code = 0; 1190 else return; 1191 print_vector.dimension (dim_idx).value = value_arg; 1192 1193 /* keep track of longest dimension id */ 1194 p_result_print_vector_array_ptr 1195 -> print_vector_array.dimension_table (print_vector.dimension (dim_idx).identifier).maximum_value_length = 1196 max (p_result_print_vector_array_ptr 1197 -> print_vector_array.dimension_table (print_vector.dimension (dim_idx).identifier).maximum_value_length, 1198 length (value_arg)); 1199 1200 end; 1201 1202 1203 max_value_arg_len = 0; 1204 value_idx = 0; 1205 1206 end ADD_VALUE_TO_RESULT; 1207 1208 /* Routine to set up state information for a an option that has just been 1209* encountered on the command line. */ 1210 1211 SETUP_FIRST_ARG_INFO: 1212 proc (p_control_argument_ptr, p_option_accepts_explicit_argument, p_arg_info_ptr); 1213 dcl p_control_argument_ptr ptr; 1214 dcl p_option_accepts_explicit_argument 1215 bit (1) aligned; 1216 dcl p_arg_info_ptr ptr; 1217 dcl 1 p_arg_info like arg_info based (p_arg_info_ptr); 1218 1219 dcl idx fixed bin; 1220 dcl (temp_print_vector_ptr, temp_excluded_option_ptr) 1221 pointer; 1222 1223 /* First remove any vectors belonging to options that are excluded 1224* by the current option */ 1225 1226 do idx = 1 to p_result_print_vector_array_ptr -> print_vector_array.number_of_vectors; 1227 temp_print_vector_ptr = p_result_print_vector_array_ptr -> print_vector_array.vector_slot (idx); 1228 1229 /* loop through the chain of excluded options, checking the option 1230* names against the option that owns the current vector */ 1231 do temp_excluded_option_ptr = (p_control_argument_ptr -> control_argument.excluded_option_chain) 1232 repeat (temp_excluded_option_ptr -> excluded_option.next_excluded_option) 1233 while ((temp_excluded_option_ptr ^= null ()) 1234 & (p_result_print_vector_array_ptr -> print_vector_array.vector_slot (idx) ^= null ())); 1235 1236 /* If this vector belongs to an excluded option, free it */ 1237 if temp_print_vector_ptr -> print_vector.dimension (1).value 1238 = temp_excluded_option_ptr -> excluded_option.option_name 1239 then 1240 do; 1241 free temp_print_vector_ptr -> print_vector; 1242 p_result_print_vector_array_ptr -> print_vector_array.vector_slot (idx) = null (); 1243 end; 1244 end; 1245 end; 1246 1247 p_arg_info.arg_def_vector_idx = 0; 1248 1249 /* Keep track of how many times we see each control argument */ 1250 p_control_argument_ptr -> control_argument.instance_count = 1251 p_control_argument_ptr -> control_argument.instance_count + 1; 1252 1253 p_arg_info.force_literal = "0"b; 1254 1255 call SETUP_NEXT_ARG_INFO (p_control_argument_ptr, p_option_accepts_explicit_argument, p_arg_info_ptr); 1256 1257 p_option_accepts_explicit_argument = p_control_argument_ptr -> control_argument.accepts_explicit_argument; 1258 1259 end SETUP_FIRST_ARG_INFO; 1260 1261 1262 SETUP_NEXT_ARG_INFO: 1263 proc (p_control_argument_ptr, p_arg_exists, p_arg_info_ptr); 1264 dcl p_control_argument_ptr ptr; 1265 dcl p_arg_exists bit (1) aligned; 1266 dcl p_arg_info_ptr ptr; 1267 dcl 1 p_arg_info like arg_info based (p_arg_info_ptr); 1268 dcl p_arg_name char (p_arg_info.arg_name_len) based (p_arg_info.arg_name_ptr); 1269 dcl local_print_vector_ptr ptr; 1270 dcl temp_dimension_identifier 1271 fixed bin; 1272 dcl dim_idx fixed bin; 1273 dcl p_control_argument_name 1274 char (p_control_argument_ptr -> control_argument.control_argument_name_length) 1275 based (p_control_argument_ptr -> control_argument.control_argument_name_ptr); 1276 1277 if p_arg_info.arg_def_vector_idx ^= 0 1278 then call FIND_NEXT_ARG (p_arg_info.arg_def_vector_idx, local_print_vector_ptr, dim_idx); 1279 else if p_control_argument_ptr -> control_argument.initial_arg_vector_idx = 0 1280 then 1281 do; 1282 arg_exists = "0"b; 1283 return; 1284 end; 1285 else 1286 do; 1287 p_arg_info.arg_def_vector_idx = p_control_argument_ptr -> control_argument.initial_arg_vector_idx; 1288 call SETUP_VECTOR_AND_ARG_NAME_DIM_IDX (p_arg_info.arg_def_vector_idx, local_print_vector_ptr, dim_idx); 1289 end; 1290 if dim_idx = -1 1291 then 1292 do; 1293 p_arg_exists = "0"b; 1294 return; 1295 end; 1296 p_arg_exists = "1"b; 1297 if local_print_vector_ptr = null 1298 then 1299 do; 1300 if p_arg_info.number_of_required_occurences > 0 1301 then p_arg_info.number_of_required_occurences = p_arg_info.number_of_required_occurences - 1; 1302 return; 1303 end; 1304 1305 /* Fill in arg_info structure with data for this argument. */ 1306 1307 p_arg_info.arg_name_ptr = addrel (addr (local_print_vector_ptr -> print_vector.dimension (dim_idx).value), 1); 1308 p_arg_info.arg_name_len = length (local_print_vector_ptr -> print_vector.dimension (dim_idx).value); 1309 1310 call GET_DIM_IDX (local_print_vector_ptr, validation_string_identifier, dim_idx); 1311 if dim_idx > 0 1312 then 1313 do; 1314 p_arg_info.validation_string_ptr = 1315 addrel (addr (local_print_vector_ptr -> print_vector.dimension (dim_idx).value), 1); 1316 p_arg_info.validation_string_length = 1317 length (local_print_vector_ptr -> print_vector.dimension (dim_idx).value); 1318 end; 1319 else p_arg_info.validation_string_ptr = null (); 1320 1321 call GET_DIM_IDX(local_print_vector_ptr, validate_explanation_identifier, dim_idx); 1322 if dim_idx > 0 1323 then p_arg_info.validate_explanation_ptr = addr(local_print_vector_ptr->print_vector.dimension(dim_idx).value); 1324 else p_arg_info.validate_explanation_ptr = null; 1325 1326 call GET_DIM_IDX (local_print_vector_ptr, explanation_identifier, dim_idx); 1327 if dim_idx > 0 1328 then p_arg_info.explanation_ptr = addr (local_print_vector_ptr -> print_vector.dimension (dim_idx).value); 1329 else p_arg_info.explanation_ptr = null; 1330 1331 call GET_DIM_IDX (local_print_vector_ptr, argument_presence_identifier, dim_idx); 1332 1333 /* If there is such a dim, the arg is required. Later we may want a count of 1334* the number of required occurences, but for now it is yes or no. */ 1335 if dim_idx = -1 1336 then p_arg_info.number_of_required_occurences = 0; 1337 else p_arg_info.number_of_required_occurences = 1; 1338 1339 /* If the option was -no_foo, get the negative default value for the 1340* argument, otherwise get the regular default */ 1341 if control_argument.antonym 1342 then temp_dimension_identifier = negative_default_argument_value_identifier; 1343 else temp_dimension_identifier = default_argument_value_identifier; 1344 1345 /* Now try to find the default value for this argument. */ 1346 call GET_DIM_IDX (local_print_vector_ptr, temp_dimension_identifier, dim_idx); 1347 if dim_idx = -1 1348 then p_arg_info.default_argument_value_ptr = null (); 1349 else 1350 do; 1351 p_arg_info.default_argument_value_ptr = 1352 addrel (addr (local_print_vector_ptr -> print_vector.dimension (dim_idx).value), 1); 1353 p_arg_info.default_argument_value_len = 1354 length (local_print_vector_ptr -> print_vector.dimension (dim_idx).value); 1355 end; 1356 1357 call GET_DIM_IDX(local_print_vector_ptr, force_literal_identifier, dim_idx); 1358 p_arg_info.force_literal = (dim_idx ^= -1); 1359 1360 /* This flag is used later to determine if we have seen an explicit value 1361* for this argument on the command line. If not, use the default value*/ 1362 p_arg_info.got_explicit_value = "0"b; 1363 1364 return; 1365 1366 1367 SETUP_VECTOR_AND_ARG_NAME_DIM_IDX: 1368 proc (p_vector_idx, p_print_vector_ptr, p_dim_idx); 1369 dcl p_vector_idx fixed bin; 1370 dcl p_print_vector_ptr ptr; 1371 dcl p_dim_idx fixed bin; 1372 1373 p_print_vector_ptr = p_definition_print_vector_array_ptr -> print_vector_array.vector_slot (p_vector_idx); 1374 call GET_DIM_IDX (p_print_vector_ptr, argument_name_identifier, p_dim_idx); 1375 end SETUP_VECTOR_AND_ARG_NAME_DIM_IDX; 1376 1377 1378 FIND_NEXT_ARG: 1379 proc (p_vector_idx, p_print_vector_ptr, p_dim_idx); 1380 dcl p_vector_idx fixed bin; 1381 dcl p_print_vector_ptr ptr; 1382 dcl p_dim_idx fixed bin; 1383 dcl next_arg_dim_idx fixed bin; 1384 dcl temp_print_vector_ptr ptr; 1385 1386 p_dim_idx = 0; 1387 p_print_vector_ptr = p_definition_print_vector_array_ptr -> print_vector_array.vector_slot (p_vector_idx); 1388 1389 /* No next_argument dimension means use the same argument again. 1390* Returning a null pointer is a convention for this case. */ 1391 call GET_DIM_IDX (p_print_vector_ptr, next_argument_name_identifier, next_arg_dim_idx); 1392 if next_arg_dim_idx = -1 1393 then 1394 do; 1395 p_print_vector_ptr = null; 1396 return; 1397 end; 1398 1399 /* If the next arg is the same as this arg, use the same values */ 1400 else if p_print_vector_ptr -> print_vector.dimension (next_arg_dim_idx).value = p_arg_name 1401 then 1402 do; 1403 p_print_vector_ptr = null (); 1404 return; 1405 end; 1406 1407 /* If there is no next argument at all, indicate that fact. */ 1408 else if p_print_vector_ptr -> print_vector.dimension (next_arg_dim_idx).value = NO_ARGUMENT 1409 then 1410 do; 1411 p_dim_idx = -1; 1412 p_print_vector_ptr = null; 1413 return; 1414 end; 1415 1416 do p_vector_idx = p_control_argument_ptr -> control_argument.first_arg_vector_idx 1417 to p_control_argument_ptr -> control_argument.last_arg_vector_idx; 1418 call SETUP_VECTOR_AND_ARG_NAME_DIM_IDX (p_vector_idx, temp_print_vector_ptr, p_dim_idx); 1419 if p_dim_idx = -1 1420 then call 1421 sub_err_ (error_table_$fatal_error, p_command_name, "h", null, 0, 1422 "^/Vector ^d of the definition is in the argument definition range of vectors 1423 for control argument ""^a"", but does not specify an argument name (as it must).", p_vector_idx, p_control_argument_name) 1424 ; 1425 else if temp_print_vector_ptr -> print_vector.dimension (p_dim_idx).value 1426 = p_print_vector_ptr -> print_vector.dimension (next_arg_dim_idx).value 1427 then 1428 do; 1429 p_print_vector_ptr = temp_print_vector_ptr; 1430 return; 1431 end; 1432 end; 1433 p_code = error_table_$fatal_error; 1434 end FIND_NEXT_ARG; 1435 end SETUP_NEXT_ARG_INFO; 1436 1437 GET_DIM_IDX: 1438 proc (p_print_vector_ptr, p_identifier, p_dim_idx); 1439 dcl p_print_vector_ptr ptr; 1440 dcl p_identifier fixed bin; 1441 dcl p_dim_idx fixed bin; 1442 1443 do p_dim_idx = 1 to p_print_vector_ptr -> print_vector.number_of_dimensions 1444 while (p_print_vector_ptr -> print_vector.dimension (p_dim_idx).identifier ^= p_identifier); 1445 end; 1446 if p_dim_idx > p_print_vector_ptr -> print_vector.number_of_dimensions 1447 then p_dim_idx = -1; 1448 1449 end GET_DIM_IDX; 1450 1451 1452 1453 MISPLACED_CONTROL_ARGUMENT: 1454 proc () returns (bit (1) aligned); 1455 if arg_info_ptr = null 1456 then return ("0"b); 1457 else return ((arg_info.number_of_required_occurences > 0) & ^using_implicit_control_argument 1458 & control_argument_is_in_effect); 1459 end MISPLACED_CONTROL_ARGUMENT; 1460 REPORT_UNRECOGNIZED_CONTROL_ARGUMENT: 1461 proc; 1462 p_code = error_table_$badopt; 1463 call com_err_ (p_code, (command_name_str), """^a""", arg); 1464 end REPORT_UNRECOGNIZED_CONTROL_ARGUMENT; 1465 1466 REPORT_MISSING_ARGUMENT: 1467 proc; 1468 call 1469 com_err_ (error_table_$noarg, (command_name_str), "^/Expected the ""^a"" argument of the ""^a"" control argument.", 1470 arg_name, control_argument_name); 1471 1472 end REPORT_MISSING_ARGUMENT; 1473 1474 REPORT_MISSING_DEFINITION: 1475 proc(code); 1476 1477 dcl code fixed bin(35); 1478 1479 call 1480 com_err_ (code, (command_name_str), 1481 "Unable to locate the argument-processing^/syntax definition for this command."); 1482 1483 end REPORT_MISSING_DEFINITION; 1484 1485 PRINT_EXPLANATION: 1486 proc; 1487 if arg_info.explanation_ptr ^= null 1488 then call ioa_ ("Explanation for the ""^a"" argument of the ^[(implicit)^] ""^a"" option: 1489 ^a", arg_name, using_implicit_control_argument, control_argument_name, arg_explanation); 1490 else call 1491 ioa_ ("There is no explanation provided for the ""^a"" argument of the ^[(implicit)^] ""^a"" option.", 1492 arg_name, using_implicit_control_argument, control_argument_name); 1493 end PRINT_EXPLANATION; 1494 1495 1496 1497 PRINT_VALIDATION_EXPLANATION: proc(); 1498 1499 /* Automatic */ 1500 1501 dcl code fixed bin(35); 1502 1503 if arg_info.validate_explanation_ptr ^= null 1504 then do; 1505 call MAKE_V_SUBSTITUTIONS((validate_explanation), arg_name, arg, active_explanation_nonvarying, active_explanation_length, code); 1506 if code ^= 0 1507 then call sub_err_(code, MY_NAME, ACTION_CANT_RESTART, null, 0, 1508 "^/Unable to make substitutions in the validation explanation:^/""^a"".", 1509 validate_explanation); 1510 else call ioa_((active_explanation)); 1511 end; 1512 1513 end PRINT_VALIDATION_EXPLANATION; 1514 1515 CONVERT_ARGUMENT_ARRAY_TO_LIST: 1516 proc (caatl_p_arg_array, caatl_p_work_area_ptr, caatl_p_arg_list_ptr); 1517 dcl caatl_p_arg_array (*) char (*) varying; 1518 dcl caatl_p_work_area_ptr ptr; 1519 dcl caatl_p_arg_list_ptr ptr; 1520 1521 dcl caatl_al_arg_count fixed bin init (0); 1522 dcl caatl_arg_idx fixed bin init (0); 1523 dcl 1 caatl_arg_descriptor_template 1524 like arg_descriptor; 1525 dcl caatl_arg_descriptor_ptr 1526 ptr init (null); 1527 1528 dcl caatl_work_area area based (caatl_p_work_area_ptr); 1529 dcl 1 caatl_arg_list based (caatl_p_arg_list_ptr), 1530 2 header like arg_list.header, 1531 2 arg_ptrs (caatl_al_arg_count refer (caatl_arg_list.header.arg_count)) ptr, 1532 2 desc_ptrs (caatl_al_arg_count refer (caatl_arg_list.header.arg_count)) ptr; 1533 dcl 1 caatl_arg_descriptor based (caatl_arg_descriptor_ptr) like arg_descriptor; 1534 1535 caatl_p_arg_list_ptr = null; 1536 1537 caatl_al_arg_count = hbound (caatl_p_arg_array, 1); 1538 if caatl_al_arg_count = 1 & caatl_p_arg_array (1) = "" 1539 then return; 1540 1541 alloc caatl_arg_list in (caatl_work_area); 1542 caatl_arg_list.header.pad1 = "0"b; 1543 caatl_arg_list.header.call_type = Interseg_call_type; 1544 caatl_arg_list.header.desc_count = caatl_al_arg_count; 1545 caatl_arg_list.header.pad2 = "0"b; 1546 caatl_arg_descriptor_template.flag = "1"b; 1547 caatl_arg_descriptor_template.type = char_dtype; 1548 caatl_arg_descriptor_template.packed = "0"b; 1549 caatl_arg_descriptor_template.number_dims = 0; 1550 caatl_arg_descriptor_template.size = 0; 1551 1552 do caatl_arg_idx = 1 to caatl_al_arg_count; 1553 caatl_arg_list.arg_ptrs (caatl_arg_idx) = addwordno (addr (caatl_p_arg_array (caatl_arg_idx)), 1); 1554 alloc caatl_arg_descriptor in (caatl_work_area); 1555 caatl_arg_descriptor = caatl_arg_descriptor_template; 1556 caatl_arg_descriptor.size = length (caatl_p_arg_array (caatl_arg_idx)); 1557 caatl_arg_list.desc_ptrs (caatl_arg_idx) = caatl_arg_descriptor_ptr; 1558 end; 1559 1560 end CONVERT_ARGUMENT_ARRAY_TO_LIST; 1561 1562 CONVERT_ARGUMENT_STRING_TO_LIST: 1563 proc (castl_p_arg_string, castl_p_work_area_ptr, castl_p_arg_list_ptr); 1564 dcl castl_p_arg_string char (*) varying; 1565 dcl castl_p_work_area_ptr ptr; 1566 dcl castl_p_arg_list_ptr ptr; 1567 1568 dcl castl_al_arg_count fixed bin init (0); 1569 dcl 1 castl_arg_descriptor_template 1570 like arg_descriptor; 1571 dcl castl_arg_descriptor_ptr 1572 ptr init (null); 1573 dcl castl_arg_link_ptr ptr init (null); 1574 1575 dcl (castl_arg_idx, castl_arg_index, castl_new_arg_index, castl_arg_length, castl_quote_index, 1576 castl_old_quote_index) fixed bin init (0); 1577 dcl (castl_root_arg_link_ptr, castl_old_arg_link_ptr) 1578 ptr init (null); 1579 1580 dcl castl_work_area area based (castl_p_work_area_ptr); 1581 dcl 1 castl_arg_list based (castl_p_arg_list_ptr), 1582 2 header like arg_list.header, 1583 2 arg_ptrs (castl_al_arg_count refer (castl_arg_list.header.arg_count)) ptr, 1584 2 desc_ptrs (castl_al_arg_count refer (castl_arg_list.header.arg_count)) ptr; 1585 dcl 1 castl_arg_descriptor based (castl_arg_descriptor_ptr) like arg_descriptor; 1586 dcl 1 castl_arg_link based (castl_arg_link_ptr), 1587 2 next_ptr ptr, 1588 2 arg_ptr ptr, 1589 2 arg_length fixed bin, 1590 2 desc_ptr ptr; 1591 1592 dcl ( 1593 CASTL_SPACE_CHAR init (" "), 1594 CASTL_TAB_CHAR init (" "), 1595 CASTL_QUOTE_CHAR init ("""") 1596 ) char (1) internal static options (constant); 1597 1598 castl_p_arg_list_ptr = null; 1599 1600 if castl_p_arg_string = "" 1601 then return; 1602 1603 castl_al_arg_count = 0; 1604 1605 castl_arg_descriptor_template.flag = "1"b; 1606 castl_arg_descriptor_template.type = char_dtype; 1607 castl_arg_descriptor_template.packed = "0"b; 1608 castl_arg_descriptor_template.number_dims = 0; 1609 castl_arg_descriptor_template.size = 0; 1610 1611 castl_new_arg_index = 1; 1612 castl_arg_index = 1; 1613 castl_arg_length = 0; 1614 1615 CASTL_PARSE_LOOP: 1616 do while (castl_new_arg_index > 0); 1617 castl_new_arg_index = 1618 verify (substr (castl_p_arg_string, castl_arg_index + castl_arg_length), CASTL_SPACE_CHAR || CASTL_TAB_CHAR); 1619 if castl_new_arg_index > 0 1620 then 1621 CASTL_HAVE_ARG: 1622 do; 1623 castl_arg_index = castl_arg_length + castl_arg_index + castl_new_arg_index - 1; 1624 castl_arg_length = 1625 search (substr (castl_p_arg_string, castl_arg_index), CASTL_SPACE_CHAR || CASTL_TAB_CHAR); 1626 if castl_arg_length = 0 1627 then castl_arg_length = length (castl_p_arg_string) - castl_arg_index + 1; 1628 else castl_arg_length = castl_arg_length - 1; 1629 1630 castl_quote_index = 1631 index (substr (castl_p_arg_string, castl_arg_index, castl_arg_length), CASTL_QUOTE_CHAR); 1632 castl_old_quote_index = castl_arg_index; 1633 1634 CASTL_QUOTE_LOOP: 1635 do while (castl_quote_index > 0); 1636 castl_quote_index = castl_old_quote_index + castl_quote_index; 1637 CASTL_DOUBLE_QUOTE_LOOP: 1638 do while (substr (castl_p_arg_string, castl_quote_index, 1) = CASTL_QUOTE_CHAR); 1639 castl_old_quote_index = castl_quote_index; 1640 castl_quote_index = index (substr (castl_p_arg_string, castl_old_quote_index + 1), CASTL_QUOTE_CHAR); 1641 if castl_quote_index = 0 1642 then call 1643 sub_err_ (error_table_$fatal_error, MY_NAME, ACTION_CANT_RESTART, null, 0, 1644 "^/Unable to process the ^a command. 1645 There is a missing quote character after character ^d, in its argument string: 1646 ^a.", requote_string_ ((p_command_name)), castl_old_quote_index, requote_string_ ((castl_p_arg_string))); 1647 1648 castl_quote_index = castl_old_quote_index + castl_quote_index; 1649 end CASTL_DOUBLE_QUOTE_LOOP; 1650 1651 castl_old_quote_index = castl_quote_index; 1652 castl_quote_index = index (substr (castl_p_arg_string, castl_old_quote_index), CASTL_QUOTE_CHAR); 1653 castl_arg_length = 1654 search (substr (castl_p_arg_string, castl_quote_index + castl_old_quote_index), 1655 CASTL_SPACE_CHAR || CASTL_TAB_CHAR) + castl_quote_index + castl_old_quote_index - 1; 1656 castl_quote_index = 1657 index (substr (castl_p_arg_string, castl_old_quote_index + castl_quote_index, castl_arg_length), 1658 CASTL_QUOTE_CHAR); 1659 end CASTL_QUOTE_LOOP; 1660 1661 castl_old_arg_link_ptr = castl_arg_link_ptr; 1662 alloc castl_arg_link in (castl_work_area); 1663 1664 if castl_old_arg_link_ptr = null 1665 then castl_root_arg_link_ptr = castl_arg_link_ptr; 1666 else castl_old_arg_link_ptr -> castl_arg_link.next_ptr = castl_arg_link_ptr; 1667 1668 castl_arg_link.arg_ptr = addcharno (addwordno (addr (castl_p_arg_string), 1), castl_arg_index - 1); 1669 1670 alloc castl_arg_descriptor in (castl_work_area); 1671 castl_arg_descriptor = castl_arg_descriptor_template; 1672 castl_arg_descriptor.size = castl_arg_length; 1673 1674 castl_arg_link.desc_ptr = castl_arg_descriptor_ptr; 1675 1676 castl_al_arg_count = castl_al_arg_count + 1; 1677 end CASTL_HAVE_ARG; 1678 end CASTL_PARSE_LOOP; 1679 1680 alloc castl_arg_list in (castl_work_area); 1681 castl_arg_list.header.pad1 = "0"b; 1682 castl_arg_list.header.call_type = Interseg_call_type; 1683 castl_arg_list.header.desc_count = castl_al_arg_count; 1684 castl_arg_list.header.pad2 = "0"b; 1685 1686 castl_arg_link_ptr = castl_root_arg_link_ptr; 1687 1688 do castl_arg_idx = 1 to castl_al_arg_count; 1689 1690 castl_arg_list.arg_ptrs (castl_arg_idx) = castl_arg_link.arg_ptr; 1691 castl_arg_list.desc_ptrs (castl_arg_idx) = castl_arg_link.desc_ptr; 1692 1693 castl_old_arg_link_ptr = castl_arg_link_ptr; 1694 castl_arg_link_ptr = castl_arg_link.next_ptr; 1695 free castl_old_arg_link_ptr -> castl_arg_link in (castl_work_area); 1696 1697 end; 1698 1699 end CONVERT_ARGUMENT_STRING_TO_LIST; 1700 1701 1702 /* This procedure takes two lists as input, the validate_result_list 1703* and the validate_result_explanation_list. Each member (node) of 1704* the validate_result_list contains an active function that is 1705* applied to the results of the previous argument processing 1706* (i.e., the information in the result_print_vector_array). 1707* Each member of the validate_result_explanation_list contains 1708* an explanation (error message) that is printed if the result of 1709* evaluating the corresponding validate_result_list_node is "false". 1710* If there is no explanation supplied, a "standard" error message 1711* This procedure returns on the first error encountered after 1712* printing an error message. 1713* 1714* The input lists, validate_result_list and validate_result_explanation_list, 1715* are initialized in "SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST". 1716**/ 1717 1718 VALIDATE_RESULTS: proc(code); 1719 1720 /* Parameter */ 1721 1722 dcl code fixed bin(35); 1723 1724 /* Automatic */ 1725 1726 dcl i fixed bin(35); 1727 dcl result char(5) var; 1728 dcl vr_ptr ptr; 1729 dcl vre_ptr ptr; 1730 dcl vr_ovl_ptr ptr; 1731 dcl vre_ovl_ptr ptr; 1732 1733 /* Based */ 1734 1735 dcl validate_result_explanation char(vre_node.str_len) var based(vre_node.str_ptr); 1736 dcl validate_result_str char(vr_node.str_len) var based(vr_node.str_ptr); 1737 1738 dcl 1 vr_node based(vr_ptr) like node; 1739 dcl 1 vre_node based(vre_ptr) like node; 1740 1741 1742 code = 0; 1743 1744 if validate_result_list_ptr = null 1745 then return; 1746 1747 if validate_result_explanation_list_ptr ^= null 1748 then vre_ptr = validate_result_explanation_list.head_ptr; 1749 else vre_ptr = null; 1750 1751 do vr_ptr = validate_result_list.head_ptr repeat(vr_node.next_ptr) while(vr_ptr ^= null); 1752 1753 call MAKE_VR_SUBSTITUTIONS((validate_result_str), active_string_nonvarying, active_string_length, code); 1754 if code ^= 0 1755 then call sub_err_(code, MY_NAME, ACTION_CANT_RESTART, null, 0, 1756 "^/Unable to make substitutions in the result validation string:^/""^a"".", 1757 validate_result_str); 1758 1759 on active_function_error call PRINT_AF_ERROR_MSG("result validation", (active_string)); 1760 1761 call cu_$evaluate_active_string(null, (active_string), NORMAL_ACTIVE_STRING, result, code); 1762 if code ^= 0 1763 then call sub_err_(code, MY_NAME, ACTION_CANT_RESTART, null, 0, 1764 "^/Unable to evaluate the active string:^/""^a"".", 1765 active_string); 1766 1767 revert active_function_error; 1768 1769 if result ^= "true" 1770 then do; 1771 if vre_ptr ^= null 1772 then do; 1773 call MAKE_VR_SUBSTITUTIONS((validate_result_explanation), active_explanation_nonvarying, 1774 active_explanation_length, code); 1775 if code ^= 0 1776 then call sub_err_(code, MY_NAME, ACTION_CANT_RESTART, null, 0, 1777 "^/Unable to make substitutions in the result validation explanation:^/""^a"".", 1778 validate_result_explanation); 1779 call com_err_(0, (command_name_str), active_explanation); 1780 end; 1781 else call com_err_(0, (command_name_str), "Evaluation of the following" || 1782 "^/result validation active string yields ""false"":^/""^a""." || 1783 "^/No explanation has been provided.", 1784 active_string); 1785 code = error_table_$bad_arg; 1786 return; 1787 end; 1788 1789 if validate_result_explanation_list_ptr ^= null 1790 then do; 1791 if vre_ptr = null 1792 then ; /* End of explanation list. */ 1793 else vre_ptr = vre_node.next_ptr; 1794 end; 1795 1796 end; 1797 1798 call FREE_LIST (validate_result_list_ptr); 1799 call FREE_LIST (validate_result_explanation_list_ptr); 1800 1801 end VALIDATE_RESULTS; 1802 1803 1804 1805 /* This procedure makes substitutions in an input string and returns 1806* the resulting character string. It searches the input string for 1807* occurences of option names framed on the left by "&(" and on the 1808* right by ")". For each such occurence it substitutes the option 1809* value found in the result_print_vector_array. If the 1810* result_print_vector_array contains no such option, the null string 1811* is substituted. 1812**/ 1813 1814 MAKE_VR_SUBSTITUTIONS: proc(initial_vr_str, buffer, n_chars_ret, code); 1815 1816 /* Parameter */ 1817 1818 dcl buffer char(*); 1819 dcl code fixed bin(35); 1820 dcl initial_vr_str char(*); 1821 dcl n_chars_ret fixed bin(21); 1822 1823 /* Automatic */ 1824 1825 dcl begin_looking_pos fixed bin(21); 1826 dcl found_option bit(1); 1827 dcl option_name char(length(initial_vr_str)) var; 1828 dcl search_str_len fixed bin(21); 1829 dcl search_str_pos fixed bin(21); 1830 dcl sub_str char(length(buffer)) var; 1831 dcl temp_buffer char(length(buffer)) var; 1832 1833 /* Based */ 1834 1835 dcl search_str char(search_str_len) based(addcharno(addr(temp_buffer), (search_str_pos - 1) + 4)); /* 4 for str len at beginning of var str. */ 1836 dcl sub_str_len fixed bin(21) based(addr(sub_str)); 1837 dcl sub_str_nonvar char(length(buffer)) based(addwordno(addr(sub_str), 1)); 1838 1839 code = 0; 1840 buffer = ""; 1841 n_chars_ret = 0; 1842 temp_buffer = initial_vr_str; 1843 begin_looking_pos = 1; 1844 1845 call STAR_STR_SEARCH((temp_buffer), LEFT_BOUND_STR, RIGHT_BOUND_STR, begin_looking_pos, search_str_pos, search_str_len); 1846 1847 do while(search_str_pos ^= 0); 1848 1849 option_name = LR_TRIM((search_str), LEFT_BOUND_STR, RIGHT_BOUND_STR); 1850 1851 call process_arguments_$get_option_value(p_result_print_vector_array_ptr, p_work_area_ptr, found_option, 1852 option_name, option_value_list_ptr); 1853 1854 if ^found_option 1855 then sub_str = ""; 1856 else do; 1857 call CV_OPTION_VALUES_TO_STRING(option_value_list_ptr, sub_str_nonvar, sub_str_len, code); 1858 if code ^= 0 1859 then return; 1860 end; 1861 1862 call SUBSTITUTE((temp_buffer),(search_str), (sub_str), search_str_pos, addr(temp_buffer), code); 1863 if code ^= 0 1864 then return; 1865 1866 begin_looking_pos = search_str_pos + sub_str_len; 1867 1868 call STAR_STR_SEARCH((temp_buffer), LEFT_BOUND_STR, RIGHT_BOUND_STR, begin_looking_pos, search_str_pos, search_str_len); 1869 1870 end; 1871 1872 buffer = temp_buffer; 1873 n_chars_ret = length(temp_buffer); 1874 1875 end MAKE_VR_SUBSTITUTIONS; 1876 1877 1878 /* This routine substitutes argument values into a specified character string 1879* and returns the resulting character string. It searches the input string 1880* for occurences of the current argument name framed on the left by "&( 1881* and on the right by ")". For each such occurence it substitutes the 1882* current argument value into the string. 1883**/ 1884 1885 MAKE_V_SUBSTITUTIONS: proc(initial_vr_str, input_arg_name, input_arg_value, buffer, n_chars_ret, code); 1886 1887 /* Parameter */ 1888 1889 dcl buffer char(*); 1890 dcl code fixed bin(35); 1891 dcl initial_vr_str char(*); 1892 dcl input_arg_name char(*); 1893 dcl input_arg_value char(*); 1894 dcl n_chars_ret fixed bin(21); 1895 1896 /* Automatic */ 1897 1898 dcl arg_name char(length(buffer)) var; 1899 dcl begin_looking_pos fixed bin(21); 1900 dcl search_str_len fixed bin(21); 1901 dcl search_str_pos fixed bin(21); 1902 dcl temp_buffer char(length(buffer)) var; 1903 1904 /* Based */ 1905 1906 dcl search_str char(search_str_len) based(addcharno(addr(temp_buffer), (search_str_pos - 1) + 4)); /* 4 for str length at beginning of var str. */ 1907 1908 code = 0; 1909 buffer = ""; 1910 n_chars_ret = 0; 1911 temp_buffer = initial_vr_str; 1912 begin_looking_pos = 1; 1913 1914 call STAR_STR_SEARCH((temp_buffer), LEFT_BOUND_STR, RIGHT_BOUND_STR, begin_looking_pos, search_str_pos, search_str_len); 1915 1916 do while(search_str_pos ^= 0); 1917 1918 arg_name = LR_TRIM(search_str, LEFT_BOUND_STR, RIGHT_BOUND_STR); 1919 1920 if arg_name = input_arg_name 1921 then do; 1922 call SUBSTITUTE((temp_buffer), (search_str), (input_arg_value), search_str_pos, addr(temp_buffer), code); 1923 if code ^= 0 1924 then return; 1925 begin_looking_pos = search_str_pos + length(input_arg_value); 1926 end; 1927 else begin_looking_pos = search_str_pos + search_str_len; 1928 1929 call STAR_STR_SEARCH((temp_buffer), LEFT_BOUND_STR, RIGHT_BOUND_STR, begin_looking_pos, search_str_pos, search_str_len); 1930 1931 end; 1932 1933 buffer = temp_buffer; 1934 n_chars_ret = length(temp_buffer); 1935 1936 end MAKE_V_SUBSTITUTIONS; 1937 1938 1939 /* This procedure searches an input string for occurences of a search string. 1940* The search string has definite sets of characters on the left and right 1941* and a non-deterministic set of characters in the middle. The search 1942* begins at a designated position in the input string, not always at 1943* the beginning. The position of the search string (relative to 1944* the beginning of the input string) and its length are returned. 1945* If the search string is not found, a position and length of 0 are 1946* returned. 1947**/ 1948 1949 STAR_STR_SEARCH: proc(str_to_search, start_str, end_str, initial_begin_looking_pos, search_str_pos, search_str_len); 1950 1951 /* Parameter */ 1952 1953 dcl end_str char(*); 1954 dcl initial_begin_looking_pos fixed bin(21); 1955 dcl search_str_len fixed bin(21); 1956 dcl search_str_pos fixed bin(21); 1957 dcl start_str char(*); 1958 dcl str_to_search char(*); 1959 1960 /* Automatic */ 1961 1962 dcl begin_looking_pos fixed bin(21); 1963 dcl end_str_idx fixed bin(21); 1964 dcl end_str_pos fixed bin(21); 1965 dcl start_str_idx fixed bin(21); 1966 dcl start_str_pos fixed bin(21); 1967 dcl substr_to_search char(length(str_to_search)) var; 1968 1969 1970 search_str_pos = 0; 1971 search_str_len = 0; 1972 1973 begin_looking_pos = initial_begin_looking_pos; 1974 substr_to_search = substr(str_to_search, begin_looking_pos); 1975 1976 start_str_idx = index(substr_to_search, start_str); 1977 if start_str_idx = 0 1978 then return; 1979 1980 start_str_pos = begin_looking_pos + start_str_idx - 1; 1981 1982 begin_looking_pos = start_str_pos + length(start_str); 1983 substr_to_search = substr(str_to_search, begin_looking_pos); 1984 1985 end_str_idx = index(substr_to_search, end_str); 1986 if end_str_idx = 0 1987 then return; 1988 1989 end_str_pos = begin_looking_pos + (end_str_idx - 1) + length(end_str) - 1; 1990 1991 search_str_pos = start_str_pos; 1992 search_str_len = end_str_pos - start_str_pos + 1; 1993 1994 end STAR_STR_SEARCH; 1995 1996 1997 1998 /* This procedure takes a pointer to an option_value_list and returns 1999* all of the values concatenated together separated by spaces in 2000* the buffer provided. 2001**/ 2002 2003 CV_OPTION_VALUES_TO_STRING: proc(ovl_ptr, buffer, n_chars_ret, code); 2004 2005 /* Parameter */ 2006 2007 dcl buffer char(*); 2008 dcl code fixed bin(35); 2009 dcl n_chars_ret fixed bin(21); 2010 dcl ovl_ptr ptr; 2011 2012 /* Automatic */ 2013 2014 dcl i fixed bin; 2015 dcl max_buffer_len fixed bin(21); 2016 dcl option_value_ptr ptr; 2017 dcl temp_buffer char(length(buffer)) var; 2018 dcl work_str char(length(buffer)) var; 2019 2020 /* Based */ 2021 2022 dcl option_value char(sys_info$max_seg_size) var based(option_value_ptr); 2023 2024 2025 code = 0; 2026 buffer = ""; 2027 n_chars_ret = 0; 2028 max_buffer_len = length(buffer); 2029 temp_buffer = ""; 2030 2031 do i = 1 to ovl_ptr->option_value_list.number_of_values; 2032 work_str = temp_buffer; 2033 option_value_ptr = ovl_ptr->option_value_list.value(i).ptr; 2034 if length(requote_string_((option_value))) + length(work_str) + 1 > max_buffer_len 2035 then do; 2036 code = error_table_$smallarg; 2037 return; 2038 end; 2039 if i = 1 2040 then temp_buffer = requote_string_((option_value)); 2041 else temp_buffer = work_str || " " || requote_string_((option_value)); 2042 end; 2043 2044 buffer = temp_buffer; 2045 n_chars_ret = length(temp_buffer); 2046 2047 end CV_OPTION_VALUES_TO_STRING; 2048 2049 2050 2051 /* This function takes an input string, and trims one occurence of given 2052* character strings off the immediate left and immediate right of the input 2053* string. It returns the result. 2054**/ 2055 2056 LR_TRIM: proc(str, lchars, rchars) returns(char(*)); 2057 2058 /* Parameter */ 2059 2060 dcl lchars char(*); 2061 dcl rchars char(*); 2062 dcl str char(*); 2063 2064 /* Automatic */ 2065 2066 dcl new_str char(length(str)) var; 2067 2068 2069 new_str = str; 2070 2071 if index(new_str, lchars) = 1 2072 then new_str = after(new_str, lchars); 2073 2074 if index(reverse(new_str), reverse(rchars)) = 1 2075 then new_str = reverse(after(reverse(new_str), reverse(rchars))); 2076 2077 return((new_str)); 2078 2079 end LR_TRIM; 2080 2081 2082 /* This procedure takes a string that contains an occurence of an "old" 2083* sequence of characters at a specified position in the string, and 2084* replaces the old sequence with a new sequence handing the result 2085* back in a varying character buffer. 2086**/ 2087 2088 (stringrange): 2089 SUBSTITUTE: proc(str, old, new, old_pos, buffer_ptr, code); 2090 2091 /* Parameter */ 2092 2093 dcl buffer_ptr ptr; 2094 dcl code fixed bin(35); 2095 dcl new char(*); 2096 dcl old char(*); 2097 dcl old_pos fixed bin(21); 2098 dcl str char(*); 2099 2100 /* Automatic */ 2101 2102 dcl left_str char(length(buffer)) var; 2103 dcl old_len fixed bin(21); 2104 dcl right_str char(length(buffer)) var; 2105 2106 /* Based */ 2107 2108 dcl buffer char(sys_info$max_seg_size) var based(buffer_ptr); 2109 2110 code = 0; 2111 2112 on stringrange begin; 2113 code = error_table_$smallarg; 2114 goto SUBSTITUTE_RETURN; 2115 end; 2116 2117 old_len = length(old); 2118 2119 left_str = substr(str, 1, old_pos - 1); 2120 right_str = substr(str, old_pos + old_len); 2121 2122 buffer = left_str || new || right_str; 2123 2124 SUBSTITUTE_RETURN: 2125 2126 return; 2127 2128 end SUBSTITUTE; 2129 2130 2131 /* This procedure is called when evaluating an active function and 2132* the active_function_error condition is signalled. It finds the 2133* condition_info set up for active function errors, extracts 2134* and prints the error message. 2135**/ 2136 2137 PRINT_AF_ERROR_MSG: proc(af_user_name, af); 2138 2139 /* Parameter */ 2140 2141 dcl af char(*); 2142 dcl af_user_name char(*); 2143 2144 /* Automatic */ 2145 2146 dcl code fixed bin(35); 2147 dcl stack_ptr ptr; 2148 2149 dcl 1 auto_condition_info aligned like condition_info; 2150 2151 /* Based */ 2152 2153 dcl af_error_msg char(com_af_error_info.errmess_lth) based(com_af_error_info.errmess_ptr); 2154 dcl af_name char(com_af_error_info.name_lth) based(com_af_error_info.name_ptr); 2155 2156 unspec(auto_condition_info) = "0"b; 2157 auto_condition_info.version = condition_info_version_1; 2158 2159 stack_ptr = find_condition_frame_(null); 2160 2161 call find_condition_info_(stack_ptr, addr(auto_condition_info), code); 2162 if code ^= 0 2163 then call sub_err_(code, MY_NAME, ACTION_CANT_RESTART, null, 0, 2164 "^/Unable to obtain an error message for an error that occured while" || 2165 "^/processing the ^a active string:^/""^a"".", 2166 af_user_name, af); 2167 2168 com_af_error_info_ptr = auto_condition_info.info_ptr; 2169 2170 if com_af_error_info.version ^= com_af_error_info_version_3 2171 then call sub_err_(error_table_$unimplemented_version, MY_NAME, ACTION_CANT_RESTART, null, 0, 2172 "^/Unable to obtain the correct version of error information for an error" || 2173 "^/that occured while processing the ^a active string:^/""^a"".", 2174 af_user_name, af); 2175 2176 call sub_err_(error_table_$fatal_error, MY_NAME, ACTION_CANT_RESTART, null, 0, 2177 "^a^/An error occured while processing the ^a active string:^/""^a"".", 2178 af_error_msg, af_user_name, af); 2179 2180 end PRINT_AF_ERROR_MSG; 2181 2182 2183 2184 /* This procedure is called to build and maintain the validate_result_list 2185* and the validate_result_explanation_list. It looks in a given 2186* print_vector for a validate_result_string and validate_result_explanation, 2187* and adds them to the appropriate list if they are found. 2188**/ 2189 2190 SETUP_RESULT_VALIDATION_INFO: proc(pv_ptr, vr_list_ptr, vre_list_ptr); 2191 2192 /* Parameter */ 2193 2194 dcl pv_ptr ptr; 2195 dcl vre_list_ptr ptr; 2196 dcl vr_list_ptr ptr; 2197 2198 call ADD_TO_LIST(pv_ptr, vr_list_ptr, validate_result_identifier); 2199 2200 call ADD_TO_LIST(pv_ptr, vre_list_ptr, validate_result_explanation_identifier); 2201 2202 end SETUP_RESULT_VALIDATION_INFO; 2203 2204 2205 2206 2207 /* This is a list maintenance procedure. It adds a node to a list if 2208* there is a specific dimension value in a given print_vector. 2209**/ 2210 2211 ADD_TO_LIST: proc(pv_ptr, list_ptr, dim_identifier); 2212 2213 /* Parameter */ 2214 2215 dcl dim_identifier fixed bin; 2216 dcl list_ptr ptr; 2217 dcl pv_ptr ptr; 2218 2219 /* Automatic */ 2220 2221 dcl dim_idx fixed bin; 2222 dcl new_node_ptr ptr; 2223 2224 call GET_DIM_IDX(pv_ptr, dim_identifier, dim_idx); 2225 2226 if dim_idx = -1 2227 then return; 2228 2229 call GET_LIST_NODE(list_ptr, new_node_ptr); 2230 2231 new_node_ptr->node.str_len = length(pv_ptr->print_vector.dimension(dim_idx).value); 2232 new_node_ptr->node.str_ptr = addr(pv_ptr->print_vector.dimension(dim_idx).value); 2233 2234 end ADD_TO_LIST; 2235 2236 /* This is a list maintenance procedure. It allocates storage for a node 2237* in a given list, initializes the values in the node, and tacks that node 2238* on to the end of the list. It also initializes the list header if 2239* necessary. 2240**/ 2241 2242 GET_LIST_NODE: proc(list_ptr, new_node_ptr); 2243 2244 /* Parameter */ 2245 2246 dcl list_ptr ptr; 2247 dcl new_node_ptr ptr; 2248 2249 allocate node in(work_area) set(new_node_ptr); 2250 new_node_ptr->node.next_ptr = null; 2251 2252 if list_ptr = null 2253 then do; 2254 allocate list in(work_area) set(list_ptr); 2255 list_ptr->list.head_ptr = new_node_ptr; 2256 list_ptr->list.tail_ptr = new_node_ptr; 2257 end; 2258 else do; 2259 list_ptr->list.tail_ptr->node.next_ptr = new_node_ptr; 2260 list_ptr->list.tail_ptr = new_node_ptr; 2261 end; 2262 2263 end GET_LIST_NODE; 2264 2265 /* This is a list maintenance procedure. I frees up all of the storage 2266* that has been allocated for a list. 2267**/ 2268 2269 FREE_LIST: proc(list_ptr); 2270 2271 /* Parameter */ 2272 2273 dcl list_ptr ptr; 2274 2275 /* Automatic */ 2276 2277 dcl next_node_ptr ptr; 2278 2279 2280 if list_ptr = null 2281 then return; 2282 2283 node_ptr = list_ptr->list.head_ptr; 2284 2285 do while(node_ptr ^= null); 2286 next_node_ptr = node.next_ptr; 2287 free node; 2288 node_ptr = next_node_ptr; 2289 end; 2290 2291 end FREE_LIST; 2292 2293 2294 /* This entry really belongs in vector_util. It is just temporary. 2295**/ 2296 2297 free_print_vector_array: entry(p_print_vector_array_ptr); 2298 2299 /* Parameter */ 2300 2301 dcl p_print_vector_array_ptr ptr; 2302 2303 /* Automatic */ 2304 2305 dcl i fixed bin; 2306 2307 if p_print_vector_array_ptr = null 2308 then return; 2309 2310 print_vector_array_ptr = p_print_vector_array_ptr; 2311 2312 do i = 1 to print_vector_array.number_of_vectors; 2313 print_vector_ptr = print_vector_array.vector_slot(i); 2314 free print_vector; 2315 end; 2316 2317 free print_vector_array; 2318 2319 return; 2320 2321 1 1 /* *********************************************************** 1 2* * * 1 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 1 4* * * 1 5* *********************************************************** */ 1 6 /* BEGIN INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 1 7 /* Written by Matthew C. Pierret, 01/21/82 1 8*Modified: 1 9**/ 1 10 1 11 /* format: style2,ind3 */ 1 12 dcl 1 print_vector_array based (print_vector_array_ptr), 1 13 2 version fixed bin (35), 1 14 2 number_of_dimensions 1 15 fixed bin (17), 1 16 2 maximum_dimension_name_length 1 17 fixed bin (17), 1 18 2 number_of_vectors fixed bin (17), 1 19 2 number_of_vector_slots 1 20 fixed bin (17), 1 21 2 dimension_table (pva_number_of_dimensions refer (print_vector_array.number_of_dimensions)), 1 22 3 name char (pva_maximum_dimension_name_length 1 23 refer (print_vector_array.maximum_dimension_name_length)) varying, 1 24 3 descriptor_ptr ptr, 1 25 3 cv_to_print entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 1 26 3 cv_to_typed entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 1 27 3 maximum_value_length 1 28 fixed bin (17), 1 29 2 vector_slot (pva_number_of_vector_slots refer (print_vector_array.number_of_vector_slots)) ptr; 1 30 1 31 dcl 1 print_vector based (print_vector_ptr), 1 32 2 number_of_dimensions 1 33 fixed bin (17), 1 34 2 maximum_value_length 1 35 fixed bin (35), 1 36 2 dimension (pv_number_of_dimensions refer (print_vector.number_of_dimensions)), 1 37 3 identifier fixed bin (17), 1 38 3 value char (pv_maximum_value_length refer (print_vector.maximum_value_length)) varying; 1 39 1 40 dcl pva_number_of_dimensions 1 41 fixed bin; 1 42 dcl pva_number_of_vector_slots 1 43 fixed bin; 1 44 dcl pva_maximum_dimension_name_length 1 45 fixed bin; 1 46 dcl pv_number_of_dimensions 1 47 fixed bin; 1 48 dcl pv_maximum_value_length 1 49 fixed bin; 1 50 1 51 dcl print_vector_array_ptr ptr; 1 52 dcl print_vector_ptr ptr; 1 53 dcl PRINT_VECTOR_ARRAY_VERSION_2 1 54 fixed bin (35) init (2) internal static options (constant); 1 55 1 56 /* END INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 2322 2323 2 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 2 2* 2 3* James R. Davis 10 May 79 */ 2 4 2 5 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(86-05-15,DGHowe), approve(86-05-15,MCR7375), 2 9* audit(86-07-15,Schroth): 2 10* added command_name_arglist declaration to allow the storage of the 2 11* command name given to the command processor 2 12* END HISTORY COMMENTS */ 2 13 2 14 dcl 1 arg_list aligned based, 2 15 2 header, 2 16 3 arg_count fixed bin (17) unsigned unal, 2 17 3 pad1 bit (1) unal, 2 18 3 call_type fixed bin (18) unsigned unal, 2 19 3 desc_count fixed bin (17) unsigned unal, 2 20 3 pad2 bit (19) unal, 2 21 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 2 22 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 2 23 2 24 2 25 dcl 1 command_name_arglist aligned based, 2 26 2 header, 2 27 3 arg_count fixed bin (17) unsigned unal, 2 28 3 pad1 bit (1) unal, 2 29 3 call_type fixed bin (18) unsigned unal, 2 30 3 desc_count fixed bin (17) unsigned unal, 2 31 3 mbz bit(1) unal, 2 32 3 has_command_name bit(1) unal, 2 33 3 pad2 bit (17) unal, 2 34 2 arg_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 2 35 2 desc_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 2 36 2 name, 2 37 3 command_name_ptr pointer, 2 38 3 command_name_length fixed bin (21); 2 39 2 40 2 41 2 42 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 2 43 2 header, 2 44 3 arg_count fixed bin (17) unsigned unal, 2 45 3 pad1 bit (1) unal, 2 46 3 call_type fixed bin (18) unsigned unal, 2 47 3 desc_count fixed bin (17) unsigned unal, 2 48 3 pad2 bit (19) unal, 2 49 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 2 50 2 envptr ptr, 2 51 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 2 52 2 53 2 54 dcl ( 2 55 Quick_call_type init (0), 2 56 Interseg_call_type init (4), 2 57 Envptr_supplied_call_type 2 58 init (8) 2 59 ) fixed bin (18) unsigned unal int static options (constant); 2 60 2 61 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 2 62* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 2 63* an argument list of the proper size in the user's stack 2 64* 2 65**/ 2 66 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 2324 2325 3 1 /* *********************************************************** 3 2* * * 3 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 3 4* * * 3 5* *********************************************************** */ 3 6 /* BEGIN INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 3 7 3 8 /* Written 03/01/82 by Lindsey Spratt. 3 9*Modified: 3 10*09/23/82 by Lindsey Spratt: Added the append_simple_typed_vector, 3 11* free_typed_vector_array, and free_typed_vector entries. 3 12*07/24/83 by Lindsey Spratt: Added $cv_pva_to_string and $cv_string_to_pva. 3 13**/ 3 14 3 15 /* format: style2,ind3 */ 3 16 dcl vector_util_$display entry (ptr, ptr, fixed bin (35)); 3 17 dcl vector_util_$sort_print 3 18 entry (ptr, ptr, fixed bin (35)); 3 19 3 20 dcl vector_util_$init_print_vector_array 3 21 entry options (variable); 3 22 dcl vector_util_$init_typed_vector_array 3 23 entry options (variable); 3 24 3 25 dcl vector_util_$append_dimension_print 3 26 entry (ptr, bit (1) aligned, char (*), ptr, ptr, fixed bin, fixed bin (35)); 3 27 3 28 dcl vector_util_$append_simple_print_vector 3 29 entry options (variable); 3 30 dcl vector_util_$append_general_print_vector 3 31 entry options (variable); 3 32 3 33 dcl vector_util_$append_simple_typed_vector 3 34 entry options (variable); 3 35 3 36 /* call vector_util_$free_typed_vector_array (work_area_ptr, typed_vector_array_ptr, code) */ 3 37 dcl vector_util_$free_typed_vector_array 3 38 entry (ptr, ptr, fixed bin (35)); 3 39 3 40 /* call vector_util_$free_typed_vector (work_area_ptr,typed_vector_array_ptr,typed_vector_ptr,code) */ 3 41 dcl vector_util_$free_typed_vector 3 42 entry (ptr, ptr, ptr, fixed bin (35)); 3 43 3 44 dcl vector_util_$cv_typed_to_print 3 45 entry (ptr, ptr, ptr, fixed bin (35)); 3 46 dcl vector_util_$cv_any_to_print_dimension 3 47 entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)); 3 48 3 49 dcl vector_util_$cv_pva_to_string 3 50 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 3 51 dcl vector_util_$cv_string_to_pva 3 52 entry (ptr, fixed bin (35), ptr, ptr, fixed bin (35)); 3 53 3 54 dcl vector_util_$err_no_operation 3 55 entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)); 3 56 3 57 /* END INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 3 58 2326 2327 4 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 2328 2329 5 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 5 2* 5 3* James R. Davis 1 Mar 79 */ 5 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 5 5 5 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 5 7 2 flag bit (1) unal, 5 8 2 type fixed bin (6) unsigned unal, 5 9 2 packed bit (1) unal, 5 10 2 number_dims fixed bin (4) unsigned unal, 5 11 2 size fixed bin (24) unsigned unal; 5 12 5 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 5 14 2 flag bit (1) unal, 5 15 2 type fixed bin (6) unsigned unal, 5 16 2 packed bit (1) unal, 5 17 2 number_dims fixed bin (4) unsigned unal, 5 18 2 scale fixed bin (11) unal, 5 19 2 precision fixed bin (12) unsigned unal; 5 20 5 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 5 22 2 flag bit (1) unal, /* = "1"b */ 5 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 5 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 5 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 5 26 2 size bit (24) unal, 5 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 5 28 3 low fixed bin (35), 5 29 3 high fixed bin (35), 5 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 5 31 2 real_type fixed bin (18) unsigned unal, 5 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 5 33 5 34 dcl arg_descriptor_ptr ptr; 5 35 5 36 dcl extended_arg_type fixed bin init (58); 5 37 5 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 2330 2331 6 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 6 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 6 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 6 8* Objects of this type are PASCAL string types. 6 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 6 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 6 11* Added the new C types. 6 12* END HISTORY COMMENTS */ 6 13 6 14 /* This include file defines mnemonic names for the Multics 6 15* standard descriptor types, using both pl1 and cobol terminology. 6 16* PG 780613 6 17* JRD 790530 6 18* JRD 791016 6 19* MBW 810731 6 20* TGO 830614 Add hex types. 6 21* Modified June 83 JMAthane to add PASCAL data types 6 22* TGO 840120 Add float dec extended and generic, float binary generic 6 23**/ 6 24 6 25 dcl (real_fix_bin_1_dtype init (1), 6 26 real_fix_bin_2_dtype init (2), 6 27 real_flt_bin_1_dtype init (3), 6 28 real_flt_bin_2_dtype init (4), 6 29 cplx_fix_bin_1_dtype init (5), 6 30 cplx_fix_bin_2_dtype init (6), 6 31 cplx_flt_bin_1_dtype init (7), 6 32 cplx_flt_bin_2_dtype init (8), 6 33 real_fix_dec_9bit_ls_dtype init (9), 6 34 real_flt_dec_9bit_dtype init (10), 6 35 cplx_fix_dec_9bit_ls_dtype init (11), 6 36 cplx_flt_dec_9bit_dtype init (12), 6 37 pointer_dtype init (13), 6 38 offset_dtype init (14), 6 39 label_dtype init (15), 6 40 entry_dtype init (16), 6 41 structure_dtype init (17), 6 42 area_dtype init (18), 6 43 bit_dtype init (19), 6 44 varying_bit_dtype init (20), 6 45 char_dtype init (21), 6 46 varying_char_dtype init (22), 6 47 file_dtype init (23), 6 48 real_fix_dec_9bit_ls_overp_dtype init (29), 6 49 real_fix_dec_9bit_ts_overp_dtype init (30), 6 50 real_fix_bin_1_uns_dtype init (33), 6 51 real_fix_bin_2_uns_dtype init (34), 6 52 real_fix_dec_9bit_uns_dtype init (35), 6 53 real_fix_dec_9bit_ts_dtype init (36), 6 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 6 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 6 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 6 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 6 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 6 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 6 60 real_flt_dec_4bit_bytealigned_dtype init (44), 6 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 6 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 6 63 real_flt_hex_1_dtype init (47), 6 64 real_flt_hex_2_dtype init (48), 6 65 cplx_flt_hex_1_dtype init (49), 6 66 cplx_flt_hex_2_dtype init (50), 6 67 c_typeref_dtype init (54), 6 68 c_enum_dtype init (55), 6 69 c_enum_const_dtype init (56), 6 70 c_union_dtype init (57), 6 71 algol68_straight_dtype init (59), 6 72 algol68_format_dtype init (60), 6 73 algol68_array_descriptor_dtype init (61), 6 74 algol68_union_dtype init (62), 6 75 6 76 cobol_comp_6_dtype init (1), 6 77 cobol_comp_7_dtype init (1), 6 78 cobol_display_ls_dtype init (9), 6 79 cobol_structure_dtype init (17), 6 80 cobol_char_string_dtype init (21), 6 81 cobol_display_ls_overp_dtype init (29), 6 82 cobol_display_ts_overp_dtype init (30), 6 83 cobol_display_uns_dtype init (35), 6 84 cobol_display_ts_dtype init (36), 6 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 6 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 6 87 cobol_comp_5_uns_dtype init (40), 6 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 6 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 6 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 6 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 6 92 cplx_flt_dec_generic_dtype init (84), 6 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 6 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 6 95 6 96 dcl (ft_integer_dtype init (1), 6 97 ft_real_dtype init (3), 6 98 ft_double_dtype init (4), 6 99 ft_complex_dtype init (7), 6 100 ft_complex_double_dtype init (8), 6 101 ft_external_dtype init (16), 6 102 ft_logical_dtype init (19), 6 103 ft_char_dtype init (21), 6 104 ft_hex_real_dtype init (47), 6 105 ft_hex_double_dtype init (48), 6 106 ft_hex_complex_dtype init (49), 6 107 ft_hex_complex_double_dtype init (50) 6 108 ) fixed bin internal static options (constant); 6 109 6 110 dcl (algol68_short_int_dtype init (1), 6 111 algol68_int_dtype init (1), 6 112 algol68_long_int_dtype init (2), 6 113 algol68_real_dtype init (3), 6 114 algol68_long_real_dtype init (4), 6 115 algol68_compl_dtype init (7), 6 116 algol68_long_compl_dtype init (8), 6 117 algol68_bits_dtype init (19), 6 118 algol68_bool_dtype init (19), 6 119 algol68_char_dtype init (21), 6 120 algol68_byte_dtype init (21), 6 121 algol68_struct_struct_char_dtype init (22), 6 122 algol68_struct_struct_bool_dtype init (20) 6 123 ) fixed bin internal static options (constant); 6 124 6 125 dcl (label_constant_runtime_dtype init (24), 6 126 int_entry_runtime_dtype init (25), 6 127 ext_entry_runtime_dtype init (26), 6 128 ext_procedure_runtime_dtype init (27), 6 129 picture_runtime_dtype init (63) 6 130 ) fixed bin internal static options (constant); 6 131 6 132 dcl (pascal_integer_dtype init (1), 6 133 pascal_real_dtype init (4), 6 134 pascal_label_dtype init (24), 6 135 pascal_internal_procedure_dtype init (25), 6 136 pascal_exportable_procedure_dtype init (26), 6 137 pascal_imported_procedure_dtype init (27), 6 138 pascal_typed_pointer_type_dtype init (64), 6 139 pascal_char_dtype init (65), 6 140 pascal_boolean_dtype init (66), 6 141 pascal_record_file_type_dtype init (67), 6 142 pascal_record_type_dtype init (68), 6 143 pascal_set_dtype init (69), 6 144 pascal_enumerated_type_dtype init (70), 6 145 pascal_enumerated_type_element_dtype init (71), 6 146 pascal_enumerated_type_instance_dtype init (72), 6 147 pascal_user_defined_type_dtype init (73), 6 148 pascal_user_defined_type_instance_dtype init (74), 6 149 pascal_text_file_dtype init (75), 6 150 pascal_procedure_type_dtype init (76), 6 151 pascal_variable_formal_parameter_dtype init (77), 6 152 pascal_value_formal_parameter_dtype init (78), 6 153 pascal_entry_formal_parameter_dtype init (79), 6 154 pascal_parameter_procedure_dtype init (80), 6 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 6 156 6 157 6 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 2332 2333 7 1 /* BEGIN INCLUDE FILE ... cp_active_string_types.incl.pl1 */ 7 2 /* Created: 5 May 1980 by G. Palter */ 7 3 7 4 /* Types of active strings recognized by active string evaluation entries of the Multics command processor */ 7 5 7 6 dcl (DEFAULT_ACTIVE_STRING initial (0), /* default type: same as NORMAL_ACTIVE_STRING */ 7 7 NORMAL_ACTIVE_STRING initial (1), /* normal active string: [...] */ 7 8 TOKENS_ONLY_ACTIVE_STRING initial (2), /* rescan active string for whitespace and quotes: |[...] */ 7 9 ATOMIC_ACTIVE_STRING initial (3)) /* do not rescan anything in value: ||[...] */ 7 10 fixed binary static options (constant); 7 11 7 12 /* END INCLUDE FILE ... cp_active_string_types.incl.pl1 */ 2334 2335 8 1 /* BEGIN INCLUDE FILE - pa_option_value_list.incl.pl1 */ 8 2 8 3 /* DESCRIPTION: 8 4* 8 5* The option_value_list structure is constructed by the 8 6* pa_get_option_value subroutine. It is used to return multiple values for 8 7* a single option. 8 8**/ 8 9 8 10 /* HISTORY: 8 11* 8 12*Written by Lindsey Spratt, 06/12/83. 8 13*Modified: 8 14**/ 8 15 8 16 /* format: style2,ind3 */ 8 17 dcl 1 option_value_list based (option_value_list_ptr) aligned, 8 18 2 version char (8), 8 19 2 number_of_values fixed bin (35), 8 20 2 pad bit (36), 8 21 2 value (ovl_number_of_values refer (option_value_list.number_of_values)), 8 22 3 ptr ptr, 8 23 3 vector_idx fixed bin (35), 8 24 3 pad bit (36); 8 25 8 26 dcl OPTION_VALUE_LIST_VERSION_1 8 27 init ("optvl 01") char (8) internal static options (constant); 8 28 dcl option_value_list_ptr ptr init (null); 8 29 dcl ovl_number_of_values fixed bin (17) init (0); 8 30 8 31 /* END INCLUDE FILE - pa_option_value_list.incl.pl1 */ 2336 2337 9 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 9 2 /* format: style2 */ 9 3 9 4 declare condition_info_header_ptr 9 5 pointer; 9 6 declare 1 condition_info_header 9 7 aligned based (condition_info_header_ptr), 9 8 2 length fixed bin, /* length in words of this structure */ 9 9 2 version fixed bin, /* version number of this structure */ 9 10 2 action_flags aligned, /* tell handler how to proceed */ 9 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 9 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 9 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 9 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 9 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 9 16 3 pad bit (32) unaligned, 9 17 2 info_string char (256) varying, /* may contain printable message */ 9 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 9 19 9 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 2338 2339 10 1 /* BEGIN INCLUDE FILE com_af_error_info.incl.pl1 April 81 BIM */ 10 2 /* format: style2 */ 10 3 10 4 /* info structures for command error and active function error */ 10 5 /* The include file condition_info_header must be included to use this file */ 10 6 10 7 declare com_af_error_info_ptr pointer; 10 8 declare 1 com_af_error_info aligned based (com_af_error_info_ptr), 10 9 2 header aligned like condition_info_header, 10 10 2 name_ptr ptr, 10 11 2 name_lth fixed bin, 10 12 2 errmess_ptr ptr, 10 13 2 errmess_lth fixed bin (21), 10 14 2 max_errmess_lth fixed bin (21), 10 15 2 print_sw bit (1); /* set this to inform com_err_ that the msg has been printed */ 10 16 10 17 declare com_af_error_info_version_3 internal static options (constant) init (3); 10 18 10 19 /* END INCLUDE FILE com_af_error_info */ 2340 2341 11 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 11 2 11 3 /* Structure for find_condition_info_. 11 4* 11 5* Written 1-Mar-79 by M. N. Davidoff. 11 6**/ 11 7 11 8 /* automatic */ 11 9 11 10 declare condition_info_ptr pointer; 11 11 11 12 /* based */ 11 13 11 14 declare 1 condition_info aligned based (condition_info_ptr), 11 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 11 16 2 version fixed binary, /* Must be 1 */ 11 17 2 condition_name char (32) varying, /* name of condition */ 11 18 2 info_ptr pointer, /* pointer to the condition data structure */ 11 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 11 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 11 21 2 flags unaligned, 11 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 11 23 3 pad1 bit (35), 11 24 2 pad2 bit (36), 11 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 11 26 2 pad3 (4) bit (36); 11 27 11 28 /* internal static */ 11 29 11 30 declare condition_info_version_1 11 31 fixed binary internal static options (constant) initial (1); 11 32 11 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 2342 2343 2344 end pa_process_arguments; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1128.7 pa_process_arguments.pl1 >udd>sm>ds>w>ml>pa_process_arguments.pl1 2322 1 02/16/84 1552.5 vu_print_vector_array.incl.pl1 >ldd>incl>vu_print_vector_array.incl.pl1 2324 2 08/05/86 0956.8 arg_list.incl.pl1 >ldd>incl>arg_list.incl.pl1 2326 3 02/16/84 1552.5 vu_entry_dcls.incl.pl1 >ldd>incl>vu_entry_dcls.incl.pl1 2328 4 04/16/82 1058.1 sub_err_flags.incl.pl1 >ldd>incl>sub_err_flags.incl.pl1 2330 5 11/02/83 1945.0 arg_descriptor.incl.pl1 >ldd>incl>arg_descriptor.incl.pl1 2332 6 10/26/88 1355.5 std_descriptor_types.incl.pl1 >ldd>incl>std_descriptor_types.incl.pl1 2334 7 09/22/80 1356.7 cp_active_string_types.incl.pl1 >ldd>incl>cp_active_string_types.incl.pl1 2336 8 02/16/84 1552.4 pa_option_value_list.incl.pl1 >ldd>incl>pa_option_value_list.incl.pl1 2338 9 03/24/82 1447.2 condition_info_header.incl.pl1 >ldd>incl>condition_info_header.incl.pl1 2340 10 06/22/81 1915.3 com_af_error_info.incl.pl1 >ldd>incl>com_af_error_info.incl.pl1 2342 11 06/28/79 1304.8 condition_info.incl.pl1 >ldd>incl>condition_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. ACTION_CANT_RESTART 000637 constant bit(36) initial dcl 4-7 set ref 768* 850* 950* 1506* 1641* 1754* 1762* 1775* 2162* 2170* 2176* ANTONYM_DIM_NAME 000462 constant varying char(64) initial dcl 306 set ref 533* ARGUMENT_NAME_DIM_NAME 000356 constant varying char(64) initial dcl 306 set ref 538* ARGUMENT_PRESENCE_DIM_NAME 000167 constant varying char(64) initial dcl 306 set ref 544* ARGUMENT_VALIDATION_STRING_DIM_NAME 000231 constant varying char(64) initial dcl 306 set ref 545* ARG_PROC_MSG 000000 constant char(21) initial packed unaligned dcl 349 ref 425 CASTL_QUOTE_CHAR 016320 constant char(1) initial packed unaligned dcl 1592 ref 1630 1637 1640 1652 1656 CASTL_SPACE_CHAR constant char(1) initial packed unaligned dcl 1592 ref 1617 1624 1653 CASTL_TAB_CHAR constant char(1) initial packed unaligned dcl 1592 ref 1617 1624 1653 COMMAND_NAME_DIM_IDX constant fixed bin(17,0) initial dcl 351 ref 1172 1173 COMMAND_NAME_DIM_NAME 000545 constant varying char(64) initial dcl 306 set ref 474* 567* CONTROL_ARGUMENT_NAME_DIM_IDX constant fixed bin(17,0) initial dcl 351 ref 1156 1157 CONTROL_ARGUMENT_NAME_DIM_NAME 000524 constant varying char(64) initial dcl 306 set ref 474* 537* 570* DEFAULT_ARGUMENT_VALUE_DIM_NAME 000273 constant varying char(64) initial dcl 306 set ref 541* EXCLUDED_OPTION_DIM_NAME 000441 constant varying char(64) initial dcl 306 set ref 534* EXPLANATION_DIM_NAME 000210 constant varying char(64) initial dcl 306 set ref 536* FORCE_LITERAL_DIM_NAME 000021 constant varying char(64) initial dcl 306 set ref 548* IMPLIED_CONTROL_ARGUMENT_NAME_DIM_NAME 000420 constant varying char(64) initial dcl 306 set ref 535* INITIAL_ARGUMENT_NAME_DIM_NAME 000335 constant varying char(64) initial dcl 306 set ref 539* INSTANCE_DIM_IDX constant fixed bin(17,0) initial dcl 351 ref 1151 1153 INSTANCE_DIM_NAME 000146 constant varying char(64) initial dcl 306 set ref 474* 569* Interseg_call_type constant fixed bin(18,0) initial packed unsigned unaligned dcl 2-54 ref 1543 1682 LEFT_BOUND_STR 000007 constant char(2) initial packed unaligned dcl 347 set ref 1845* 1849* 1868* 1914* 1918* 1929* MY_NAME 000567 constant char(20) initial packed unaligned dcl 293 set ref 768* 850* 950* 1506* 1641* 1754* 1762* 1775* 2162* 2170* 2176* NEGATIVE_VALUE_DIM_NAME 000252 constant varying char(64) initial dcl 306 set ref 542* NEXT_ARGUMENT_NAME_DIM_NAME 000314 constant varying char(64) initial dcl 306 set ref 540* NEXT_IMPLIED_CONTROL_ARGUMENT_NAME_DIM_NAME 000377 constant varying char(64) initial dcl 306 set ref 543* NORMAL_ACTIVE_STRING 000656 constant fixed bin(17,0) initial dcl 7-6 set ref 490* 1008* 1761* NO_ARGUMENT 000010 constant varying char(32) initial dcl 345 set ref 740 741 1408 NUMBER_OF_NON_ARGUMENT_DIMENSIONS constant fixed bin(17,0) initial dcl 294 ref 1182 RESULT_ORDER_DIM_IDX constant fixed bin(17,0) initial dcl 351 ref 1174 1176 RESULT_ORDER_DIM_NAME 000125 constant varying char(64) initial dcl 306 set ref 474* 568* RIGHT_BOUND_STR 000006 constant char(1) initial packed unaligned dcl 348 set ref 1845* 1849* 1868* 1914* 1918* 1929* SLOT_INCREASE_FACTOR 000566 constant fixed bin(17,0) initial dcl 294 set ref 474* 1132* SYNONYM_DIM_NAME 000503 constant varying char(64) initial dcl 306 set ref 532* VALIDATE_EXPLANATION_DIM_NAME 000042 constant varying char(64) initial dcl 306 set ref 549* VALIDATE_RESULT_DIM_NAME 000104 constant varying char(64) initial dcl 306 set ref 546* VALIDATE_RESULT_EXPLANATION_DIM_NAME 000063 constant varying char(64) initial dcl 306 set ref 547* accepts_explicit_argument 17 based bit(1) level 3 packed packed unaligned dcl 201 set ref 723* 736* 742* 760 1257 active_explanation 002202 automatic varying char(4096) dcl 151 set ref 1505 1505 1510 1773 1773 1779* active_explanation_length based fixed bin(21,0) dcl 187 set ref 1505* 1773* active_explanation_nonvarying based char(4096) packed unaligned dcl 191 set ref 1505* 1773* active_function_error 000000 stack reference condition dcl 287 ref 1003 1012 1759 1767 active_string 000201 automatic varying char(4096) dcl 150 set ref 999 999 1008 1753 1753 1759 1761 1762* 1781* active_string_length based fixed bin(21,0) dcl 186 set ref 999* 1753* active_string_nonvarying based char(4096) packed unaligned dcl 189 set ref 999* 1753* addcharno builtin function dcl 283 ref 1668 1849 1862 1918 1922 addr builtin function dcl 283 ref 688 714 734 740 793 999 999 1058 1307 1314 1322 1327 1351 1505 1505 1553 1668 1753 1753 1773 1773 1849 1857 1857 1862 1862 1862 1866 1918 1922 1922 1922 2161 2161 2232 addwordno builtin function dcl 283 ref 999 1505 1553 1668 1753 1773 1857 af parameter char packed unaligned dcl 2141 set ref 2137 2162* 2170* 2176* af_error_msg based char packed unaligned dcl 2153 set ref 2176* af_user_name parameter char packed unaligned dcl 2142 set ref 2137 2162* 2170* 2176* after builtin function dcl 283 ref 2071 2074 antonym 4 004210 automatic bit(1) array level 2 in structure "name_array" dcl 157 in procedure "pa_process_arguments" set ref 694* 915 antonym 17(01) based bit(1) level 3 in structure "control_argument" packed packed unaligned dcl 201 in procedure "pa_process_arguments" set ref 915* 1341 antonym_identifier 000125 automatic fixed bin(17,0) dcl 102 set ref 533* 693* arg based char packed unaligned dcl 198 set ref 832 858 884* 902 991* 999* 1019* 1463* 1505* arg_count based fixed bin(17,0) level 3 in structure "arg_list" packed packed unsigned unaligned dcl 2-14 in procedure "pa_process_arguments" ref 803 816 819 arg_count based fixed bin(17,0) level 3 in structure "caatl_arg_list" packed packed unsigned unaligned dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1541* 1557 arg_count based fixed bin(17,0) level 3 in structure "castl_arg_list" packed packed unsigned unaligned dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1680* 1691 arg_def_vector_idx 14 based fixed bin(17,0) level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1277 1277* 1287* 1288* arg_def_vector_idx 14 based fixed bin(17,0) level 2 in structure "p_arg_info" dcl 1217 in procedure "SETUP_FIRST_ARG_INFO" set ref 1247* arg_descriptor based structure level 1 dcl 5-6 arg_exists 000150 automatic bit(1) dcl 124 set ref 1033* 1034 1282* arg_explanation based varying char dcl 253 set ref 1487* arg_idx 000165 automatic fixed bin(17,0) dcl 141 set ref 816* 818 819 842 861 896* 933* 933 975 1130 1139* arg_info based structure level 1 unaligned dcl 228 set ref 464 808* arg_info_ptr 000176 automatic pointer dcl 148 set ref 464* 808 821 846* 884 884 884 918* 949* 954 965 996 999 999 1027 1028 1033* 1040 1091 1091 1096 1097 1098 1099 1455 1457 1468 1468 1468 1487 1487 1487 1487 1487 1490 1490 1490 1503 1505 1505 1505 1505 1506 arg_len 6 006470 automatic fixed bin(17,0) array level 2 in structure "value" dcl 162 in procedure "pa_process_arguments" set ref 1030* 1099* 1101 1191 1194 arg_len 000172 automatic fixed bin(17,0) dcl 144 in procedure "pa_process_arguments" set ref 819* 832 858 884 884 902 991 991 999 999 1019 1019 1030 1031 1463 1463 1505 1505 arg_list based structure level 1 dcl 2-14 arg_list_ptr 000104 automatic pointer initial dcl 98 set ref 98* 407* 414* 422* 447 503 503* arg_name based char packed unaligned dcl 252 in procedure "pa_process_arguments" set ref 884* 1468* 1487* 1490* 1505* arg_name 000100 automatic varying char dcl 1898 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1918* 1920 arg_name_len 2 006470 automatic fixed bin(17,0) array level 2 in structure "value" dcl 162 in procedure "pa_process_arguments" set ref 1028* 1097* 1184 1184 arg_name_len 2 based fixed bin(17,0) level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1308* 1400 arg_name_len 2 based fixed bin(17,0) level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 884 884 1028 1097 1468 1468 1487 1487 1490 1490 1505 1505 arg_name_ptr based pointer level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1307* 1400 arg_name_ptr based pointer level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 884 1027 1040 1096 1468 1487 1490 1505 arg_name_ptr 006470 automatic pointer array level 2 in structure "value" dcl 162 in procedure "pa_process_arguments" set ref 1027* 1040 1096* 1184 arg_ptr 4 006470 automatic pointer array level 2 in structure "value" dcl 162 in procedure "pa_process_arguments" set ref 1029* 1098* 1191 1194 arg_ptr 000170 automatic pointer dcl 143 in procedure "pa_process_arguments" set ref 818* 832 858 884 902 991 999 1019 1029 1463 1505 arg_ptr 2 based pointer level 2 in structure "castl_arg_link" dcl 1586 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1668* 1690 arg_ptrs 2 based pointer array level 2 in structure "caatl_arg_list" dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1553* arg_ptrs 2 based pointer array level 2 in structure "castl_arg_list" dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1690* arg_ptrs 2 based pointer array level 2 in structure "arg_list" dcl 2-14 in procedure "pa_process_arguments" ref 818 argument_name_identifier 000116 automatic fixed bin(17,0) dcl 102 set ref 538* 639* 1374* argument_presence_identifier 000121 automatic fixed bin(17,0) dcl 102 set ref 544* 1331* auto_condition_info 000104 automatic structure level 1 dcl 2149 set ref 2156* 2161 2161 begin_looking_pos 000100 automatic fixed bin(21,0) dcl 1825 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1843* 1845* 1866* 1868* begin_looking_pos 000100 automatic fixed bin(21,0) dcl 1962 in procedure "STAR_STR_SEARCH" set ref 1973* 1974 1980 1982* 1983 1989 begin_looking_pos 000100 automatic fixed bin(21,0) dcl 1899 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1912* 1914* 1925* 1927* 1929* buffer parameter char packed unaligned dcl 1889 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1885 1898 1902 1909* 1933* buffer based varying char dcl 2108 in procedure "SUBSTITUTE" set ref 2102 2104 2122* buffer parameter char packed unaligned dcl 2007 in procedure "CV_OPTION_VALUES_TO_STRING" set ref 2003 2017 2018 2026* 2028 2044* buffer parameter char packed unaligned dcl 1818 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1814 1830 1831 1840* 1857 1857 1872* buffer_ptr parameter pointer dcl 2093 ref 2088 2102 2104 2122 caatl_al_arg_count 012460 automatic fixed bin(17,0) initial dcl 1521 set ref 1521* 1537* 1538 1541 1541 1541 1544 1552 caatl_arg_descriptor based structure level 1 packed packed unaligned dcl 1533 set ref 1554 1555* caatl_arg_descriptor_ptr 012464 automatic pointer initial dcl 1525 set ref 1525* 1554* 1555 1556 1557 caatl_arg_descriptor_template 012462 automatic structure level 1 packed packed unaligned dcl 1523 set ref 1555 caatl_arg_idx 012461 automatic fixed bin(17,0) initial dcl 1522 set ref 1522* 1552* 1553 1553 1556 1557* caatl_arg_list based structure level 1 unaligned dcl 1529 set ref 1541 caatl_p_arg_array parameter varying char array dcl 1517 set ref 1515 1537 1538 1553 1556 caatl_p_arg_list_ptr parameter pointer dcl 1519 set ref 1515 1535* 1541* 1542 1543 1544 1545 1553 1557 caatl_p_work_area_ptr parameter pointer dcl 1518 ref 1515 1541 1554 caatl_work_area based area(1024) dcl 1528 ref 1541 1554 call_type 0(18) based fixed bin(18,0) level 3 in structure "caatl_arg_list" packed packed unsigned unaligned dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1543* call_type 0(18) based fixed bin(18,0) level 3 in structure "castl_arg_list" packed packed unsigned unaligned dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1682* castl_al_arg_count 012476 automatic fixed bin(17,0) initial dcl 1568 set ref 1568* 1603* 1676* 1676 1680 1680 1680 1683 1688 castl_arg_descriptor based structure level 1 packed packed unaligned dcl 1585 set ref 1670 1671* castl_arg_descriptor_ptr 012500 automatic pointer initial dcl 1571 set ref 1571* 1670* 1671 1672 1674 castl_arg_descriptor_template 012477 automatic structure level 1 packed packed unaligned dcl 1569 set ref 1671 castl_arg_idx 012504 automatic fixed bin(17,0) initial dcl 1575 set ref 1575* 1688* 1690 1691* castl_arg_index 012505 automatic fixed bin(17,0) initial dcl 1575 set ref 1575* 1612* 1617 1623* 1623 1624 1626 1630 1632 1668 castl_arg_length 012507 automatic fixed bin(17,0) initial dcl 1575 set ref 1575* 1613* 1617 1623 1624* 1626 1626* 1628* 1628 1630 1653* 1656 1672 castl_arg_link based structure level 1 unaligned dcl 1586 set ref 1662 1695 castl_arg_link_ptr 012502 automatic pointer initial dcl 1573 set ref 1573* 1661 1662* 1664 1666 1668 1674 1686* 1690 1691 1693 1694* 1694 castl_arg_list based structure level 1 unaligned dcl 1581 set ref 1680 castl_new_arg_index 012506 automatic fixed bin(17,0) initial dcl 1575 set ref 1575* 1611* 1615 1617* 1619 1623 castl_old_arg_link_ptr 012514 automatic pointer initial dcl 1577 set ref 1577* 1661* 1664 1666 1693* 1695 castl_old_quote_index 012511 automatic fixed bin(17,0) initial dcl 1575 set ref 1575* 1632* 1636 1639* 1640 1641* 1648 1651* 1652 1653 1653 1656 castl_p_arg_list_ptr parameter pointer dcl 1566 set ref 1562 1598* 1680* 1681 1682 1683 1684 1690 1691 castl_p_arg_string parameter varying char dcl 1564 set ref 1562 1600 1617 1624 1626 1630 1637 1640 1641 1652 1653 1656 1668 castl_p_work_area_ptr parameter pointer dcl 1565 ref 1562 1662 1670 1680 1695 castl_quote_index 012510 automatic fixed bin(17,0) initial dcl 1575 set ref 1575* 1630* 1634 1636* 1636 1637 1639 1640* 1641 1648* 1648 1651 1652* 1653 1653 1656* 1656 castl_root_arg_link_ptr 012512 automatic pointer initial dcl 1577 set ref 1577* 1664* 1686 castl_work_area based area(1024) dcl 1580 ref 1662 1670 1680 1695 char_dtype constant fixed bin(17,0) initial dcl 6-25 ref 1547 1606 code parameter fixed bin(35,0) dcl 2094 in procedure "SUBSTITUTE" set ref 2088 2110* 2113* code parameter fixed bin(35,0) dcl 1890 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1885 1908* 1922* 1923 code 012450 automatic fixed bin(35,0) dcl 1501 in procedure "PRINT_VALIDATION_EXPLANATION" set ref 1505* 1506 1506* code 000100 automatic fixed bin(35,0) dcl 2146 in procedure "PRINT_AF_ERROR_MSG" set ref 2161* 2162 2162* code parameter fixed bin(35,0) dcl 1819 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1814 1839* 1857* 1858 1862* 1863 code parameter fixed bin(35,0) dcl 1477 in procedure "REPORT_MISSING_DEFINITION" set ref 1474 1479* code parameter fixed bin(35,0) dcl 2008 in procedure "CV_OPTION_VALUES_TO_STRING" set ref 2003 2025* 2036* code parameter fixed bin(35,0) dcl 1722 in procedure "VALIDATE_RESULTS" set ref 1718 1742* 1753* 1754 1754* 1761* 1762 1762* 1773* 1775 1775* 1785* com_af_error_info based structure level 1 dcl 10-8 com_af_error_info_ptr 012206 automatic pointer dcl 10-7 set ref 2168* 2170 2176 2176 2176 com_af_error_info_version_3 constant fixed bin(17,0) initial dcl 10-17 ref 2170 com_err_ 000014 constant entry external dcl 367 ref 451 458 884 991 1019 1463 1468 1479 1779 1781 command_name_str 012131 automatic varying char(86) initial dcl 170 set ref 170* 425* 451 458 884 991 1019 1463 1468 1479 1779 1781 condition_info based structure level 1 dcl 11-14 condition_info_header based structure level 1 dcl 9-6 condition_info_version_1 constant fixed bin(17,0) initial dcl 11-30 ref 2157 control_argument based structure level 1 unaligned dcl 201 set ref 703 control_argument_is_in_effect 000152 automatic bit(1) initial dcl 127 set ref 127* 809* 821 837 856* 925* 926 965 987 1034* 1036 1457 control_argument_name based char packed unaligned dcl 225 set ref 627 768* 850* 884* 950* 1019* 1060 1063 1108 1132 1132 1139* 1157 1160 1166 1468* 1487* 1490* control_argument_name_dim_id 000140 automatic fixed bin(17,0) dcl 115 set ref 597* 605 607* 608 618 714 716 control_argument_name_identifier 000113 automatic fixed bin(17,0) dcl 102 set ref 537* 783* control_argument_name_length 10 based fixed bin(17,0) level 2 dcl 201 set ref 627 716* 768 768 850 850 884 884 950 950 1019 1019 1060 1063 1108 1132 1132 1139 1139 1157 1160 1166 1419 1419 1468 1468 1487 1487 1490 1490 control_argument_name_ptr 6 based pointer level 2 dcl 201 set ref 627 714* 768 850 884 950 1019 1060 1063 1108 1132 1132 1139 1157 1160 1166 1419 1468 1487 1490 control_argument_ptr 000174 automatic pointer dcl 147 set ref 596* 612 627 627 627 632 643 645 648 649 661 662 689 701 703* 704 705 706 708 712 714 716 719 720 721 722 723 736 742 747 748 755 758 760 760 760 768 768 768 768 813* 845* 846* 850 850 850 884 884 884 911* 915 918* 946 949* 950 950 950 1019 1019 1019 1033* 1050 1060* 1060 1060 1060* 1062 1063 1063 1067 1085 1108 1108 1132 1132 1132 1132 1139 1139 1139 1157 1157 1160 1160 1166 1166 1341 1468 1468 1468 1487 1487 1487 1490 1490 1490 cu_$evaluate_active_string 000032 constant entry external dcl 379 ref 490 1008 1761 decode_descriptor_ 000020 constant entry external dcl 369 ref 819 def_ptr 2 004210 automatic pointer array level 2 dcl 157 set ref 689* 911 default_arg_list_ptr 000106 automatic pointer initial dcl 98 set ref 98* 497* 498* default_argument_value_identifier 000131 automatic fixed bin(17,0) dcl 102 set ref 541* 1343 default_argument_value_len 20 based fixed bin(17,0) level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 1099 default_argument_value_len 20 based fixed bin(17,0) level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1353* default_argument_value_ptr 16 based pointer level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1347* 1351* default_argument_value_ptr 16 based pointer level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 1091 1098 default_linear_form_string 010130 automatic varying char(4096) initial dcl 168 set ref 168* 444* 445 447 487 490 490* 497* desc_count 1 based fixed bin(17,0) level 3 in structure "caatl_arg_list" packed packed unsigned unaligned dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1544* desc_count 1 based fixed bin(17,0) level 3 in structure "castl_arg_list" packed packed unsigned unaligned dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1683* desc_ptr 6 based pointer level 2 dcl 1586 set ref 1674* 1691 desc_ptrs based pointer array level 2 in structure "caatl_arg_list" dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1557* desc_ptrs based pointer array level 2 in structure "arg_list" dcl 2-14 in procedure "pa_process_arguments" set ref 819* desc_ptrs based pointer array level 2 in structure "castl_arg_list" dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1691* dim_identifier parameter fixed bin(17,0) dcl 2215 set ref 2211 2224* dim_idx 000110 automatic fixed bin(17,0) dcl 100 in procedure "pa_process_arguments" set ref 730* 731 734 735 1053* 1054 1058 1059 dim_idx 012302 automatic fixed bin(17,0) dcl 681 in procedure "ADD_SYNONYM" set ref 683* 684 688 693* 694 dim_idx 000103 automatic fixed bin(17,0) dcl 1272 in procedure "SETUP_NEXT_ARG_INFO" set ref 1277* 1288* 1290 1307 1308 1310* 1311 1314 1316 1321* 1322 1322 1326* 1327 1327 1331* 1335 1346* 1347 1351 1353 1357* 1358 dim_idx 012266 automatic fixed bin(17,0) dcl 591 in procedure "SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST" set ref 639* 640 643 654* 655 658 660 dim_idx 012534 automatic fixed bin(17,0) dcl 2221 in procedure "ADD_TO_LIST" set ref 2224* 2226 2231 2232 dim_idx 012334 automatic fixed bin(17,0) dcl 788 in procedure "SETUP_IMPLIED_CONTROL_ARGUMENT" set ref 789* 791 793 794 dim_idx 000101 automatic fixed bin(17,0) dcl 1122 in procedure "ADD_VALUE_TO_RESULT" set ref 1182* 1184 1191 1194 1194 dimension 2 based structure array level 2 unaligned dcl 1-31 dimension_table 6 based structure array level 2 unaligned dcl 1-12 end_str parameter char packed unaligned dcl 1953 ref 1949 1985 1989 end_str_idx 000101 automatic fixed bin(21,0) dcl 1963 set ref 1985* 1986 1989 end_str_pos 000102 automatic fixed bin(21,0) dcl 1964 set ref 1989* 1992 errmess_lth 114 based fixed bin(21,0) level 2 dcl 10-8 ref 2176 2176 errmess_ptr 112 based pointer level 2 dcl 10-8 ref 2176 error_table_$bad_arg 000054 external static fixed bin(35,0) dcl 398 ref 870 990 1017 1785 error_table_$badopt 000052 external static fixed bin(35,0) dcl 397 ref 1462 error_table_$fatal_error 000046 external static fixed bin(35,0) dcl 394 set ref 768* 850* 950* 1419* 1433 1641* 2176* error_table_$noarg 000040 external static fixed bin(35,0) dcl 390 set ref 883 957 969 1468* error_table_$smallarg 000056 external static fixed bin(35,0) dcl 399 ref 2036 2113 error_table_$unimplemented_version 000060 external static fixed bin(35,0) dcl 400 set ref 2170* excluded_option based structure level 1 dcl 257 set ref 659 excluded_option_chain 4 based pointer level 2 dcl 201 set ref 661 662* 719* 1231 excluded_option_identifier 000133 automatic fixed bin(17,0) dcl 102 set ref 534* 654* excluded_option_name_length 012172 automatic fixed bin(17,0) dcl 262 set ref 658* 659 659 exists_implied_control_argument 000153 automatic bit(1) initial dcl 129 set ref 129* 600* 633* 837 1066* 1071* 1108 explanation_identifier 000122 automatic fixed bin(17,0) dcl 102 set ref 536* 1326* explanation_ptr 4 based pointer level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1327* 1329* explanation_ptr 4 based pointer level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 1487 1487 extended_arg_type 012200 automatic fixed bin(17,0) initial dcl 5-36 set ref 5-36* find_condition_frame_ 000034 constant entry external dcl 381 ref 2159 find_condition_info_ 000036 constant entry external dcl 382 ref 2161 first_arg_idx 000102 automatic fixed bin(17,0) initial dcl 97 set ref 97* 408* 415* 423* 503* first_arg_vector_idx 11 based fixed bin(17,0) level 2 dcl 201 set ref 645 648* 721* 760 1416 first_argument_name based char packed unaligned dcl 197 set ref 643 768* first_argument_name_len 000162 automatic fixed bin(17,0) dcl 137 set ref 643 735* 741* 768 768 first_argument_name_ptr 000160 automatic pointer dcl 135 set ref 643 734* 740* 768 flag 012477 automatic bit(1) level 2 in structure "castl_arg_descriptor_template" packed packed unaligned dcl 1569 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1605* flag 012462 automatic bit(1) level 2 in structure "caatl_arg_descriptor_template" packed packed unaligned dcl 1523 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1546* flags 21 based structure level 2 in structure "arg_info" packed packed unaligned dcl 228 in procedure "pa_process_arguments" flags 17 based structure level 2 in structure "control_argument" packed packed unaligned dcl 201 in procedure "pa_process_arguments" flags 21 based structure level 2 in structure "p_arg_info" packed packed unaligned dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" flags 21 based structure level 2 in structure "p_arg_info" packed packed unaligned dcl 1217 in procedure "SETUP_FIRST_ARG_INFO" force_interpretation_as_non_control_argument 000173 automatic bit(1) initial dcl 145 set ref 145* 805* 821* 821 832 836* force_literal 21(01) based bit(1) level 3 in structure "arg_info" packed packed unaligned dcl 228 in procedure "pa_process_arguments" set ref 821 force_literal 21(01) based bit(1) level 3 in structure "p_arg_info" packed packed unaligned dcl 1217 in procedure "SETUP_FIRST_ARG_INFO" set ref 1253* force_literal 21(01) based bit(1) level 3 in structure "p_arg_info" packed packed unaligned dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1358* force_literal_identifier 012170 automatic fixed bin(17,0) dcl 177 set ref 548* 1357* found_option 000101 automatic bit(1) packed unaligned dcl 1826 set ref 1851* 1854 global_instance_count 000163 automatic fixed bin(17,0) initial dcl 139 set ref 139* 1152 1154* 1154 got_explicit_value 21 based bit(1) level 3 in structure "p_arg_info" packed packed unaligned dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1362* got_explicit_value 21 based bit(1) level 3 in structure "arg_info" packed packed unaligned dcl 228 in procedure "pa_process_arguments" set ref 1091 head_ptr based pointer level 2 in structure "list" dcl 271 in procedure "pa_process_arguments" set ref 2255* 2283 head_ptr based pointer level 2 in structure "validate_result_explanation_list" dcl 269 in procedure "pa_process_arguments" ref 1747 head_ptr based pointer level 2 in structure "validate_result_list" dcl 267 in procedure "pa_process_arguments" ref 1751 header based structure level 2 in structure "arg_list" dcl 2-14 in procedure "pa_process_arguments" header based structure level 2 in structure "caatl_arg_list" packed packed unaligned dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" header based structure level 2 in structure "castl_arg_list" packed packed unaligned dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" header based structure level 2 in structure "com_af_error_info" dcl 10-8 in procedure "pa_process_arguments" i 012173 automatic fixed bin(17,0) dcl 2305 in procedure "pa_process_arguments" set ref 2312* 2313* i 000100 automatic fixed bin(17,0) dcl 2014 in procedure "CV_OPTION_VALUES_TO_STRING" set ref 2031* 2033 2039* identifier 2 based fixed bin(17,0) array level 3 dcl 1-31 set ref 1151* 1156* 1172* 1174* 1184* 1194 1194 1443 idx 012374 automatic fixed bin(17,0) dcl 1219 set ref 1226* 1227 1231 1242* implied_control_argument_name based varying char dcl 194 ref 627 1060 1063 1108 implied_control_argument_name_identifier 000112 automatic fixed bin(17,0) dcl 102 set ref 535* 789* implied_control_argument_name_length 000156 automatic fixed bin(17,0) dcl 133 set ref 794* 1059* implied_control_argument_name_ptr 000154 automatic pointer dcl 131 set ref 598* 627 627 793* 1058* 1060 1063 1108 implied_control_argument_ptr 000134 automatic pointer dcl 110 set ref 599* 632* 845 1067* 1072* index builtin function dcl 283 ref 832 1630 1640 1652 1656 1976 1985 2071 2074 info_ptr 14 000104 automatic pointer level 2 dcl 2149 set ref 2168 initial_arg_vector_idx 13 based fixed bin(17,0) level 2 dcl 201 set ref 643* 720* 760* 768 1279 1287 initial_argument_name_identifier 000117 automatic fixed bin(17,0) dcl 102 set ref 539* 730* initial_begin_looking_pos parameter fixed bin(21,0) dcl 1954 ref 1949 1973 initial_vr_str parameter char packed unaligned dcl 1891 in procedure "MAKE_V_SUBSTITUTIONS" ref 1885 1911 initial_vr_str parameter char packed unaligned dcl 1820 in procedure "MAKE_VR_SUBSTITUTIONS" ref 1814 1827 1842 input_arg_name parameter char packed unaligned dcl 1892 ref 1885 1920 input_arg_value parameter char packed unaligned dcl 1893 ref 1885 1922 1925 instance_count 15 based fixed bin(17,0) level 2 dcl 201 set ref 747* 946 1250* 1250 instance_count_pic 000102 automatic picture(3) packed unaligned dcl 1125 set ref 1152* 1153 instances_required 16 based fixed bin(17,0) level 2 dcl 201 set ref 748* ioa_ 000016 constant entry external dcl 368 ref 1487 1490 1510 ioa_$rsnnl 000010 constant entry external dcl 363 ref 999 last_arg_idx_processed 000101 automatic fixed bin(17,0) initial dcl 96 set ref 96* 804* 842 861* 896 975 1130* last_arg_vector_idx 12 based fixed bin(17,0) level 2 dcl 201 set ref 649* 722* 758* 1416 lchars parameter char packed unaligned dcl 2060 ref 2056 2071 2071 left_str 000100 automatic varying char dcl 2102 set ref 2119* 2122 length builtin function dcl 283 ref 483 658 716 735 741 794 1059 1132 1132 1132 1132 1160 1166 1194 1308 1316 1353 1556 1626 1827 1830 1831 1857 1857 1873 1898 1902 1925 1934 1967 1982 1989 2017 2018 2028 2034 2034 2045 2066 2102 2104 2117 2231 list based structure level 1 unaligned dcl 271 set ref 2254 list_ptr parameter pointer dcl 2273 in procedure "FREE_LIST" ref 2269 2280 2283 list_ptr parameter pointer dcl 2246 in procedure "GET_LIST_NODE" set ref 2242 2252 2254* 2255 2256 2259 2260 list_ptr parameter pointer dcl 2216 in procedure "ADD_TO_LIST" set ref 2211 2229* local_print_vector_ptr 000100 automatic pointer dcl 1269 set ref 1277* 1288* 1297 1307 1308 1310* 1314 1316 1321* 1322 1326* 1327 1331* 1346* 1351 1353 1357* max_buffer_len 000101 automatic fixed bin(21,0) dcl 2015 set ref 2028* 2034 max_value_arg_len 000111 automatic fixed bin(17,0) dcl 101 set ref 807* 1031* 1031 1101* 1101 1132 1132 1203* maximum_dimension_name_length 2 based fixed bin(17,0) level 2 dcl 1-12 ref 483 483 483 513 519 519 557 557 579 579 782 1050 1146 1160 1160 1160 1160 1160 1160 1166 1166 1166 1166 1166 1166 1194 1194 1194 1194 1194 1194 1227 1231 1242 1373 1387 2313 2317 maximum_value_length based fixed bin(17,0) array level 3 in structure "print_vector_array" dcl 1-12 in procedure "pa_process_arguments" set ref 483* 1160* 1160 1166* 1166 1194* 1194 maximum_value_length 1 based fixed bin(35,0) level 2 in structure "print_vector" dcl 1-31 in procedure "pa_process_arguments" ref 618 618 618 618 643 643 658 658 660 660 688 688 714 714 716 716 734 734 735 735 793 793 794 794 1058 1058 1059 1059 1151 1151 1153 1153 1153 1156 1156 1157 1157 1157 1172 1172 1173 1173 1173 1174 1174 1176 1176 1176 1184 1184 1191 1191 1191 1194 1194 1194 1194 1237 1237 1241 1307 1307 1308 1308 1314 1314 1316 1316 1322 1322 1327 1327 1351 1351 1353 1353 1400 1400 1408 1408 1425 1425 1425 1425 1443 1443 2231 2231 2232 2232 2314 n_chars_ret parameter fixed bin(21,0) dcl 2009 in procedure "CV_OPTION_VALUES_TO_STRING" set ref 2003 2027* 2045* n_chars_ret parameter fixed bin(21,0) dcl 1894 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1885 1910* 1934* n_chars_ret parameter fixed bin(21,0) dcl 1821 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1814 1841* 1873* name 6 based varying char array level 3 dcl 1-12 ref 557 579 name_array 004210 automatic structure array level 1 unaligned dcl 157 name_array_count 004206 automatic fixed bin(17,0) initial dcl 155 set ref 155* 687* 687 688 689 694 902 904 name_array_idx 000200 automatic fixed bin(17,0) dcl 149 set ref 902* 902* 904 911 915 name_array_name based varying char(256) dcl 184 ref 902 name_ptr 004210 automatic pointer array level 2 dcl 157 set ref 688* 902 nargs 000166 automatic fixed bin(17,0) dcl 142 set ref 803* negative_default_argument_value_identifier 000132 automatic fixed bin(17,0) dcl 102 set ref 542* 1341 new parameter char packed unaligned dcl 2095 ref 2088 2122 new_node_ptr 012536 automatic pointer dcl 2222 in procedure "ADD_TO_LIST" set ref 2229* 2231 2232 new_node_ptr parameter pointer dcl 2247 in procedure "GET_LIST_NODE" set ref 2242 2249* 2250 2255 2256 2259 2260 new_str 000100 automatic varying char dcl 2066 set ref 2069* 2071 2071* 2071 2074 2074* 2074 2077 next based pointer level 2 dcl 201 set ref 704* 708* 1060 1062 next_arg_dim_idx 000120 automatic fixed bin(17,0) dcl 1383 set ref 1391* 1392 1400 1408 1425 next_argument_name_identifier 000120 automatic fixed bin(17,0) dcl 102 set ref 540* 1391* next_excluded_option based pointer level 2 dcl 257 set ref 661* 1244 next_implied_control_argument_name_identifier 000114 automatic fixed bin(17,0) dcl 102 set ref 543* 1053* next_node_ptr 000124 automatic pointer dcl 2277 set ref 2286* 2288 next_ptr 4 based pointer level 2 in structure "node" dcl 275 in procedure "pa_process_arguments" set ref 2250* 2259* 2286 next_ptr 4 based pointer level 2 in structure "vr_node" dcl 1738 in procedure "VALIDATE_RESULTS" ref 1796 next_ptr 4 based pointer level 2 in structure "vre_node" dcl 1739 in procedure "VALIDATE_RESULTS" ref 1793 next_ptr based pointer level 2 in structure "castl_arg_link" dcl 1586 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1666* 1694 node based structure level 1 unaligned dcl 275 set ref 2249 2287 node_ptr 012166 automatic pointer dcl 176 set ref 2283* 2285 2286 2287 2288* null builtin function dcl 283 ref 98 98 429 430 447 465 467 490 490 503 513 2307 8-28 595 596 598 599 601 602 612 627 704 706 719 755 768 768 813 850 850 950 950 996 1008 1008 1060 1072 1085 1091 1139 1139 1184 1184 1231 1231 1242 1297 1319 1324 1329 1347 1395 1403 1412 1419 1419 1455 1487 1503 1506 1506 1525 1535 1571 1573 1577 1577 1598 1641 1641 1664 1744 1747 1749 1751 1754 1754 1761 1761 1762 1762 1771 1775 1775 1789 1791 2159 2159 2162 2162 2170 2170 2176 2176 2250 2252 2280 2285 number_dims 0(08) 012462 automatic fixed bin(4,0) level 2 in structure "caatl_arg_descriptor_template" packed packed unsigned unaligned dcl 1523 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1549* number_dims 0(08) 012477 automatic fixed bin(4,0) level 2 in structure "castl_arg_descriptor_template" packed packed unsigned unaligned dcl 1569 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1608* number_of_dimensions 1 based fixed bin(17,0) level 2 in structure "print_vector_array" dcl 1-12 in procedure "pa_process_arguments" ref 513 519 519 557 561 579 583 782 1050 1146 1227 1231 1242 1373 1387 2313 2317 number_of_dimensions based fixed bin(17,0) level 2 in structure "print_vector" dcl 1-31 in procedure "pa_process_arguments" ref 1241 1443 1446 2314 number_of_required_occurences 15 based fixed bin(17,0) level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 954 965 1457 number_of_required_occurences 15 based fixed bin(17,0) level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1300 1300* 1300 1335* 1337* number_of_values 2 based fixed bin(35,0) level 2 dcl 8-17 ref 2031 number_of_vector_slots 4 based fixed bin(17,0) level 2 dcl 1-12 ref 2317 number_of_vectors 3 based fixed bin(17,0) level 2 dcl 1-12 set ref 512 516* 516 518 604 1146 1175 1226 2312 old parameter char packed unaligned dcl 2096 ref 2088 2117 old_control_argument_name_dim_id 000141 automatic fixed bin(17,0) dcl 117 set ref 605* 618 old_control_argument_ptr 000144 automatic pointer dcl 120 set ref 701* 705 706 708 old_len 000100 automatic fixed bin(21,0) dcl 2103 set ref 2117* 2120 old_pos parameter fixed bin(21,0) dcl 2097 ref 2088 2119 2120 old_print_vector_ptr 000142 automatic pointer dcl 119 set ref 606* 618 option_accepts_explicit_argument 000151 automatic bit(1) dcl 125 set ref 811* 846* 850 918* 925 949* 950 option_name 3 based char level 2 in structure "excluded_option" dcl 257 in procedure "pa_process_arguments" set ref 660* 1237 option_name 000102 automatic varying char dcl 1827 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1849* 1851* option_name_length 2 based fixed bin(17,0) level 2 dcl 257 set ref 659* 660 1237 option_value based varying char dcl 2022 ref 2034 2039 2041 option_value_list based structure level 1 dcl 8-17 option_value_list_ptr 012202 automatic pointer initial dcl 8-28 set ref 8-28* 1851* 1857* option_value_ptr 000102 automatic pointer dcl 2016 set ref 2033* 2034 2039 2041 order_pic 000103 automatic picture(3) packed unaligned dcl 1126 set ref 1175* 1176 ovl_number_of_values 012204 automatic fixed bin(17,0) initial dcl 8-29 set ref 8-29* ovl_ptr parameter pointer dcl 2010 ref 2003 2031 2033 p_arg_array parameter varying char array dcl 83 set ref 404 407* p_arg_exists parameter bit(1) dcl 1265 set ref 1262 1293* 1296* p_arg_info based structure level 1 unaligned dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" p_arg_info based structure level 1 unaligned dcl 1217 in procedure "SETUP_FIRST_ARG_INFO" p_arg_info_ptr parameter pointer dcl 1216 in procedure "SETUP_FIRST_ARG_INFO" set ref 1211 1247 1253 1255* p_arg_info_ptr parameter pointer dcl 1266 in procedure "SETUP_NEXT_ARG_INFO" ref 1262 1277 1277 1287 1288 1300 1300 1300 1307 1308 1314 1316 1319 1322 1324 1327 1329 1335 1337 1347 1351 1353 1358 1362 1400 1400 p_arg_list_ptr parameter pointer dcl 81 ref 419 422 p_arg_name based char packed unaligned dcl 1268 ref 1400 p_arg_processing_mode parameter fixed bin(17,0) dcl 80 ref 404 411 419 p_arg_string parameter varying char dcl 84 set ref 411 414* p_code parameter fixed bin(35,0) dcl 90 in procedure "pa_process_arguments" set ref 404 411 419 433* 436 439* 444* 445 447 450* 454 454* 456 458* 474* 478 490* 493 498* 499 503* 506 526* 1132* 1136 1139* 1184* 1187 1187 1187* 1433* 1462* 1463* p_code parameter fixed bin(35,0) dcl 983 in procedure "PROCESS_ARGUMENT" set ref 980 990* 991* 1008* 1009 1017* 1019* p_command_name parameter char packed unaligned dcl 79 set ref 404 411 419 425 433 444 458* 483 1132 1132 1139* 1173 1419* 1641 p_control_argument_name based char packed unaligned dcl 1273 set ref 1419* p_control_argument_name_dim_id parameter fixed bin(17,0) dcl 780 set ref 776 783* p_control_argument_ptr parameter pointer dcl 1264 in procedure "SETUP_NEXT_ARG_INFO" ref 1262 1279 1287 1416 1416 1419 1419 1419 p_control_argument_ptr parameter pointer dcl 1213 in procedure "SETUP_FIRST_ARG_INFO" set ref 1211 1231 1250 1250 1255* 1257 p_definition_print_vector_array_ptr parameter pointer dcl 85 set ref 404 411 419 430 433* 557 557 561 604 782 1050 1373 1387 p_dim_idx parameter fixed bin(17,0) dcl 1382 in procedure "FIND_NEXT_ARG" set ref 1378 1386* 1411* 1418* 1419 1425 p_dim_idx parameter fixed bin(17,0) dcl 1371 in procedure "SETUP_VECTOR_AND_ARG_NAME_DIM_IDX" set ref 1367 1374* p_dim_idx parameter fixed bin(17,0) dcl 1441 in procedure "GET_DIM_IDX" set ref 1437 1443* 1443* 1446 1446* p_dim_name parameter varying char dcl 555 ref 553 557 p_dimension_name parameter varying char dcl 576 ref 573 579 p_first_arg_idx parameter fixed bin(17,0) dcl 82 ref 419 423 p_identifier parameter fixed bin(17,0) dcl 577 in procedure "SET_RESULT_ID" set ref 573 579* 579* 583 583* p_identifier parameter fixed bin(17,0) dcl 1440 in procedure "GET_DIM_IDX" ref 1437 1443 p_identifier parameter fixed bin(17,0) dcl 556 in procedure "SET_ID" set ref 553 557* 557* 561 561* p_option_accepts_explicit_argument parameter bit(1) dcl 1214 set ref 1211 1255* 1257* p_print_vector_array_ptr parameter pointer dcl 2301 ref 2297 2307 2310 p_print_vector_ptr parameter pointer dcl 1370 in procedure "SETUP_VECTOR_AND_ARG_NAME_DIM_IDX" set ref 1367 1373* 1374* p_print_vector_ptr parameter pointer dcl 1381 in procedure "FIND_NEXT_ARG" set ref 1378 1387* 1391* 1395* 1400 1403* 1408 1412* 1425 1429* p_print_vector_ptr parameter pointer dcl 779 in procedure "SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID" set ref 776 782* 783* p_print_vector_ptr parameter pointer dcl 1439 in procedure "GET_DIM_IDX" ref 1437 1443 1443 1446 p_result_print_vector_array_ptr parameter pointer dcl 88 set ref 404 411 419 429* 467 474* 483 512 513 516 516 518 519 519 579 579 583 1132* 1146 1146 1160 1160 1166 1166 1175 1184* 1194 1194 1226 1227 1231 1242 1851* p_vector_idx parameter fixed bin(17,0) dcl 1380 in procedure "FIND_NEXT_ARG" set ref 1378 1387 1416* 1418* 1419* p_vector_idx parameter fixed bin(17,0) dcl 1369 in procedure "SETUP_VECTOR_AND_ARG_NAME_DIM_IDX" ref 1367 1373 p_vector_idx parameter fixed bin(17,0) dcl 778 in procedure "SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID" ref 776 782 p_work_area_ptr parameter pointer dcl 87 set ref 404 407* 411 414* 419 433* 464 474* 497* 659 703 1132* 1184* 1851* 2249 2254 packed 0(07) 012462 automatic bit(1) level 2 in structure "caatl_arg_descriptor_template" packed packed unaligned dcl 1523 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1548* packed 0(07) 012477 automatic bit(1) level 2 in structure "castl_arg_descriptor_template" packed packed unaligned dcl 1569 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1607* pad1 0(17) based bit(1) level 3 in structure "castl_arg_list" packed packed unaligned dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1681* pad1 0(17) based bit(1) level 3 in structure "caatl_arg_list" packed packed unaligned dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1542* pad2 1(17) based bit(19) level 3 in structure "caatl_arg_list" packed packed unaligned dcl 1529 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1545* pad2 1(17) based bit(19) level 3 in structure "castl_arg_list" packed packed unaligned dcl 1581 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1684* pal_p_arg_list_ptr parameter pointer dcl 799 ref 797 803 816 818 819 pal_p_code parameter fixed bin(35,0) dcl 801 set ref 797 869* 870 875 883* 884* 957* 969* pal_p_first_arg_idx parameter fixed bin(17,0) dcl 800 ref 797 803 804 816 previous 2 based pointer level 2 dcl 201 set ref 705* print_vector based structure level 1 unaligned dcl 1-31 set ref 1241 2314 print_vector_array based structure level 1 unaligned dcl 1-12 set ref 2317 print_vector_array_ptr 012174 automatic pointer dcl 1-51 set ref 465* 2310* 2312 2313 2317 print_vector_ptr 012176 automatic pointer dcl 1-52 set ref 595* 606 607* 618 639* 643 654* 658 660 670* 683* 688 693* 714 716 730* 734 735 789* 793 794 1050* 1053* 1058 1059 1146* 1151 1153 1156 1157 1172 1173 1174 1176 1184 1191 1194 1194 2313* 2314 process_arguments_$get_default_linear_form 000026 constant entry external dcl 375 ref 444 process_arguments_$get_definition 000024 constant entry external dcl 373 ref 433 process_arguments_$get_option_value 000030 constant entry external dcl 377 ref 1851 ptr 4 based pointer array level 3 dcl 8-17 ref 2033 pv_ptr parameter pointer dcl 2194 in procedure "SETUP_RESULT_VALIDATION_INFO" set ref 2190 2198* 2200* pv_ptr parameter pointer dcl 2217 in procedure "ADD_TO_LIST" set ref 2211 2224* 2231 2232 rchars parameter char packed unaligned dcl 2061 ref 2056 2074 2074 requote_string_ 000022 constant entry external dcl 372 ref 490 884 884 884 999 999 1019 1019 1641 1641 2034 2039 2041 result 000100 automatic varying char(5) dcl 1727 in procedure "VALIDATE_RESULTS" set ref 1761* 1769 result 004203 automatic varying char(5) dcl 152 in procedure "pa_process_arguments" set ref 1008* 1014 result_command_name_identifier 000127 automatic fixed bin(17,0) dcl 102 set ref 471* 483 567* 1172 result_control_argument_name_identifier 000115 automatic fixed bin(17,0) dcl 102 set ref 470* 570* 1156 1160 1160 1166 1166 result_instance_identifier 000126 automatic fixed bin(17,0) dcl 102 set ref 472* 569* 1151 result_order_identifier 000130 automatic fixed bin(17,0) dcl 102 set ref 473* 568* 1174 reverse builtin function dcl 283 ref 2074 2074 2074 2074 2074 right_str 000101 automatic varying char dcl 2104 set ref 2120* 2122 root_control_argument_ptr 000146 automatic pointer dcl 122 set ref 706* 1060 rtrim builtin function dcl 283 ref 425 search_str based char packed unaligned dcl 1835 in procedure "MAKE_VR_SUBSTITUTIONS" ref 1849 1862 search_str based char packed unaligned dcl 1906 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1918* 1922 search_str_len parameter fixed bin(21,0) dcl 1955 in procedure "STAR_STR_SEARCH" set ref 1949 1971* 1992* search_str_len 000101 automatic fixed bin(21,0) dcl 1900 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1914* 1918 1918 1922 1927 1929* search_str_len 000102 automatic fixed bin(21,0) dcl 1828 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1845* 1849 1862 1868* search_str_pos 000102 automatic fixed bin(21,0) dcl 1901 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1914* 1916 1918 1922 1922* 1925 1927 1929* search_str_pos parameter fixed bin(21,0) dcl 1956 in procedure "STAR_STR_SEARCH" set ref 1949 1970* 1991* search_str_pos 000103 automatic fixed bin(21,0) dcl 1829 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1845* 1847 1849 1862 1862* 1866 1868* size 0(12) based fixed bin(24,0) level 2 in structure "caatl_arg_descriptor" packed packed unsigned unaligned dcl 1533 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1556* size 0(12) 012477 automatic fixed bin(24,0) level 2 in structure "castl_arg_descriptor_template" packed packed unsigned unaligned dcl 1569 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1609* size 0(12) based fixed bin(24,0) level 2 in structure "castl_arg_descriptor" packed packed unsigned unaligned dcl 1585 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1672* size 0(12) 012462 automatic fixed bin(24,0) level 2 in structure "caatl_arg_descriptor_template" packed packed unsigned unaligned dcl 1523 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1550* stack_ptr 000102 automatic pointer dcl 2147 set ref 2159* 2161* start_str parameter char packed unaligned dcl 1957 ref 1949 1976 1982 start_str_idx 000103 automatic fixed bin(21,0) dcl 1965 set ref 1976* 1977 1980 start_str_pos 000104 automatic fixed bin(21,0) dcl 1966 set ref 1980* 1982 1991 1992 str parameter char packed unaligned dcl 2062 in procedure "LR_TRIM" ref 2056 2066 2069 str parameter char packed unaligned dcl 2098 in procedure "SUBSTITUTE" ref 2088 2119 2120 str_len based fixed bin(21,0) level 2 in structure "node" dcl 275 in procedure "pa_process_arguments" set ref 2231* str_len based fixed bin(21,0) level 2 in structure "vre_node" dcl 1739 in procedure "VALIDATE_RESULTS" ref 1775 str_len based fixed bin(21,0) level 2 in structure "vr_node" dcl 1738 in procedure "VALIDATE_RESULTS" ref 1754 str_ptr 2 based pointer level 2 in structure "node" dcl 275 in procedure "pa_process_arguments" set ref 2232* str_ptr 2 based pointer level 2 in structure "vre_node" dcl 1739 in procedure "VALIDATE_RESULTS" ref 1773 1775 str_ptr 2 based pointer level 2 in structure "vr_node" dcl 1738 in procedure "VALIDATE_RESULTS" ref 1753 1754 str_to_search parameter char packed unaligned dcl 1958 ref 1949 1967 1974 1983 stringrange 000000 stack reference condition dcl 289 ref 2112 sub_err_ 000012 constant entry external dcl 366 ref 768 850 950 1139 1419 1506 1641 1754 1762 1775 2162 2170 2176 sub_str 000104 automatic varying char dcl 1830 set ref 1854* 1857 1857 1862 1866 sub_str_len based fixed bin(21,0) dcl 1836 set ref 1857* 1866 sub_str_nonvar based char packed unaligned dcl 1837 set ref 1857* substr builtin function dcl 283 ref 1617 1624 1630 1637 1640 1652 1653 1656 1974 1983 2119 2120 substr_to_search 000105 automatic varying char dcl 1967 set ref 1974* 1976 1983* 1985 synonym_identifier 000123 automatic fixed bin(17,0) dcl 102 set ref 532* 683* sys_info$max_seg_size 000050 external static fixed bin(35,0) dcl 396 ref 1487 1506 2122 tail_ptr 2 based pointer level 2 dcl 271 set ref 2256* 2259 2260* temp_buffer 000103 automatic varying char dcl 1902 in procedure "MAKE_V_SUBSTITUTIONS" set ref 1911* 1914 1918 1922 1922 1922 1922 1929 1933 1934 temp_buffer 000104 automatic varying char dcl 2017 in procedure "CV_OPTION_VALUES_TO_STRING" set ref 2029* 2032 2039* 2041* 2044 2045 temp_buffer 000104 automatic varying char dcl 1831 in procedure "MAKE_VR_SUBSTITUTIONS" set ref 1842* 1845 1849 1862 1862 1862 1862 1868 1872 1873 temp_dimension_identifier 000102 automatic fixed bin(17,0) dcl 1270 set ref 1341* 1343* 1346* temp_excluded_option_ptr 012400 automatic pointer dcl 1220 set ref 1231* 1231* 1237* 1244 temp_idx 000137 automatic fixed bin(17,0) dcl 113 set ref 518* 519 519* temp_print_vector_ptr 012376 automatic pointer dcl 1220 in procedure "SETUP_FIRST_ARG_INFO" set ref 1227* 1237 1241 temp_print_vector_ptr 000122 automatic pointer dcl 1384 in procedure "FIND_NEXT_ARG" set ref 1418* 1425 1429 temp_ptr 012270 automatic pointer dcl 592 set ref 659* 660 661 662 temp_value_idx 000100 automatic fixed bin(17,0) dcl 984 in procedure "PROCESS_ARGUMENT" set ref 1040* 1040* 1042 temp_value_idx 000100 automatic fixed bin(17,0) dcl 1121 in procedure "ADD_VALUE_TO_RESULT" set ref 1179* 1182 1184 1184 1184 1191 1191 1194 1194* type 0(01) 012477 automatic fixed bin(6,0) level 2 in structure "castl_arg_descriptor_template" packed packed unsigned unaligned dcl 1569 in procedure "CONVERT_ARGUMENT_STRING_TO_LIST" set ref 1606* type 0(01) 012462 automatic fixed bin(6,0) level 2 in structure "caatl_arg_descriptor_template" packed packed unsigned unaligned dcl 1523 in procedure "CONVERT_ARGUMENT_ARRAY_TO_LIST" set ref 1547* unspec builtin function dcl 283 set ref 808* 2156* using_implicit_control_argument 000100 automatic bit(1) initial dcl 94 set ref 94* 810* 856* 899* 938 1457 1487* 1490* validate_explanation based varying char dcl 255 set ref 1505 1506* validate_explanation_identifier 012171 automatic fixed bin(17,0) dcl 178 set ref 549* 1321* validate_explanation_ptr 12 based pointer level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 1503 1505 1506 validate_explanation_ptr 12 based pointer level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1322* 1324* validate_result_explanation based varying char dcl 1735 set ref 1773 1775* validate_result_explanation_identifier 012161 automatic fixed bin(17,0) dcl 172 set ref 547* 2200* validate_result_explanation_list based structure level 1 unaligned dcl 269 validate_result_explanation_list_ptr 012164 automatic pointer dcl 174 set ref 602* 670* 1747 1747 1789 1799* validate_result_identifier 012160 automatic fixed bin(17,0) dcl 171 set ref 546* 2198* validate_result_list based structure level 1 unaligned dcl 267 validate_result_list_ptr 012162 automatic pointer dcl 173 set ref 601* 670* 1744 1751 1798* validate_result_str based varying char dcl 1736 set ref 1753 1754* validation_string based char packed unaligned dcl 254 ref 999 validation_string_identifier 000124 automatic fixed bin(17,0) dcl 102 set ref 545* 1310* validation_string_length 10 based fixed bin(17,0) level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1316* validation_string_length 10 based fixed bin(17,0) level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 999 validation_string_ptr 6 based pointer level 2 in structure "arg_info" dcl 228 in procedure "pa_process_arguments" set ref 996 999 validation_string_ptr 6 based pointer level 2 in structure "p_arg_info" dcl 1267 in procedure "SETUP_NEXT_ARG_INFO" set ref 1314* 1319* value 3 based varying char array level 3 in structure "print_vector" dcl 1-31 in procedure "pa_process_arguments" set ref 618 618 643 658 660 688 714 716 734 735 793 794 1058 1059 1153* 1157* 1173* 1176* 1191* 1237 1307 1308 1314 1316 1322 1327 1351 1353 1400 1408 1425 1425 2231 2232 value 006470 automatic structure array level 1 unaligned dcl 162 in procedure "pa_process_arguments" value 4 based structure array level 2 in structure "option_value_list" dcl 8-17 in procedure "pa_process_arguments" value_arg based char packed unaligned dcl 1128 ref 1191 1194 value_arg_name based char packed unaligned dcl 1123 set ref 1184* value_idx 000164 automatic fixed bin(17,0) initial dcl 140 set ref 140* 806* 1026* 1026 1027 1028 1029 1030 1040 1042 1095* 1095 1096 1097 1098 1099 1101 1132 1179 1204* vd_error_$dimension_already_defined 000042 external static fixed bin(35,0) dcl 391 ref 1187 vd_error_$no_vector 000044 external static fixed bin(35,0) dcl 393 ref 447 450 454 vector_idx 14 based fixed bin(17,0) level 2 in structure "control_argument" dcl 201 in procedure "pa_process_arguments" set ref 627 712* 1050 vector_idx 000136 automatic fixed bin(17,0) dcl 112 in procedure "pa_process_arguments" set ref 512* 513 518 522* 522* 604* 607* 627 643 648 649* 712 758 vector_slot based pointer array level 2 dcl 1-12 set ref 513 519* 519 782 1050 1146 1227 1231 1242* 1373 1387 2313 vector_util_$append_dimension_print 000064 constant entry external dcl 3-25 ref 1184 vector_util_$append_general_print_vector 000066 constant entry external dcl 3-30 ref 1132 vector_util_$init_print_vector_array 000062 constant entry external dcl 3-20 ref 474 version 1 based fixed bin(17,0) level 3 in structure "com_af_error_info" dcl 10-8 in procedure "pa_process_arguments" ref 2170 version 2 000104 automatic fixed bin(17,0) level 2 in structure "auto_condition_info" dcl 2149 in procedure "PRINT_AF_ERROR_MSG" set ref 2157* vr_list_ptr parameter pointer dcl 2196 set ref 2190 2198* vr_node based structure level 1 unaligned dcl 1738 vr_ptr 000104 automatic pointer dcl 1728 set ref 1751* 1751* 1753 1754 1754* 1796 vre_list_ptr parameter pointer dcl 2195 set ref 2190 2200* vre_node based structure level 1 unaligned dcl 1739 vre_ptr 000106 automatic pointer dcl 1729 set ref 1747* 1749* 1771 1773 1775 1775 1791 1793* 1793 work_area based area dcl 265 ref 464 659 703 2249 2254 work_str 000104 automatic varying char dcl 2018 set ref 2032* 2034 2041 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 ATOMIC_ACTIVE_STRING internal static fixed bin(17,0) initial dcl 7-6 DEFAULT_ACTIVE_STRING internal static fixed bin(17,0) initial dcl 7-6 DEFAULT_LINEAR_FORM_DIM_NAME internal static varying char(64) initial dcl 306 Envptr_supplied_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 2-54 MENU_MODE internal static fixed bin(17,0) initial dcl 294 NO_MODE internal static fixed bin(17,0) initial dcl 294 OPTION_VALUE_LIST_VERSION_1 internal static char(8) initial packed unaligned dcl 8-26 PRINT_VECTOR_ARRAY_VERSION_2 internal static fixed bin(35,0) initial dcl 1-53 PROCESS_ARGUMENTS_SEARCH_LIST_NAME internal static char(17) initial packed unaligned dcl 303 PROMPT_MODE internal static fixed bin(17,0) initial dcl 294 Quick_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 2-54 RETRY_LIMIT internal static fixed bin(17,0) initial dcl 294 TOKENS_ONLY_ACTIVE_STRING internal static fixed bin(17,0) initial dcl 7-6 af_name based char packed unaligned dcl 2154 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 6-25 area_dtype internal static fixed bin(17,0) initial dcl 6-25 arg_char_array based char(1) array packed unaligned dcl 199 arg_descriptor_ptr automatic pointer dcl 5-34 arg_list_with_envptr based structure level 1 dcl 2-42 based_real_fix_bin_1u based fixed bin(35,0) packed unaligned dcl 182 bit_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 6-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 6-25 c_union_dtype internal static fixed bin(17,0) initial dcl 6-25 cleanup 000000 stack reference condition dcl 288 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 6-25 command_name_arglist based structure level 1 dcl 2-25 condition_info_header_ptr automatic pointer dcl 9-4 condition_info_ptr automatic pointer dcl 11-10 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cv_dec_check_ 000000 constant entry external dcl 365 define_area_ 000000 constant entry external dcl 383 entry_dtype internal static fixed bin(17,0) initial dcl 6-25 error_table_$asynch_change external static fixed bin(35,0) dcl 388 expand_pathname_ 000000 constant entry external dcl 371 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 extended_arg_descriptor based structure level 1 dcl 5-21 file_dtype internal static fixed bin(17,0) initial dcl 6-25 fixed_arg_descriptor based structure level 1 dcl 5-13 ft_char_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 6-96 i automatic fixed bin(35,0) dcl 1726 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_dtype internal static fixed bin(17,0) initial dcl 6-25 list_ptr automatic pointer dcl 175 offset_dtype internal static fixed bin(17,0) initial dcl 6-25 option_presence_identifier automatic fixed bin(17,0) dcl 102 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 pointer_dtype internal static fixed bin(17,0) initial dcl 6-25 process_arguments_$argument_string 000000 constant entry external dcl 360 pv_maximum_value_length automatic fixed bin(17,0) dcl 1-48 pv_number_of_dimensions automatic fixed bin(17,0) dcl 1-46 pva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 1-44 pva_number_of_dimensions automatic fixed bin(17,0) dcl 1-40 pva_number_of_vector_slots automatic fixed bin(17,0) dcl 1-42 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_vector_count automatic fixed bin(17,0) dcl 114 release_area_ 000000 constant entry external dcl 384 search_paths_$get 000000 constant entry external dcl 370 structure_dtype internal static fixed bin(17,0) initial dcl 6-25 varying_bit_dtype internal static fixed bin(17,0) initial dcl 6-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 6-25 vector_util_$append_simple_print_vector 000000 constant entry external dcl 3-28 vector_util_$append_simple_typed_vector 000000 constant entry external dcl 3-33 vector_util_$cv_any_to_print_dimension 000000 constant entry external dcl 3-46 vector_util_$cv_pva_to_string 000000 constant entry external dcl 3-49 vector_util_$cv_string_to_pva 000000 constant entry external dcl 3-51 vector_util_$cv_typed_to_print 000000 constant entry external dcl 3-44 vector_util_$display 000000 constant entry external dcl 3-16 vector_util_$err_no_operation 000000 constant entry external dcl 3-54 vector_util_$free_typed_vector 000000 constant entry external dcl 3-41 vector_util_$free_typed_vector_array 000000 constant entry external dcl 3-37 vector_util_$init_typed_vector_array 000000 constant entry external dcl 3-22 vector_util_$sort_print 000000 constant entry external dcl 3-17 vr_ovl_ptr automatic pointer dcl 1730 vre_ovl_ptr automatic pointer dcl 1731 NAMES DECLARED BY EXPLICIT CONTEXT. ADD_SYNONYM 003711 constant entry internal dcl 679 ref 666 ADD_TO_LIST 015537 constant entry internal dcl 2211 ref 2198 2200 ADD_VALUE_TO_RESULT 006173 constant entry internal dcl 1118 ref 1042 1104 ARG_LOOP 004375 constant label dcl 816 CASTL_DOUBLE_QUOTE_LOOP 011404 constant label dcl 1637 CASTL_HAVE_ARG 011333 constant label dcl 1619 CASTL_PARSE_LOOP 011302 constant label dcl 1615 CASTL_QUOTE_LOOP 011377 constant label dcl 1634 CLOSE_OUT_CONTROL_ARGUMENT_DEFINITION 004140 constant entry internal dcl 752 ref 622 675 CLOSE_OUT_OPTION 006105 constant entry internal dcl 1082 ref 842 896 926 975 1036 CONTROL_ARGUMENT 005004 constant label dcl 892 CONVERT_ARGUMENT_ARRAY_TO_LIST 011011 constant entry internal dcl 1515 ref 407 CONVERT_ARGUMENT_STRING_TO_LIST 011221 constant entry internal dcl 1562 ref 414 497 CV_OPTION_VALUES_TO_STRING 014217 constant entry internal dcl 2003 ref 1857 FIND_NEXT_ARG 007705 constant entry internal dcl 1378 ref 1277 FREE_LIST 015665 constant entry internal dcl 2269 ref 1798 1799 GET_DIM_IDX 010225 constant entry internal dcl 1437 ref 639 654 683 693 730 783 789 1053 1310 1321 1326 1331 1346 1357 1374 1391 2224 GET_LIST_NODE 015613 constant entry internal dcl 2242 ref 2229 GET_NEXT_IMPLIED_CONTROL_ARGUMENT 005750 constant entry internal dcl 1048 ref 1108 JOIN 002053 constant label dcl 425 ref 409 416 LR_TRIM 014552 constant entry internal dcl 2056 ref 1849 1918 MAKE_VR_SUBSTITUTIONS 012712 constant entry internal dcl 1814 ref 1753 1773 MAKE_V_SUBSTITUTIONS 013432 constant entry internal dcl 1885 ref 1505 MISPLACED_CONTROL_ARGUMENT 010272 constant entry internal dcl 1453 ref 880 PRINT_AF_ERROR_MSG 015200 constant entry internal dcl 2137 ref 1759 PRINT_EXPLANATION 010504 constant entry internal dcl 1485 ref 862 PRINT_VALIDATION_EXPLANATION 010622 constant entry internal dcl 1497 ref 872 PROCESS_ARGUMENT 005217 constant entry internal dcl 980 ref 869 PROCESS_ARGUMENT_LIST 004346 constant entry internal dcl 797 ref 498 503 REPORT_MISSING_ARGUMENT 010364 constant entry internal dcl 1466 ref 958 970 REPORT_MISSING_DEFINITION 010443 constant entry internal dcl 1474 ref 439 REPORT_UNRECOGNIZED_CONTROL_ARGUMENT 010315 constant entry internal dcl 1460 ref 907 SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST 003417 constant entry internal dcl 588 ref 463 SETUP_FIRST_ARG_INFO 007004 constant entry internal dcl 1211 ref 846 918 949 SETUP_IMPLIED_CONTROL_ARGUMENT 004311 constant entry internal dcl 786 ref 608 SETUP_NEW_CONTROL_ARGUMENT 003773 constant entry internal dcl 698 ref 612 623 SETUP_NEXT_ARG_INFO 007177 constant entry internal dcl 1262 ref 1033 1255 SETUP_RESULT_VALIDATION_INFO 015506 constant entry internal dcl 2190 ref 670 SETUP_VECTOR_AND_ARG_NAME_DIM_IDX 007636 constant entry internal dcl 1367 ref 1288 1418 SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID 004244 constant entry internal dcl 776 ref 607 SET_ID 003225 constant entry internal dcl 553 ref 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 SET_IDS 003135 constant entry internal dcl 530 ref 594 SET_RESULT_ID 003331 constant entry internal dcl 573 ref 567 568 569 570 SET_RESULT_IDS 003313 constant entry internal dcl 565 ref 481 STAR_STR_SEARCH 014056 constant entry internal dcl 1949 ref 1845 1868 1914 1929 SUBSTITUTE 014744 constant entry internal dcl 2088 ref 1862 1922 SUBSTITUTE_RETURN 015175 constant label dcl 2124 ref 2114 VALIDATE_RESULTS 012034 constant entry internal dcl 1718 ref 526 argument_array 001647 constant entry external dcl 404 argument_list 002020 constant entry external dcl 419 argument_string 001733 constant entry external dcl 411 free_print_vector_array 003021 constant entry external dcl 2297 pa_process_arguments 001632 constant entry external dcl 72 validation_error_return 005526 constant label dcl 1017 ref 1005 NAMES DECLARED BY CONTEXT OR IMPLICATION. addrel builtin function ref 714 734 1307 1314 1351 hbound builtin function ref 1537 max builtin function ref 1031 1101 1132 1132 1160 1166 1194 search builtin function ref 1624 1653 verify builtin function ref 1617 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 17114 17204 16326 17124 Length 17764 16326 70 543 565 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pa_process_arguments 6111 external procedure is an external procedure. SET_IDS internal procedure shares stack frame of external procedure pa_process_arguments. SET_ID internal procedure shares stack frame of external procedure pa_process_arguments. SET_RESULT_IDS internal procedure shares stack frame of external procedure pa_process_arguments. SET_RESULT_ID internal procedure shares stack frame of external procedure pa_process_arguments. SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST internal procedure shares stack frame of external procedure pa_process_arguments. ADD_SYNONYM internal procedure shares stack frame of external procedure pa_process_arguments. SETUP_NEW_CONTROL_ARGUMENT internal procedure shares stack frame of external procedure pa_process_arguments. CLOSE_OUT_CONTROL_ARGUMENT_DEFINITION internal procedure shares stack frame of external procedure pa_process_arguments. SETUP_VECTOR_AND_CONTROL_ARGUMENT_NAME_DIM_ID internal procedure shares stack frame of external procedure pa_process_arguments. SETUP_IMPLIED_CONTROL_ARGUMENT internal procedure shares stack frame of external procedure pa_process_arguments. PROCESS_ARGUMENT_LIST internal procedure shares stack frame of external procedure pa_process_arguments. PROCESS_ARGUMENT 139 internal procedure enables or reverts conditions. on unit on line 1003 64 on unit GET_NEXT_IMPLIED_CONTROL_ARGUMENT internal procedure shares stack frame of internal procedure CLOSE_OUT_OPTION. CLOSE_OUT_OPTION 83 internal procedure is called by several nonquick procedures. ADD_VALUE_TO_RESULT 145 internal procedure is called by several nonquick procedures. SETUP_FIRST_ARG_INFO internal procedure shares stack frame of external procedure pa_process_arguments. SETUP_NEXT_ARG_INFO 202 internal procedure is called by several nonquick procedures. SETUP_VECTOR_AND_ARG_NAME_DIM_IDX internal procedure shares stack frame of internal procedure SETUP_NEXT_ARG_INFO. FIND_NEXT_ARG internal procedure shares stack frame of internal procedure SETUP_NEXT_ARG_INFO. GET_DIM_IDX 66 internal procedure is called by several nonquick procedures. MISPLACED_CONTROL_ARGUMENT internal procedure shares stack frame of external procedure pa_process_arguments. REPORT_UNRECOGNIZED_CONTROL_ARGUMENT internal procedure shares stack frame of external procedure pa_process_arguments. REPORT_MISSING_ARGUMENT internal procedure shares stack frame of external procedure pa_process_arguments. REPORT_MISSING_DEFINITION internal procedure shares stack frame of external procedure pa_process_arguments. PRINT_EXPLANATION internal procedure shares stack frame of external procedure pa_process_arguments. PRINT_VALIDATION_EXPLANATION internal procedure shares stack frame of external procedure pa_process_arguments. CONVERT_ARGUMENT_ARRAY_TO_LIST internal procedure shares stack frame of external procedure pa_process_arguments. CONVERT_ARGUMENT_STRING_TO_LIST internal procedure shares stack frame of external procedure pa_process_arguments. VALIDATE_RESULTS 142 internal procedure enables or reverts conditions. on unit on line 1759 86 on unit MAKE_VR_SUBSTITUTIONS 122 internal procedure uses auto adjustable storage, and is called during a stack extension. MAKE_V_SUBSTITUTIONS 120 internal procedure uses auto adjustable storage, and is called during a stack extension. STAR_STR_SEARCH 78 internal procedure uses auto adjustable storage, and is called during a stack extension. CV_OPTION_VALUES_TO_STRING 97 internal procedure uses auto adjustable storage. LR_TRIM 76 internal procedure uses auto adjustable storage, uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. SUBSTITUTE 86 internal procedure uses auto adjustable storage, is called during a stack extension, and enables or reverts conditions. on unit on line 2112 64 on unit PRINT_AF_ERROR_MSG 248 internal procedure is called during a stack extension. SETUP_RESULT_VALIDATION_INFO internal procedure shares stack frame of external procedure pa_process_arguments. ADD_TO_LIST internal procedure shares stack frame of external procedure pa_process_arguments. GET_LIST_NODE internal procedure shares stack frame of external procedure pa_process_arguments. FREE_LIST internal procedure shares stack frame of internal procedure VALIDATE_RESULTS. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ADD_VALUE_TO_RESULT 000100 temp_value_idx ADD_VALUE_TO_RESULT 000101 dim_idx ADD_VALUE_TO_RESULT 000102 instance_count_pic ADD_VALUE_TO_RESULT 000103 order_pic ADD_VALUE_TO_RESULT CV_OPTION_VALUES_TO_STRING 000100 i CV_OPTION_VALUES_TO_STRING 000101 max_buffer_len CV_OPTION_VALUES_TO_STRING 000102 option_value_ptr CV_OPTION_VALUES_TO_STRING 000104 work_str CV_OPTION_VALUES_TO_STRING 000104 temp_buffer CV_OPTION_VALUES_TO_STRING LR_TRIM 000100 new_str LR_TRIM MAKE_VR_SUBSTITUTIONS 000100 begin_looking_pos MAKE_VR_SUBSTITUTIONS 000101 found_option MAKE_VR_SUBSTITUTIONS 000102 option_name MAKE_VR_SUBSTITUTIONS 000102 search_str_len MAKE_VR_SUBSTITUTIONS 000103 search_str_pos MAKE_VR_SUBSTITUTIONS 000104 sub_str MAKE_VR_SUBSTITUTIONS 000104 temp_buffer MAKE_VR_SUBSTITUTIONS MAKE_V_SUBSTITUTIONS 000100 arg_name MAKE_V_SUBSTITUTIONS 000100 begin_looking_pos MAKE_V_SUBSTITUTIONS 000101 search_str_len MAKE_V_SUBSTITUTIONS 000102 search_str_pos MAKE_V_SUBSTITUTIONS 000103 temp_buffer MAKE_V_SUBSTITUTIONS PRINT_AF_ERROR_MSG 000100 code PRINT_AF_ERROR_MSG 000102 stack_ptr PRINT_AF_ERROR_MSG 000104 auto_condition_info PRINT_AF_ERROR_MSG PROCESS_ARGUMENT 000100 temp_value_idx PROCESS_ARGUMENT SETUP_NEXT_ARG_INFO 000100 local_print_vector_ptr SETUP_NEXT_ARG_INFO 000102 temp_dimension_identifier SETUP_NEXT_ARG_INFO 000103 dim_idx SETUP_NEXT_ARG_INFO 000120 next_arg_dim_idx FIND_NEXT_ARG 000122 temp_print_vector_ptr FIND_NEXT_ARG STAR_STR_SEARCH 000100 begin_looking_pos STAR_STR_SEARCH 000101 end_str_idx STAR_STR_SEARCH 000102 end_str_pos STAR_STR_SEARCH 000103 start_str_idx STAR_STR_SEARCH 000104 start_str_pos STAR_STR_SEARCH 000105 substr_to_search STAR_STR_SEARCH SUBSTITUTE 000100 left_str SUBSTITUTE 000100 old_len SUBSTITUTE 000101 right_str SUBSTITUTE VALIDATE_RESULTS 000100 result VALIDATE_RESULTS 000104 vr_ptr VALIDATE_RESULTS 000106 vre_ptr VALIDATE_RESULTS 000124 next_node_ptr FREE_LIST pa_process_arguments 000100 using_implicit_control_argument pa_process_arguments 000101 last_arg_idx_processed pa_process_arguments 000102 first_arg_idx pa_process_arguments 000104 arg_list_ptr pa_process_arguments 000106 default_arg_list_ptr pa_process_arguments 000110 dim_idx pa_process_arguments 000111 max_value_arg_len pa_process_arguments 000112 implied_control_argument_name_identifier pa_process_arguments 000113 control_argument_name_identifier pa_process_arguments 000114 next_implied_control_argument_name_identifier pa_process_arguments 000115 result_control_argument_name_identifier pa_process_arguments 000116 argument_name_identifier pa_process_arguments 000117 initial_argument_name_identifier pa_process_arguments 000120 next_argument_name_identifier pa_process_arguments 000121 argument_presence_identifier pa_process_arguments 000122 explanation_identifier pa_process_arguments 000123 synonym_identifier pa_process_arguments 000124 validation_string_identifier pa_process_arguments 000125 antonym_identifier pa_process_arguments 000126 result_instance_identifier pa_process_arguments 000127 result_command_name_identifier pa_process_arguments 000130 result_order_identifier pa_process_arguments 000131 default_argument_value_identifier pa_process_arguments 000132 negative_default_argument_value_identifier pa_process_arguments 000133 excluded_option_identifier pa_process_arguments 000134 implied_control_argument_ptr pa_process_arguments 000136 vector_idx pa_process_arguments 000137 temp_idx pa_process_arguments 000140 control_argument_name_dim_id pa_process_arguments 000141 old_control_argument_name_dim_id pa_process_arguments 000142 old_print_vector_ptr pa_process_arguments 000144 old_control_argument_ptr pa_process_arguments 000146 root_control_argument_ptr pa_process_arguments 000150 arg_exists pa_process_arguments 000151 option_accepts_explicit_argument pa_process_arguments 000152 control_argument_is_in_effect pa_process_arguments 000153 exists_implied_control_argument pa_process_arguments 000154 implied_control_argument_name_ptr pa_process_arguments 000156 implied_control_argument_name_length pa_process_arguments 000160 first_argument_name_ptr pa_process_arguments 000162 first_argument_name_len pa_process_arguments 000163 global_instance_count pa_process_arguments 000164 value_idx pa_process_arguments 000165 arg_idx pa_process_arguments 000166 nargs pa_process_arguments 000170 arg_ptr pa_process_arguments 000172 arg_len pa_process_arguments 000173 force_interpretation_as_non_control_argument pa_process_arguments 000174 control_argument_ptr pa_process_arguments 000176 arg_info_ptr pa_process_arguments 000200 name_array_idx pa_process_arguments 000201 active_string pa_process_arguments 002202 active_explanation pa_process_arguments 004203 result pa_process_arguments 004206 name_array_count pa_process_arguments 004210 name_array pa_process_arguments 006470 value pa_process_arguments 010130 default_linear_form_string pa_process_arguments 012131 command_name_str pa_process_arguments 012160 validate_result_identifier pa_process_arguments 012161 validate_result_explanation_identifier pa_process_arguments 012162 validate_result_list_ptr pa_process_arguments 012164 validate_result_explanation_list_ptr pa_process_arguments 012166 node_ptr pa_process_arguments 012170 force_literal_identifier pa_process_arguments 012171 validate_explanation_identifier pa_process_arguments 012172 excluded_option_name_length pa_process_arguments 012173 i pa_process_arguments 012174 print_vector_array_ptr pa_process_arguments 012176 print_vector_ptr pa_process_arguments 012200 extended_arg_type pa_process_arguments 012202 option_value_list_ptr pa_process_arguments 012204 ovl_number_of_values pa_process_arguments 012206 com_af_error_info_ptr pa_process_arguments 012266 dim_idx SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST 012270 temp_ptr SETUP_DIM_IDS_AND_CONTROL_ARGUMENT_LIST 012302 dim_idx ADD_SYNONYM 012334 dim_idx SETUP_IMPLIED_CONTROL_ARGUMENT 012374 idx SETUP_FIRST_ARG_INFO 012376 temp_print_vector_ptr SETUP_FIRST_ARG_INFO 012400 temp_excluded_option_ptr SETUP_FIRST_ARG_INFO 012450 code PRINT_VALIDATION_EXPLANATION 012460 caatl_al_arg_count CONVERT_ARGUMENT_ARRAY_TO_LIST 012461 caatl_arg_idx CONVERT_ARGUMENT_ARRAY_TO_LIST 012462 caatl_arg_descriptor_template CONVERT_ARGUMENT_ARRAY_TO_LIST 012464 caatl_arg_descriptor_ptr CONVERT_ARGUMENT_ARRAY_TO_LIST 012476 castl_al_arg_count CONVERT_ARGUMENT_STRING_TO_LIST 012477 castl_arg_descriptor_template CONVERT_ARGUMENT_STRING_TO_LIST 012500 castl_arg_descriptor_ptr CONVERT_ARGUMENT_STRING_TO_LIST 012502 castl_arg_link_ptr CONVERT_ARGUMENT_STRING_TO_LIST 012504 castl_arg_idx CONVERT_ARGUMENT_STRING_TO_LIST 012505 castl_arg_index CONVERT_ARGUMENT_STRING_TO_LIST 012506 castl_new_arg_index CONVERT_ARGUMENT_STRING_TO_LIST 012507 castl_arg_length CONVERT_ARGUMENT_STRING_TO_LIST 012510 castl_quote_index CONVERT_ARGUMENT_STRING_TO_LIST 012511 castl_old_quote_index CONVERT_ARGUMENT_STRING_TO_LIST 012512 castl_root_arg_link_ptr CONVERT_ARGUMENT_STRING_TO_LIST 012514 castl_old_arg_link_ptr CONVERT_ARGUMENT_STRING_TO_LIST 012534 dim_idx ADD_TO_LIST 012536 new_node_ptr ADD_TO_LIST THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 alloc_auto_adj enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc reverse_cs set_chars_eis index_chars_eis return_chars_eis verify_eis search_eis signal_stringrange op_alloc_ op_freen_ index_after_cs ix_rev_chars THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$evaluate_active_string decode_descriptor_ find_condition_frame_ find_condition_info_ ioa_ ioa_$rsnnl process_arguments_$get_default_linear_form process_arguments_$get_definition process_arguments_$get_option_value requote_string_ sub_err_ vector_util_$append_dimension_print vector_util_$append_general_print_vector vector_util_$init_print_vector_array THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt error_table_$fatal_error error_table_$noarg error_table_$smallarg error_table_$unimplemented_version sys_info$max_seg_size vd_error_$dimension_already_defined vd_error_$no_vector LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 94 001604 96 001605 97 001606 98 001607 127 001612 129 001613 139 001614 140 001615 145 001616 155 001617 168 001620 170 001621 5 36 001622 8 28 001624 8 29 001626 72 001631 404 001640 407 001701 408 001722 409 001724 411 001725 414 001765 415 002006 416 002010 419 002011 422 002045 423 002051 425 002053 429 002121 430 002124 433 002127 436 002162 439 002165 440 002173 444 002174 445 002226 447 002240 450 002252 451 002254 452 002310 454 002312 456 002317 458 002321 459 002362 463 002364 464 002365 465 002373 467 002375 470 002400 471 002402 472 002404 473 002406 474 002410 478 002451 480 002453 481 002454 483 002455 487 002503 490 002510 493 002612 497 002615 498 002634 499 002650 503 002652 506 002670 512 002672 513 002703 516 002733 518 002735 519 002745 521 003001 522 003003 524 003005 526 003007 528 003015 2297 003016 2307 003027 2310 003034 2312 003037 2313 003047 2314 003074 2315 003104 2317 003106 2319 003134 530 003135 532 003136 533 003141 534 003144 535 003147 536 003152 537 003155 538 003160 539 003163 540 003166 541 003171 542 003174 543 003177 544 003202 545 003205 546 003210 547 003213 548 003216 549 003221 551 003224 553 003225 557 003236 560 003301 561 003303 563 003312 565 003313 567 003314 568 003317 569 003322 570 003325 571 003330 573 003331 579 003342 582 003405 583 003407 586 003416 588 003417 594 003420 595 003421 596 003423 597 003424 598 003426 599 003430 600 003431 601 003432 602 003433 604 003434 605 003445 606 003447 607 003451 608 003453 612 003460 618 003466 622 003521 623 003522 627 003523 632 003543 633 003544 639 003546 640 003560 643 003562 645 003607 648 003612 649 003614 654 003616 655 003630 658 003632 659 003646 660 003661 661 003675 662 003700 666 003702 670 003703 672 003705 675 003707 677 003710 679 003711 683 003712 684 003724 687 003730 688 003731 689 003747 693 003751 694 003763 696 003772 698 003773 701 003774 703 003776 704 004004 705 004006 706 004011 708 004017 712 004021 714 004024 716 004042 719 004053 720 004055 721 004057 722 004060 723 004061 730 004063 731 004076 734 004101 735 004116 736 004120 737 004123 740 004124 741 004126 742 004130 747 004133 748 004135 750 004137 752 004140 755 004141 758 004146 760 004152 768 004160 774 004243 776 004244 782 004246 783 004275 784 004310 786 004311 789 004312 791 004324 793 004330 794 004343 795 004345 797 004346 803 004350 804 004356 805 004361 806 004362 807 004363 808 004364 809 004370 810 004371 811 004372 813 004373 816 004375 818 004407 819 004415 821 004455 832 004463 836 004501 837 004502 842 004506 845 004516 846 004520 850 004522 856 004600 858 004603 861 004611 862 004613 863 004614 869 004615 870 004624 872 004631 873 004632 875 004633 878 004636 880 004637 883 004644 884 004650 888 005002 896 005004 899 005014 902 005015 903 005036 904 005040 907 005043 908 005044 911 005045 915 005050 918 005055 925 005057 926 005062 929 005067 933 005071 938 005073 946 005076 949 005101 950 005103 954 005161 957 005164 958 005170 959 005171 962 005172 965 005173 969 005200 970 005204 971 005205 975 005206 978 005215 980 005216 987 005224 990 005227 991 005232 992 005274 996 005276 999 005303 1003 005426 1005 005443 1008 005446 1009 005513 1012 005517 1014 005520 1017 005526 1019 005532 1022 005642 1026 005644 1027 005646 1028 005653 1029 005657 1030 005661 1031 005663 1033 005667 1034 005702 1036 005706 1040 005715 1041 005734 1042 005736 1046 005747 1048 005750 1050 005751 1053 006002 1054 006015 1058 006022 1059 006035 1060 006037 1062 006060 1063 006063 1066 006074 1067 006076 1068 006077 1071 006100 1072 006101 1075 006103 1082 006104 1085 006112 1091 006117 1095 006127 1096 006130 1097 006134 1098 006137 1099 006141 1101 006143 1104 006147 1108 006154 1112 006171 1118 006172 1130 006200 1132 006203 1136 006266 1139 006271 1143 006354 1146 006355 1151 006404 1152 006416 1153 006426 1154 006437 1156 006440 1157 006445 1160 006460 1166 006511 1172 006540 1173 006546 1174 006561 1175 006570 1176 006600 1179 006611 1182 006621 1184 006623 1187 006712 1190 006722 1191 006723 1194 006745 1200 006776 1203 007000 1204 007002 1206 007003 1211 007004 1226 007006 1227 007017 1231 007045 1237 007111 1241 007121 1242 007131 1244 007136 1245 007142 1247 007144 1250 007150 1253 007153 1255 007155 1257 007167 1259 007175 1262 007176 1277 007204 1279 007224 1282 007230 1283 007232 1287 007233 1288 007234 1290 007246 1293 007251 1294 007253 1296 007254 1297 007257 1300 007263 1302 007271 1307 007272 1308 007310 1310 007314 1311 007331 1314 007333 1316 007353 1318 007357 1319 007360 1321 007365 1322 007401 1324 007422 1326 007427 1327 007443 1329 007464 1331 007471 1335 007505 1337 007515 1341 007522 1343 007532 1346 007534 1347 007547 1351 007560 1353 007600 1355 007604 1357 007605 1358 007621 1362 007633 1364 007635 1367 007636 1373 007640 1374 007670 1375 007704 1378 007705 1386 007707 1387 007710 1391 007740 1392 007753 1395 007756 1396 007761 1400 007762 1403 010012 1404 010015 1408 010016 1411 010024 1412 010027 1413 010031 1416 010032 1418 010046 1419 010060 1425 010154 1429 010211 1430 010213 1432 010214 1433 010217 1434 010223 1437 010224 1443 010232 1445 010261 1446 010263 1449 010271 1453 010272 1455 010274 1457 010302 1460 010315 1462 010316 1463 010321 1464 010362 1466 010364 1468 010365 1472 010441 1474 010443 1479 010445 1483 010502 1485 010504 1487 010505 1490 010562 1493 010621 1497 010622 1503 010623 1505 010630 1506 010706 1510 010766 1511 011007 1513 011010 1515 011011 1521 011022 1522 011023 1525 011024 1535 011026 1537 011030 1538 011033 1541 011052 1542 011073 1543 011075 1544 011077 1545 011104 1546 011106 1547 011110 1548 011114 1549 011116 1550 011122 1552 011124 1553 011133 1554 011154 1555 011166 1556 011172 1557 011203 1558 011216 1560 011220 1562 011221 1568 011232 1571 011233 1573 011235 1575 011236 1577 011244 1598 011246 1600 011250 1603 011257 1605 011260 1606 011262 1607 011266 1608 011270 1609 011274 1611 011276 1612 011300 1613 011301 1615 011302 1617 011304 1619 011332 1623 011333 1624 011340 1626 011352 1628 011360 1630 011362 1632 011375 1634 011377 1636 011402 1637 011404 1639 011413 1640 011415 1641 011431 1648 011566 1649 011571 1651 011572 1652 011574 1653 011612 1656 011640 1659 011654 1661 011655 1662 011657 1664 011666 1666 011674 1668 011675 1670 011706 1671 011716 1672 011722 1674 011730 1676 011732 1678 011733 1680 011734 1681 011755 1682 011757 1683 011761 1684 011766 1686 011770 1688 011772 1690 012001 1691 012007 1693 012022 1694 012024 1695 012026 1697 012030 1699 012032 1718 012033 1742 012041 1744 012043 1747 012050 1749 012060 1751 012062 1753 012072 1754 012136 1759 012216 1761 012265 1762 012332 1767 012406 1769 012407 1771 012414 1773 012420 1775 012464 1779 012544 1780 012577 1781 012601 1785 012643 1786 012650 1789 012651 1791 012656 1793 012663 1796 012666 1798 012672 1799 012701 1801 012710 1814 012711 1827 012732 1830 012745 1831 012760 1851 012773 1839 012776 1840 013000 1841 013005 1842 013006 1843 013017 1845 013021 1847 013065 1849 013070 1851 013145 1854 013176 1857 013203 1858 013241 1862 013244 1863 013341 1866 013345 1868 013350 1870 013414 1872 013416 1873 013426 1875 013430 1885 013431 1898 013464 1902 013477 1908 013512 1909 013514 1910 013521 1911 013522 1912 013533 1914 013535 1916 013601 1918 013604 1920 013655 1922 013666 1923 013761 1925 013765 1926 013770 1927 013771 1929 013774 1931 014040 1933 014042 1934 014052 1936 014054 1949 014055 1967 014103 1970 014116 1971 014120 1973 014121 1974 014123 1976 014140 1977 014147 1980 014150 1982 014153 1983 014155 1985 014172 1986 014201 1989 014202 1991 014207 1992 014211 1994 014215 2003 014216 2017 014232 2018 014245 2025 014260 2026 014262 2027 014267 2028 014270 2029 014272 2031 014273 2032 014305 2033 014317 2034 014326 2036 014363 2037 014370 2039 014371 2041 014440 2042 014533 2044 014536 2045 014546 2047 014550 2056 014551 2066 014577 2069 014612 2071 014624 2074 014656 2077 014731 2088 014743 2102 014771 2104 015003 2110 015013 2112 015014 2113 015030 2114 015034 2117 015037 2119 015041 2120 015074 2122 015133 2124 015175 2137 015177 2156 015220 2157 015223 2159 015225 2161 015237 2162 015254 2168 015333 2170 015336 2176 015417 2180 015505 2190 015506 2198 015510 2200 015523 2202 015536 2211 015537 2224 015541 2226 015554 2229 015560 2231 015571 2232 015607 2234 015612 2242 015613 2249 015615 2250 015624 2252 015626 2254 015631 2255 015640 2256 015643 2257 015650 2259 015651 2260 015657 2263 015664 2269 015665 2280 015667 2283 015674 2285 015701 2286 015707 2287 015712 2288 015714 2289 015717 2291 015720 ----------------------------------------------------------- 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