COMPILATION LISTING OF SEGMENT mtape_cv_apd Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/17/86 1445.8 mst Mon Options: optimize map 1 2 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 4 /* */ 5 /* COMPILED OUTPUT OF SEGMENT mtape_cv_apd.rd */ 6 /* Compiled by: reduction_compiler, Version 2.5 of Oct 21, 1985 */ 7 /* Compiled on: 03/17/86 1445.8 mst Mon */ 8 /* */ 9 /* * * * * * * * * * * * * * * * * * * * * * * */ 10 11 /* *********************************************************** 12* * * 13* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 14* * * 15* *********************************************************** */ 16 17 /* DESCRIPTION: 18* 19* This command takes an argument processing definition (APD) 20* from a source file and translates the information specified 21* by that source into a form readily useable by the argument 22* processing routine process_arguments_. The result, called 23* a print vector array, is stored into a value segment 24* specified by the user. 25* 26* The information in the source file must be specified in the 27* APD language whose grammar is described elsewhere. 28* 29* The syntax of the command is as follows: 30* 31* mtape_cv_apd {-source} path {{-target} path} {-control_arg} 32* 33* where -control_arg may be -replace or -no_replace and designates 34* whether or not to replace the APD if it already exists in the 35* target database. 36* 37* The source file must have the "mapd" suffix and the target file 38* must be a value segment with the "value" suffix. 39* 40* The result print_vector_array contains print_vectors of the following 41* composition: 42* 43* 1) Initial vector: definition order * 44* command name * 45* default linear form 46* initial implied option 47* explanation 48* validate result 49* validate result explanation 50* 51* 2) Option vector: definition order * 52* command name * 53* option * 54* initial argument 55* next implied option 56* excluded option 57* unexcluded option 58* presence required /~* takes no value *~/ 59* 60* 3) Option name vector: definition order * 61* command name * 62* option * 63* synonym * 64* negative form /~* takes no value *~/ 65* 66* 4) Argument vector: definition order * 67* command name * 68* option * 69* argument * 70* next argument 71* presence required /~* takes no value *~/ 72* validation string 73* default value 74* negative value 75* explanation 76* 77* 78* * Required dimensions 79* 80* Note that this program does no validity or consistency checking of the 81* info that the user feeds it. This should be added in the future. 82* 83**/ 84 85 /* HISTORY: 86* 87*Written by S. Krupp, 03/01/83. 88*Modified: 89*07/25/83 by Lindsey Spratt: Changed to put the definition in a value segment 90* instead of a vector db. The default linear form is now stored 91* separately in the value seg, rather than as part of the definition 92* pva. 93*08/05/83 by S. Krupp: Changed name from cvapd to mtape_cv_apd. Changed 94* source segment suffix from "cvapd" to "mapd". 95* 96*08/26/83 by S. Krupp: Added the "Force_literal" and "Validate_explanation" 97* statements. 98**/ 99 100 101 /*++ 102* 103*INCLUDE NEXT_STMT \ 104*INCLUDE ERROR \ 105* 106*BEGIN 107*initial_definition 108* / Program_name : 109* / LEX(2) PUSH(initial_stmt_list) 110* / program_name_stmt \ 111*2 / 112* / ERROR(2) NEXT_STMT 113* / initial_stmt_list \ 114*3 / 115* / ERROR(3) 116* / error_return \ 117* 118*initial_stmt_list 119*4 / Explanation : 120* / LEX(2) PUSH(initial_stmt_list) 121* / explanation_stmt \ 122*5 / Default_linear_form : 123* / LEX(2) PUSH(initial_stmt_list) 124* / default_linear_form_stmt \ 125*6 / Initial_implied_option : 126* / LEX(2) PUSH(initial_stmt_list) 127* / initial_implied_option_stmt \ 128*7 / Validate_result : 129* / LEX(2) PUSH(initial_stmt_list) 130* / validate_result_stmt \ 131*8 / Validate_result_explanation : 132* / LEX(2) PUSH(initial_stmt_list) 133* / validate_result_explanation_stmt \ 134*9 / 135* / 136* / end_or_opt \ 137*10 / 138* / ERROR(4) 139* / error_return \ 140* 141*end_or_opt 142*11 / End ; 143* / NEXT_STMT 144* / return \ 145*12 / Option : 146* / 147* / option_definition \ 148*13 / 149* / ERROR(10) NEXT_STMT 150* / initial_stmt_list \ 151* 152*option_definition 153*14 / Option : 154* / LEX(2) PUSH(per_option_stmt_list) 155* / option_stmt \ 156* 157*per_option_stmt_list 158*15 / Option_name : 159* / LEX(2) PUSH(per_option_stmt_list) 160* / option_name_stmt \ 161*16 / First_argument : 162* / LEX(2) PUSH(per_option_stmt_list) 163* / first_argument_stmt \ 164*17 / Antonym : 165* / LEX(2) PUSH(per_option_stmt_list) 166* / antonym_stmt \ 167*18 / Explanation : 168* / LEX(2) PUSH(per_option_stmt_list) 169* / explanation_stmt \ 170*19 / Exclude : 171* / LEX(2) PUSH(per_option_stmt_list) 172* / exclude_stmt \ 173*20 / Unexclude : 174* / LEX(2) PUSH(per_option_stmt_list) 175* / unexclude_stmt \ 176*21 / Presence : 177* / LEX(2) PUSH(per_option_stmt_list) 178* / presence_stmt \ 179*22 / Next_implied_option : 180* / LEX(2) PUSH(per_option_stmt_list) 181* / next_implied_option_stmt \ 182*23 / 183* / 184* / per_opt_end_or_opt_or_arg \ 185*24 / 186* / ERROR(4) 187* / error_return \ 188* 189*per_opt_end_or_opt_or_arg 190*25 / End ; 191* / [if default_exclude_myself 192* then call add_to_vector(option, EXCLUDED_OPTION)] 193* NEXT_STMT 194* / return \ 195*26 / Option : 196* / [if default_exclude_myself 197* then call add_to_vector(option, EXCLUDED_OPTION)] 198* / option_definition \ 199*27 / Argument : 200* / [if default_exclude_myself 201* then call add_to_vector(option, EXCLUDED_OPTION)] 202* / argument_definition \ 203*28 / 204* / ERROR(11) NEXT_STMT 205* / per_option_stmt_list \ 206*29 / 207* / ERROR(4) 208* / error_return \ 209* 210*argument_definition 211*30 / Argument : 212* / LEX(2) PUSH(per_argument_stmt_list) 213* / argument_stmt \ 214* 215*per_argument_stmt_list 216*31 / Validate : 217* / LEX(2) PUSH(per_argument_stmt_list) 218* / validate_stmt \ 219*32 / Validate_explanation : 220* / LEX(2) PUSH(per_argument_stmt_list) 221* / validate_explanation_stmt \ 222*33 / Default_value : 223* / LEX(2) PUSH(per_argument_stmt_list) 224* / default_value_stmt \ 225*34 / Antonym_value : 226* / LEX(2) PUSH(per_argument_stmt_list) 227* / antonym_value_stmt \ 228*35 / Presence : 229* / LEX(2) PUSH(per_argument_stmt_list) 230* / presence_stmt \ 231*36 / Next_argument : 232* / LEX(2) PUSH(per_argument_stmt_list) 233* / next_argument_stmt \ 234*37 / Explanation : 235* / LEX(2) PUSH(per_argument_stmt_list) 236* / explanation_stmt \ 237*38 / Force_literal : 238* / LEX(2) PUSH(per_argument_stmt_list) 239* / force_literal_stmt \ 240*39 / 241* / 242* / per_arg_end_or_opt_or_arg \ 243*40 / 244* / ERROR(4) 245* / error_return \ 246* 247*per_arg_end_or_opt_or_arg 248*41 / End ; 249* / NEXT_STMT 250* / return \ 251*42 / Option : 252* / 253* / option_definition \ 254*43 / Argument : 255* / 256* / argument_definition \ 257*44 / 258* / ERROR(13) NEXT_STMT 259* / per_argument_stmt_list \ 260*45 / 261* / ERROR(4) 262* / error_return \ 263* 264*cum_quoted_comma_list 265*cum_quoted_comma_list_next 266* / , 267* / ERROR(12) NEXT_STMT 268* / STACK_POP \ 269*47 / ; 270* / ERROR(12) NEXT_STMT 271* / STACK_POP \ 272*48 / 273* / ERROR(4) 274* / error_return \ 275*49 / 276* / append_to_str(token_value, expanded_token_len, expanded_token_ptr) 277* LEX(1) 278* / cum_quoted_comma_list_punc \ 279*50 / 280* / ERROR(12) NEXT_STMT 281* / STACK_POP \ 282* cum_quoted_comma_list_punc 283* / , 284* / LEX(1) 285* / cum_quoted_comma_list_next \ 286*52 / ; 287* / [if list_dim = DEFAULT_LINEAR_FORM 288* then call set_name (expanded_token, default_linear_form_length, 289* default_linear_form_ptr); 290* else call add_to_vector(expanded_token, list_dim); 291* call reset_name(expanded_token_len, expanded_token_ptr)] 292* NEXT_STMT 293* / STACK_POP \ 294*53 / 295* / ERROR(12) NEXT_STMT 296* / STACK_POP \ 297*54 / 298* / ERROR(4) 299* / error_return \ 300* 301*comma_list 302*comma_list_next 303* / , 304* / ERROR(12) NEXT_STMT 305* / STACK_POP \ 306*56 / ; 307* / ERROR(12) NEXT_STMT 308* / STACK_POP \ 309*57 / 310* / ERROR(4) 311* / error_return \ 312*58 / 313* / add_to_vector(token_value, list_dim) LEX(1) 314* / \ 315*59 / , 316* / LEX(1) 317* / comma_list_next \ 318*60 / ; 319* / NEXT_STMT 320* / STACK_POP \ 321*61 / 322* / ERROR(12) NEXT_STMT 323* / STACK_POP \ 324*62 / 325* / ERROR(4) 326* / error_return \ 327* 328*return 329*63 / 330* / ERROR(5) 331* / RETURN \ 332*64 / 333* / 334* / RETURN \ 335* 336*error_return 337*65 / 338* / 339* / RETURN \ 340*66 / 341* / 342* / RETURN \ 343* 344*stmts 345*program_name_stmt 346* / ; 347* / [call set_name(token_value, command_name_len, command_name_ptr); 348* call start_vector(INITIAL_VECTOR)] NEXT_STMT 349* / STACK_POP \ 350*68 / 351* / ERROR(1) NEXT_STMT 352* / STACK_POP \ 353*69 / 354* / ERROR(4) 355* / error_return \ 356* 357*explanation_stmt 358*70 / 359* / [list_dim = EXPLANATION] 360* / cum_quoted_comma_list \ 361*71 / 362* / ERROR(4) 363* / error_return \ 364* 365*default_linear_form_stmt 366*72 / 367* / [list_dim = DEFAULT_LINEAR_FORM] 368* / cum_quoted_comma_list \ 369*73 / 370* / ERROR(4) 371* / error_return \ 372* 373*initial_implied_option_stmt 374*74 / ; 375* / add_to_vector(token_value, INITIAL_IMPLIED_OPTION) NEXT_STMT 376* / STACK_POP \ 377*75 / 378* / ERROR(1) NEXT_STMT 379* / STACK_POP \ 380*76 / 381* / ERROR(4) 382* / error_return \ 383* 384*option_stmt 385*77 / ; 386* / [call set_name(token_value, option_len, option_ptr); 387* call reset_name(argument_len, argument_ptr); 388* call start_vector(OPTION_VECTOR); 389* default_exclude_myself = "1"b] 390* NEXT_STMT 391* / STACK_POP \ 392*78 / 393* / ERROR(1) NEXT_STMT 394* / STACK_POP \ 395*79 / 396* / ERROR(4) 397* / error_return \ 398* 399*option_name_stmt 400*80 / 401* / [list_dim = SYNONYM] 402* / comma_list \ 403*81 / 404* / ERROR(4) 405* / error_return \ 406* 407*first_argument_stmt 408*82 / ; 409* / add_to_vector(token_value, INITIAL_ARGUMENT) NEXT_STMT 410* / STACK_POP \ 411*83 / 412* / ERROR(1) NEXT_STMT 413* / STACK_POP \ 414*84 / 415* / ERROR(4) 416* / error_return \ 417* 418*antonym_stmt 419*85 / 420* / [list_dim = NEGATIVE_FORM] 421* / comma_list \ 422*86 / 423* / ERROR(4) 424* / error_return \ 425* 426*exclude_stmt 427*87 / 428* / [list_dim = EXCLUDED_OPTION] 429* / comma_list \ 430*88 / 431* / ERROR(4) 432* / error_return \ 433* 434*unexclude_stmt 435*89 / 436* / [list_dim = UNEXCLUDED_OPTION] 437* / comma_list \ 438*90 / 439* / ERROR(4) 440* / error_return \ 441* 442*presence_stmt 443*91 / required ; 444* / add_to_vector(token_value, PRESENCE_REQUIRED) NEXT_STMT 445* / STACK_POP \ 446*92 / literal_required ; 447* / add_to_vector(token_value, PRESENCE_REQUIRED) NEXT_STMT 448* / STACK_POP \ 449*93 / optional ; 450* / NEXT_STMT 451* / STACK_POP \ 452*94 / ; 453* / add_to_vector(token_value, PRESENCE_REQUIRED) NEXT_STMT 454* / STACK_POP \ 455*95 / 456* / ERROR(1) NEXT_STMT 457* / STACK_POP \ 458*96 / 459* / ERROR(4) 460* / error_return \ 461* 462*next_implied_option_stmt 463*97 / ; 464* / add_to_vector(token_value, NEXT_IMPLIED_OPTION) NEXT_STMT 465* / STACK_POP \ 466*98 / 467* / ERROR(1) NEXT_STMT 468* / STACK_POP \ 469*99 / 470* / ERROR(4) 471* / error_return \ 472* 473*argument_stmt 474*100 / ; 475* / [call set_name(token_value, argument_len, argument_ptr); 476* call start_vector(ARGUMENT_VECTOR)] NEXT_STMT 477* / STACK_POP \ 478*101 / 479* / ERROR(1) NEXT_STMT 480* / STACK_POP \ 481*102 / 482* / ERROR(4) 483* / error_return \ 484* 485*validate_stmt 486*103 / 487* / [list_dim = VALIDATION_STRING] 488* / cum_quoted_comma_list \ 489*104 / 490* / ERROR(4) 491* / error_return \ 492* 493* 494*default_value_stmt 495*105 / 496* / [list_dim = DEFAULT_VALUE] 497* / cum_quoted_comma_list \ 498*106 / 499* / ERROR(4) 500* / error_return \ 501* 502*antonym_value_stmt 503*107 / 504* / [list_dim = NEGATIVE_VALUE] 505* / cum_quoted_comma_list \ 506*108 / 507* / ERROR(4) 508* / error_return \ 509* 510*next_argument_stmt 511*109 / ; 512* / add_to_vector(token_value, NEXT_ARGUMENT) NEXT_STMT 513* / STACK_POP \ 514*110 / 515* / ERROR(1) NEXT_STMT 516* / STACK_POP \ 517*111 / 518* / ERROR(4) 519* / error_return \ 520* 521*validate_result_stmt 522*112 / 523* / [list_dim = VALIDATE_RESULT] 524* / cum_quoted_comma_list \ 525*113 / 526* / ERROR(4) 527* / error_return \ 528* 529*validate_result_explanation_stmt 530*114 / 531* / [list_dim = VALIDATE_RESULT_EXPLANATION] 532* / cum_quoted_comma_list \ 533*115 / 534* / ERROR(4) 535* / error_return \ 536* 537*validate_explanation_stmt 538*116 / 539* / [list_dim = VALIDATE_EXPLANATION] 540* / cum_quoted_comma_list \ 541*117 / 542* / ERROR(4) 543* / error_return \ 544* 545*force_literal_stmt 546*118 / ; 547* / add_to_vector("", FORCE_LITERAL) NEXT_STMT 548* / STACK_POP \ 549*119 / 550* / ERROR(1) NEXT_STMT 551* / STACK_POP \ 552*120 / 553* / ERROR(4) 554* / error_return \ 555* 556*++*/ 557 558 mtape_cv_apd: proc (); 559 560 /* Automatic */ 561 562 dcl answer char (3) var; 563 dcl area_ptr ptr; 564 dcl arg_len fixed bin (21); 565 dcl arg_ptr ptr; 566 dcl argument_len fixed bin (21); 567 dcl argument_ptr ptr; 568 dcl bit_count fixed bin (24); 569 dcl code fixed bin (35); 570 dcl command_name_len fixed bin (21); 571 dcl command_name_ptr ptr; 572 dcl created_value_seg bit (1) aligned init ("0"b); 573 dcl default_exclude_myself bit (1) aligned; 574 dcl default_linear_form_length fixed bin (21) init (0); 575 dcl default_linear_form_ptr ptr init (null); 576 dcl default_linear_form_value_name char (128) varying init (""); 577 dcl definition_exists bit (1) aligned init ("0"b); 578 dcl definition_order pic "999"; 579 dcl definition_string_length fixed bin (35) init (0); 580 dcl definition_string_ptr ptr init (null); 581 dcl dlf_var_length fixed bin(21); 582 dcl dlf_var_ptr ptr; 583 dcl definition_value_name char (128) varying init (""); 584 dcl error_code_array (1) fixed bin (35); 585 dcl expanded_token_len fixed bin (21); 586 dcl expanded_token_ptr ptr; 587 dcl i fixed bin; 588 dcl list_dim fixed bin; 589 dcl main_pv_num fixed bin; 590 dcl main_pv_type fixed bin; 591 dcl n_definition_order fixed bin; 592 dcl nargs fixed bin; 593 dcl option_len fixed bin (21); 594 dcl option_ptr ptr; 595 dcl Pfirst_stmt_desc ptr; 596 dcl Pfirst_token_desc ptr; 597 dcl replace bit (1) aligned; 598 dcl sdname char (168); 599 dcl seg_len fixed bin (21); 600 dcl seg_ptr ptr; 601 dcl sename char (32); 602 dcl source_rpath_len fixed bin (21); 603 dcl source_rpath_ptr ptr; 604 dcl synonym_len fixed bin (21); 605 dcl synonym_ptr ptr; 606 dcl target_rpath_len fixed bin (21); 607 dcl target_rpath_ptr ptr; 608 dcl tdname char (168); 609 dcl temp_seg_ptr ptr; 610 dcl tename char (32); 611 dcl value_defined (22) bit (1); /* *** True means that DIMENSIONS(i) in the current */ 612 /* print_vector has a value. */ 613 dcl value_seg_ptr ptr init (null); 614 615 dcl 1 auto_area_info like area_info; 616 dcl 1 auto_query_info like query_info; 617 618 /* Based */ 619 620 dcl arg char (arg_len) based (arg_ptr); 621 dcl argument char (argument_len) based (argument_ptr); 622 dcl based_area area based (area_ptr); 623 dcl command_name char (command_name_len) based (command_name_ptr); 624 dcl default_linear_form_string char (default_linear_form_length) based (default_linear_form_ptr); 625 dcl dlf_var char(dlf_var_length) var based(dlf_var_ptr); 626 dcl expanded_token char (expanded_token_len) based (expanded_token_ptr); 627 dcl option char (option_len) based (option_ptr); 628 dcl source_rpath char (source_rpath_len) based (source_rpath_ptr); 629 dcl synonym char (synonym_len) based (synonym_ptr); 630 dcl target_rpath char (target_rpath_len) based (target_rpath_ptr); 631 632 /* Builtin */ 633 634 dcl (addr, after, dimension, divide, empty, length, 635 null, reverse, rtrim, string, unspec) builtin; 636 637 /* Entries */ 638 639 dcl command_query_ entry () options (variable); 640 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 641 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 642 dcl com_err_ entry () options (variable); 643 dcl define_area_ entry (ptr, fixed bin (35)); 644 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 645 dcl expand_pathname_$add_suffix entry (char (*), char (*), char (*), char (*), fixed bin (35)); 646 dcl get_wdir_ entry () returns (char (168)); 647 dcl hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (2), ptr, fixed bin (35)); 648 dcl initiate_file_$create entry (char (*), char (*), bit (*), ptr, bit (1) aligned, fixed bin (24), fixed bin (35)); 649 dcl ioa_ entry () options (variable); 650 dcl lex_string_$init_lex_delims entry (char (*), char (*), char (*), char (*), char (*), bit (*), char (*) var, 651 char (*) var, char (*) var, char (*) var); 652 dcl lex_string_$lex entry (ptr, fixed bin (21), fixed bin (21), ptr, bit (*), char (*), char (*), char (*), char (*), 653 char (*), char (*) var, char (*) var, char (*) var, char (*) var, ptr, ptr, fixed bin (35)); 654 dcl suffixed_name_$new_suffix entry (char (*), char (*), char (*), char (32), fixed bin (35)); 655 dcl term_$seg_ptr entry (ptr, fixed bin (35)); 656 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 657 dcl translator_temp_$get_next_segment entry (ptr, ptr, fixed bin (35)); 658 dcl translator_temp_$get_segment entry (char (*) aligned, ptr, fixed bin (35)); 659 dcl translator_temp_$release_all_segments entry (ptr, fixed bin (35)); 660 dcl value_$get_data entry (ptr, bit (36) aligned, char (*), ptr, ptr, fixed 661 bin (18), fixed bin (35)); 662 dcl value_$init_seg entry (ptr, fixed bin, ptr, fixed bin (19), fixed bin (35)); 663 dcl value_$set_data entry (ptr, bit (36) aligned, char (*), ptr, fixed bin (18), ptr, ptr, fixed bin (18), 664 fixed bin (35)); 665 dcl value_$delete_data entry (ptr, bit (36) aligned, char (*), fixed bin (35)); 666 667 /* Static */ 668 669 /* Things marked *** are all related to the dimensions contained in the 670* print_vector_array. If the dimensions change, all of these things should 671* be looked at for possible changes. 672* */ 673 674 dcl (COMMENT_CLOSE char (2) init ("*/"), 675 COMMENT_OPEN char (2) init ("/*"), 676 CVAPD_VERSION fixed bin init (1), 677 FATAL_ERROR fixed bin init (3), 678 FATAL_ERROR_MSG char (45) init ("Fatal error has occured. Translation failed."), 679 FREE_OLD_PV_ARRAY bit (1) aligned init ("1"b), 680 IGNORED_INPUT_LEN fixed bin (21) init (0), 681 MAX_DIM_NAME_LEN fixed bin init (32), /* *** */ 682 MAX_NUM_OF_ARGS fixed bin init (5), 683 MIN_NUM_OF_ARGS fixed bin init (1), 684 ME char (12) init ("mtape_cv_apd"), 685 ME_UPPER char (12) init ("MTAPE_CV_APD"), 686 N_INCREMENTAL_PV_SLOTS fixed bin init (10), 687 N_INITIAL_PV_SLOTS fixed bin (35) init (10), 688 N_PV_DIMS fixed bin init (22), /* *** */ 689 NEW_VECTOR fixed bin init (-1), 690 NO_COPY fixed bin (2) init (1), 691 QUOTE_CLOSE char (1) init (""""), 692 QUOTE_OPEN char (1) init (""""), 693 SINIT bit (2) init ("10"b), 694 SLEX bit (4) init ("1000"b), 695 SOURCE_SUFFIX char (4) init ("mapd"), 696 STMT_DELIM char (1) init (";"), 697 STOP_ON_DUPLICATION bit (1) aligned init ("1"b), 698 STOP_ON_ERROR bit (1) aligned init ("1"b), 699 USAGE_MSG char (66) init ("Usage: mtape_cv_apd {-source} path {{-target} path} {-control_arg}"), 700 VALUE_SUFFIX char (5) init ("value") 701 ) internal static options (constant); 702 703 dcl (INITIAL_VECTOR init (1), 704 OPTION_VECTOR init (2), 705 OPTION_NAME_VECTOR init (3), 706 ARGUMENT_VECTOR init (4), 707 BASIC_VECTOR init (5), 708 NEGATIVE_FORM_VECTOR init (6) 709 ) fixed bin internal static options (constant); 710 711 dcl BYTES_PER_WORD init (4) fixed bin internal static options (constant); 712 713 dcl CAN_HAVE_VALUE (22) bit (1) aligned /* *** */ 714 init ((11) ("1"b), (1) ("0"b), (9) ("1"b), (1) ("0"b)) 715 internal static options (constant); 716 717 dcl CAN_HAVE_MULTIPLE_DEFINITIONS (22) bit (1) aligned /* *** */ 718 init ((9) ("0"b), (3) ("1"b), (5) ("0"b), (3) ("1"b), (2) ("0"b)) 719 internal static options (constant); 720 721 dcl DIMENSIONS (22) char (32) var /* *** */ 722 init ("definition order", /* 1 */ 723 "command name", /* 2 */ 724 "default linear form", /* 3 */ 725 "initial implied option", /* 4 */ 726 "explanation", /* 5 */ 727 "option", /* 6 */ 728 "initial argument", /* 7 */ 729 "next implied option", /* 8 */ 730 "presence required", /* 9 */ 731 "excluded option", /* 10 */ 732 "synonym", /* 11 */ 733 "negative form", /* 12 */ 734 "argument", /* 13 */ 735 "next argument", /* 14 */ 736 "validation string", /* 15 */ 737 "default value", /* 16 */ 738 "negative value", /* 17 */ 739 "unexcluded option", /* 18 */ 740 "validate result", /* 19 */ 741 "validate result explanation", /* 20 */ 742 "validate explanation", /* 21 */ 743 "force literal" /* 22 */ 744 ) internal static options (constant); 745 746 dcl (DEFINITION_ORDER init (1), /* *** */ 747 COMMAND_NAME init (2), 748 DEFAULT_LINEAR_FORM init (3), 749 INITIAL_IMPLIED_OPTION init (4), 750 EXPLANATION init (5), 751 OPTION init (6), 752 INITIAL_ARGUMENT init (7), 753 NEXT_IMPLIED_OPTION init (8), 754 PRESENCE_REQUIRED init (9), 755 EXCLUDED_OPTION init (10), 756 SYNONYM init (11), 757 NEGATIVE_FORM init (12), 758 ARGUMENT init (13), 759 NEXT_ARGUMENT init (14), 760 VALIDATION_STRING init (15), 761 DEFAULT_VALUE init (16), 762 NEGATIVE_VALUE init (17), 763 UNEXCLUDED_OPTION init (18), 764 VALIDATE_RESULT init (19), 765 VALIDATE_RESULT_EXPLANATION init (20), 766 VALIDATE_EXPLANATION init (21), 767 FORCE_LITERAL init (22) 768 ) fixed bin internal static options (constant); 769 770 dcl PERMANENT_VALUE init ("01"b) bit (36) aligned internal static options (constant); 771 dcl PERMANENT_VALUE_SEG_TYPE init (0) fixed bin internal static options (constant); 772 773 dcl sys_info$max_seg_size fixed bin (35) ext static; 774 775 dcl (error_table_$bad_arg, 776 error_table_$empty_file, 777 error_table_$noarg, 778 error_table_$oldnamerr, 779 error_table_$segknown, 780 error_table_$wrong_no_of_args, 781 error_table_$zero_length_seg 782 ) fixed bin (35) ext static; 783 784 dcl (lex_control_chars, 785 lex_delims 786 ) char (128) var init ("") int static; 787 788 dcl (cleanup, size) condition; 789 790 dcl BREAK_CHARS char (5) var init (":, 791 ") 792 internal static options (constant); /* ":", ",", SPACE, TAB, NL */ 793 dcl IGNORED_BREAK_CHARS char (3) var init (" 794 ") 795 internal static options (constant); /* SPACE, TAB, NL */ 796 797 dcl 1 error_control_table (13) int static options (constant) unaligned, 798 2 severity fixed bin (17) init ((4) (3), /* 1 - 3 */ 799 2, 4, 1, 4, 4, /* 4 - 8 */ 800 (4) (3)), /* 9 - 13 */ 801 2 Soutput_stmt bit (1) init ((13) ("1"b)), 802 2 message char (256) var init ( 803 "Error in statement.", /* 1 */ 804 "Unrecognized statement. Looking for program_name statement.", /* 2 */ 805 "Source file is empty.", /* 3 */ 806 "Source file ends unexpectedly.", /* 4 */ 807 "Text after end statement.", /* 5 */ 808 "Could not append a print vector to the print vector array.", /* 6 */ 809 "This value has already been defined. Ignoring value.", /* 7 */ 810 "Could not append a dimension to a print vector.", /* 8 */ 811 "Reference made to unknown vector type.", /* 9 */ 812 "Unrecognized statement in initial statement list.", /* 10 */ 813 "Unrecognized statement in option statement list.", /* 11 */ 814 "Bad syntax in list.", /* 12 */ 815 "Unrecognized statement in argument statement list."), /* 13 */ 816 2 brief_message char (256) var init ((13) ("")); 817 818 819 /* Include */ 820 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 821 822 2 1 /* BEGIN INCLUDE FILE - pa_value_names.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* This include file defines constants for the names of the values in 2 5* which the definition_pva_string and the default_linear_form are stored. 2 6**/ 2 7 2 8 /* HISTORY: 2 9*Written by Lindsey Spratt, 07/26/83. 2 10*Modified: 2 11**/ 2 12 2 13 /* format: style2,ind3 */ 2 14 dcl ( 2 15 DEFAULT_LINEAR_FORM_PREFIX 2 16 init ("default_linear_form"), 2 17 DEFINITION_PREFIX init ("definition") 2 18 ) char (32) varying internal static options (constant); 2 19 2 20 /* END INCLUDE FILE - pa_value_names.incl.pl1 */ 823 824 3 1 /* *********************************************************** 3 2* * * 3 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 3 4* * * 3 5* *********************************************************** */ 3 6 /* BEGIN INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 3 7 /* Written by Matthew C. Pierret, 01/21/82 3 8*Modified: 3 9**/ 3 10 3 11 /* format: style2,ind3 */ 3 12 dcl 1 print_vector_array based (print_vector_array_ptr), 3 13 2 version fixed bin (35), 3 14 2 number_of_dimensions 3 15 fixed bin (17), 3 16 2 maximum_dimension_name_length 3 17 fixed bin (17), 3 18 2 number_of_vectors fixed bin (17), 3 19 2 number_of_vector_slots 3 20 fixed bin (17), 3 21 2 dimension_table (pva_number_of_dimensions refer (print_vector_array.number_of_dimensions)), 3 22 3 name char (pva_maximum_dimension_name_length 3 23 refer (print_vector_array.maximum_dimension_name_length)) varying, 3 24 3 descriptor_ptr ptr, 3 25 3 cv_to_print entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 3 26 3 cv_to_typed entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 3 27 3 maximum_value_length 3 28 fixed bin (17), 3 29 2 vector_slot (pva_number_of_vector_slots refer (print_vector_array.number_of_vector_slots)) ptr; 3 30 3 31 dcl 1 print_vector based (print_vector_ptr), 3 32 2 number_of_dimensions 3 33 fixed bin (17), 3 34 2 maximum_value_length 3 35 fixed bin (35), 3 36 2 dimension (pv_number_of_dimensions refer (print_vector.number_of_dimensions)), 3 37 3 identifier fixed bin (17), 3 38 3 value char (pv_maximum_value_length refer (print_vector.maximum_value_length)) varying; 3 39 3 40 dcl pva_number_of_dimensions 3 41 fixed bin; 3 42 dcl pva_number_of_vector_slots 3 43 fixed bin; 3 44 dcl pva_maximum_dimension_name_length 3 45 fixed bin; 3 46 dcl pv_number_of_dimensions 3 47 fixed bin; 3 48 dcl pv_maximum_value_length 3 49 fixed bin; 3 50 3 51 dcl print_vector_array_ptr ptr; 3 52 dcl print_vector_ptr ptr; 3 53 dcl PRINT_VECTOR_ARRAY_VERSION_2 3 54 fixed bin (35) init (2) internal static options (constant); 3 55 3 56 /* END INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 825 826 4 1 /* *********************************************************** 4 2* * * 4 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4 4* * * 4 5* *********************************************************** */ 4 6 /* BEGIN INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 4 7 4 8 /* Written 03/01/82 by Lindsey Spratt. 4 9*Modified: 4 10*09/23/82 by Lindsey Spratt: Added the append_simple_typed_vector, 4 11* free_typed_vector_array, and free_typed_vector entries. 4 12*07/24/83 by Lindsey Spratt: Added $cv_pva_to_string and $cv_string_to_pva. 4 13**/ 4 14 4 15 /* format: style2,ind3 */ 4 16 dcl vector_util_$display entry (ptr, ptr, fixed bin (35)); 4 17 dcl vector_util_$sort_print 4 18 entry (ptr, ptr, fixed bin (35)); 4 19 4 20 dcl vector_util_$init_print_vector_array 4 21 entry options (variable); 4 22 dcl vector_util_$init_typed_vector_array 4 23 entry options (variable); 4 24 4 25 dcl vector_util_$append_dimension_print 4 26 entry (ptr, bit (1) aligned, char (*), ptr, ptr, fixed bin, fixed bin (35)); 4 27 4 28 dcl vector_util_$append_simple_print_vector 4 29 entry options (variable); 4 30 dcl vector_util_$append_general_print_vector 4 31 entry options (variable); 4 32 4 33 dcl vector_util_$append_simple_typed_vector 4 34 entry options (variable); 4 35 4 36 /* call vector_util_$free_typed_vector_array (work_area_ptr, typed_vector_array_ptr, code) */ 4 37 dcl vector_util_$free_typed_vector_array 4 38 entry (ptr, ptr, fixed bin (35)); 4 39 4 40 /* call vector_util_$free_typed_vector (work_area_ptr,typed_vector_array_ptr,typed_vector_ptr,code) */ 4 41 dcl vector_util_$free_typed_vector 4 42 entry (ptr, ptr, ptr, fixed bin (35)); 4 43 4 44 dcl vector_util_$cv_typed_to_print 4 45 entry (ptr, ptr, ptr, fixed bin (35)); 4 46 dcl vector_util_$cv_any_to_print_dimension 4 47 entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)); 4 48 4 49 dcl vector_util_$cv_pva_to_string 4 50 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 4 51 dcl vector_util_$cv_string_to_pva 4 52 entry (ptr, fixed bin (35), ptr, ptr, fixed bin (35)); 4 53 4 54 dcl vector_util_$err_no_operation 4 55 entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)); 4 56 4 57 /* END INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 4 58 827 828 5 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 5 2 5 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 5 4 5 5 dcl area_infop ptr; 5 6 5 7 dcl 1 area_info aligned based (area_infop), 5 8 2 version fixed bin, /* version number for this structure is 1 */ 5 9 2 control aligned like area_control, /* control bits for the area */ 5 10 2 owner char (32) unal, /* creator of the area */ 5 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 5 12 2 size fixed bin (18), /* size of the area in words */ 5 13 2 version_of_area fixed bin, /* version of area (returned only) */ 5 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 5 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 5 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 5 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 5 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 5 19 5 20 dcl 1 area_control aligned based, 5 21 2 extend bit (1) unal, /* says area is extensible */ 5 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 5 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 5 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 5 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 5 26 2 system bit (1) unal, /* says area is managed by system */ 5 27 2 pad bit (30) unal; 5 28 5 29 /* END INCLUDE FILE area_info.incl.pl1 */ 829 830 6 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 6 2 /* format: style2,^inddcls,idind32 */ 6 3 6 4 declare 1 terminate_file_switches based, 6 5 2 truncate bit (1) unaligned, 6 6 2 set_bc bit (1) unaligned, 6 7 2 terminate bit (1) unaligned, 6 8 2 force_write bit (1) unaligned, 6 9 2 delete bit (1) unaligned; 6 10 6 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 6 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 6 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 6 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 6 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 6 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 6 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 6 18 6 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 831 832 7 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 7 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 7 3 /* version number changed to 4, 08/10/78 WOS */ 7 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 7 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 7 6 7 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 7 8 2 version fixed bin, /* version of this structure - must be set, see below */ 7 9 2 switches aligned, /* various bit switch values */ 7 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 7 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 7 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 7 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 7 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 7 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 7 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 7 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 7 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 7 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 7 20 7 21 /* Limit of data defined for version 2 */ 7 22 7 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 7 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 7 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 7 26 /* minimum of 30 seconds required for repeat */ 7 27 /* otherwise, no repeat will occur */ 7 28 /* Limit of data defined for version 4 */ 7 29 7 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 7 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 7 32 7 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 7 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 7 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 7 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 7 37 7 38 /* END INCLUDE FILE query_info.incl.pl1 */ 833 834 835 /* Main Procedure */ 836 837 838 call initialize_translator_values (); 839 840 on cleanup call cleanup_trans (); 841 842 call cu_$arg_count (nargs, code); 843 if code ^= 0 844 then call abort (code, ""); 845 846 if nargs = 0 847 then call abort (0, USAGE_MSG); 848 849 if nargs < MIN_NUM_OF_ARGS | nargs > MAX_NUM_OF_ARGS 850 then call abort (error_table_$wrong_no_of_args, ""); 851 852 source_rpath_ptr, target_rpath_ptr = null; 853 source_rpath_len, target_rpath_len = 0; 854 replace = "0"b; 855 i = 1; 856 857 do while (i <= nargs); 858 call get_arg (i, arg_ptr, arg_len); 859 if arg = "-source" 860 then call get_arg (i, source_rpath_ptr, source_rpath_len); 861 else if arg = "-target" 862 then call get_arg (i, target_rpath_ptr, target_rpath_len); 863 else if arg = "-replace" | arg = "-rp" 864 then replace = "1"b; 865 else if arg = "-no_replace" | arg = "-nrp" 866 then replace = "0"b; 867 else if source_rpath_ptr = null 868 then do; 869 source_rpath_ptr = arg_ptr; 870 source_rpath_len = arg_len; 871 end; 872 else if target_rpath_ptr = null 873 then do; 874 target_rpath_ptr = arg_ptr; 875 target_rpath_len = arg_len; 876 end; 877 else call abort (error_table_$bad_arg, """" || arg || """"); 878 end; 879 880 if source_rpath_ptr = null 881 then call abort (error_table_$noarg, "Source pathname."); 882 883 call expand_pathname_$add_suffix (source_rpath, SOURCE_SUFFIX, sdname, sename, code); 884 if code ^= 0 885 then call abort (code, """" || source_rpath || """"); 886 887 if target_rpath_ptr ^= null 888 then do; 889 call expand_pathname_$add_suffix (target_rpath, VALUE_SUFFIX, tdname, tename, code); 890 if code ^= 0 891 then call abort (code, """" || target_rpath || """"); 892 end; 893 else do; 894 tdname = get_wdir_ (); 895 call suffixed_name_$new_suffix (sename, SOURCE_SUFFIX, VALUE_SUFFIX, tename, code); 896 if code ^= 0 then call abort (code, "Unable to convert the source entry name into a target value segment entry name."); 897 end; 898 899 call hcs_$initiate_count (sdname, sename, "", bit_count, NO_COPY, seg_ptr, code); 900 if code = error_table_$segknown 901 then code = 0; 902 else if code ^= 0 903 then call abort (code, rtrim (sdname) || ">" || rtrim (sename)); 904 905 seg_len = divide (bit_count + 8, 9, 21, 0); 906 907 call ioa_ ("^a ^3.1f", ME_UPPER, CVAPD_VERSION); 908 909 call translator_temp_$get_segment ((ME), temp_seg_ptr, code); 910 if code ^= 0 911 then call abort (code, ""); 912 913 call translator_temp_$get_next_segment (temp_seg_ptr, area_ptr, code); 914 if code ^= 0 915 then call abort (code, ""); 916 917 call translator_temp_$get_next_segment (area_ptr, definition_string_ptr, code); 918 if code ^= 0 then call abort (code, ""); 919 definition_string_length = sys_info$max_seg_size * 4; 920 921 unspec (auto_area_info) = "0"b; 922 923 auto_area_info.version = 1; 924 auto_area_info.extend = "1"b; 925 auto_area_info.zero_on_alloc = "1"b; 926 auto_area_info.zero_on_free = "0"b; 927 auto_area_info.dont_free = "0"b; 928 auto_area_info.no_freeing = "0"b; 929 auto_area_info.system = "1"b; 930 auto_area_info.owner = ME; 931 auto_area_info.size = sys_info$max_seg_size; 932 auto_area_info.areap = area_ptr; 933 934 call define_area_ (addr (auto_area_info), code); 935 if code ^= 0 936 then call abort (code, ""); 937 938 call vector_util_$init_print_vector_array (area_ptr, N_INITIAL_PV_SLOTS, N_PV_DIMS, MAX_DIM_NAME_LEN, print_vector_array_ptr, code); 939 if code ^= 0 940 then call abort (code, ""); 941 942 print_vector_array.dimension_table.name = DIMENSIONS; 943 944 if lex_delims = "" 945 then call lex_string_$init_lex_delims (QUOTE_OPEN, QUOTE_CLOSE, 946 COMMENT_OPEN, COMMENT_CLOSE, STMT_DELIM, SINIT, 947 BREAK_CHARS, IGNORED_BREAK_CHARS, lex_delims, lex_control_chars); 948 949 call lex_string_$lex (seg_ptr, seg_len, IGNORED_INPUT_LEN, 950 temp_seg_ptr, SLEX, QUOTE_OPEN, QUOTE_CLOSE, 951 COMMENT_OPEN, COMMENT_CLOSE, STMT_DELIM, 952 BREAK_CHARS, IGNORED_BREAK_CHARS, lex_delims, lex_control_chars, 953 Pfirst_stmt_desc, Pfirst_token_desc, code); 954 if code = error_table_$zero_length_seg 955 then call abort (code, rtrim (sdname) || ">" || rtrim (sename)); 956 else if code ^= 0 957 then do; 958 code = 0; 959 MERROR_SEVERITY = FATAL_ERROR; 960 end; 961 962 Pthis_token = Pfirst_token_desc; 963 964 call SEMANTIC_ANALYSIS (); 965 966 if MERROR_SEVERITY >= FATAL_ERROR 967 then call abort (0, FATAL_ERROR_MSG); 968 969 call initiate_file_$create (tdname, tename, RW_ACCESS, value_seg_ptr, created_value_seg, (0), code); 970 if value_seg_ptr = null 971 then call abort (code, rtrim (tdname) || ">" || rtrim (tename)); 972 973 if created_value_seg 974 then do; 975 call value_$init_seg (value_seg_ptr, PERMANENT_VALUE_SEG_TYPE, null, 0, code); 976 if code ^= 0 then call abort (code, rtrim (tdname) || ">" || rtrim (tename)); 977 end; 978 979 definition_value_name = DEFINITION_PREFIX || "." || command_name; 980 default_linear_form_value_name = DEFAULT_LINEAR_FORM_PREFIX || "." || command_name; 981 982 if ^replace 983 then do; 984 985 call value_$get_data (value_seg_ptr, PERMANENT_VALUE, (definition_value_name), area_ptr, (null ()), (0), code); 986 987 988 if code = 0 then definition_exists = "1"b; 989 else if code = error_table_$oldnamerr then definition_exists = "0"b; 990 else call abort (code, "Searching for " || command_name || " definition in value segment."); 991 992 if definition_exists 993 then do; 994 call command_query_ (addr (auto_query_info), answer, ME, 995 "A definition for ^a exists^/ in the value segment ^a>^a.^/Do you want to replace it?", 996 command_name, tdname, tename); 997 if answer = "no" | answer = "n" 998 then call abort (0, "Definition not replaced."); 999 else do; 1000 replace = "1"b; 1001 call com_err_ (0, ME, "Definition will be replaced."); 1002 end; 1003 end; 1004 end; 1005 1006 if replace 1007 then do; 1008 call value_$delete_data (value_seg_ptr, PERMANENT_VALUE, (definition_value_name), code); 1009 if code = error_table_$empty_file | code = error_table_$oldnamerr 1010 then call com_err_ ((0), ME, "No old definition of ^a in value segment. Adding definition.", command_name); 1011 else if code ^= 0 1012 then call abort (code, "Cannot replace " || command_name || " definition in value segment."); 1013 1014 call value_$delete_data (value_seg_ptr, PERMANENT_VALUE, (default_linear_form_value_name), code); 1015 if code = error_table_$empty_file | code = error_table_$oldnamerr 1016 then call com_err_ ((0), ME, "No old default linear form of ^a in value segment. Adding definition.", command_name); 1017 else if code ^= 0 1018 then call abort (code, "Cannot replace " || command_name || " definition in value segment."); 1019 1020 end; 1021 1022 call vector_util_$cv_pva_to_string (print_vector_array_ptr, definition_string_ptr, definition_string_length, code); 1023 1024 if code ^= 0 1025 then call abort (code, ""); 1026 1027 call value_$set_data (value_seg_ptr, PERMANENT_VALUE, (definition_value_name), definition_string_ptr, divide (definition_string_length, BYTES_PER_WORD, 18, 0), (null ()), (null ()), (0), code); 1028 if code ^= 0 1029 then call abort (code, ""); 1030 1031 dlf_var_length = default_linear_form_length; 1032 allocate dlf_var in(based_area) set(dlf_var_ptr); 1033 dlf_var = default_linear_form_string; 1034 1035 call value_$set_data (value_seg_ptr, PERMANENT_VALUE, (default_linear_form_value_name), dlf_var_ptr, divide(dlf_var_length + 3, BYTES_PER_WORD, 17, 0) + 1, (null ()), (null ()), (0), code); 1036 if code ^= 0 1037 then call abort (code, ""); 1038 1039 RETURN: 1040 1041 call cleanup_trans (); 1042 return; 1043 1044 ERROR_RETURN: 1045 1046 return; 1047 1048 1049 1050 /* Translation and Utility Routines */ 1051 1052 /* 1053* This subroutine adds the specified string (usually the current token) 1054* to a print vector in the print vector array we are building. 1055* The string becomes the value of the dimension specified by dim_num. 1056* If necessary, this subroutine adds a new print vector 1057* (in special cases) to accommodate the new dimension value (token). 1058**/ 1059 1060 add_to_vector: proc (str, dim_num); 1061 1062 /* Automatic */ 1063 1064 dcl vector_num fixed bin; 1065 1066 /* Parameter */ 1067 1068 dcl dim_num fixed bin; 1069 dcl str char (*); 1070 1071 if MERROR_SEVERITY >= FATAL_ERROR /* Quit if hopeless. */ 1072 then return; 1073 1074 if value_defined (dim_num) & ^CAN_HAVE_MULTIPLE_DEFINITIONS (dim_num) 1075 then do; 1076 call ERROR (7); 1077 return; 1078 end; 1079 1080 if (dim_num = EXCLUDED_OPTION | dim_num = UNEXCLUDED_OPTION) & str = option 1081 then default_exclude_myself = "0"b; /* Don't need default exclusion anymore. */ 1082 1083 if dim_num = SYNONYM /* Special, we need a SYNONYM print vector. */ 1084 then do; 1085 call set_name (str, synonym_len, synonym_ptr); 1086 call append_vector (OPTION_NAME_VECTOR, vector_num, code); 1087 if code ^= 0 1088 then do; 1089 call ERROR (6); 1090 return; 1091 end; 1092 end; 1093 else if dim_num = NEGATIVE_FORM /* Special, we need a NEGATIVE_FORM print vector. */ 1094 /* Really a SYNONYM vector plus NEGATIVE_FORM dim. */ 1095 then do; 1096 call set_name (str, synonym_len, synonym_ptr); 1097 call append_vector (NEGATIVE_FORM_VECTOR, vector_num, code); 1098 if code ^= 0 1099 then do; 1100 call ERROR (6); 1101 return; 1102 end; 1103 end; 1104 else do; /* Nonspecial, try adding to current print vector. */ 1105 vector_num = main_pv_num; 1106 if value_defined (dim_num) & CAN_HAVE_MULTIPLE_DEFINITIONS (dim_num) 1107 then do; 1108 call append_vector (main_pv_type, vector_num, code); 1109 if code ^= 0 1110 then do; 1111 call ERROR (6); 1112 return; 1113 end; 1114 end; 1115 if CAN_HAVE_VALUE (dim_num) 1116 then call add_dim (dim_num, str, vector_num, code); 1117 else call add_dim (dim_num, "", vector_num, code); 1118 if code ^= 0 1119 then do; 1120 call ERROR (8); 1121 return; 1122 end; 1123 end; 1124 1125 value_defined (dim_num) = "1"b; 1126 1127 end add_to_vector; 1128 1129 1130 1131 /* 1132* Sets up a print vector with all the mandatory information for 1133* the specified vector type. Sets the current print vector to this one. 1134**/ 1135 1136 start_vector: proc (vector_type); 1137 1138 /* Parameter */ 1139 1140 dcl vector_type fixed bin; 1141 1142 /* Automatic */ 1143 1144 dcl vector_num fixed bin; 1145 1146 if MERROR_SEVERITY >= FATAL_ERROR 1147 then return; 1148 1149 value_defined (*) = "0"b; 1150 1151 call append_vector (vector_type, vector_num, code); 1152 if code ^= 0 1153 then do; 1154 call ERROR (6); 1155 return; 1156 end; 1157 1158 main_pv_num = vector_num; 1159 main_pv_type = vector_type; 1160 1161 end start_vector; 1162 1163 1164 1165 /* 1166* This routine can be called to initialize different types of print vectors 1167* given the type wanted. The input information is vector type. 1168* The output information is the vector_num of the new vector. 1169* Before calling this procedure, the caller must 1170* make sure that all necessary information for that particular 1171* print vector has been set. For example, the OPTION print vector 1172* needs to have then command_name and option variables set. 1173**/ 1174 1175 append_vector: proc (vector_type, vector_num, code); 1176 1177 /* Parameter */ 1178 1179 dcl code fixed bin (35); 1180 dcl vector_num fixed bin; 1181 dcl vector_type fixed bin; 1182 1183 code = 0; 1184 n_definition_order = n_definition_order + 1; 1185 call set_definition_order (n_definition_order, definition_order); 1186 1187 if vector_type = OPTION_VECTOR 1188 then do; 1189 call vector_util_$append_general_print_vector 1190 (area_ptr, N_INCREMENTAL_PV_SLOTS, 1191 FREE_OLD_PV_ARRAY, NEW_VECTOR, 1192 DIMENSIONS (DEFINITION_ORDER), definition_order, 1193 DIMENSIONS (COMMAND_NAME), command_name, 1194 DIMENSIONS (OPTION), option, 1195 print_vector_array_ptr, code); 1196 if code ^= 0 1197 then return; 1198 end; 1199 else if vector_type = ARGUMENT_VECTOR 1200 then do; 1201 call vector_util_$append_general_print_vector 1202 (area_ptr, N_INCREMENTAL_PV_SLOTS, 1203 FREE_OLD_PV_ARRAY, NEW_VECTOR, 1204 DIMENSIONS (DEFINITION_ORDER), definition_order, 1205 DIMENSIONS (COMMAND_NAME), command_name, 1206 DIMENSIONS (OPTION), option, 1207 DIMENSIONS (ARGUMENT), argument, 1208 print_vector_array_ptr, code); 1209 if code ^= 0 1210 then return; 1211 end; 1212 else if vector_type = INITIAL_VECTOR | vector_type = BASIC_VECTOR 1213 then do; 1214 call vector_util_$append_general_print_vector 1215 (area_ptr, N_INCREMENTAL_PV_SLOTS, 1216 FREE_OLD_PV_ARRAY, NEW_VECTOR, 1217 DIMENSIONS (DEFINITION_ORDER), definition_order, 1218 DIMENSIONS (COMMAND_NAME), command_name, 1219 print_vector_array_ptr, code); 1220 if code ^= 0 1221 then return; 1222 end; 1223 else if vector_type = OPTION_NAME_VECTOR 1224 then do; 1225 call vector_util_$append_general_print_vector 1226 (area_ptr, N_INCREMENTAL_PV_SLOTS, 1227 FREE_OLD_PV_ARRAY, NEW_VECTOR, 1228 DIMENSIONS (DEFINITION_ORDER), definition_order, 1229 DIMENSIONS (COMMAND_NAME), command_name, 1230 DIMENSIONS (OPTION), option, 1231 DIMENSIONS (SYNONYM), synonym, 1232 print_vector_array_ptr, code); 1233 if code ^= 0 1234 then return; 1235 end; 1236 else if vector_type = NEGATIVE_FORM_VECTOR 1237 then do; 1238 call vector_util_$append_general_print_vector 1239 (area_ptr, N_INCREMENTAL_PV_SLOTS, 1240 FREE_OLD_PV_ARRAY, NEW_VECTOR, 1241 DIMENSIONS (DEFINITION_ORDER), definition_order, 1242 DIMENSIONS (COMMAND_NAME), command_name, 1243 DIMENSIONS (OPTION), option, 1244 DIMENSIONS (SYNONYM), synonym, 1245 DIMENSIONS (NEGATIVE_FORM), "", 1246 print_vector_array_ptr, code); 1247 if code ^= 0 1248 then return; 1249 end; 1250 else do; 1251 code = error_table_$bad_arg; 1252 return; 1253 end; 1254 1255 vector_num = print_vector_array.number_of_vectors; 1256 1257 end append_vector; 1258 1259 1260 1261 /* 1262* This routine adds a dimension value to a specified print vector. 1263* If the print vector is specified by a -1, a new print vector 1264* is created to hold the dimension value. The number of the 1265* new print vector is returned in that case. 1266**/ 1267 1268 add_dim: proc (dim_num, dim_value, vector_num, code); 1269 1270 /* Parameter */ 1271 1272 dcl code fixed bin (35); 1273 dcl dim_num fixed bin; 1274 dcl dim_value char (*); 1275 dcl vector_num fixed bin; 1276 1277 call vector_util_$append_general_print_vector 1278 (area_ptr, N_INCREMENTAL_PV_SLOTS, 1279 FREE_OLD_PV_ARRAY, vector_num, 1280 DIMENSIONS (dim_num), dim_value, 1281 print_vector_array_ptr, code); 1282 1283 end add_dim; 1284 1285 1286 1287 /* 1288* This routine sets the character representation of the definition order. 1289**/ 1290 1291 (size): 1292 set_definition_order: proc (arg_n_definition_order, arg_definition_order); 1293 1294 /* Parameter */ 1295 1296 dcl arg_n_definition_order fixed bin; 1297 dcl arg_definition_order pic "999"; 1298 1299 on size begin; 1300 call com_err_ (0, ME, "The size of your definition is too large." 1301 ); 1302 call abort (0, "It has caused the definition_order dimension to overflow."); 1303 end; 1304 1305 arg_definition_order = arg_n_definition_order; 1306 1307 end set_definition_order; 1308 1309 1310 1311 /* 1312* This routine is used to set information we must keep around 1313* (i.e., the command_name, option, argument variables). 1314* It sets the specified based variable to be the specified string 1315* (usually the current token). 1316**/ 1317 1318 set_name: proc (arg_str, arg_name_len, arg_name_ptr); 1319 1320 /* Based */ 1321 1322 dcl name char (arg_name_len) based (arg_name_ptr); 1323 1324 /* Parameter */ 1325 1326 dcl arg_name_len fixed bin (21); 1327 dcl arg_name_ptr ptr; 1328 dcl arg_str char (*); 1329 1330 if arg_name_ptr ^= null 1331 then free arg_name_ptr -> name; 1332 1333 arg_name_len = length (arg_str); 1334 allocate name in (based_area) set (arg_name_ptr); 1335 1336 name = arg_str; 1337 1338 end set_name; 1339 1340 1341 1342 /* This routine "resets" a specified based character string variable by 1343* freeing it and setting the length to 0 and setting the ptr to null. 1344* */ 1345 1346 reset_name: proc (arg_name_len, arg_name_ptr); 1347 1348 /* Based */ 1349 1350 dcl name char (arg_name_len) based (arg_name_ptr); 1351 1352 /* Parameter */ 1353 1354 dcl arg_name_len fixed bin (21); 1355 dcl arg_name_ptr ptr; 1356 1357 if arg_name_ptr ^= null 1358 then free arg_name_ptr -> name; 1359 1360 arg_name_len = 0; 1361 arg_name_ptr = null; 1362 1363 end reset_name; 1364 1365 1366 1367 /* 1368* This routine initializes some global variables used by 1369* the translator. Some of these variables must be set immediately 1370* on invocation not only for the translator can clean up properly, 1371* but to start proper "running" values. 1372**/ 1373 1374 initialize_translator_values: proc (); 1375 1376 n_definition_order = 0; 1377 1378 command_name_ptr, option_ptr, argument_ptr = null; 1379 command_name_len, option_len, argument_len = 0; 1380 1381 synonym_ptr = null; 1382 synonym_len = 0; 1383 1384 expanded_token_ptr = null; 1385 expanded_token_len = 0; 1386 1387 seg_ptr = null; 1388 temp_seg_ptr, area_ptr = null; 1389 1390 unspec (auto_query_info) = "0"b; 1391 auto_query_info.version = query_info_version_5; 1392 auto_query_info.yes_or_no_sw = "1"b; 1393 auto_query_info.question_iocbp = null; 1394 auto_query_info.answer_iocbp = null; 1395 auto_query_info.explanation_ptr = null; 1396 1397 end initialize_translator_values; 1398 1399 1400 1401 /* Gets arg(arg_num) from the command's argument list. 1402* increments arg_num by 1. If an error happens getting the arg, 1403* we call abort directly, we don't return from here. 1404* */ 1405 1406 get_arg: proc (arg_num, arg_ptr, arg_len); 1407 1408 /* Parameter */ 1409 1410 dcl arg_len fixed bin (21); 1411 dcl arg_num fixed bin; 1412 dcl arg_ptr ptr; 1413 1414 /* Automatic */ 1415 1416 dcl code fixed bin (35); 1417 1418 call cu_$arg_ptr (arg_num, arg_ptr, arg_len, code); 1419 if code ^= 0 1420 then call abort (code, ""); 1421 1422 arg_num = arg_num + 1; 1423 1424 end get_arg; 1425 1426 1427 1428 /* 1429* This routine cleans up the user environment after an 1430* invocation of the translator. 1431**/ 1432 1433 cleanup_trans: proc (); 1434 1435 if seg_ptr ^= null 1436 then call term_$seg_ptr (seg_ptr, code); 1437 1438 if temp_seg_ptr ^= null 1439 then call translator_temp_$release_all_segments (temp_seg_ptr, code); 1440 1441 if value_seg_ptr ^= null 1442 then call terminate_file_ (value_seg_ptr, (0), TERM_FILE_TERM, code); 1443 1444 end cleanup_trans; 1445 1446 1447 1448 /* This routine prints an error message, cleans up the environment and then 1449* aborts the invocation of mtape_cv_apd. */ 1450 1451 1452 abort: proc (code, msg); 1453 1454 /* Parameter */ 1455 1456 dcl code fixed bin (35); 1457 dcl msg char (*); 1458 1459 call com_err_ (code, ME, msg); 1460 call cleanup_trans (); 1461 goto ERROR_RETURN; 1462 1463 end abort; 1464 1465 1466 1467 /* This routine takes a based character string variable, 1468* and appends the given string to it (reallocating the based variable 1469* for more storage if necessary). 1470* */ 1471 1472 append_to_str: proc (str_to_append, str_len, str_ptr); 1473 1474 /* Automatic */ 1475 1476 dcl temp_str_len fixed bin (21); 1477 dcl temp_str_ptr ptr; 1478 1479 /* Based */ 1480 1481 dcl str char (str_len) based (str_ptr); 1482 dcl temp_str char (temp_str_len) based (temp_str_ptr); 1483 1484 /* Parameter */ 1485 1486 dcl str_len fixed bin (21); 1487 dcl str_ptr ptr; 1488 dcl str_to_append char (*); 1489 1490 if str_ptr = null 1491 then do; 1492 str_len = length (str_to_append); 1493 allocate str in (based_area) set (str_ptr); 1494 str = str_to_append; 1495 return; 1496 end; 1497 1498 temp_str_len = length (str_to_append) + str_len; 1499 allocate temp_str in (based_area) set (temp_str_ptr); 1500 temp_str = str || str_to_append; 1501 free str_ptr -> str; 1502 str_ptr = temp_str_ptr; 1503 str_len = temp_str_len; 1504 1505 end append_to_str; 1506 1507 1508 dcl TRACING bit(1) aligned int static init("0"b); 1509 1510 8 1 /* START OF: rdc_start_.incl.pl1 * * * * * * */ 8 2 8 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 8 4 /* */ 8 5 /* N__a_m_e: rdc_start_.incl.pl1 */ 8 6 /* */ 8 7 /* This include segment is used by compilers generated by the */ 8 8 /* reduction_compiler. Such compilers include a SEMANTIC_ANALYSIS */ 8 9 /* subroutine generated by the reduction_compiler. This subroutine */ 8 10 /* compares a chain of input tokens with token requirements */ 8 11 /* specified in reductions. This include segment declares the */ 8 12 /* structure of the input tokens (which are generated by lex_string_),*/ 8 13 /* defines the beginning of the SEMANTIC_ANALYSIS procedure, and */ 8 14 /* declares Pthis_token, a global pointer variable which points to */ 8 15 /* the "current" token being referenced by SEMANTIC_ANALYSIS. */ 8 16 /* */ 8 17 /* S__t_a_t_u_s */ 8 18 /* */ 8 19 /* 0) Created: April, 1974 by G. C. Dixon */ 8 20 /* */ 8 21 /* * * * * * * * * * * * * * * * * * * * * * * */ 8 22 8 23 dcl Pthis_token ptr; /* ptr to the "current" token being acted upon. */ 8 24 9 1 /* START OF: lex_descriptors_.incl.pl1 * * * * * * */ 9 2 9 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 9 4 /* */ 9 5 /* Name: lex_descriptors_.incl.pl1 */ 9 6 /* */ 9 7 /* This include segment defines the structure of the token */ 9 8 /* descriptor, statement descriptor, and comment descriptor created */ 9 9 /* by the lex_string_ program. */ 9 10 /* */ 9 11 /* Status: */ 9 12 /* */ 9 13 /* 0) Created: Dec, 1973 by G. C. Dixon */ 9 14 /* */ 9 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 9 16 9 17 9 18 9 19 9 20 dcl 9 21 1 comment aligned based (Pcomment), 9 22 /* descriptor for a comment. */ 9 23 2 group1 unaligned, 9 24 3 version fixed bin(17), /* comment descriptor version. */ 9 25 3 size fixed bin(17), /* comment descriptor size (in words). */ 9 26 2 Pnext ptr unal, /* ptr to next comment descriptor. */ 9 27 2 Plast ptr unal, /* ptr to last comment descriptor. */ 9 28 2 Pvalue ptr unal, /* ptr to comment. */ 9 29 2 Lvalue fixed bin(18), /* length of comment. */ 9 30 2 group2 unaligned, 9 31 3 line_no fixed bin(17), /* line no of line containing comment. */ 9 32 3 S, /* switches: */ 9 33 4 before_stmt bit(1), /* comment is before 1st token of stmt. */ 9 34 4 contiguous bit(1), /* no tokens between this and last comment. */ 9 35 4 pad bit(16), 9 36 comment_value char(comment.Lvalue) based (comment.Pvalue), 9 37 /* body of comment. */ 9 38 Pcomment ptr; /* ptr to comment descriptor. */ 9 39 9 40 dcl 9 41 1 stmt aligned based (Pstmt), 9 42 /* descriptor for a statement. */ 9 43 2 group1 unaligned, 9 44 3 version fixed bin(17), /* statement descriptor version. */ 9 45 3 size fixed bin(17), /* statement descriptor size (in words). */ 9 46 2 Pnext ptr unal, /* ptr to next statement descriptor. */ 9 47 2 Plast ptr unal, /* ptr to last statement descriptor. */ 9 48 2 Pvalue ptr unal, /* ptr to statement. */ 9 49 2 Lvalue fixed bin(18), /* length of statement. */ 9 50 2 Pfirst_token ptr unal, /* ptr to 1st token of statement. */ 9 51 2 Plast_token ptr unal, /* ptr to last token of statement. */ 9 52 2 Pcomments ptr unal, /* ptr to comments in statement. */ 9 53 2 Puser ptr unal, /* user-defined ptr. */ 9 54 2 group2 unaligned, 9 55 3 Ntokens fixed bin(17), /* number of tokens in statement. */ 9 56 3 line_no fixed bin(17), /* line no of line on which statement begins. */ 9 57 3 Istmt_in_line fixed bin(17), /* number of stmts in line containing this stmt. */ 9 58 /* (the number includes this stmt.) */ 9 59 3 semant_type fixed bin(17), /* semantic type of the statement. */ 9 60 3 S, /* switches: */ 9 61 4 error_in_stmt bit(1), /* stmt contains a syntactic error. */ 9 62 4 output_in_err_msg bit(1), /* stmt has been output in previous error message.*/ 9 63 4 pad bit(34), 9 64 stmt_value char(stmt.Lvalue) based (stmt.Pvalue), 9 65 /* text of the statement. */ 9 66 Pstmt ptr; /* ptr to a stmt descriptor. */ 9 67 9 68 dcl 9 69 1 token aligned based (Ptoken), 9 70 /* descriptor for a token. */ 9 71 2 group1 unaligned, 9 72 3 version fixed bin(17), /* token descriptor version. */ 9 73 3 size fixed bin(17), /* token descriptor size (in words). */ 9 74 2 Pnext ptr unal, /* ptr to next token descriptor. */ 9 75 2 Plast ptr unal, /* ptr to last token descriptor. */ 9 76 2 Pvalue ptr unal, /* ptr to token. */ 9 77 2 Lvalue fixed bin(18), /* length of token. */ 9 78 2 Pstmt ptr unal, /* ptr to descriptor of stmt containing token. */ 9 79 2 Psemant ptr unal, /* ptr to descriptor(s) of token's semantic value.*/ 9 80 2 group2 unaligned, 9 81 3 Itoken_in_stmt fixed bin(17), /* position of token within its statement. */ 9 82 3 line_no fixed bin(17), /* line number of the line containing the token. */ 9 83 3 Nvalue fixed bin(35), /* numeric value of decimal-integer tokens. */ 9 84 3 S, /* switches: */ 9 85 4 end_of_stmt bit(1), /* token is an end-of-stmt token. */ 9 86 4 quoted_string bit(1), /* token is a quoted string. */ 9 87 4 quotes_in_string bit(1), /* on if quote-close delimiters appear in quoted */ 9 88 /* string (as doubled quotes on input.) */ 9 89 4 quotes_doubled bit(1), /* on if quotes in the string are doubled after */ 9 90 /* string has been lexed into a token. */ 9 91 4 pad2 bit(32), 9 92 token_value char(token.Lvalue) based (token.Pvalue), 9 93 /* value of the token. */ 9 94 Ptoken ptr; /* ptr to a token descriptor. */ 9 95 9 96 /* END OF: lex_descriptors_.incl.pl1 * * * * * * */ 8 25 8 26 8 27 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 8 28 8 29 8 30 SEMANTIC_ANALYSIS: procedure; /* procedure which analyzes the syntax and */ 8 31 /* semantics of the tokens in the input list. */ 8 32 8 33 dcl /* automatic variables */ 8 34 LTOKEN_REQD_VALUE fixed bin(18), /* length of a token requirement. */ 8 35 NRED fixed bin, /* number of the reduction tokens are being */ 8 36 /* compared to. */ 8 37 PRED ptr, /* ptr to the reduction tokens are being */ 8 38 /* compared to. */ 8 39 PTOKEN_REQD ptr, /* ptr to token requirement descriptor associated */ 8 40 /* with reduction tokens are being compared to. */ 8 41 PTOKEN_REQD_VALUE ptr, /* ptr to a token requirement. */ 8 42 STOKEN_FCN bit(1) aligned, /* return value from a relative syntax function. */ 8 43 CODE fixed bin(35), /* an error code. */ 8 44 I fixed bin, /* a do-group index. */ 8 45 NUMBER fixed bin(35); /* fixed binary representation of a decimal */ 8 46 /* number character string. */ 8 47 8 48 dcl /* based variables */ 8 49 1 RED aligned based (PRED), 8 50 /* descriptor for reduction tokens are being */ 8 51 /* compared to. */ 8 52 2 TOKEN_REQD unaligned, 8 53 3 IFIRST fixed bin(17) unal, /* index of first token requirement. */ 8 54 3 ILAST fixed bin(17) unal, /* index of last token requirement associated */ 8 55 /* with this reduction. */ 8 56 1 TOKEN_REQD aligned based (PTOKEN_REQD), 8 57 /* a token requirement descriptor. */ 8 58 2 FORM fixed bin(17) unal, /* form of the token requirement: */ 8 59 /* -1 = relative token requirement function; */ 8 60 /* TYPE = index of the particular token */ 8 61 /* function in the token_fcn array. */ 8 62 /* 0 = built-in token requirement function; */ 8 63 /* TYPE = as defined below. */ 8 64 /* >0 = absolute token requirement: */ 8 65 /* FORM = index(TOKEN_STRINGS,TOKEN_REQD); */ 8 66 /* TYPE = length(TOKEN_REQD); */ 8 67 2 TYPE fixed bin(17) unal, /* TYPE of built-in token requirement function: */ 8 68 /* 1 = compile test to see if input token */ 8 69 /* chain is exhausted (). */ 8 70 /* 2 = compile test for any token value */ 8 71 /* (). */ 8 72 /* 3 = compile test for a PL/I identifier */ 8 73 /* () of 32 or fewer characters. */ 8 74 /* 4 = compile test for token which is a */ 8 75 /* . */ 8 76 /* 5 = compile test for token which is a single */ 8 77 /* backspace character (). */ 8 78 /* 6 = compile test for a token which is a */ 8 79 /* . */ 8 80 8 81 1 TOKEN_REQD_STRING aligned based (PTOKEN_REQD), 8 82 /* overlay for an absolute token requirement */ 8 83 /* descriptor. */ 8 84 2 I fixed bin(17) unal, /* index into list of token strings of the */ 8 85 /* absolute token string assoc w/ descriptor. */ 8 86 2 L fixed bin(17) unal, /* length of the absolute token string. */ 8 87 TOKEN_REQD_VALUE char(LTOKEN_REQD_VALUE) based (PTOKEN_REQD_VALUE); 8 88 /* absolute token string which token is reqd */ 8 89 /* to match in order for tokens which are */ 8 90 /* "current" on the list to match the reduction. */ 8 91 8 92 dcl /* builtin functions */ 8 93 (addr, max, null, search, substr, verify) 8 94 builtin; 8 95 8 96 dcl /* entries */ 8 97 cv_dec_check_ entry (char(*), fixed bin(35)) returns (fixed bin(35)); 8 98 8 99 dcl /* static variables */ 8 100 BACKSPACE char(1) aligned int static init (""); 8 101 8 102 /* END OF: rdc_start_.incl.pl1 * * * * * * */ 1511 1512 1513 dcl DIRECTION fixed bin init(+1); /* direction in which tokens compared. */ 1514 dcl STACK (10) fixed bin, /* reduction label stack. */ 1515 STACK_DEPTH fixed bin init (0); /* index into STACK. */ 1516 1517 1518 dcl 1 REDUCTION (120) unaligned based (addr (REDUCTIONS)), 1519 /* object reductions. */ 1520 2 TOKEN_REQD, 1521 3 IFIRST fixed bin(17), /* index of first required token. */ 1522 3 ILAST fixed bin(17), /* index of last required token. */ 1523 1524 REDUCTIONS (240) fixed bin(17) unaligned internal static options(constant) initial ( 1525 1, 2, /* 1/ Program_name : */ 1526 3, 3, /* 2/ */ 1527 4, 4, /* 3/ */ 1528 5, 6, /* 4/ Explanation : */ 1529 7, 8, /* 5/ Default_linear_form : */ 1530 9, 10, /* 6/ Initial_implied_option : */ 1531 11, 12, /* 7/ Validate_result : */ 1532 13, 14, /* 8/ Validate_result_explanation : */ 1533 3, 3, /* 9/ */ 1534 4, 4, /* 10/ */ 1535 15, 16, /* 11/ End ; */ 1536 17, 18, /* 12/ Option : */ 1537 3, 3, /* 13/ */ 1538 17, 18, /* 14/ Option : */ 1539 19, 20, /* 15/ Option_name : */ 1540 21, 22, /* 16/ First_argument : */ 1541 23, 24, /* 17/ Antonym : */ 1542 5, 6, /* 18/ Explanation : */ 1543 25, 26, /* 19/ Exclude : */ 1544 27, 28, /* 20/ Unexclude : */ 1545 29, 30, /* 21/ Presence : */ 1546 31, 32, /* 22/ Next_implied_option : */ 1547 3, 3, /* 23/ */ 1548 4, 4, /* 24/ */ 1549 15, 16, /* 25/ End ; */ 1550 17, 18, /* 26/ Option : */ 1551 33, 34, /* 27/ Argument : */ 1552 3, 3, /* 28/ */ 1553 4, 4, /* 29/ */ 1554 33, 34, /* 30/ Argument : */ 1555 35, 36, /* 31/ Validate : */ 1556 37, 38, /* 32/ Validate_explanation : */ 1557 39, 40, /* 33/ Default_value : */ 1558 41, 42, /* 34/ Antonym_value : */ 1559 29, 30, /* 35/ Presence : */ 1560 43, 44, /* 36/ Next_argument : */ 1561 5, 6, /* 37/ Explanation : */ 1562 45, 46, /* 38/ Force_literal : */ 1563 3, 3, /* 39/ */ 1564 4, 4, /* 40/ */ 1565 15, 16, /* 41/ End ; */ 1566 17, 18, /* 42/ Option : */ 1567 33, 34, /* 43/ Argument : */ 1568 3, 3, /* 44/ */ 1569 4, 4, /* 45/ */ 1570 47, 47, /* 46/ , */ 1571 16, 16, /* 47/ ; */ 1572 4, 4, /* 48/ */ 1573 48, 48, /* 49/ */ 1574 3, 3, /* 50/ */ 1575 47, 47, /* 51/ , */ 1576 16, 16, /* 52/ ; */ 1577 3, 3, /* 53/ */ 1578 4, 4, /* 54/ */ 1579 47, 47, /* 55/ , */ 1580 16, 16, /* 56/ ; */ 1581 4, 4, /* 57/ */ 1582 3, 3, /* 58/ */ 1583 47, 47, /* 59/ , */ 1584 16, 16, /* 60/ ; */ 1585 3, 3, /* 61/ */ 1586 4, 4, /* 62/ */ 1587 3, 3, /* 63/ */ 1588 4, 4, /* 64/ */ 1589 3, 3, /* 65/ */ 1590 4, 4, /* 66/ */ 1591 49, 50, /* 67/ ; */ 1592 3, 3, /* 68/ */ 1593 4, 4, /* 69/ */ 1594 3, 3, /* 70/ */ 1595 4, 4, /* 71/ */ 1596 3, 3, /* 72/ */ 1597 4, 4, /* 73/ */ 1598 49, 50, /* 74/ ; */ 1599 3, 3, /* 75/ */ 1600 4, 4, /* 76/ */ 1601 49, 50, /* 77/ ; */ 1602 3, 3, /* 78/ */ 1603 4, 4, /* 79/ */ 1604 3, 3, /* 80/ */ 1605 4, 4, /* 81/ */ 1606 49, 50, /* 82/ ; */ 1607 3, 3, /* 83/ */ 1608 4, 4, /* 84/ */ 1609 3, 3, /* 85/ */ 1610 4, 4, /* 86/ */ 1611 3, 3, /* 87/ */ 1612 4, 4, /* 88/ */ 1613 3, 3, /* 89/ */ 1614 4, 4, /* 90/ */ 1615 51, 52, /* 91/ required ; */ 1616 53, 54, /* 92/ literal_required ; */ 1617 55, 56, /* 93/ optional ; */ 1618 57, 58, /* 94/ ; */ 1619 3, 3, /* 95/ */ 1620 4, 4, /* 96/ */ 1621 49, 50, /* 97/ ; */ 1622 3, 3, /* 98/ */ 1623 4, 4, /* 99/ */ 1624 49, 50, /* 100/ ; */ 1625 3, 3, /* 101/ */ 1626 4, 4, /* 102/ */ 1627 3, 3, /* 103/ */ 1628 4, 4, /* 104/ */ 1629 3, 3, /* 105/ */ 1630 4, 4, /* 106/ */ 1631 3, 3, /* 107/ */ 1632 4, 4, /* 108/ */ 1633 49, 50, /* 109/ ; */ 1634 3, 3, /* 110/ */ 1635 4, 4, /* 111/ */ 1636 3, 3, /* 112/ */ 1637 4, 4, /* 113/ */ 1638 3, 3, /* 114/ */ 1639 4, 4, /* 115/ */ 1640 3, 3, /* 116/ */ 1641 4, 4, /* 117/ */ 1642 16, 16, /* 118/ ; */ 1643 3, 3, /* 119/ */ 1644 4, 4); /* 120/ */ 1645 1646 dcl 1 TOKEN_REQUIREMENT (58) unaligned based (addr (TOKEN_REQUIREMENTS)), 1647 /* object token requirements. */ 1648 2 FORM fixed bin(17), /* form of the token requirement: */ 1649 /* -1 = relative token requirement function; */ 1650 /* TYPE = index of the particular token */ 1651 /* function in the token_fcn array. */ 1652 /* 0 = built-in token requirement function; */ 1653 /* TYPE = as defined below. */ 1654 /* >0 = absolute token requirement: */ 1655 /* FORM = index(TOKEN_STRINGS,TOKEN_REQD); */ 1656 /* TYPE = length(TOKEN_REQD); */ 1657 2 TYPE fixed bin(17) unal, /* type of the built-in token requirement */ 1658 /* function: */ 1659 /* 1 = compile test to see if input token */ 1660 /* chain is exhausted (). */ 1661 /* 2 = compile test for any token value */ 1662 /* (). */ 1663 /* 3 = compile test for a PL/I identifier */ 1664 /* () of 32 or fewer characters. */ 1665 /* 4 = compile test for token which is a */ 1666 /* . */ 1667 /* 5 = compile test for token which is a single */ 1668 /* backspace character (). */ 1669 /* 6 = compile test for a token which is a */ 1670 /* . */ 1671 1672 TOKEN_REQUIREMENTS (116) fixed bin(17) unaligned internal static options(constant) initial ( 1673 1, 12, 13, 1, 0, 2, 0, 1, 14, 11, 13, 1, 25, 19, 1674 13, 1, 44, 22, 13, 1, 66, 15, 13, 1, 81, 27, 13, 1, 1675 108, 3, 111, 1, 112, 6, 13, 1, 118, 11, 13, 1, 129, 14, 1676 13, 1, 143, 7, 13, 1, 150, 7, 13, 1, 157, 9, 13, 1, 1677 166, 8, 13, 1, 174, 19, 13, 1, 193, 8, 13, 1, 66, 8, 1678 13, 1, 201, 20, 13, 1, 221, 13, 13, 1, 234, 13, 13, 1, 1679 247, 13, 13, 1, 260, 13, 13, 1, 273, 1, 0, 6, 0, 2, 1680 111, 1, 274, 8, 111, 1, 282, 16, 111, 1, 298, 8, 111, 1, 1681 0, 4, 111, 1); 1682 1683 1684 dcl TOKEN_STRINGS char(305) aligned based (addr (TOKEN_STRING_ARRAYS)), 1685 /* object token values. */ 1686 TOKEN_STRING_ARRAYS (4) char(100) aligned internal static options(constant) initial ( 1687 "Program_name:ExplanationDefault_linear_formInitial_implied_optionValidate_resultValidate_result_expl", 1688 "anationEnd;OptionOption_nameFirst_argumentAntonymExcludeUnexcludePresenceNext_implied_optionArgument", 1689 "Validate_explanationDefault_valueAntonym_valueNext_argumentForce_literal,requiredliteral_requiredopt", 1690 "ional"); 1691 1692 /* START OF: rdc_end_.incl.pl1 * * * * * * * * * * * * * * * * */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(86-02-14,GWMay), approve(), audit(), install(): 10 6* old history comments: 10 7* 0) Created: April, 1974 by G. C. Dixon 10 8* 1) Modified: Feb, 1975 by G. C. Dixon 10 9* a) support for Version 2.0 of reduction_compiler. 10 10* 2) Modified: Feb, 1981 by G. C. Dixon 10 11* a) support for Version 2.2 of reduction_compiler 10 12* 3) Modified: Aug, 1983 by G. C. Dixon - support for Version 2.3 of 10 13* reductions command. 10 14* 2) change(86-03-04,GDixon), approve(86-03-04,MCR7362), audit(86-03-17,GWMay), 10 15* install(86-03-17,MR12.0-1032): 10 16* Changed how the PUSH DOWN LANGUAGE (SPDL) definition of is 10 17* implemented to avoid references through a null pointer. The two 10 18* accepted uses are: 10 19* 10 20* / / ... / ... \ 10 21* A 10 22* | 10 23* Pthis_token (points to top of push down stack) 10 24* 10 25* which checks to see if the push down stack is totally exhausted (ie, 10 26* Ptoken = null); and: 10 27* 10 28* / SPEC1 ... SPECN / ... / ... \ 10 29* A 10 30* | 10 31* Pthis_token (points to top of push down stack) 10 32* 10 33* which checks to see whether SPECN is topmost on the push down stack 10 34* AND is the final token in the input list. 10 35* END HISTORY COMMENTS */ 10 36 10 37 10 38 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 39 /* */ 10 40 /* NAME: rdc_end_.incl.pl1 */ 10 41 /* */ 10 42 /* This include segment is used by compilers generated by the reduction_compiler. */ 10 43 /* Such compilers include a SEMANTIC_ANALYSIS subroutine generated by the */ 10 44 /* reduction_compiler. This subroutine compares a chain of input tokens with token */ 10 45 /* requirements specified in reductions. The code in this include segment performs the */ 10 46 /* actual comparisons. This code is the middle part of the SEMANTIC_ANALYSIS procedure. */ 10 47 /* */ 10 48 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 49 10 50 TRACING = TRACING; /* Kludge to prevent pl1 from making TRACING */ 10 51 /* options(constant) because it is never set. */ 10 52 NRED = 1; 10 53 go to RD_TEST_REDUCTION; 10 54 10 55 RD_NEXT_REDUCTION: 10 56 NRED = NRED + 1; 10 57 10 58 RD_TEST_REDUCTION: 10 59 PRED = addr(REDUCTION(NRED)); 10 60 Ptoken = Pthis_token; 10 61 10 62 do I = RED.TOKEN_REQD.IFIRST to RED.TOKEN_REQD.ILAST by DIRECTION; 10 63 PTOKEN_REQD = addr(TOKEN_REQUIREMENT(I)); 10 64 if Ptoken = null then do; 10 65 if TOKEN_REQD.FORM = 0 then /* No more tokens. Only matches spec. */ 10 66 if TOKEN_REQD.TYPE = 1 then 10 67 go to RD_TEST_TOKEN(1); 10 68 go to RD_NEXT_REDUCTION; 10 69 end; 10 70 if TOKEN_REQD.FORM = 0 then do; /* built-in syntax function. */ 10 71 go to RD_TEST_TOKEN(TOKEN_REQD.TYPE); 10 72 10 73 RD_TEST_TOKEN(1): if SPDL then /* */ 10 74 /* In push-down-language, there are 2 */ 10 75 /* interpretations of . */ 10 76 if RED.TOKEN_REQD.IFIRST = RED.TOKEN_REQD.ILAST & 10 77 Ptoken = null then /* When is only spec, the spec asks */ 10 78 go to RD_MATCH_NO_TOKEN; /* "Is push down stack empty (all input gone)?" */ 10 79 else if RED.TOKEN_REQD.IFIRST^= RED.TOKEN_REQD.ILAST & 10 80 RED.TOKEN_REQD.IFIRST = I & 10 81 token.Pnext = null then /* For SPEC1 ... SPECN , the spec asks */ 10 82 go to RD_MATCH_NO_TOKEN; /* "Are the topmost tokens on stack SPEC1 - SPECN,*/ 10 83 /* and is SPECN the final input token?" */ 10 84 else go to RD_NEXT_REDUCTION; /* Those are the only two defs allowed in push */ 10 85 /* down language mode for . */ 10 86 else if Ptoken = null then 10 87 go to RD_MATCH_NO_TOKEN; 10 88 go to RD_NEXT_REDUCTION; 10 89 10 90 RD_TEST_TOKEN(2): go to RD_MATCH; /* */ 10 91 10 92 RD_TEST_TOKEN(3): if token.Lvalue > 0 & /* */ 10 93 token.Lvalue <= 32 & ^token.S.quoted_string then 10 94 if search(substr(token_value,1,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") 10 95 > 0 then 10 96 if verify(token_value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_$") 10 97 = 0 then 10 98 go to RD_MATCH; 10 99 go to RD_NEXT_REDUCTION; 10 100 10 101 RD_TEST_TOKEN(4): /* */ 10 102 if token.Nvalue ^= 0 then /* token already determined to be a number. */ 10 103 go to RD_MATCH; 10 104 if token.S.quoted_string then 10 105 go to RD_NEXT_REDUCTION; 10 106 NUMBER = cv_dec_check_ (token_value, CODE); 10 107 if CODE = 0 then do; 10 108 token.Nvalue = NUMBER; 10 109 go to RD_MATCH; 10 110 end; 10 111 go to RD_NEXT_REDUCTION; 10 112 10 113 RD_TEST_TOKEN(5): if token.Lvalue = 1 then /* */ 10 114 if token_value = BACKSPACE & ^token.S.quoted_string then 10 115 go to RD_MATCH; 10 116 go to RD_NEXT_REDUCTION; 10 117 10 118 RD_TEST_TOKEN(6): if token.S.quoted_string then /* */ 10 119 go to RD_MATCH; 10 120 go to RD_NEXT_REDUCTION; 10 121 end; 10 122 10 123 else if TOKEN_REQD.FORM > 0 then do; /* absolute syntax specification. */ 10 124 if token.S.quoted_string then 10 125 go to RD_NEXT_REDUCTION; 10 126 PTOKEN_REQD_VALUE = addr(substr(TOKEN_STRINGS,TOKEN_REQD_STRING.I)); 10 127 LTOKEN_REQD_VALUE = TOKEN_REQD_STRING.L; 10 128 if token_value = TOKEN_REQD_VALUE then 10 129 go to RD_MATCH; 10 130 go to RD_NEXT_REDUCTION; 10 131 end; 10 132 10 133 /* END OF: rdc_end_.incl.pl1 * * * * * * * * * * * * * * * * */ 1692 1693 1694 RD_MATCH: Ptoken = token.Pnext; 1695 RD_MATCH_NO_TOKEN: 1696 end; 1697 Ptoken = Pthis_token; 1698 go to RD_ACTION(NRED); 1699 1700 /* START OF: rdc_stack_fcns_.incl.pl1 * * * * * * */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* N__a_m_e: rdc_stack_fcns_.incl.pl1 */ 11 6 /* */ 11 7 /* This include segment is used by compilers generated by the */ 11 8 /* reduction_compiler. It includes code for manipulating the */ 11 9 /* reduction label stack. */ 11 10 /* */ 11 11 /* S__t_a_t_u_s */ 11 12 /* */ 11 13 /* 0) Created: April, 1974 by G. C. Dixon */ 11 14 /* */ 11 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 11 16 11 17 RD_STACK: if STACK_DEPTH > 0 then do; 11 18 NRED = STACK (STACK_DEPTH); 11 19 go to RD_TEST_REDUCTION; 11 20 end; 11 21 else 11 22 go to RD_NEXT_REDUCTION; 11 23 11 24 RD_STACK_POP: 11 25 if STACK_DEPTH > 0 then do; 11 26 NRED = STACK (STACK_DEPTH); 11 27 STACK_DEPTH = max (STACK_DEPTH-1, 0); 11 28 go to RD_TEST_REDUCTION; 11 29 end; 11 30 else 11 31 go to RD_NEXT_REDUCTION; 11 32 11 33 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 11 34 11 35 11 36 PUSH: procedure (N); /* invoked to push reduction number 'N' onto */ 11 37 /* the reduction stack. */ 11 38 dcl N fixed bin; 11 39 11 40 dcl (addr, dimension, length, null) 11 41 builtin; 11 42 11 43 dcl cu_$cl entry, 11 44 iox_$put_chars entry (ptr, ptr, fixed bin, fixed bin(35)), 11 45 iox_$error_output ptr ext static, 11 46 lex_error_ entry options(variable); 11 47 11 48 dcl brief_error char(4) varying initial ("") int static, 11 49 long_error char(234) varying int static init( 11 50 "An internal stack (the reduction stack) has overflowed. 11 51 The translation has failed. Contact translator maintenance 11 52 personnel for assistance. 11 53 Processing reduction: ^d 11 54 Reduction being stacked: ^d 11 55 Maximum stack depth: ^d"), 11 56 non_restart_error char(33) int static init ("Translation cannot be restarted. 11 57 "); 11 58 11 59 if STACK_DEPTH >= dimension (STACK, 1) then do; 11 60 call lex_error_ (0, "0"b, 4, 0, null, null, "11"b, long_error, brief_error, NRED, N, 11 61 dimension(STACK,1)); 11 62 get_to_cl: call cu_$cl(); 11 63 call iox_$put_chars (iox_$error_output, addr(non_restart_error), length(non_restart_error), 0); 11 64 go to get_to_cl; 11 65 end; /* stack overflow is a non-recoverable error. */ 11 66 else 11 67 STACK_DEPTH = STACK_DEPTH + 1; 11 68 STACK (STACK_DEPTH) = N; 11 69 11 70 end PUSH; 11 71 11 72 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 11 73 11 74 /* END OF: rdc_stack_fcns_.incl.pl1 * * * * * * */ 1700 1701 1702 1703 RD_ACTION(1): /* / */ 1704 call LEX ( 2 ); 1705 call PUSH(4); /* PUSH(initial_stmt_list) */ 1706 NRED = 67; 1707 go to RD_TEST_REDUCTION; /* / program_name_stmt \ */ 1708 1709 RD_ACTION(2): /* / */ 1710 call ERROR ( 2 ); 1711 call NEXT_STMT(); 1712 NRED = 4; 1713 go to RD_TEST_REDUCTION; /* / initial_stmt_list \ */ 1714 1715 RD_ACTION(3): /* / */ 1716 call ERROR ( 3 ); 1717 NRED = 65; 1718 go to RD_TEST_REDUCTION; /* / error_return \ */ 1719 1720 RD_ACTION(4): /* / */ 1721 call LEX ( 2 ); 1722 call PUSH(4); /* PUSH(initial_stmt_list) */ 1723 NRED = 70; 1724 go to RD_TEST_REDUCTION; /* / explanation_stmt \ */ 1725 1726 RD_ACTION(5): /* / */ 1727 call LEX ( 2 ); 1728 call PUSH(4); /* PUSH(initial_stmt_list) */ 1729 NRED = 72; 1730 go to RD_TEST_REDUCTION; /* / default_linear_form_stmt \ */ 1731 1732 RD_ACTION(6): /* / */ 1733 call LEX ( 2 ); 1734 call PUSH(4); /* PUSH(initial_stmt_list) */ 1735 NRED = 74; 1736 go to RD_TEST_REDUCTION; /* / initial_implied_option_stmt \ */ 1737 1738 RD_ACTION(7): /* / */ 1739 call LEX ( 2 ); 1740 call PUSH(4); /* PUSH(initial_stmt_list) */ 1741 NRED = 112; 1742 go to RD_TEST_REDUCTION; /* / validate_result_stmt \ */ 1743 1744 RD_ACTION(8): /* / */ 1745 call LEX ( 2 ); 1746 call PUSH(4); /* PUSH(initial_stmt_list) */ 1747 NRED = 114; 1748 go to RD_TEST_REDUCTION; /* / validate_result_explanation_stmt \ */ 1749 1750 RD_ACTION(9): /* / */ 1751 NRED = 11; 1752 go to RD_TEST_REDUCTION; /* / end_or_opt \ */ 1753 1754 RD_ACTION(10): /* / */ 1755 call ERROR ( 4 ); 1756 NRED = 65; 1757 go to RD_TEST_REDUCTION; /* / error_return \ */ 1758 1759 RD_ACTION(11): /* / */ 1760 call NEXT_STMT(); 1761 NRED = 63; 1762 go to RD_TEST_REDUCTION; /* / return \ */ 1763 1764 RD_ACTION(12): /* / */ 1765 NRED = 14; 1766 go to RD_TEST_REDUCTION; /* / option_definition \ */ 1767 1768 RD_ACTION(13): /* / */ 1769 call ERROR ( 10 ); 1770 call NEXT_STMT(); 1771 NRED = 4; 1772 go to RD_TEST_REDUCTION; /* / initial_stmt_list \ */ 1773 1774 RD_ACTION(14): /* / */ 1775 call LEX ( 2 ); 1776 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1777 NRED = 77; 1778 go to RD_TEST_REDUCTION; /* / option_stmt \ */ 1779 1780 RD_ACTION(15): /* / */ 1781 call LEX ( 2 ); 1782 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1783 NRED = 80; 1784 go to RD_TEST_REDUCTION; /* / option_name_stmt \ */ 1785 1786 RD_ACTION(16): /* / */ 1787 call LEX ( 2 ); 1788 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1789 NRED = 82; 1790 go to RD_TEST_REDUCTION; /* / first_argument_stmt \ */ 1791 1792 RD_ACTION(17): /* / */ 1793 call LEX ( 2 ); 1794 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1795 NRED = 85; 1796 go to RD_TEST_REDUCTION; /* / antonym_stmt \ */ 1797 1798 RD_ACTION(18): /* / */ 1799 call LEX ( 2 ); 1800 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1801 NRED = 70; 1802 go to RD_TEST_REDUCTION; /* / explanation_stmt \ */ 1803 1804 RD_ACTION(19): /* / */ 1805 call LEX ( 2 ); 1806 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1807 NRED = 87; 1808 go to RD_TEST_REDUCTION; /* / exclude_stmt \ */ 1809 1810 RD_ACTION(20): /* / */ 1811 call LEX ( 2 ); 1812 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1813 NRED = 89; 1814 go to RD_TEST_REDUCTION; /* / unexclude_stmt \ */ 1815 1816 RD_ACTION(21): /* / */ 1817 call LEX ( 2 ); 1818 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1819 NRED = 91; 1820 go to RD_TEST_REDUCTION; /* / presence_stmt \ */ 1821 1822 RD_ACTION(22): /* / */ 1823 call LEX ( 2 ); 1824 call PUSH(15); /* PUSH(per_option_stmt_list) */ 1825 NRED = 97; 1826 go to RD_TEST_REDUCTION; /* / next_implied_option_stmt \ */ 1827 1828 RD_ACTION(23): /* / */ 1829 NRED = 25; 1830 go to RD_TEST_REDUCTION; /* / per_opt_end_or_opt_or_arg \ */ 1831 1832 RD_ACTION(24): /* / */ 1833 call ERROR ( 4 ); 1834 NRED = 65; 1835 go to RD_TEST_REDUCTION; /* / error_return \ */ 1836 1837 RD_ACTION(25): /* / */ 1838 if default_exclude_myself then call add_to_vector ( option, EXCLUDED_OPTION ); 1839 call NEXT_STMT(); 1840 NRED = 63; 1841 go to RD_TEST_REDUCTION; /* / return \ */ 1842 1843 RD_ACTION(26): /* / */ 1844 if default_exclude_myself then call add_to_vector ( option, EXCLUDED_OPTION ); 1845 NRED = 14; 1846 go to RD_TEST_REDUCTION; /* / option_definition \ */ 1847 1848 RD_ACTION(27): /* / */ 1849 if default_exclude_myself then call add_to_vector ( option, EXCLUDED_OPTION ); 1850 NRED = 30; 1851 go to RD_TEST_REDUCTION; /* / argument_definition \ */ 1852 1853 RD_ACTION(28): /* / */ 1854 call ERROR ( 11 ); 1855 call NEXT_STMT(); 1856 NRED = 15; 1857 go to RD_TEST_REDUCTION; /* / per_option_stmt_list \ */ 1858 1859 RD_ACTION(29): /* / */ 1860 call ERROR ( 4 ); 1861 NRED = 65; 1862 go to RD_TEST_REDUCTION; /* / error_return \ */ 1863 1864 RD_ACTION(30): /* / */ 1865 call LEX ( 2 ); 1866 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1867 NRED = 100; 1868 go to RD_TEST_REDUCTION; /* / argument_stmt \ */ 1869 1870 RD_ACTION(31): /* / */ 1871 call LEX ( 2 ); 1872 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1873 NRED = 103; 1874 go to RD_TEST_REDUCTION; /* / validate_stmt \ */ 1875 1876 RD_ACTION(32): /* / */ 1877 call LEX ( 2 ); 1878 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1879 NRED = 116; 1880 go to RD_TEST_REDUCTION; /* / validate_explanation_stmt \ */ 1881 1882 RD_ACTION(33): /* / */ 1883 call LEX ( 2 ); 1884 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1885 NRED = 105; 1886 go to RD_TEST_REDUCTION; /* / default_value_stmt \ */ 1887 1888 RD_ACTION(34): /* / */ 1889 call LEX ( 2 ); 1890 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1891 NRED = 107; 1892 go to RD_TEST_REDUCTION; /* / antonym_value_stmt \ */ 1893 1894 RD_ACTION(35): /* / */ 1895 call LEX ( 2 ); 1896 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1897 NRED = 91; 1898 go to RD_TEST_REDUCTION; /* / presence_stmt \ */ 1899 1900 RD_ACTION(36): /* / */ 1901 call LEX ( 2 ); 1902 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1903 NRED = 109; 1904 go to RD_TEST_REDUCTION; /* / next_argument_stmt \ */ 1905 1906 RD_ACTION(37): /* / */ 1907 call LEX ( 2 ); 1908 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1909 NRED = 70; 1910 go to RD_TEST_REDUCTION; /* / explanation_stmt \ */ 1911 1912 RD_ACTION(38): /* / */ 1913 call LEX ( 2 ); 1914 call PUSH(31); /* PUSH(per_argument_stmt_list) */ 1915 NRED = 118; 1916 go to RD_TEST_REDUCTION; /* / force_literal_stmt \ */ 1917 1918 RD_ACTION(39): /* / */ 1919 NRED = 41; 1920 go to RD_TEST_REDUCTION; /* / per_arg_end_or_opt_or_arg \ */ 1921 1922 RD_ACTION(40): /* / */ 1923 call ERROR ( 4 ); 1924 NRED = 65; 1925 go to RD_TEST_REDUCTION; /* / error_return \ */ 1926 1927 RD_ACTION(41): /* / */ 1928 call NEXT_STMT(); 1929 NRED = 63; 1930 go to RD_TEST_REDUCTION; /* / return \ */ 1931 1932 RD_ACTION(42): /* / */ 1933 NRED = 14; 1934 go to RD_TEST_REDUCTION; /* / option_definition \ */ 1935 1936 RD_ACTION(43): /* / */ 1937 NRED = 30; 1938 go to RD_TEST_REDUCTION; /* / argument_definition \ */ 1939 1940 RD_ACTION(44): /* / */ 1941 call ERROR ( 13 ); 1942 call NEXT_STMT(); 1943 NRED = 31; 1944 go to RD_TEST_REDUCTION; /* / per_argument_stmt_list \ */ 1945 1946 RD_ACTION(45): /* / */ 1947 call ERROR ( 4 ); 1948 NRED = 65; 1949 go to RD_TEST_REDUCTION; /* / error_return \ */ 1950 1951 RD_ACTION(46): /* / */ 1952 call ERROR ( 12 ); 1953 call NEXT_STMT(); 1954 go to RD_STACK_POP; /* / STACK_POP \ */ 1955 1956 RD_ACTION(47): /* / */ 1957 call ERROR ( 12 ); 1958 call NEXT_STMT(); 1959 go to RD_STACK_POP; /* / STACK_POP \ */ 1960 1961 RD_ACTION(48): /* / */ 1962 call ERROR ( 4 ); 1963 NRED = 65; 1964 go to RD_TEST_REDUCTION; /* / error_return \ */ 1965 1966 RD_ACTION(49): /* / */ 1967 call append_to_str ( token_value, expanded_token_len, expanded_token_ptr ); 1968 call LEX ( 1 ); 1969 NRED = 51; 1970 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list_punc \ */ 1971 1972 RD_ACTION(50): /* / */ 1973 call ERROR ( 12 ); 1974 call NEXT_STMT(); 1975 go to RD_STACK_POP; /* / STACK_POP \ */ 1976 1977 RD_ACTION(51): /* / */ 1978 call LEX ( 1 ); 1979 NRED = 46; 1980 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list_next \ */ 1981 1982 RD_ACTION(52): /* / */ 1983 if list_dim = DEFAULT_LINEAR_FORM then call set_name ( expanded_token, default_linear_form_length, default_linear_form_ptr ); 1984 else call add_to_vector ( expanded_token, list_dim ); 1985 call reset_name ( expanded_token_len, expanded_token_ptr ); 1986 call NEXT_STMT(); 1987 go to RD_STACK_POP; /* / STACK_POP \ */ 1988 1989 RD_ACTION(53): /* / */ 1990 call ERROR ( 12 ); 1991 call NEXT_STMT(); 1992 go to RD_STACK_POP; /* / STACK_POP \ */ 1993 1994 RD_ACTION(54): /* / */ 1995 call ERROR ( 4 ); 1996 NRED = 65; 1997 go to RD_TEST_REDUCTION; /* / error_return \ */ 1998 1999 RD_ACTION(55): /* / */ 2000 call ERROR ( 12 ); 2001 call NEXT_STMT(); 2002 go to RD_STACK_POP; /* / STACK_POP \ */ 2003 2004 RD_ACTION(56): /* / */ 2005 call ERROR ( 12 ); 2006 call NEXT_STMT(); 2007 go to RD_STACK_POP; /* / STACK_POP \ */ 2008 2009 RD_ACTION(57): /* / */ 2010 call ERROR ( 4 ); 2011 NRED = 65; 2012 go to RD_TEST_REDUCTION; /* / error_return \ */ 2013 2014 RD_ACTION(58): /* / */ 2015 call add_to_vector ( token_value, list_dim ); 2016 call LEX ( 1 ); 2017 go to RD_NEXT_REDUCTION; /* / \ */ 2018 2019 RD_ACTION(59): /* / */ 2020 call LEX ( 1 ); 2021 NRED = 55; 2022 go to RD_TEST_REDUCTION; /* / comma_list_next \ */ 2023 2024 RD_ACTION(60): /* / */ 2025 call NEXT_STMT(); 2026 go to RD_STACK_POP; /* / STACK_POP \ */ 2027 2028 RD_ACTION(61): /* / */ 2029 call ERROR ( 12 ); 2030 call NEXT_STMT(); 2031 go to RD_STACK_POP; /* / STACK_POP \ */ 2032 2033 RD_ACTION(62): /* / */ 2034 call ERROR ( 4 ); 2035 NRED = 65; 2036 go to RD_TEST_REDUCTION; /* / error_return \ */ 2037 2038 RD_ACTION(63): /* / */ 2039 call ERROR ( 5 ); 2040 return; /* / RETURN \ */ 2041 2042 RD_ACTION(64): /* / */ 2043 return; /* / RETURN \ */ 2044 2045 RD_ACTION(65): /* / */ 2046 return; /* / RETURN \ */ 2047 2048 RD_ACTION(66): /* / */ 2049 return; /* / RETURN \ */ 2050 2051 RD_ACTION(67): /* / */ 2052 call set_name ( token_value, command_name_len, command_name_ptr ); 2053 call start_vector ( INITIAL_VECTOR ); 2054 call NEXT_STMT(); 2055 go to RD_STACK_POP; /* / STACK_POP \ */ 2056 2057 RD_ACTION(68): /* / */ 2058 call ERROR ( 1 ); 2059 call NEXT_STMT(); 2060 go to RD_STACK_POP; /* / STACK_POP \ */ 2061 2062 RD_ACTION(69): /* / */ 2063 call ERROR ( 4 ); 2064 NRED = 65; 2065 go to RD_TEST_REDUCTION; /* / error_return \ */ 2066 2067 RD_ACTION(70): /* / */ 2068 list_dim = EXPLANATION; 2069 NRED = 46; 2070 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2071 2072 RD_ACTION(71): /* / */ 2073 call ERROR ( 4 ); 2074 NRED = 65; 2075 go to RD_TEST_REDUCTION; /* / error_return \ */ 2076 2077 RD_ACTION(72): /* / */ 2078 list_dim = DEFAULT_LINEAR_FORM; 2079 NRED = 46; 2080 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2081 2082 RD_ACTION(73): /* / */ 2083 call ERROR ( 4 ); 2084 NRED = 65; 2085 go to RD_TEST_REDUCTION; /* / error_return \ */ 2086 2087 RD_ACTION(74): /* / */ 2088 call add_to_vector ( token_value, INITIAL_IMPLIED_OPTION ); 2089 call NEXT_STMT(); 2090 go to RD_STACK_POP; /* / STACK_POP \ */ 2091 2092 RD_ACTION(75): /* / */ 2093 call ERROR ( 1 ); 2094 call NEXT_STMT(); 2095 go to RD_STACK_POP; /* / STACK_POP \ */ 2096 2097 RD_ACTION(76): /* / */ 2098 call ERROR ( 4 ); 2099 NRED = 65; 2100 go to RD_TEST_REDUCTION; /* / error_return \ */ 2101 2102 RD_ACTION(77): /* / */ 2103 call set_name ( token_value, option_len, option_ptr ); 2104 call reset_name ( argument_len, argument_ptr ); 2105 call start_vector ( OPTION_VECTOR ); 2106 default_exclude_myself = "1"b; 2107 call NEXT_STMT(); 2108 go to RD_STACK_POP; /* / STACK_POP \ */ 2109 2110 RD_ACTION(78): /* / */ 2111 call ERROR ( 1 ); 2112 call NEXT_STMT(); 2113 go to RD_STACK_POP; /* / STACK_POP \ */ 2114 2115 RD_ACTION(79): /* / */ 2116 call ERROR ( 4 ); 2117 NRED = 65; 2118 go to RD_TEST_REDUCTION; /* / error_return \ */ 2119 2120 RD_ACTION(80): /* / */ 2121 list_dim = SYNONYM; 2122 NRED = 55; 2123 go to RD_TEST_REDUCTION; /* / comma_list \ */ 2124 2125 RD_ACTION(81): /* / */ 2126 call ERROR ( 4 ); 2127 NRED = 65; 2128 go to RD_TEST_REDUCTION; /* / error_return \ */ 2129 2130 RD_ACTION(82): /* / */ 2131 call add_to_vector ( token_value, INITIAL_ARGUMENT ); 2132 call NEXT_STMT(); 2133 go to RD_STACK_POP; /* / STACK_POP \ */ 2134 2135 RD_ACTION(83): /* / */ 2136 call ERROR ( 1 ); 2137 call NEXT_STMT(); 2138 go to RD_STACK_POP; /* / STACK_POP \ */ 2139 2140 RD_ACTION(84): /* / */ 2141 call ERROR ( 4 ); 2142 NRED = 65; 2143 go to RD_TEST_REDUCTION; /* / error_return \ */ 2144 2145 RD_ACTION(85): /* / */ 2146 list_dim = NEGATIVE_FORM; 2147 NRED = 55; 2148 go to RD_TEST_REDUCTION; /* / comma_list \ */ 2149 2150 RD_ACTION(86): /* / */ 2151 call ERROR ( 4 ); 2152 NRED = 65; 2153 go to RD_TEST_REDUCTION; /* / error_return \ */ 2154 2155 RD_ACTION(87): /* / */ 2156 list_dim = EXCLUDED_OPTION; 2157 NRED = 55; 2158 go to RD_TEST_REDUCTION; /* / comma_list \ */ 2159 2160 RD_ACTION(88): /* / */ 2161 call ERROR ( 4 ); 2162 NRED = 65; 2163 go to RD_TEST_REDUCTION; /* / error_return \ */ 2164 2165 RD_ACTION(89): /* / */ 2166 list_dim = UNEXCLUDED_OPTION; 2167 NRED = 55; 2168 go to RD_TEST_REDUCTION; /* / comma_list \ */ 2169 2170 RD_ACTION(90): /* / */ 2171 call ERROR ( 4 ); 2172 NRED = 65; 2173 go to RD_TEST_REDUCTION; /* / error_return \ */ 2174 2175 RD_ACTION(91): /* / */ 2176 call add_to_vector ( token_value, PRESENCE_REQUIRED ); 2177 call NEXT_STMT(); 2178 go to RD_STACK_POP; /* / STACK_POP \ */ 2179 2180 RD_ACTION(92): /* / */ 2181 call add_to_vector ( token_value, PRESENCE_REQUIRED ); 2182 call NEXT_STMT(); 2183 go to RD_STACK_POP; /* / STACK_POP \ */ 2184 2185 RD_ACTION(93): /* / */ 2186 call NEXT_STMT(); 2187 go to RD_STACK_POP; /* / STACK_POP \ */ 2188 2189 RD_ACTION(94): /* / */ 2190 call add_to_vector ( token_value, PRESENCE_REQUIRED ); 2191 call NEXT_STMT(); 2192 go to RD_STACK_POP; /* / STACK_POP \ */ 2193 2194 RD_ACTION(95): /* / */ 2195 call ERROR ( 1 ); 2196 call NEXT_STMT(); 2197 go to RD_STACK_POP; /* / STACK_POP \ */ 2198 2199 RD_ACTION(96): /* / */ 2200 call ERROR ( 4 ); 2201 NRED = 65; 2202 go to RD_TEST_REDUCTION; /* / error_return \ */ 2203 2204 RD_ACTION(97): /* / */ 2205 call add_to_vector ( token_value, NEXT_IMPLIED_OPTION ); 2206 call NEXT_STMT(); 2207 go to RD_STACK_POP; /* / STACK_POP \ */ 2208 2209 RD_ACTION(98): /* / */ 2210 call ERROR ( 1 ); 2211 call NEXT_STMT(); 2212 go to RD_STACK_POP; /* / STACK_POP \ */ 2213 2214 RD_ACTION(99): /* / */ 2215 call ERROR ( 4 ); 2216 NRED = 65; 2217 go to RD_TEST_REDUCTION; /* / error_return \ */ 2218 2219 RD_ACTION(100): /* / */ 2220 call set_name ( token_value, argument_len, argument_ptr ); 2221 call start_vector ( ARGUMENT_VECTOR ); 2222 call NEXT_STMT(); 2223 go to RD_STACK_POP; /* / STACK_POP \ */ 2224 2225 RD_ACTION(101): /* / */ 2226 call ERROR ( 1 ); 2227 call NEXT_STMT(); 2228 go to RD_STACK_POP; /* / STACK_POP \ */ 2229 2230 RD_ACTION(102): /* / */ 2231 call ERROR ( 4 ); 2232 NRED = 65; 2233 go to RD_TEST_REDUCTION; /* / error_return \ */ 2234 2235 RD_ACTION(103): /* / */ 2236 list_dim = VALIDATION_STRING; 2237 NRED = 46; 2238 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2239 2240 RD_ACTION(104): /* / */ 2241 call ERROR ( 4 ); 2242 NRED = 65; 2243 go to RD_TEST_REDUCTION; /* / error_return \ */ 2244 2245 RD_ACTION(105): /* / */ 2246 list_dim = DEFAULT_VALUE; 2247 NRED = 46; 2248 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2249 2250 RD_ACTION(106): /* / */ 2251 call ERROR ( 4 ); 2252 NRED = 65; 2253 go to RD_TEST_REDUCTION; /* / error_return \ */ 2254 2255 RD_ACTION(107): /* / */ 2256 list_dim = NEGATIVE_VALUE; 2257 NRED = 46; 2258 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2259 2260 RD_ACTION(108): /* / */ 2261 call ERROR ( 4 ); 2262 NRED = 65; 2263 go to RD_TEST_REDUCTION; /* / error_return \ */ 2264 2265 RD_ACTION(109): /* / */ 2266 call add_to_vector ( token_value, NEXT_ARGUMENT ); 2267 call NEXT_STMT(); 2268 go to RD_STACK_POP; /* / STACK_POP \ */ 2269 2270 RD_ACTION(110): /* / */ 2271 call ERROR ( 1 ); 2272 call NEXT_STMT(); 2273 go to RD_STACK_POP; /* / STACK_POP \ */ 2274 2275 RD_ACTION(111): /* / */ 2276 call ERROR ( 4 ); 2277 NRED = 65; 2278 go to RD_TEST_REDUCTION; /* / error_return \ */ 2279 2280 RD_ACTION(112): /* / */ 2281 list_dim = VALIDATE_RESULT; 2282 NRED = 46; 2283 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2284 2285 RD_ACTION(113): /* / */ 2286 call ERROR ( 4 ); 2287 NRED = 65; 2288 go to RD_TEST_REDUCTION; /* / error_return \ */ 2289 2290 RD_ACTION(114): /* / */ 2291 list_dim = VALIDATE_RESULT_EXPLANATION; 2292 NRED = 46; 2293 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2294 2295 RD_ACTION(115): /* / */ 2296 call ERROR ( 4 ); 2297 NRED = 65; 2298 go to RD_TEST_REDUCTION; /* / error_return \ */ 2299 2300 RD_ACTION(116): /* / */ 2301 list_dim = VALIDATE_EXPLANATION; 2302 NRED = 46; 2303 go to RD_TEST_REDUCTION; /* / cum_quoted_comma_list \ */ 2304 2305 RD_ACTION(117): /* / */ 2306 call ERROR ( 4 ); 2307 NRED = 65; 2308 go to RD_TEST_REDUCTION; /* / error_return \ */ 2309 2310 RD_ACTION(118): /* / */ 2311 call add_to_vector ( "", FORCE_LITERAL ); 2312 call NEXT_STMT(); 2313 go to RD_STACK_POP; /* / STACK_POP \ */ 2314 2315 RD_ACTION(119): /* / */ 2316 call ERROR ( 1 ); 2317 call NEXT_STMT(); 2318 go to RD_STACK_POP; /* / STACK_POP \ */ 2319 2320 RD_ACTION(120): /* / */ 2321 call ERROR ( 4 ); 2322 NRED = 65; 2323 go to RD_TEST_REDUCTION; /* / error_return \ */ 2324 2325 2326 end SEMANTIC_ANALYSIS; 2327 2328 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2329 2330 dcl SPDL bit(1) aligned init ("0"b); 2331 /* off: This compiler parses a non-PUSH DOWN */ 2332 /* LANGUAGE. */ 2333 /* START OF: rdc_lex_.incl.pl1 * * * * * * * * * * * * * * * * */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* N__a_m_e: rdc_lex_.incl.pl1 */ 12 6 /* */ 12 7 /* This include segment is used by compilers generated by the reduction_compiler. */ 12 8 /* It contains the LEX subroutine which is used to manipulate the pointer to the */ 12 9 /* "current" token, Pthis_token. */ 12 10 /* */ 12 11 /* E__n_t_r_y: LEX */ 12 12 /* */ 12 13 /* This entry makes the |_nth|-next (or -preceding) token the "current" token, where */ 12 14 /* _n is its positive (or negative) input argument. */ 12 15 /* */ 12 16 /* U__s_a_g_e */ 12 17 /* */ 12 18 /* call LEX(n); */ 12 19 /* */ 12 20 /* 1) n is the number of the token to be made the "current" token, relative to the */ 12 21 /* token identified by Pthis_token (the present "current" token). If n is */ 12 22 /* positive, the nth token following the "current" token made "current". If n */ 12 23 /* is negative, the nth token preceding the "current" token is made "current". */ 12 24 /* */ 12 25 /* S__t_a_t_u_s */ 12 26 /* */ 12 27 /* 0) Created by: G. C. Dixon in February, 1975 */ 12 28 /* */ 12 29 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 30 12 31 LEX: procedure (n); 12 32 12 33 dcl n fixed bin, 12 34 i fixed bin; 12 35 12 36 Ptoken = Pthis_token; /* do everything relative to "current" token. */ 12 37 if Ptoken = null then return; /* can't lex if token list exhausted. */ 12 38 if n >= 0 then do; /* new "current" token will follow present one. */ 12 39 do i = 1 to n while (token.Pnext ^= null); /* find new "current" token, taking care not to */ 12 40 Ptoken = token.Pnext; /* run off end of token list. */ 12 41 end; 12 42 if ^SPDL then if i <= n then Ptoken = null; /* if not in 'PUSH DOWN LANGUAGE' mode, allow */ 12 43 /* running off end of token list. */ 12 44 end; 12 45 else /* new "current" token precedes present one. */ 12 46 do i = -1 to n by -1 while (token.Plast ^= null); 12 47 Ptoken = token.Plast; 12 48 end; 12 49 Pthis_token = Ptoken; /* simple wasn't it. */ 12 50 12 51 end LEX; 12 52 12 53 /* END OF: rdc_lex_.incl.pl1 * * * * * * * * * * * * * * * * */ 2333 2334 2335 /* START OF: rdc_error_.incl.pl1 * * * * * * * * * * * * * * * * */ 13 2 13 3 dcl MERROR_SEVERITY fixed bin init (0), /* Severity of highest-severity error. */ 13 4 SERROR_CONTROL bit(2) init ("00"b),/* Global switches control error message format. */ 13 5 SERROR_PRINTED (dimension (error_control_table,1)) 13 6 bit(1) unaligned init ((dimension (error_control_table,1))(1)"0"b), 13 7 /* Array bit is on if corresponding error message */ 13 8 /* in error_control_table has already been printed*/ 13 9 MIN_PRINT_SEVERITY fixed bin init (0), /* Mimimum severity message that will be printed */ 13 10 PRINT_SEVERITY_CONTROL bit(2) init ("11"b);/* Action if severity < MIN_PRINT_SEVERITY */ 13 11 13 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 13 /* */ 13 14 /* N__a_m_e: rdc_error_.incl.pl1 */ 13 15 /* */ 13 16 /* This include segment is used by compilers generated by the reduction_compiler. */ 13 17 /* It defines a procedure which the compilers can use to print error messages. */ 13 18 /* */ 13 19 /* E__n_t_r_y: ERROR */ 13 20 /* */ 13 21 /* Given an error number, this procedure prints a corresponding error message. */ 13 22 /* The message is stored in a compiler-defined error_control_table, along with an integer */ 13 23 /* which specifies the severity level of the error, and a switch which specifies whether */ 13 24 /* the source statement in which the error occurred (if any) should be printed after the */ 13 25 /* error message. The printing of the error message may be supressed for all messages */ 13 26 /* having a severity less than a specified (MIN_PRINT_SEVERITY) value. The ERROR */ 13 27 /* procedure calls the lex_error_ subroutine to perform the formatting and printing of */ 13 28 /* the error message. */ 13 29 /* */ 13 30 /* U__s_a_g_e */ 13 31 /* */ 13 32 /* call ERROR (error_number); */ 13 33 /* */ 13 34 /* 1) error_number is the index of one of the structures in the error_control_table */ 13 35 /* which defines the error message to be printed. */ 13 36 /* */ 13 37 /* N__o_t_e_s */ 13 38 /* */ 13 39 /* The format of the error_control_table is shown below. */ 13 40 /* */ 13 41 /* dcl 1 error_control_table (2) aligned internal static, */ 13 42 /* 2 severity fixed bin(17) unaligned init (2,3), */ 13 43 /* 2 Soutput_stmt bit(1) unaligned initial ("0"b,"1"b), */ 13 44 /* 2 message char(252) varying initial ( */ 13 45 /* "The reduction source segment does not contain any reductions.", */ 13 46 /* "Reduction label '^a' is invalid."), */ 13 47 /* 2 brief_message char(100) varying initial ( */ 13 48 /* "", "'^a'"); */ 13 49 /* */ 13 50 /* error_control_table is an array of structures, with one array element per error. */ 13 51 /* Each structure contains: a severity level for the error; a switch which specifies */ 13 52 /* whether the source statement being processed should be output after the error message; */ 13 53 /* the long form of the error message text; and the brief form of the error message text.*/ 13 54 /* The dimension of the error_control_table array of structures, and the lengths of */ 13 55 /* message (long message) and brief_message (brief message), are compiler-defined. */ 13 56 /* structures and the lengths of the message and brief_message are compiler-defined. */ 13 57 /* The only requirement is that the messages be 256 characters or less in length. */ 13 58 /* (Remember that the longest character string which can be used in an initial attribute */ 13 59 /* is 254 characters in length.) */ 13 60 /* */ 13 61 /* The severity number causes the error message to be preceded by a herald which */ 13 62 /* includes one of the following prefixes: */ 13 63 /* */ 13 64 /* _s_e_v _p_r_e_f_i_x _e_x_p_l_a_n_a_t_i_o_n */ 13 65 /* 0 = COMMENT - this is a comment. */ 13 66 /* 1 = WARNING - a possible error has been detected. The */ 13 67 /* compiler will still generate an object segment. */ 13 68 /* 2 = ERROR - a probable error has been detected. The */ 13 69 /* compiler will still generate an object segment. */ 13 70 /* 3 = FATAL ERROR - an error has been detected which is so severe */ 13 71 /* that no object segment will be generated. */ 13 72 /* 4 = TRANSLATOR ERROR - an error has been detected in the operation of */ 13 73 /* the compiler or translator. No object segment */ 13 74 /* will be generated. */ 13 75 /* */ 13 76 /* Full error messages are of the form: */ 13 77 /* */ 13 78 /* _p_r_e_f_i_x _e_r_r_o_r__n_u_m_b_e_r, SEVERITY _s_e_v_e_r_i_t_y IN STATEMENT _n OF LINE _m */ 13 79 /* _t_e_x_t__o_f__e_r_r_o_r__m_e_s_s_a_g_e */ 13 80 /* SOURCE: */ 13 81 /* _s_o_u_r_c_e__s_t_a_t_e_m_e_n_t */ 13 82 /* */ 13 83 /* If only one statement appears in line _m, then "STATEMENT _n OF" is omitted. */ 13 84 /* If the source statement has been printed in a previous error message, it is omitted. */ 13 85 /* */ 13 86 /* The reduction compiler declares a bit string, SERROR_CONTROL, which controls the */ 13 87 /* text of an error message. The compiler may set this bit string, as shown below. */ 13 88 /* */ 13 89 /* SERROR_CONTROL _m_e_a_n_i_n_g */ 13 90 /* "00"b the first time a particular error occurs, the long message */ 13 91 /* is printed; the brief message is used in subsequent */ 13 92 /* occurrences of that error. */ 13 93 /* "10"b or "11"b the long error message is always used. */ 13 94 /* "01"b the brief error message is always used. */ 13 95 /* The initial value of SERROR_CONTROL is "00"b. */ 13 96 /* */ 13 97 /* The reduction_compiler creates a declaration for SERROR_PRINTED, an array */ 13 98 /* of switches (one per error). The switch corresponding to a particular error is */ 13 99 /* turned on whenever the error message is printed. This allows lex_error_ to detect */ 13 100 /* subsequent occurrences of that same error. */ 13 101 /* */ 13 102 /* The reduction_compiler creates MERROR_SEVERITY, a fixed bin(17) integer */ 13 103 /* in which the severity of the highest-severity error encountered is maintained. */ 13 104 /* The compiler may reference this integer. */ 13 105 /* */ 13 106 /* The reduction_compiler creates MIN_PRINT_SEVERITY, a fixed bin (17) integer */ 13 107 /* which controls the printing of error messages by the ERROR procedure. */ 13 108 /* Errors having a severity less than MIN_PRINT_SEVERITY will not cause lex_error_ to be */ 13 109 /* and no error will be printed. The behaviour of the ERROR procedure for such errors */ 13 110 /* is controlled by the value of PRINT_SEVERITY_CONTROL, described below. */ 13 111 /* The compiler may set the value of MIN_PRINT_SEVERITY; its initial value is 0. */ 13 112 13 113 /* */ 13 114 /* The reduction_compiler declares a bit string, PRINT_SEVERITY_CONTROL, which */ 13 115 /* controls the updating of MERROR_SEVERITY and SERROR_PRINTED when the severity of an */ 13 116 /* error is less than MIN_PRINT_SEVERITY. In such cases, the lex_error_ procedure is not */ 13 117 /* invoked, and the ERROR procedure must update these values as though lex_error_ were */ 13 118 /* called. The compiler may set this bit string, as shown below. */ 13 119 /* */ 13 120 /* PRINT_SEVERITY_CONTROL _m_e_a_n_i_n_g */ 13 121 /* "00"b update neither SERROR_PRINTED nor MERROR_SEVERITY. */ 13 122 /* "01"b update SERROR_PRINTED to reflect the error. */ 13 123 /* "10"b update MERROR_SEVERITY to reflect the error severity. */ 13 124 /* "11"b update SERROR_PRINTED and MERROR_SEVERITY appropriately. */ 13 125 /*The initial value of PRINT_SEVERITY_CONTROL is "11"b. */ 13 126 /* */ 13 127 /* The ERROR procedure is simple to use, but it does limit the flexibility of the */ 13 128 /* error message. A compiler action routine can output more flexible error messages */ 13 129 /* by calling lex_error_ directly. See lex_error_ documentation for more details. */ 13 130 /* */ 13 131 /* S__t_a_t_u_s */ 13 132 /* */ 13 133 /* 0) Created: April, 1974 by G. C. Dixon */ 13 134 /* 1) Modified: April, 1982 by E. N. Kittlitz. Added MIN_PRINT_SEVERITY, */ 13 135 /* PRINT_SEVERITY_CONTROL. */ 13 136 /* */ 13 137 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 138 13 139 ERROR: procedure (Nerror); 13 140 13 141 dcl Nerror fixed bin; /* Number of the error which was detected. (In) */ 13 142 13 143 dcl Pstmt ptr, 13 144 1 erring_token aligned based (Perring_token) like token, 13 145 Perring_token ptr, 13 146 erring_token_value char(erring_token.Lvalue) based (erring_token.Pvalue); 13 147 13 148 dcl (max, null) builtin; 13 149 13 150 dcl lex_error_ entry options (variable); 13 151 13 152 13 153 if error_control_table.severity(Nerror) < MIN_PRINT_SEVERITY then do; /* don't print */ 13 154 if PRINT_SEVERITY_CONTROL & "1"b then /* update MERROR_SEVERITY */ 13 155 MERROR_SEVERITY = max (MERROR_SEVERITY, error_control_table.severity(Nerror)); 13 156 if PRINT_SEVERITY_CONTROL & "01"b then /* update SERROR_PRINTED */ 13 157 SERROR_PRINTED(Nerror) = "1"b; 13 158 return; 13 159 end; 13 160 Perring_token = Pthis_token; /* address the current erring_token. */ 13 161 if error_control_table.Soutput_stmt(Nerror) then 13 162 if Perring_token = null then 13 163 Pstmt = null; 13 164 else 13 165 Pstmt = erring_token.Pstmt; /* address the statement descriptor. */ 13 166 else 13 167 Pstmt = null; 13 168 if Perring_token = null then 13 169 call lex_error_ (Nerror, SERROR_PRINTED(Nerror), (error_control_table.severity(Nerror)), 13 170 MERROR_SEVERITY, Pstmt, Perring_token, SERROR_CONTROL, (error_control_table.message(Nerror)), 13 171 (error_control_table.brief_message(Nerror))); 13 172 else 13 173 call lex_error_ (Nerror, SERROR_PRINTED(Nerror), (error_control_table.severity(Nerror)), 13 174 MERROR_SEVERITY, Pstmt, Perring_token, SERROR_CONTROL, (error_control_table.message(Nerror)), 13 175 (error_control_table.brief_message(Nerror)), erring_token_value, erring_token_value, erring_token_value); 13 176 13 177 end ERROR; 13 178 13 179 /* END OF: rdc_error_.incl.pl1 * * * * * * * * * * * * * * * * */ 2335 2336 2337 /* START OF: rdc_next_stmt_.incl.pl1 * * * * * * */ 14 2 14 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 14 4 /* */ 14 5 /* N__a_m_e: rdc_next_stmt_.incl.pl1 */ 14 6 /* */ 14 7 /* This include segment is used by compilers generated by the */ 14 8 /* reduction_compiler. It includes a procedure which shifts the */ 14 9 /* compilation process to the next source statement. */ 14 10 /* */ 14 11 /* S__t_a_t_u_s */ 14 12 /* */ 14 13 /* 0) Created: April, 1974 by G. C. Dixon */ 14 14 /* */ 14 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 14 16 14 17 14 18 NEXT_STMT: procedure; /* invoked to begin parsing the next statement of */ 14 19 /* the input tokens. */ 14 20 14 21 dcl null builtin, 14 22 Ssearching bit(1) aligned; 14 23 14 24 Ptoken = Pthis_token; /* make sure these pointers are the same. */ 14 25 Pstmt = token.Pstmt; /* address "current" statement's descriptor. */ 14 26 Ssearching = "1"b; /* start scanning forward for next statement. */ 14 27 do while (Ssearching & token.Pnext ^= null); 14 28 Ptoken = token.Pnext; 14 29 if token.Pstmt = Pstmt then; 14 30 else Ssearching = "0"b; 14 31 end; 14 32 if token.Pstmt = Pstmt then /* if there is no next statement, and */ 14 33 if SPDL then /* in PUSH DOWN LANGUAGE mode, can't run off */ 14 34 Ptoken = Ptoken; /* end of input list. */ 14 35 else Ptoken, Pthis_token = null; /* otherwise, input list exhausted. */ 14 36 else Pthis_token = Ptoken; /* normally, next statement exists and Ptoken */ 14 37 /* points to its 1st _n_o_n-__d_e_l_e_t_e_d token. */ 14 38 14 39 end NEXT_STMT; 14 40 14 41 /* END OF: rdc_next_stmt_.incl.pl1 * * * * * * */ 2337 2338 2339 end mtape_cv_apd; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/17/86 1445.8 mtape_cv_apd.pl1 >spec>install>1032>mtape_cv_apd.pl1 821 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 823 2 02/16/84 1452.4 pa_value_names.incl.pl1 >ldd>include>pa_value_names.incl.pl1 825 3 02/16/84 1452.5 vu_print_vector_array.incl.pl1 >ldd>include>vu_print_vector_array.incl.pl1 827 4 02/16/84 1452.5 vu_entry_dcls.incl.pl1 >ldd>include>vu_entry_dcls.incl.pl1 829 5 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_info.incl.pl1 831 6 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 833 7 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 1511 8 04/18/75 1242.4 rdc_start_.incl.pl1 >ldd>include>rdc_start_.incl.pl1 8-25 9 04/18/75 1242.4 lex_descriptors_.incl.pl1 >ldd>include>lex_descriptors_.incl.pl1 1692 10 03/17/86 1404.9 rdc_end_.incl.pl1 >spec>install>1032>rdc_end_.incl.pl1 1700 11 04/18/75 1242.4 rdc_stack_fcns_.incl.pl1 >ldd>include>rdc_stack_fcns_.incl.pl1 2333 12 04/18/75 1242.4 rdc_lex_.incl.pl1 >ldd>include>rdc_lex_.incl.pl1 2335 13 08/15/83 1511.7 rdc_error_.incl.pl1 >ldd>include>rdc_error_.incl.pl1 2337 14 04/18/75 1242.4 rdc_next_stmt_.incl.pl1 >ldd>include>rdc_next_stmt_.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. ARGUMENT constant fixed bin(17,0) initial dcl 746 ref 1201 ARGUMENT_VECTOR constant fixed bin(17,0) initial dcl 703 set ref 1199 2221* BACKSPACE 016374 constant char(1) initial dcl 8-99 ref 10-113 BASIC_VECTOR constant fixed bin(17,0) initial dcl 703 ref 1212 BREAK_CHARS 004122 constant varying char(5) initial dcl 790 set ref 944* 949* BYTES_PER_WORD constant fixed bin(17,0) initial dcl 711 ref 1027 1027 1035 CAN_HAVE_MULTIPLE_DEFINITIONS 004433 constant bit(1) initial array dcl 717 ref 1074 1106 CAN_HAVE_VALUE 004461 constant bit(1) initial array dcl 713 ref 1115 CODE 000710 automatic fixed bin(35,0) dcl 8-33 set ref 10-106* 10-107 COMMAND_NAME constant fixed bin(17,0) initial dcl 746 ref 1189 1201 1214 1225 1238 COMMENT_CLOSE 004560 constant char(2) initial unaligned dcl 674 set ref 944* 949* COMMENT_OPEN 004557 constant char(2) initial unaligned dcl 674 set ref 944* 949* CVAPD_VERSION 004662 constant fixed bin(17,0) initial dcl 674 set ref 907* DEFAULT_LINEAR_FORM constant fixed bin(17,0) initial dcl 746 ref 1982 2077 DEFAULT_LINEAR_FORM_PREFIX 004105 constant varying char(32) initial dcl 2-14 ref 980 DEFAULT_VALUE constant fixed bin(17,0) initial dcl 746 ref 2245 DEFINITION_ORDER constant fixed bin(17,0) initial dcl 746 ref 1189 1201 1214 1225 1238 DEFINITION_PREFIX 004074 constant varying char(32) initial dcl 2-14 ref 979 DIMENSIONS 004125 constant varying char(32) initial array dcl 721 set ref 942 1189* 1189* 1189* 1201* 1201* 1201* 1201* 1214* 1214* 1225* 1225* 1225* 1225* 1238* 1238* 1238* 1238* 1238* 1277* DIRECTION 000713 automatic fixed bin(17,0) initial dcl 1513 set ref 10-62 1513* EXCLUDED_OPTION 004567 constant fixed bin(17,0) initial dcl 746 set ref 1080 1837* 1843* 1848* 2155 EXPLANATION constant fixed bin(17,0) initial dcl 746 ref 2067 FATAL_ERROR constant fixed bin(17,0) initial dcl 674 ref 959 966 1071 1146 FATAL_ERROR_MSG 004543 constant char(45) initial unaligned dcl 674 set ref 966* FORCE_LITERAL constant fixed bin(17,0) initial dcl 746 set ref 2310* FORM based fixed bin(17,0) level 2 packed unaligned dcl 8-48 ref 10-65 10-70 10-123 FREE_OLD_PV_ARRAY 004646 constant bit(1) initial dcl 674 set ref 1189* 1201* 1214* 1225* 1238* 1277* I 000711 automatic fixed bin(17,0) dcl 8-33 in procedure "SEMANTIC_ANALYSIS" set ref 10-62* 10-63 10-79* I based fixed bin(17,0) level 2 in structure "TOKEN_REQD_STRING" packed unaligned dcl 8-48 in procedure "SEMANTIC_ANALYSIS" ref 10-126 IFIRST based fixed bin(17,0) level 3 packed unaligned dcl 8-48 ref 10-62 10-73 10-79 10-79 IGNORED_BREAK_CHARS 004120 constant varying char(3) initial dcl 793 set ref 944* 949* IGNORED_INPUT_LEN 004653 constant fixed bin(21,0) initial dcl 674 set ref 949* ILAST 0(18) based fixed bin(17,0) level 3 packed unaligned dcl 8-48 ref 10-62 10-73 10-79 INITIAL_ARGUMENT 004574 constant fixed bin(17,0) initial dcl 746 set ref 2130* INITIAL_IMPLIED_OPTION 004654 constant fixed bin(17,0) initial dcl 746 set ref 2087* INITIAL_VECTOR constant fixed bin(17,0) initial dcl 703 set ref 1212 2053* L 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 8-48 ref 10-127 LTOKEN_REQD_VALUE 000700 automatic fixed bin(18,0) dcl 8-33 set ref 10-127* 10-128 Lvalue 4 based fixed bin(18,0) level 2 in structure "token" dcl 9-68 in procedure "mtape_cv_apd" ref 10-92 10-92 10-92 10-92 10-106 10-106 10-113 10-113 10-128 1966 1966 2014 2014 2051 2051 2087 2087 2102 2102 2130 2130 2175 2175 2180 2180 2189 2189 2204 2204 2219 2219 2265 2265 Lvalue 4 based fixed bin(18,0) level 2 in structure "erring_token" dcl 13-143 in procedure "ERROR" ref 13-172 13-172 13-172 13-172 13-172 13-172 MAX_DIM_NAME_LEN 004632 constant fixed bin(17,0) initial dcl 674 set ref 938* MAX_NUM_OF_ARGS constant fixed bin(17,0) initial dcl 674 ref 849 ME 004540 constant char(12) initial unaligned dcl 674 set ref 909 930 994* 1001* 1009* 1015* 1300* 1459* MERROR_SEVERITY 000555 automatic fixed bin(17,0) initial dcl 13-3 set ref 959* 966 13-3* 1071 1146 13-154* 13-154 13-168* 13-172* ME_UPPER 004535 constant char(12) initial unaligned dcl 674 set ref 907* MIN_NUM_OF_ARGS constant fixed bin(17,0) initial dcl 674 ref 849 MIN_PRINT_SEVERITY 000557 automatic fixed bin(17,0) initial dcl 13-3 set ref 13-3* 13-153 N parameter fixed bin(17,0) dcl 11-38 set ref 11-36 11-60* 11-68 NEGATIVE_FORM constant fixed bin(17,0) initial dcl 746 ref 1093 1238 2145 NEGATIVE_FORM_VECTOR constant fixed bin(17,0) initial dcl 703 set ref 1097* 1236 NEGATIVE_VALUE constant fixed bin(17,0) initial dcl 746 ref 2255 NEW_VECTOR 004576 constant fixed bin(17,0) initial dcl 674 set ref 1189* 1201* 1214* 1225* 1238* NEXT_ARGUMENT 004606 constant fixed bin(17,0) initial dcl 746 set ref 2265* NEXT_IMPLIED_OPTION 004631 constant fixed bin(17,0) initial dcl 746 set ref 2204* NO_COPY 004662 constant fixed bin(2,0) initial dcl 674 set ref 899* NRED 000701 automatic fixed bin(17,0) dcl 8-33 set ref 10-52* 10-55* 10-55 10-58 1698 11-18* 11-26* 1706* 1712* 1717* 1723* 1729* 1735* 1741* 1747* 1750* 1756* 1761* 1764* 1771* 1777* 1783* 1789* 1795* 1801* 1807* 1813* 1819* 1825* 1828* 1834* 1840* 1845* 1850* 1856* 1861* 1867* 1873* 1879* 1885* 1891* 1897* 1903* 1909* 1915* 1918* 1924* 1929* 1932* 1936* 1943* 1948* 1963* 1969* 1979* 1996* 2011* 2021* 2035* 2064* 2069* 2074* 2079* 2084* 2099* 2117* 2122* 2127* 2142* 2147* 2152* 2157* 2162* 2167* 2172* 2201* 2216* 2232* 2237* 2242* 2247* 2252* 2257* 2262* 2277* 2282* 2287* 2292* 2297* 2302* 2307* 2322* 11-60* NUMBER 000712 automatic fixed bin(35,0) dcl 8-33 set ref 10-106* 10-108 N_INCREMENTAL_PV_SLOTS 004567 constant fixed bin(17,0) initial dcl 674 set ref 1189* 1201* 1214* 1225* 1238* 1277* N_INITIAL_PV_SLOTS 004567 constant fixed bin(35,0) initial dcl 674 set ref 938* N_PV_DIMS 004624 constant fixed bin(17,0) initial dcl 674 set ref 938* Nerror parameter fixed bin(17,0) dcl 13-141 set ref 13-139 13-153 13-154 13-156 13-161 13-168* 13-168 13-168 13-168 13-168 13-172* 13-172 13-172 13-172 13-172 Nvalue 10 based fixed bin(35,0) level 3 packed unaligned dcl 9-68 set ref 10-101 10-108* OPTION constant fixed bin(17,0) initial dcl 746 ref 1189 1201 1225 1238 OPTION_NAME_VECTOR constant fixed bin(17,0) initial dcl 703 set ref 1086* 1223 OPTION_VECTOR constant fixed bin(17,0) initial dcl 703 set ref 1187 2105* PERMANENT_VALUE 004563 constant bit(36) initial dcl 770 set ref 985* 1008* 1014* 1027* 1035* PERMANENT_VALUE_SEG_TYPE 004433 constant fixed bin(17,0) initial dcl 771 set ref 975* PRED 000702 automatic pointer dcl 8-33 set ref 10-58* 10-62 10-62 10-73 10-73 10-79 10-79 10-79 PRESENCE_REQUIRED 004661 constant fixed bin(17,0) initial dcl 746 set ref 2175* 2180* 2189* PRINT_SEVERITY_CONTROL 000560 automatic bit(2) initial unaligned dcl 13-3 set ref 13-3* 13-154 13-156 PTOKEN_REQD 000704 automatic pointer dcl 8-33 set ref 10-63* 10-65 10-65 10-70 10-71 10-123 10-126 10-127 PTOKEN_REQD_VALUE 000706 automatic pointer dcl 8-33 set ref 10-126* 10-128 Perring_token 001002 automatic pointer dcl 13-143 set ref 13-160* 13-161 13-164 13-168 13-168* 13-172* 13-172 13-172 13-172 13-172 13-172 13-172 13-172 13-172 13-172 Pfirst_stmt_desc 000260 automatic pointer dcl 595 set ref 949* Pfirst_token_desc 000262 automatic pointer dcl 596 set ref 949* 962 Plast 2 based pointer level 2 packed unaligned dcl 9-68 ref 12-45 12-47 Pnext 1 based pointer level 2 packed unaligned dcl 9-68 ref 10-79 1694 12-39 12-40 14-27 14-28 Pstmt 5 based pointer level 2 in structure "erring_token" packed unaligned dcl 13-143 in procedure "ERROR" ref 13-164 Pstmt 5 based pointer level 2 in structure "token" packed unaligned dcl 9-68 in procedure "mtape_cv_apd" ref 14-25 14-29 14-32 Pstmt 001000 automatic pointer dcl 13-143 in procedure "ERROR" set ref 13-161* 13-164* 13-166* 13-168* 13-172* Pstmt 000550 automatic pointer dcl 9-40 in procedure "mtape_cv_apd" set ref 14-25* 14-29 14-32 Pthis_token 000546 automatic pointer dcl 8-23 set ref 962* 10-60 1697 12-36 12-49* 13-160 14-24 14-35* 14-36* Ptoken 000552 automatic pointer dcl 9-68 set ref 10-60* 10-64 10-73 10-79 10-86 10-92 10-92 10-92 10-92 10-92 10-92 10-92 10-101 10-104 10-106 10-106 10-106 10-108 10-113 10-113 10-113 10-113 10-118 10-124 10-128 10-128 1694* 1694 1697* 1966 1966 1966 2014 2014 2014 2051 2051 2051 2087 2087 2087 2102 2102 2102 2130 2130 2130 2175 2175 2175 2180 2180 2180 2189 2189 2189 2204 2204 2204 2219 2219 2219 2265 2265 2265 12-36* 12-37 12-39 12-40* 12-40 12-42* 12-45 12-47* 12-47 12-49 14-24* 14-25 14-27 14-28* 14-28 14-29 14-32 14-32* 14-32 14-35* 14-36 Pvalue 3 based pointer level 2 in structure "erring_token" packed unaligned dcl 13-143 in procedure "ERROR" ref 13-172 13-172 13-172 Pvalue 3 based pointer level 2 in structure "token" packed unaligned dcl 9-68 in procedure "mtape_cv_apd" ref 10-92 10-92 10-106 10-113 10-128 1966 2014 2051 2087 2102 2130 2175 2180 2189 2204 2219 2265 QUOTE_CLOSE 004644 constant char(1) initial unaligned dcl 674 set ref 944* 949* QUOTE_OPEN 004644 constant char(1) initial unaligned dcl 674 set ref 944* 949* RED based structure level 1 dcl 8-48 REDUCTION based structure array level 1 packed unaligned dcl 1518 set ref 10-58 REDUCTIONS 003703 constant fixed bin(17,0) initial array unaligned dcl 1518 set ref 10-58 RW_ACCESS 004116 constant bit(3) initial unaligned dcl 1-11 set ref 969* S 11 based structure level 3 packed unaligned dcl 9-68 SERROR_CONTROL 000556 automatic bit(2) initial unaligned dcl 13-3 set ref 13-3* 13-168* 13-172* SERROR_PRINTED 000557 automatic bit(1) initial array unaligned dcl 13-3 set ref 13-3* 13-156* 13-168* 13-172* SINIT 004646 constant bit(2) initial unaligned dcl 674 set ref 944* SLEX 004646 constant bit(4) initial unaligned dcl 674 set ref 949* SOURCE_SUFFIX 004534 constant char(4) initial unaligned dcl 674 set ref 883* 895* SPDL 000554 automatic bit(1) initial dcl 2330 set ref 2330* 10-73 12-42 14-32 STACK 000714 automatic fixed bin(17,0) array dcl 1514 set ref 11-18 11-26 11-59 11-60 11-60 11-68* STACK_DEPTH 000726 automatic fixed bin(17,0) initial dcl 1514 set ref 11-17 11-18 11-24 11-26 11-27* 11-27 1514* 11-59 11-66* 11-66 11-68 STMT_DELIM 004533 constant char(1) initial unaligned dcl 674 set ref 944* 949* SYNONYM constant fixed bin(17,0) initial dcl 746 ref 1083 1225 1238 2120 Soutput_stmt 0(18) 000000 constant bit(1) initial array level 2 packed unaligned dcl 797 ref 13-161 Ssearching 001012 automatic bit(1) dcl 14-21 set ref 14-26* 14-27 14-30* TERM_FILE_TERM 004073 constant bit(3) initial unaligned dcl 6-14 set ref 1441* TOKEN_REQD based structure level 1 dcl 8-48 in procedure "SEMANTIC_ANALYSIS" TOKEN_REQD based structure level 2 in structure "RED" packed unaligned dcl 8-48 in procedure "SEMANTIC_ANALYSIS" TOKEN_REQD_STRING based structure level 1 dcl 8-48 TOKEN_REQD_VALUE based char unaligned dcl 8-48 ref 10-128 TOKEN_REQUIREMENT based structure array level 1 packed unaligned dcl 1646 set ref 10-63 TOKEN_REQUIREMENTS 003611 constant fixed bin(17,0) initial array unaligned dcl 1646 set ref 10-63 TOKEN_STRINGS based char(305) dcl 1684 set ref 10-126 TOKEN_STRING_ARRAYS 003445 constant char(100) initial array dcl 1684 set ref 10-126 TRACING 000112 internal static bit(1) initial dcl 1508 set ref 10-50* 10-50 TYPE 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 8-48 ref 10-65 10-71 UNEXCLUDED_OPTION constant fixed bin(17,0) initial dcl 746 ref 1080 2165 USAGE_MSG 004512 constant char(66) initial unaligned dcl 674 set ref 846* VALIDATE_EXPLANATION constant fixed bin(17,0) initial dcl 746 ref 2300 VALIDATE_RESULT constant fixed bin(17,0) initial dcl 746 ref 2280 VALIDATE_RESULT_EXPLANATION constant fixed bin(17,0) initial dcl 746 ref 2290 VALIDATION_STRING constant fixed bin(17,0) initial dcl 746 ref 2235 VALUE_SUFFIX 004510 constant char(5) initial unaligned dcl 674 set ref 889* 895* addr builtin function dcl 634 in procedure "mtape_cv_apd" ref 934 934 994 994 addr builtin function dcl 11-40 in procedure "PUSH" ref 11-63 11-63 addr builtin function dcl 8-92 in procedure "SEMANTIC_ANALYSIS" ref 10-58 10-58 10-63 10-63 10-126 10-126 answer 000100 automatic varying char(3) dcl 562 set ref 994* 997 997 answer_iocbp 6 000530 automatic pointer initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* answer_iocbp 6 000502 automatic pointer initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* 1394* area_control based structure level 1 dcl 5-20 area_info based structure level 1 dcl 5-7 area_ptr 000102 automatic pointer dcl 563 set ref 913* 917* 932 938* 985* 1032 1189* 1201* 1214* 1225* 1238* 1277* 1334 1388* 1493 1499 areap 16 000456 automatic pointer level 2 dcl 615 set ref 932* arg based char unaligned dcl 620 ref 859 861 863 863 865 865 877 arg_definition_order parameter picture(3) unaligned dcl 1297 set ref 1291 1305* arg_len 000104 automatic fixed bin(21,0) dcl 564 in procedure "mtape_cv_apd" set ref 858* 859 861 863 863 865 865 870 875 877 arg_len parameter fixed bin(21,0) dcl 1410 in procedure "get_arg" set ref 1406 1418* arg_n_definition_order parameter fixed bin(17,0) dcl 1296 ref 1291 1305 arg_name_len parameter fixed bin(21,0) dcl 1354 in procedure "reset_name" set ref 1346 1357 1357 1360* arg_name_len parameter fixed bin(21,0) dcl 1326 in procedure "set_name" set ref 1318 1330 1330 1333* 1334 1334 1336 arg_name_ptr parameter pointer dcl 1327 in procedure "set_name" set ref 1318 1330 1330 1334* 1336 arg_name_ptr parameter pointer dcl 1355 in procedure "reset_name" set ref 1346 1357 1357 1361* arg_num parameter fixed bin(17,0) dcl 1411 set ref 1406 1418* 1422* 1422 arg_ptr 000106 automatic pointer dcl 565 in procedure "mtape_cv_apd" set ref 858* 859 861 863 863 865 865 869 874 877 arg_ptr parameter pointer dcl 1412 in procedure "get_arg" set ref 1406 1418* arg_str parameter char unaligned dcl 1328 ref 1318 1333 1336 argument based char unaligned dcl 621 set ref 1201* argument_len 000110 automatic fixed bin(21,0) dcl 566 set ref 1201 1201 1379* 2104* 2219* argument_ptr 000112 automatic pointer dcl 567 set ref 1201 1378* 2104* 2219* auto_area_info 000456 automatic structure level 1 unaligned dcl 615 set ref 921* 934 934 auto_query_info 000502 automatic structure level 1 unaligned dcl 616 set ref 994 994 1390* based_area based area(1024) dcl 622 ref 1032 1334 1493 1499 bit_count 000114 automatic fixed bin(24,0) dcl 568 set ref 899* 905 brief_error 000114 internal static varying char(4) initial dcl 11-48 set ref 11-60* brief_message 102 000000 constant varying char(256) initial array level 2 dcl 797 ref 13-168 13-172 cleanup 000520 stack reference condition dcl 788 ref 840 code parameter fixed bin(35,0) dcl 1456 in procedure "abort" set ref 1452 1459* code 000115 automatic fixed bin(35,0) dcl 569 in procedure "mtape_cv_apd" set ref 842* 843 843* 883* 884 884* 889* 890 890* 895* 896 896* 899* 900 900* 902 902* 909* 910 910* 913* 914 914* 917* 918 918* 934* 935 935* 938* 939 939* 949* 954 954* 956 958* 969* 970* 975* 976 976* 985* 988 989 990* 1008* 1009 1009 1011 1011* 1014* 1015 1015 1017 1017* 1022* 1024 1024* 1027* 1028 1028* 1035* 1036 1036* 1086* 1087 1097* 1098 1108* 1109 1115* 1117* 1118 1151* 1152 1435* 1438* 1441* code parameter fixed bin(35,0) dcl 1272 in procedure "add_dim" set ref 1268 1277* code parameter fixed bin(35,0) dcl 1179 in procedure "append_vector" set ref 1175 1183* 1189* 1196 1201* 1209 1214* 1220 1225* 1233 1238* 1247 1251* code 000656 automatic fixed bin(35,0) dcl 1416 in procedure "get_arg" set ref 1418* 1419 1419* com_err_ 000232 constant entry external dcl 642 ref 1001 1009 1015 1300 1459 command_name based char unaligned dcl 623 set ref 979 980 990 994* 1009* 1011 1015* 1017 1189* 1201* 1214* 1225* 1238* command_name_len 000116 automatic fixed bin(21,0) dcl 570 set ref 979 980 990 994 994 1009 1009 1011 1015 1015 1017 1189 1189 1201 1201 1214 1214 1225 1225 1238 1238 1379* 2051* command_name_ptr 000120 automatic pointer dcl 571 set ref 979 980 990 994 1009 1011 1015 1017 1189 1201 1214 1225 1238 1378* 2051* command_query_ 000224 constant entry external dcl 639 ref 994 control 1 000456 automatic structure level 2 dcl 615 cp_escape_control 1(02) 000502 automatic bit(2) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* cp_escape_control 1(02) 000530 automatic bit(2) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* created_value_seg 000122 automatic bit(1) initial dcl 572 set ref 572* 969* 973 cu_$arg_count 000226 constant entry external dcl 640 ref 842 cu_$arg_ptr 000230 constant entry external dcl 641 ref 1418 cu_$cl 000330 constant entry external dcl 11-43 ref 11-62 cv_dec_check_ 000326 constant entry external dcl 8-96 ref 10-106 default_exclude_myself 000123 automatic bit(1) dcl 573 set ref 1080* 1837 1843 1848 2106* default_linear_form_length 000124 automatic fixed bin(21,0) initial dcl 574 set ref 574* 1031 1033 1982* default_linear_form_ptr 000126 automatic pointer initial dcl 575 set ref 575* 1033 1982* default_linear_form_string based char unaligned dcl 624 ref 1033 default_linear_form_value_name 000130 automatic varying char(128) initial dcl 576 set ref 576* 980* 1014 1035 define_area_ 000234 constant entry external dcl 643 ref 934 definition_exists 000171 automatic bit(1) initial dcl 577 set ref 577* 988* 989* 992 definition_order 000172 automatic picture(3) unaligned dcl 578 set ref 1185* 1189* 1201* 1214* 1225* 1238* definition_string_length 000173 automatic fixed bin(35,0) initial dcl 579 set ref 579* 919* 1022* 1027 1027 definition_string_ptr 000174 automatic pointer initial dcl 580 set ref 580* 917* 1022* 1027* definition_value_name 000202 automatic varying char(128) initial dcl 583 set ref 583* 979* 985 1008 1027 dim_num parameter fixed bin(17,0) dcl 1273 in procedure "add_dim" ref 1268 1277 dim_num parameter fixed bin(17,0) dcl 1068 in procedure "add_to_vector" set ref 1060 1074 1074 1080 1080 1083 1093 1106 1106 1115 1115* 1117* 1125 dim_value parameter char unaligned dcl 1274 set ref 1268 1277* dimension builtin function dcl 11-40 in procedure "PUSH" ref 11-59 11-60 11-60 dimension builtin function dcl 634 in procedure "mtape_cv_apd" ref 13-3 13-3 dimension_table 6 based structure array level 2 unaligned dcl 3-12 divide builtin function dcl 634 ref 905 1027 1027 1035 dlf_var based varying char dcl 625 set ref 1032 1033* dlf_var_length 000176 automatic fixed bin(21,0) dcl 581 set ref 1031* 1032 1033 1035 dlf_var_ptr 000200 automatic pointer dcl 582 set ref 1032* 1033 1035* dont_free 1(03) 000456 automatic bit(1) level 3 packed unaligned dcl 615 set ref 927* erring_token based structure level 1 dcl 13-143 erring_token_value based char unaligned dcl 13-143 set ref 13-172* 13-172* 13-172* error_control_table 000000 constant structure array level 1 unaligned dcl 797 ref 13-3 13-3 error_table_$bad_arg 000302 external static fixed bin(35,0) dcl 775 set ref 877* 1251 error_table_$empty_file 000304 external static fixed bin(35,0) dcl 775 ref 1009 1015 error_table_$noarg 000306 external static fixed bin(35,0) dcl 775 set ref 880* error_table_$oldnamerr 000310 external static fixed bin(35,0) dcl 775 ref 989 1009 1015 error_table_$segknown 000312 external static fixed bin(35,0) dcl 775 ref 900 error_table_$wrong_no_of_args 000314 external static fixed bin(35,0) dcl 775 set ref 849* error_table_$zero_length_seg 000316 external static fixed bin(35,0) dcl 775 ref 954 expand_pathname_$add_suffix 000236 constant entry external dcl 645 ref 883 889 expanded_token based char unaligned dcl 626 set ref 1982* 1984* expanded_token_len 000243 automatic fixed bin(21,0) dcl 585 set ref 1385* 1966* 1982 1982 1984 1984 1985* expanded_token_ptr 000244 automatic pointer dcl 586 set ref 1384* 1966* 1982 1984 1985* explanation_len 14 000502 automatic fixed bin(21,0) initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* explanation_len 14 000530 automatic fixed bin(21,0) initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* explanation_ptr 12 000502 automatic pointer initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* 1395* explanation_ptr 12 000530 automatic pointer initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* extend 1 000456 automatic bit(1) level 3 packed unaligned dcl 615 set ref 924* get_wdir_ 000240 constant entry external dcl 646 ref 894 group2 7 based structure level 2 packed unaligned dcl 9-68 hcs_$initiate_count 000242 constant entry external dcl 647 ref 899 i 000766 automatic fixed bin(17,0) dcl 12-33 in procedure "LEX" set ref 12-39* 12-42 12-45* i 000246 automatic fixed bin(17,0) dcl 587 in procedure "mtape_cv_apd" set ref 855* 857 858* 859* 861* initiate_file_$create 000244 constant entry external dcl 648 ref 969 ioa_ 000246 constant entry external dcl 649 ref 907 iox_$error_output 000334 external static pointer dcl 11-43 set ref 11-63* iox_$put_chars 000332 constant entry external dcl 11-43 ref 11-63 length builtin function dcl 634 in procedure "mtape_cv_apd" ref 1333 1492 1498 length builtin function dcl 11-40 in procedure "PUSH" ref 11-63 11-63 lex_control_chars 000010 internal static varying char(128) initial dcl 784 set ref 944* 949* lex_delims 000051 internal static varying char(128) initial dcl 784 set ref 944 944* 949* lex_error_ 000336 constant entry external dcl 11-43 in procedure "PUSH" ref 11-60 lex_error_ 000340 constant entry external dcl 13-150 in procedure "ERROR" ref 13-168 13-172 lex_string_$init_lex_delims 000250 constant entry external dcl 650 ref 944 lex_string_$lex 000252 constant entry external dcl 652 ref 949 list_dim 000247 automatic fixed bin(17,0) dcl 588 set ref 1982 1984* 2014* 2067* 2077* 2120* 2145* 2155* 2165* 2235* 2245* 2255* 2280* 2290* 2300* literal_sw 1(05) 000530 automatic bit(1) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* literal_sw 1(05) 000502 automatic bit(1) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* long_error 000116 internal static varying char(234) initial dcl 11-48 set ref 11-60* main_pv_num 000250 automatic fixed bin(17,0) dcl 589 set ref 1105 1158* main_pv_type 000251 automatic fixed bin(17,0) dcl 590 set ref 1108* 1159* max builtin function dcl 8-92 in procedure "SEMANTIC_ANALYSIS" ref 11-27 max builtin function dcl 13-148 in procedure "ERROR" ref 13-154 maximum_dimension_name_length 2 based fixed bin(17,0) level 2 dcl 3-12 ref 942 942 942 message 1 000000 constant varying char(256) initial array level 2 dcl 797 ref 13-168 13-172 msg parameter char unaligned dcl 1457 set ref 1452 1459* n parameter fixed bin(17,0) dcl 12-33 ref 12-31 12-38 12-39 12-42 12-45 n_definition_order 000252 automatic fixed bin(17,0) dcl 591 set ref 1184* 1184 1185* 1376* name based char unaligned dcl 1322 in procedure "set_name" set ref 1330 1334 1336* name based char unaligned dcl 1350 in procedure "reset_name" ref 1357 name 6 based varying char array level 3 in structure "print_vector_array" dcl 3-12 in procedure "mtape_cv_apd" set ref 942* nargs 000253 automatic fixed bin(17,0) dcl 592 set ref 842* 846 849 849 857 no_freeing 1(04) 000456 automatic bit(1) level 3 packed unaligned dcl 615 set ref 928* non_restart_error 000212 internal static char(33) initial unaligned dcl 11-48 set ref 11-63 11-63 11-63 11-63 null builtin function dcl 634 in procedure "mtape_cv_apd" ref 575 580 613 616 616 616 852 867 872 880 887 970 975 975 985 1027 1027 1035 1035 7-7 7-7 7-7 1330 1357 1361 1378 1381 1384 1387 1388 1393 1394 1395 1435 1438 1441 1490 12-37 12-39 12-42 12-45 null builtin function dcl 11-40 in procedure "PUSH" ref 11-60 11-60 11-60 11-60 null builtin function dcl 14-21 in procedure "NEXT_STMT" ref 14-27 14-35 null builtin function dcl 8-92 in procedure "SEMANTIC_ANALYSIS" ref 10-64 10-73 10-79 10-86 null builtin function dcl 13-148 in procedure "ERROR" ref 13-161 13-161 13-166 13-168 number_of_dimensions 1 based fixed bin(17,0) level 2 dcl 3-12 ref 942 number_of_vectors 3 based fixed bin(17,0) level 2 dcl 3-12 ref 1255 option based char unaligned dcl 627 set ref 1080 1189* 1201* 1225* 1238* 1837* 1843* 1848* option_len 000254 automatic fixed bin(21,0) dcl 593 set ref 1080 1189 1189 1201 1201 1225 1225 1238 1238 1379* 1837 1837 1843 1843 1848 1848 2102* option_ptr 000256 automatic pointer dcl 594 set ref 1080 1189 1201 1225 1238 1378* 1837 1843 1848 2102* owner 2 000456 automatic char(32) level 2 packed unaligned dcl 615 set ref 930* padding 1(07) 000502 automatic bit(29) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* padding 1(07) 000530 automatic bit(29) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* print_vector_array based structure level 1 unaligned dcl 3-12 print_vector_array_ptr 000526 automatic pointer dcl 3-51 set ref 938* 942 1022* 1189* 1201* 1214* 1225* 1238* 1255 1277* prompt_after_explanation 1(06) 000502 automatic bit(1) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* prompt_after_explanation 1(06) 000530 automatic bit(1) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* query_code 3 000502 automatic fixed bin(35,0) initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* query_code 3 000530 automatic fixed bin(35,0) initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* query_info 000530 automatic structure level 1 dcl 7-7 query_info_version_5 constant fixed bin(17,0) initial dcl 7-35 ref 1391 question_iocbp 4 000530 automatic pointer initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* question_iocbp 4 000502 automatic pointer initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* 1393* quoted_string 11(01) based bit(1) level 4 packed unaligned dcl 9-68 ref 10-92 10-104 10-113 10-118 10-124 repeat_time 10 000530 automatic fixed bin(71,0) initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* repeat_time 10 000502 automatic fixed bin(71,0) initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* replace 000264 automatic bit(1) dcl 597 set ref 854* 863* 865* 982 1000* 1006 rtrim builtin function dcl 634 ref 902 902 954 954 970 970 976 976 sdname 000265 automatic char(168) unaligned dcl 598 set ref 883* 899* 902 954 search builtin function dcl 8-92 ref 10-92 seg_len 000337 automatic fixed bin(21,0) dcl 599 set ref 905* 949* seg_ptr 000340 automatic pointer dcl 600 set ref 899* 949* 1387* 1435 1435* sename 000342 automatic char(32) unaligned dcl 601 set ref 883* 895* 899* 902 954 severity 000000 constant fixed bin(17,0) initial array level 2 packed unaligned dcl 797 ref 13-153 13-154 13-168 13-172 size 13 000456 automatic fixed bin(18,0) level 2 in structure "auto_area_info" dcl 615 in procedure "mtape_cv_apd" set ref 931* size 0(18) based fixed bin(17,0) level 3 in structure "token" packed unaligned dcl 9-68 in procedure "mtape_cv_apd" ref 1299 source_rpath based char unaligned dcl 628 set ref 883* 884 source_rpath_len 000352 automatic fixed bin(21,0) dcl 602 set ref 853* 859* 870* 883 883 884 source_rpath_ptr 000354 automatic pointer dcl 603 set ref 852* 859* 867 869* 880 883 884 status_code 2 000530 automatic fixed bin(35,0) initial level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* status_code 2 000502 automatic fixed bin(35,0) initial level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 616* str parameter char unaligned dcl 1069 in procedure "add_to_vector" set ref 1060 1080 1085* 1096* 1115* str based char unaligned dcl 1481 in procedure "append_to_str" set ref 1493 1494* 1500 1501 str_len parameter fixed bin(21,0) dcl 1486 set ref 1472 1492* 1493 1493 1494 1498 1500 1501 1501 1503* str_ptr parameter pointer dcl 1487 set ref 1472 1490 1493* 1494 1500 1501 1502* str_to_append parameter char unaligned dcl 1488 ref 1472 1492 1494 1498 1500 substr builtin function dcl 8-92 ref 10-92 10-126 suffixed_name_$new_suffix 000254 constant entry external dcl 654 ref 895 suppress_name_sw 1(01) 000502 automatic bit(1) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* suppress_name_sw 1(01) 000530 automatic bit(1) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* suppress_spacing 1(04) 000502 automatic bit(1) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* suppress_spacing 1(04) 000530 automatic bit(1) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* switches 1 000530 automatic structure level 2 in structure "query_info" dcl 7-7 in procedure "mtape_cv_apd" switches 1 000502 automatic structure level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" synonym based char unaligned dcl 629 set ref 1225* 1238* synonym_len 000356 automatic fixed bin(21,0) dcl 604 set ref 1085* 1096* 1225 1225 1238 1238 1382* synonym_ptr 000360 automatic pointer dcl 605 set ref 1085* 1096* 1225 1238 1381* sys_info$max_seg_size 000300 external static fixed bin(35,0) dcl 773 ref 919 931 system 1(05) 000456 automatic bit(1) level 3 packed unaligned dcl 615 set ref 929* target_rpath based char unaligned dcl 630 set ref 889* 890 target_rpath_len 000362 automatic fixed bin(21,0) dcl 606 set ref 853* 861* 875* 889 889 890 target_rpath_ptr 000364 automatic pointer dcl 607 set ref 852* 861* 872 874* 887 889 890 tdname 000366 automatic char(168) unaligned dcl 608 set ref 889* 894* 969* 970 976 994* temp_seg_ptr 000440 automatic pointer dcl 609 set ref 909* 913* 949* 1388* 1438 1438* temp_str based char unaligned dcl 1482 set ref 1499 1500* temp_str_len 000666 automatic fixed bin(21,0) dcl 1476 set ref 1498* 1499 1499 1500 1503 temp_str_ptr 000670 automatic pointer dcl 1477 set ref 1499* 1500 1502 tename 000442 automatic char(32) unaligned dcl 610 set ref 889* 895* 969* 970 976 994* term_$seg_ptr 000256 constant entry external dcl 655 ref 1435 terminate_file_ 000260 constant entry external dcl 656 ref 1441 token based structure level 1 dcl 9-68 token_value based char unaligned dcl 9-68 set ref 10-92 10-92 10-106* 10-113 10-128 1966* 2014* 2051* 2087* 2102* 2130* 2175* 2180* 2189* 2204* 2219* 2265* translator_temp_$get_next_segment 000262 constant entry external dcl 657 ref 913 917 translator_temp_$get_segment 000264 constant entry external dcl 658 ref 909 translator_temp_$release_all_segments 000266 constant entry external dcl 659 ref 1438 unspec builtin function dcl 634 set ref 921* 1390* value_$delete_data 000276 constant entry external dcl 665 ref 1008 1014 value_$get_data 000270 constant entry external dcl 660 ref 985 value_$init_seg 000272 constant entry external dcl 662 ref 975 value_$set_data 000274 constant entry external dcl 663 ref 1027 1035 value_defined 000452 automatic bit(1) array unaligned dcl 611 set ref 1074 1106 1125* 1149* value_seg_ptr 000454 automatic pointer initial dcl 613 set ref 613* 969* 970 975* 985* 1008* 1014* 1027* 1035* 1441 1441* vector_num parameter fixed bin(17,0) dcl 1275 in procedure "add_dim" set ref 1268 1277* vector_num 000600 automatic fixed bin(17,0) dcl 1064 in procedure "add_to_vector" set ref 1086* 1097* 1105* 1108* 1115* 1117* vector_num 000610 automatic fixed bin(17,0) dcl 1144 in procedure "start_vector" set ref 1151* 1158 vector_num parameter fixed bin(17,0) dcl 1180 in procedure "append_vector" set ref 1175 1255* vector_type parameter fixed bin(17,0) dcl 1140 in procedure "start_vector" set ref 1136 1151* 1159 vector_type parameter fixed bin(17,0) dcl 1181 in procedure "append_vector" ref 1175 1187 1199 1212 1212 1223 1236 vector_util_$append_general_print_vector 000322 constant entry external dcl 4-30 ref 1189 1201 1214 1225 1238 1277 vector_util_$cv_pva_to_string 000324 constant entry external dcl 4-49 ref 1022 vector_util_$init_print_vector_array 000320 constant entry external dcl 4-20 ref 938 verify builtin function dcl 8-92 ref 10-92 version 000456 automatic fixed bin(17,0) level 2 in structure "auto_area_info" dcl 615 in procedure "mtape_cv_apd" set ref 923* version 000502 automatic fixed bin(17,0) level 2 in structure "auto_query_info" dcl 616 in procedure "mtape_cv_apd" set ref 1391* yes_or_no_sw 1 000530 automatic bit(1) initial level 3 in structure "query_info" packed unaligned dcl 7-7 in procedure "mtape_cv_apd" set ref 7-7* yes_or_no_sw 1 000502 automatic bit(1) initial level 3 in structure "auto_query_info" packed unaligned dcl 616 in procedure "mtape_cv_apd" set ref 616* 1392* zero_on_alloc 1(01) 000456 automatic bit(1) level 3 packed unaligned dcl 615 set ref 925* zero_on_free 1(02) 000456 automatic bit(1) level 3 packed unaligned dcl 615 set ref 926* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 PRINT_VECTOR_ARRAY_VERSION_2 internal static fixed bin(35,0) initial dcl 3-53 Pcomment automatic pointer dcl 9-20 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS internal static bit(3) initial unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 STOKEN_FCN automatic bit(1) dcl 8-33 STOP_ON_DUPLICATION internal static bit(1) initial dcl 674 STOP_ON_ERROR internal static bit(1) initial dcl 674 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 6-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 6-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 6-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 6-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 6-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial unaligned dcl 6-15 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 after builtin function dcl 634 area_info_version_1 internal static fixed bin(17,0) initial dcl 5-3 area_infop automatic pointer dcl 5-5 comment based structure level 1 dcl 9-20 comment_value based char unaligned dcl 9-20 empty builtin function dcl 634 error_code_array automatic fixed bin(35,0) array dcl 584 expand_pathname_ 000000 constant entry external dcl 644 print_vector based structure level 1 unaligned dcl 3-31 print_vector_ptr automatic pointer dcl 3-52 pv_maximum_value_length automatic fixed bin(17,0) dcl 3-48 pv_number_of_dimensions automatic fixed bin(17,0) dcl 3-46 pva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 3-44 pva_number_of_dimensions automatic fixed bin(17,0) dcl 3-40 pva_number_of_vector_slots automatic fixed bin(17,0) dcl 3-42 query_info_version_3 internal static fixed bin(17,0) initial dcl 7-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 7-34 query_info_version_6 internal static fixed bin(17,0) initial dcl 7-36 reverse builtin function dcl 634 size 000000 stack reference condition dcl 788 stmt based structure level 1 dcl 9-40 stmt_value based char unaligned dcl 9-40 string builtin function dcl 634 terminate_file_switches based structure level 1 packed unaligned dcl 6-4 vector_util_$append_dimension_print 000000 constant entry external dcl 4-25 vector_util_$append_simple_print_vector 000000 constant entry external dcl 4-28 vector_util_$append_simple_typed_vector 000000 constant entry external dcl 4-33 vector_util_$cv_any_to_print_dimension 000000 constant entry external dcl 4-46 vector_util_$cv_string_to_pva 000000 constant entry external dcl 4-51 vector_util_$cv_typed_to_print 000000 constant entry external dcl 4-44 vector_util_$display 000000 constant entry external dcl 4-16 vector_util_$err_no_operation 000000 constant entry external dcl 4-54 vector_util_$free_typed_vector 000000 constant entry external dcl 4-41 vector_util_$free_typed_vector_array 000000 constant entry external dcl 4-37 vector_util_$init_typed_vector_array 000000 constant entry external dcl 4-22 vector_util_$sort_print 000000 constant entry external dcl 4-17 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 015435 constant entry internal dcl 13-139 ref 1076 1089 1100 1111 1120 1154 1709 1715 1754 1768 1832 1853 1859 1922 1940 1946 1951 1956 1961 1972 1989 1994 1999 2004 2009 2028 2033 2038 2057 2062 2072 2082 2092 2097 2110 2115 2125 2135 2140 2150 2160 2170 2194 2199 2209 2214 2225 2230 2240 2250 2260 2270 2275 2285 2295 2305 2315 2320 ERROR_RETURN 010566 constant label dcl 1044 ref 1461 LEX 015350 constant entry internal dcl 12-31 ref 1703 1720 1726 1732 1738 1744 1774 1780 1786 1792 1798 1804 1810 1816 1822 1864 1870 1876 1882 1888 1894 1900 1906 1912 1968 1977 2016 2019 NEXT_STMT 015746 constant entry internal dcl 14-18 ref 1711 1759 1770 1839 1855 1927 1942 1953 1958 1974 1986 1991 2001 2006 2024 2030 2054 2059 2089 2094 2107 2112 2132 2137 2177 2182 2185 2191 2196 2206 2211 2222 2227 2267 2272 2312 2317 PUSH 015207 constant entry internal dcl 11-36 ref 1705 1722 1728 1734 1740 1746 1776 1782 1788 1794 1800 1806 1812 1818 1824 1866 1872 1878 1884 1890 1896 1902 1908 1914 RD_ACTION 003255 constant label array(120) dcl 1703 ref 1698 RD_MATCH 013052 constant label dcl 1694 ref 10-90 10-92 10-101 10-109 10-113 10-118 10-128 RD_MATCH_NO_TOKEN 013055 constant label dcl 1695 ref 10-73 10-79 10-86 RD_NEXT_REDUCTION 012566 constant label dcl 10-55 ref 10-68 10-84 10-88 10-99 10-104 10-111 10-116 10-120 10-124 10-130 11-17 11-24 2017 RD_STACK 013064 constant label dcl 11-17 RD_STACK_POP 013071 constant label dcl 11-24 ref 1954 1959 1975 1987 1992 2002 2007 2026 2031 2055 2060 2090 2095 2108 2113 2133 2138 2178 2183 2187 2192 2197 2207 2212 2223 2228 2268 2273 2313 2318 RD_TEST_REDUCTION 012567 constant label dcl 10-58 ref 10-53 11-19 11-28 1707 1713 1718 1724 1730 1736 1742 1748 1752 1757 1762 1766 1772 1778 1784 1790 1796 1802 1808 1814 1820 1826 1830 1835 1841 1846 1851 1857 1862 1868 1874 1880 1886 1892 1898 1904 1910 1916 1920 1925 1930 1934 1938 1944 1949 1964 1970 1980 1997 2012 2022 2036 2065 2070 2075 2080 2085 2100 2118 2123 2128 2143 2148 2153 2158 2163 2168 2173 2202 2217 2233 2238 2243 2248 2253 2258 2263 2278 2283 2288 2293 2298 2303 2308 2323 RD_TEST_TOKEN 003247 constant label array(6) dcl 10-73 ref 10-65 10-71 RETURN 010561 constant label dcl 1039 SEMANTIC_ANALYSIS 012555 constant entry internal dcl 8-30 ref 964 abort 012375 constant entry internal dcl 1452 ref 843 846 849 877 880 884 890 896 902 910 914 918 935 939 954 966 970 976 990 997 1011 1017 1024 1028 1036 1302 1419 add_dim 011726 constant entry internal dcl 1268 ref 1115 1117 add_to_vector 010567 constant entry internal dcl 1060 ref 1837 1843 1848 1984 2014 2087 2130 2175 2180 2189 2204 2265 2310 append_to_str 012441 constant entry internal dcl 1472 ref 1966 append_vector 011114 constant entry internal dcl 1175 ref 1086 1097 1108 1151 cleanup_trans 012300 constant entry internal dcl 1433 ref 840 1039 1460 get_arg 012236 constant entry internal dcl 1406 ref 858 859 861 get_to_cl 015313 constant label dcl 11-62 ref 11-64 initialize_translator_values 012200 constant entry internal dcl 1374 ref 838 mtape_cv_apd 005152 constant entry external dcl 558 reset_name 012160 constant entry internal dcl 1346 ref 1985 2104 set_definition_order 012010 constant entry internal dcl 1291 ref 1185 set_name 012112 constant entry internal dcl 1318 ref 1085 1096 1982 2051 2102 2219 start_vector 011043 constant entry internal dcl 1136 ref 2053 2105 2221 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 17126 17470 16401 17136 Length 20270 16401 342 564 524 214 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mtape_cv_apd 1238 external procedure is an external procedure. on unit on line 840 64 on unit add_to_vector internal procedure shares stack frame of external procedure mtape_cv_apd. start_vector internal procedure shares stack frame of external procedure mtape_cv_apd. append_vector internal procedure shares stack frame of external procedure mtape_cv_apd. add_dim internal procedure shares stack frame of external procedure mtape_cv_apd. set_definition_order 71 internal procedure enables or reverts conditions. on unit on line 1299 107 on unit set_name internal procedure shares stack frame of external procedure mtape_cv_apd. reset_name internal procedure shares stack frame of external procedure mtape_cv_apd. initialize_translator_values internal procedure shares stack frame of external procedure mtape_cv_apd. get_arg internal procedure shares stack frame of external procedure mtape_cv_apd. cleanup_trans 90 internal procedure is called by several nonquick procedures. abort 80 internal procedure is called during a stack extension. append_to_str internal procedure shares stack frame of external procedure mtape_cv_apd. SEMANTIC_ANALYSIS internal procedure shares stack frame of external procedure mtape_cv_apd. PUSH internal procedure shares stack frame of external procedure mtape_cv_apd. LEX internal procedure shares stack frame of external procedure mtape_cv_apd. ERROR internal procedure shares stack frame of external procedure mtape_cv_apd. NEXT_STMT internal procedure shares stack frame of external procedure mtape_cv_apd. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 lex_control_chars mtape_cv_apd 000051 lex_delims mtape_cv_apd 000112 TRACING mtape_cv_apd 000114 brief_error PUSH 000116 long_error PUSH 000212 non_restart_error PUSH STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mtape_cv_apd 000100 answer mtape_cv_apd 000102 area_ptr mtape_cv_apd 000104 arg_len mtape_cv_apd 000106 arg_ptr mtape_cv_apd 000110 argument_len mtape_cv_apd 000112 argument_ptr mtape_cv_apd 000114 bit_count mtape_cv_apd 000115 code mtape_cv_apd 000116 command_name_len mtape_cv_apd 000120 command_name_ptr mtape_cv_apd 000122 created_value_seg mtape_cv_apd 000123 default_exclude_myself mtape_cv_apd 000124 default_linear_form_length mtape_cv_apd 000126 default_linear_form_ptr mtape_cv_apd 000130 default_linear_form_value_name mtape_cv_apd 000171 definition_exists mtape_cv_apd 000172 definition_order mtape_cv_apd 000173 definition_string_length mtape_cv_apd 000174 definition_string_ptr mtape_cv_apd 000176 dlf_var_length mtape_cv_apd 000200 dlf_var_ptr mtape_cv_apd 000202 definition_value_name mtape_cv_apd 000243 expanded_token_len mtape_cv_apd 000244 expanded_token_ptr mtape_cv_apd 000246 i mtape_cv_apd 000247 list_dim mtape_cv_apd 000250 main_pv_num mtape_cv_apd 000251 main_pv_type mtape_cv_apd 000252 n_definition_order mtape_cv_apd 000253 nargs mtape_cv_apd 000254 option_len mtape_cv_apd 000256 option_ptr mtape_cv_apd 000260 Pfirst_stmt_desc mtape_cv_apd 000262 Pfirst_token_desc mtape_cv_apd 000264 replace mtape_cv_apd 000265 sdname mtape_cv_apd 000337 seg_len mtape_cv_apd 000340 seg_ptr mtape_cv_apd 000342 sename mtape_cv_apd 000352 source_rpath_len mtape_cv_apd 000354 source_rpath_ptr mtape_cv_apd 000356 synonym_len mtape_cv_apd 000360 synonym_ptr mtape_cv_apd 000362 target_rpath_len mtape_cv_apd 000364 target_rpath_ptr mtape_cv_apd 000366 tdname mtape_cv_apd 000440 temp_seg_ptr mtape_cv_apd 000442 tename mtape_cv_apd 000452 value_defined mtape_cv_apd 000454 value_seg_ptr mtape_cv_apd 000456 auto_area_info mtape_cv_apd 000502 auto_query_info mtape_cv_apd 000526 print_vector_array_ptr mtape_cv_apd 000530 query_info mtape_cv_apd 000546 Pthis_token mtape_cv_apd 000550 Pstmt mtape_cv_apd 000552 Ptoken mtape_cv_apd 000554 SPDL mtape_cv_apd 000555 MERROR_SEVERITY mtape_cv_apd 000556 SERROR_CONTROL mtape_cv_apd 000557 SERROR_PRINTED mtape_cv_apd 000557 MIN_PRINT_SEVERITY mtape_cv_apd 000560 PRINT_SEVERITY_CONTROL mtape_cv_apd 000600 vector_num add_to_vector 000610 vector_num start_vector 000656 code get_arg 000666 temp_str_len append_to_str 000670 temp_str_ptr append_to_str 000700 LTOKEN_REQD_VALUE SEMANTIC_ANALYSIS 000701 NRED SEMANTIC_ANALYSIS 000702 PRED SEMANTIC_ANALYSIS 000704 PTOKEN_REQD SEMANTIC_ANALYSIS 000706 PTOKEN_REQD_VALUE SEMANTIC_ANALYSIS 000710 CODE SEMANTIC_ANALYSIS 000711 I SEMANTIC_ANALYSIS 000712 NUMBER SEMANTIC_ANALYSIS 000713 DIRECTION SEMANTIC_ANALYSIS 000714 STACK SEMANTIC_ANALYSIS 000726 STACK_DEPTH SEMANTIC_ANALYSIS 000766 i LEX 001000 Pstmt ERROR 001002 Perring_token ERROR 001012 Ssearching NEXT_STMT THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs unpk_to_pk cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return tra_ext alloc_auto_adj bound_check_signal enable shorten_stack ext_entry int_entry int_entry_desc alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_query_ cu_$arg_count cu_$arg_ptr cu_$cl cv_dec_check_ define_area_ expand_pathname_$add_suffix get_wdir_ hcs_$initiate_count initiate_file_$create ioa_ iox_$put_chars lex_error_ lex_error_ lex_string_$init_lex_delims lex_string_$lex suffixed_name_$new_suffix term_$seg_ptr terminate_file_ translator_temp_$get_next_segment translator_temp_$get_segment translator_temp_$release_all_segments value_$delete_data value_$get_data value_$init_seg value_$set_data vector_util_$append_general_print_vector vector_util_$cv_pva_to_string vector_util_$init_print_vector_array THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$empty_file error_table_$noarg error_table_$oldnamerr error_table_$segknown error_table_$wrong_no_of_args error_table_$zero_length_seg iox_$error_output sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 558 005151 572 005157 574 005160 575 005161 576 005163 577 005164 579 005165 580 005166 583 005167 613 005170 616 005171 7 7 005220 2330 005250 13 3 005251 13 168 005303 838 005305 840 005306 842 005330 843 005341 846 005357 849 005376 852 005420 853 005423 854 005425 855 005426 857 005430 858 005433 859 005435 861 005446 863 005455 865 005470 867 005502 869 005506 870 005507 871 005511 872 005512 874 005516 875 005517 876 005521 877 005522 878 005564 880 005566 883 005615 884 005651 887 005715 889 005722 890 005756 892 006022 894 006024 895 006033 896 006063 899 006104 900 006145 902 006153 905 006242 907 006247 909 006272 910 006317 913 006335 914 006350 917 006366 918 006401 919 006417 921 006423 923 006426 924 006430 925 006432 926 006434 927 006436 928 006440 929 006442 930 006444 931 006447 932 006451 934 006453 935 006465 938 006503 939 006535 942 006553 944 006626 949 006704 954 007005 956 007077 958 007102 959 007103 962 007105 964 007107 966 007110 969 007130 970 007172 973 007263 975 007267 976 007311 977 007400 979 007401 980 007434 982 007467 985 007472 988 007544 989 007552 990 007557 992 007621 994 007624 997 007675 1000 007730 1001 007732 1006 007757 1008 007761 1009 010016 1011 010061 1014 010125 1015 010163 1017 010226 1020 010272 1022 010273 1024 010310 1027 010326 1028 010412 1031 010431 1032 010433 1033 010443 1035 010454 1036 010542 1039 010561 1042 010565 1044 010566 1060 010567 1071 010600 1074 010604 1076 010615 1077 010621 1080 010622 1083 010640 1085 010643 1086 010664 1087 010666 1089 010670 1090 010674 1092 010675 1093 010676 1096 010700 1097 010721 1098 010723 1100 010725 1101 010731 1103 010732 1105 010733 1106 010735 1108 010741 1109 010743 1111 010745 1112 010751 1115 010752 1117 011003 1118 011026 1120 011030 1121 011034 1125 011035 1127 011042 1136 011043 1146 011045 1149 011051 1151 011064 1152 011077 1154 011101 1155 011105 1158 011106 1159 011110 1161 011113 1175 011114 1183 011116 1184 011117 1185 011120 1187 011130 1189 011134 1196 011231 1198 011235 1199 011236 1201 011240 1209 011350 1211 011354 1212 011355 1214 011361 1220 011441 1222 011445 1223 011446 1225 011450 1233 011560 1235 011564 1236 011565 1238 011567 1247 011710 1249 011714 1251 011715 1252 011720 1255 011721 1257 011725 1268 011726 1277 011737 1283 012006 1291 012007 1299 012015 1300 012031 1302 012055 1303 012076 1305 012077 1307 012111 1318 012112 1330 012123 1333 012135 1334 012140 1336 012151 1338 012157 1346 012160 1357 012162 1360 012173 1361 012175 1363 012177 1374 012200 1376 012201 1378 012202 1379 012206 1381 012211 1382 012213 1384 012214 1385 012215 1387 012216 1388 012217 1390 012222 1391 012225 1392 012227 1393 012231 1394 012233 1395 012234 1397 012235 1406 012236 1418 012240 1419 012256 1422 012274 1424 012276 1433 012277 1435 012305 1438 012322 1441 012340 1444 012373 1452 012374 1459 012410 1460 012431 1461 012436 1472 012441 1490 012452 1492 012457 1493 012461 1494 012472 1495 012500 1498 012501 1499 012504 1500 012513 1501 012541 1502 012547 1503 012552 1505 012554 8 30 012555 1513 012556 1514 012560 10 50 012561 10 52 012564 10 53 012565 10 55 012566 10 58 012567 10 60 012572 10 62 012574 10 63 012620 10 64 012623 10 65 012627 10 68 012637 10 70 012640 10 71 012644 10 73 012646 10 79 012665 10 84 012676 10 86 012677 10 88 012703 10 90 012704 10 92 012705 10 99 012741 10 101 012742 10 104 012745 10 106 012750 10 107 012774 10 108 012776 10 109 013001 10 111 013002 10 113 013003 10 116 013017 10 118 013020 10 120 013024 10 123 013025 10 124 013026 10 126 013032 10 127 013037 10 128 013043 10 130 013051 1694 013052 1695 013055 1697 013060 1698 013062 11 17 013064 11 18 013066 11 19 013070 11 24 013071 11 26 013073 11 27 013075 11 28 013103 1703 013104 1705 013110 1706 013114 1707 013116 1709 013117 1711 013123 1712 013124 1713 013126 1715 013127 1717 013133 1718 013135 1720 013136 1722 013142 1723 013146 1724 013150 1726 013151 1728 013155 1729 013161 1730 013163 1732 013164 1734 013170 1735 013174 1736 013176 1738 013177 1740 013203 1741 013207 1742 013211 1744 013212 1746 013216 1747 013222 1748 013224 1750 013225 1752 013227 1754 013230 1756 013234 1757 013236 1759 013237 1761 013240 1762 013242 1764 013243 1766 013245 1768 013246 1770 013252 1771 013253 1772 013255 1774 013256 1776 013262 1777 013266 1778 013270 1780 013271 1782 013275 1783 013301 1784 013303 1786 013304 1788 013310 1789 013314 1790 013316 1792 013317 1794 013323 1795 013327 1796 013331 1798 013332 1800 013336 1801 013342 1802 013344 1804 013345 1806 013351 1807 013355 1808 013357 1810 013360 1812 013364 1813 013370 1814 013372 1816 013373 1818 013377 1819 013403 1820 013405 1822 013406 1824 013412 1825 013416 1826 013420 1828 013421 1830 013423 1832 013424 1834 013430 1835 013432 1837 013433 1839 013454 1840 013455 1841 013457 1843 013460 1845 013501 1846 013503 1848 013504 1850 013525 1851 013527 1853 013530 1855 013534 1856 013535 1857 013537 1859 013540 1861 013544 1862 013546 1864 013547 1866 013553 1867 013557 1868 013561 1870 013562 1872 013566 1873 013572 1874 013574 1876 013575 1878 013601 1879 013605 1880 013607 1882 013610 1884 013614 1885 013620 1886 013622 1888 013623 1890 013627 1891 013633 1892 013635 1894 013636 1896 013642 1897 013646 1898 013650 1900 013651 1902 013655 1903 013661 1904 013663 1906 013664 1908 013670 1909 013674 1910 013676 1912 013677 1914 013703 1915 013707 1916 013711 1918 013712 1920 013714 1922 013715 1924 013721 1925 013723 1927 013724 1929 013725 1930 013727 1932 013730 1934 013732 1936 013733 1938 013735 1940 013736 1942 013742 1943 013743 1944 013745 1946 013746 1948 013752 1949 013754 1951 013755 1953 013761 1954 013762 1956 013763 1958 013767 1959 013770 1961 013771 1963 013775 1964 013777 1966 014000 1968 014025 1969 014031 1970 014033 1972 014034 1974 014040 1975 014041 1977 014042 1979 014046 1980 014050 1982 014051 1984 014100 1985 014117 1986 014121 1987 014122 1989 014123 1991 014127 1992 014130 1994 014131 1996 014135 1997 014137 1999 014140 2001 014144 2002 014145 2004 014146 2006 014152 2007 014153 2009 014154 2011 014160 2012 014162 2014 014163 2016 014204 2017 014210 2019 014211 2021 014215 2022 014217 2024 014220 2026 014221 2028 014222 2030 014226 2031 014227 2033 014230 2035 014234 2036 014236 2038 014237 2040 014243 2042 014244 2045 014245 2048 014246 2051 014247 2053 014274 2054 014276 2055 014277 2057 014300 2059 014304 2060 014305 2062 014306 2064 014312 2065 014314 2067 014315 2069 014317 2070 014321 2072 014322 2074 014326 2075 014330 2077 014331 2079 014333 2080 014335 2082 014336 2084 014342 2085 014344 2087 014345 2089 014366 2090 014367 2092 014370 2094 014374 2095 014375 2097 014376 2099 014402 2100 014404 2102 014405 2104 014432 2105 014434 2106 014436 2107 014440 2108 014441 2110 014442 2112 014446 2113 014447 2115 014450 2117 014454 2118 014456 2120 014457 2122 014461 2123 014463 2125 014464 2127 014470 2128 014472 2130 014473 2132 014514 2133 014515 2135 014516 2137 014522 2138 014523 2140 014524 2142 014530 2143 014532 2145 014533 2147 014535 2148 014537 2150 014540 2152 014544 2153 014546 2155 014547 2157 014551 2158 014553 2160 014554 2162 014560 2163 014562 2165 014563 2167 014565 2168 014567 2170 014570 2172 014574 2173 014576 2175 014577 2177 014620 2178 014621 2180 014622 2182 014643 2183 014644 2185 014645 2187 014646 2189 014647 2191 014670 2192 014671 2194 014672 2196 014676 2197 014677 2199 014700 2201 014704 2202 014706 2204 014707 2206 014730 2207 014731 2209 014732 2211 014736 2212 014737 2214 014740 2216 014744 2217 014746 2219 014747 2221 014774 2222 014776 2223 014777 2225 015000 2227 015004 2228 015005 2230 015006 2232 015012 2233 015014 2235 015015 2237 015017 2238 015021 2240 015022 2242 015026 2243 015030 2245 015031 2247 015033 2248 015035 2250 015036 2252 015042 2253 015044 2255 015045 2257 015047 2258 015051 2260 015052 2262 015056 2263 015060 2265 015061 2267 015102 2268 015103 2270 015104 2272 015110 2273 015111 2275 015112 2277 015116 2278 015120 2280 015121 2282 015123 2283 015125 2285 015126 2287 015132 2288 015134 2290 015135 2292 015137 2293 015141 2295 015142 2297 015146 2298 015150 2300 015151 2302 015153 2303 015155 2305 015156 2307 015162 2308 015164 2310 015165 2312 015170 2313 015171 2315 015172 2317 015176 2318 015177 2320 015200 2322 015204 2323 015206 11 36 015207 11 59 015211 11 60 015214 11 62 015313 11 63 015320 11 64 015342 11 66 015343 11 68 015344 11 70 015347 12 31 015350 12 36 015352 12 37 015354 12 38 015361 12 39 015363 12 40 015375 12 41 015377 12 42 015401 12 44 015411 12 45 015412 12 47 015425 12 48 015427 12 49 015432 12 51 015434 13 139 015435 13 153 015437 13 154 015447 13 156 015456 13 158 015465 13 160 015466 13 161 015470 13 164 015503 13 166 015507 13 168 015511 13 172 015615 13 177 015744 14 18 015746 14 24 015747 14 25 015751 14 26 015754 14 27 015756 14 28 015764 14 29 015766 14 30 015773 14 31 015774 14 32 015775 14 35 016006 14 36 016012 14 39 016013 ----------------------------------------------------------- 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