COMPILATION LISTING OF SEGMENT compdv Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/17/86 1449.6 mst Mon Options: optimize map 1 2 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 4 /* */ 5 /* COMPILED OUTPUT OF SEGMENT compdv.rd */ 6 /* Compiled by: reduction_compiler, Version 2.5 of Oct 21, 1985 */ 7 /* Compiled on: 03/17/86 1449.5 mst Mon */ 8 /* */ 9 /* * * * * * * * * * * * * * * * * * * * * * * */ 10 11 /* *********************************************************** 12* * * 13* * * 14* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 15* * * 16* * * 17* *********************************************************** */ 18 19 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 20 21 /*++ 22*INCLUDE ERROR \ 23*BEGIN 24*1 / / PUSH (BEGIN) 25* [call push ("BEGIN")] /\ 26* 27*\" if "dcl" or "MediaChars" appear first, take them. 28*2 / dcl : 29* / [if db_start = "dcl" then db_sw, dt_sw = "1"b; 30* if db_sw 31* then call ioa_ ("^[^/^]===Declare", dt_sw)] 32* LEX(2) / dcl \ 33*3 / MediaChars : 34* / LEX(2) pop 35* [mediachars_p = area_free_p] 36* PUSH (done_MediaChars) 37* [call push ("done_MediaChars")] / MediaChars \ 38* \" any of these need a MediaChars table 39* \" (which may be empty), so define 40* \" a dummy table. 41*4 / Media / / no_MediaChars \ 42*5 / View / / no_MediaChars \ 43*6 / Def / / no_MediaChars \ 44*7 / Font / / no_MediaChars \ 45*8 / Size / / no_MediaChars \ 46*9 / Device / / no_MediaChars \ 47*10 / / / no_MediaChars \ 48* \" anything else here must be a 49* \" global device value. they dont need 50* \" MediaChars. 51*11 / / / global_device \ 52* 53*no_MediaChars 54*12 / / pop 55* [call ERROR (missing_MediaChars)] 56* [mediachars_p = area_free_p; 57* mediachars.count = 1; \" supply a dummy one 58* mediachars.name (1) = ""; 59* mediachars.out_r (1) = "0"b] /\ 60* \" finish the MediaChars table 61*done_MediaChars 62*13/ / [area_free_p = addr_inc (mediachars_p, size (mediachars))] /\ 63* 64*Media 65*14 / / [if (db_start = "media") then db_sw, dt_sw = "1"b] /\ 66*15 / / [media_p = area_free_p; 67* media.count = 0] /\ 68*16 / View / / no_Media \ 69*17 / Def / / no_Media \ 70*18 / Font / / no_Media \ 71*19 / Size / / no_Media \ 72*20 / Device / / no_Media \ 73*21 / / / no_Media \ 74*Media_ 75*22 / /PUSH (Media_)[call push ("Media_")] /\ 76*23 / Media : 77* /LEX(2) / Mwidths \ 78*24 / View /pop / done_Media \ 79*25 / Def /pop / done_Media \ 80*26 / Font /pop / done_Media \ 81*27 / Size /pop / done_Media \ 82*28 / Device /pop / done_Media \ 83*29 / / / global_device \ 84*no_Media 85*30 / /[call ERROR (missing_Media)] 86* [media.count = 1; \" supply a dummy one 87* media.name (1) = ""; 88* media.rel_units (1) = 0; 89* media.width (1, 1) = 0] /\ 90*done_Media 91*31 / / [area_free_p = addr_inc (media_p, size (media))] /\ 92* 93*start_View 94*32 / / [if (db_start = "view") then db_sw, dt_sw = "1"b] /\ 95*33 / / [view_p = area_free_p; 96* view.count = 0] /\ 97*34 / Def / / no_View \ 98*35 / Font / / no_View \ 99*36 / Size / / no_View \ 100*37 / Device / / no_View \ 101*38 / / / no_View \ 102*View_ 103*39 / /PUSH (View_)[call push ("View_")] /\ 104*40 / View : 105* /LEX(2) / Viewrest \ 106*41 / Def /pop / done_View \ 107*42 / Font /pop / done_View \ 108*43 / Size /pop / done_View \ 109*44 / Device /pop / done_View \ 110*45 / / / global_device \ 111*no_View 112*46 / /[call ERROR (missing_View)] 113* [view.count = 1; \" supply a dummy one 114* view.name (1) = ""; 115* view.media (1) = 1] /\ 116*done_View 117*47 / / [area_free_p = addr_inc (view_p, size (view))] /\ 118* 119*start_Def 120*48 / / [if (db_start = "def") then db_sw, dt_sw = "1"b] /\ 121*49 / / [Def_p = area_free_p; 122* Def.count = 0] /\ 123*50 / Font / / no_Def \ 124*51 / Size / / no_Def \ 125*52 / Device / / no_Def \ 126*53 / / / no_Def \ 127*Def_ 128*54 / /PUSH (Def_)[call push ("Def_")] /\ 129*55 / Def : 130* /LEX(2) / Defrest \ 131*56 / Font /pop / done_Def \ 132*57 / Size /pop / done_Def \ 133*58 / Device /pop / done_Def \ 134*59 / / / global_device \ 135*no_Def 136*60 / / [Def.count = 1; 137* Def.name (1) = ""; 138* Def.pt (1) = null()] /\ 139*done_Def 140*61 / / [area_free_p = addr_inc (Def_p, size (Def))] /\ 141* 142*start_Font 143*62 / / [if (db_start = "font") then db_sw, dt_sw = "1"b] /\ 144*63 / Size / / no_Font \ 145*64 / Device / / no_Font \ 146*65 / / / no_Font \ 147*Font_ 148*66 / /PUSH (Font_)[call push ("Font_")] /\ 149*67 / Font : 150* /LEX(2) / Fontrest \ 151*68 / Size /pop / done_Font \ 152*69 / Device /pop / done_Font \ 153*70 / / / global_device \ 154*no_Font 155*71 / /[call ERROR (missing_Font)] / start_Size \ 156*done_Font 157*72 / / [area_free_p = addr_inc (oput_p, size (oput))] /\ 158* 159*start_Size 160*73 / / [if (db_start = "size") then db_sw, dt_sw = "1"b] /\ 161*74 / / [size_list_p = area_free_p; 162* size_list.count = 0; 163* area_free_p, sizel_p = addr (size_list.start)] /\ 164*75 / Device / / no_Size \ 165*76 / / / no_Size \ 166*Size 167*77 / /PUSH (Size)[call push ("Size")] /\ 168*78 / Size : 169* /LEX(2) / Sizerest \ 170*79 / Device 171* /pop / done_Size \ 172*80 / / / global_device \ 173*no_Size 174*81 / /[call ERROR (missing_Size)] 175* [size_list.count = 1; \" supply a dummy one 176* size_list.name (1) = ""; 177* size_list.pt (1) = addr(size_list.start)] / Device \ 178*done_Size 179*82 / / [if Sizes = 0 180* then if size_list.count > 0 181* then Sizes = 1; 182* 183* tp = Ptoken; 184* do fnt_p = fntl_p (1) repeat (fnt.next) 185* while (fnt_p ^= null ()); 186* Ptoken, Pthis_token = fnt.node; 187* if (font.min_wsp = -1) 188* then call ERROR (no_wordspace_val); 189* end; 190* Ptoken, Pthis_token = tp] /\ 191* 192*Device 193*83 / / [if (db_start = "dev") then db_sw, dt_sw = "1"b] /\ 194*84 / / PUSH (Device)[call push ("Device")] /\ 195*85 / Device : 196* / [Device_Pthis_token = Pthis_token] 197* LEX(2) 198* [if db_sw then 199* call ioa_ ("===Device ^a", token_value)] / Devicerest \ 200*86 / 201* / [if const.devptr = null () 202* then call ERROR (no_Device)] / RETURN \ 203*87 / / / global_device \ 204* 205*stack_pop 206*88 / /[if tr_sw 207* then call ioa_(" STACK_POP(^a,^i)",Stack(STACK_DEPTH),STACK_DEPTH)] 208* / STACK_POP \ 209*89 / /[; 210*push: proc (name); 211*dcl name char (*); 212* 213* Stack (STACK_DEPTH) = name; 214* if tr_sw then call ioa_ (" PUSH(^a,^i)", name,STACK_DEPTH); 215* end push; 216* 217*pop: proc; 218* if tr_sw then call ioa_ (" POP(^a,^i)", Stack (STACK_DEPTH),STACK_DEPTH); 219* STACK_DEPTH = max (STACK_DEPTH - 1, 0); 220* end pop; ] /\ 221* 222*\" define local named symbols for various strings 223*dcl 224*90 / , 225* / [dclname = token_value] 226* LEX(2) 227* PUSH (dcl_1)[call push ("dcl_1")] / output_0 \ 228*dcl_1 229*91 / ; / [dcl_p = area_free_p; 230* dcl_.leng = length (part_str (1)); 231* dcl_.dcl_v = part_str (1); 232* dcl_.dcl_name = dclname; 233* area_free_p = addr (dcl_.dummy); 234* if dt_sw 235* then call ioa_ ("^p^-dcl ^8a ""^a""", dcl_p, dcl_name, 236* dcl_v); 237* call link (dcl_l_p, dcl_p)] 238* LEX(1) / stack_pop \ 239*92 / /[call ERROR (syntax_dcl)] NEXT_STMT / stack_pop \ 240* 241*MediaChars 242*93 / 243* / [media1, media2=token_value] / Media_3 \ 244*94 / 245* / [media1, media2="[" || Input || "]"] 246* LEX(1) / Media_1 \ 247*Media_err 248*95 / /[call ERROR (syntax_MediaChars)] /\ 249*Media_skip \" scan forward looking for a "," or ";" 250* / , /LEX(1) / MediaChars \ 251*97 / ; / / Media_9 \ 252*98 / 253* /LEX(1) / Media_skip \ 254* 255*Media_1 256*99 / : /LEX(1) / Media_2 \ 257*100 / /LEX(-1) / Media_3 \ 258*Media_2 259*101 / 260* / [media2="[" || Input || "]"] / Media_3 \ 261*102 / / / Media_err \ 262*Media_3 263*103 / / [held_Pthis_token = Pthis_token] \" for error msgs 264* LEX(1) PUSH (Media_4)[call push ("Media_4")] / output_0 \ 265*Media_4 266*104 / / [hold_Pthis_token = Pthis_token; 267* Ptoken, Pthis_token = held_Pthis_token; 268* \"in case any ERRORS 269* the_string = part_str (1); 270* 271* if (media1 ^= media2) 272* then do; 273* if (substr (media1, 1, 1) ^= "[") 274* | (substr (media2, 1, 1) ^= "[") 275* then call ERROR (inv_MediaChar_range); 276* else if (media1 > media2) 277* then call ERROR (inv_Multics_char_range); 278* end; 279* 280* do while (media1 <= media2); 281* do i = 1 to mediachars.count; 282* if (mediachars.name (i) = media1) 283* then do; 284* call ERROR (dup_MediaChars); 285* i = mediachars.count; 286* end; 287* end; 288* 289* i = index (the_string, o777); 290* if (i > 0) 291* then do; 292* if (substr (media1, 1, 1) ^= "[") 293* then call ERROR (inv_MediaChar_SELF_ref); 294* substr (the_string, i, 1) = substr (media1, 2, 1); 295* end; 296* mediachars.count = mediachars.count + 1; 297* mediachars.name (mediachars.count) = media1; 298* mediachars.out_r (mediachars.count) 299* = rel (find_str (1)); 300* if (i > 0) 301* then substr (the_string, i, 1) = o777; 302* substr (media1, 2, 1) 303* = byte (rank (substr (media1, 2, 1)) + 1); 304* \" media has form "[x]" when in a range 305* end; 306* Ptoken, Pthis_token = hold_Pthis_token] /\ 307*105 / , /LEX(1) / MediaChars \ 308*Media_9 309*106 / ; / LEX(1) / stack_pop \ 310*107 / / / Media_err \ 311* 312*Mwidths 313*108 / / [mediact = 0; 314* mediabase = media.count] /\ 315*Mwidth_1 316*109 / 317* / [mediact = mediact + 1; 318* media.count = media.count + 1; 319* media.name (media.count) = token_value; 320* media.rel_units (media.count) = Strokes; 321* media.width (media.count, *) = nulwidth] 322* LEX(1) / Mwidth_2 \ 323*Mwidth_err 324*110 / /[call ERROR (syntax_Media_sec)] NEXT_STMT / Mwidth_3 \ 325* 326*Mwidth_2 327*111 / , /LEX(1) / Mwidth_1 \ 328*112 / ; /LEX(1) / Mwidth_3 \ 329*113 / / / Mwidth_err \ 330*Mwidth_3 331*114 / strokes : 332* /LEX(2) [media_i = 1] / Mwidth_s1 \ 333*115 / / / Mwidth_4 \ 334*Mwidth_s1 335*116 / 336* / [if (media_i > mediact) 337* then call ERROR (too_many_stroke_values); 338* media.rel_units (media_i+mediabase) = token.Nvalue] 339* LEX(1) /\ 340*117 / , /LEX(1) [media_i = media_i + 1] / Mwidth_s1 \ 341*118 / ; /LEX(1) / Mwidth_3 \ 342*119 / / / Mwidth_err \ 343*Mwidth_4 344*120 / 345* / [charid=token.Nvalue; 346* media1 = media2; \" charname sets media2 347* media_i = 1; 348* mediawidth = nulwidth] 349* / Mwidth_A \ 350*121 / / / stack_pop \ 351*Mwidth_A 352*122 / 353* /LEX(1) / Mwidth_B \ 354*123 / /LEX(1) / Mwidth_6 \ 355*Mwidth_B 356*124 / : /LEX(1) / Mwidth_C \ 357*125 / / / Mwidth_6 \ 358*Mwidth_C 359*126 / 360* / / Mwidth_D \ 361*127 / / / Mwidth_err \ 362*Mwidth_D 363*128 / 364* /LEX(1) / Mwidth_6 \ 365*129 / / / Mwidth_err \ 366*Mwidth_6 367*130 / 368* / / Mwidth_7 \ 369*131 / 370* / / Mwidth_7 \ 371*132 / = / / Mwidth_8 \ 372*133 / / / Mwidth_9 \ 373*Mwidth_7 374*134 / / [mediawidth = token.Nvalue] /\ 375*Mwidth_8 376*135 / /LEX(1) [media_ = media1; 377* charid_ = charid; 378* if (mediawidth = nulwidth) 379* then call ERROR (no_prior_width); 380* else if (media_ > media2) 381* then call ERROR (inv_Media_range); 382* else do while (media_ <= media2); 383* if (media_i > mediact) 384* then do; 385* call ERROR (too_many_widths); 386* media_ = "~" || rtrim (media2); 387* end; 388* else do; 389* media.width (media_i + mediabase, charid_) 390* = mediawidth; 391* if (media_ < media2) 392* then do; 393* substr (media_, 2, 1) = 394* byte (rank (substr (media_, 2, 1))+1); 395* charid_ = 0; 396* do i = 1 to mediachars.count 397* while (charid_ = 0); 398* if (mediachars.name (i) = media_) 399* then charid_ = i; 400* end; 401* if (charid_ = 0) 402* then do; 403* call ERROR (inv_Media_range); 404* media_ = "~" || rtrim (media2); 405* end; 406* end; 407* else media_ = "~" || rtrim (media2); \" force it HI 408* end; 409* end] /\ 410*Mwidth_9 411*136 / ; /LEX(1) / Mwidth_3 \ 412*137 / , / [media_i = media_i + 1] 413* LEX(1) / Mwidth_6 \ 414*138 / / / Mwidth_err \ 415* 416*Viewrest 417*139 / 418* / [viewname=token_value] 419* LEX(1) / View_1 \ 420*View_err 421*140 / /[call ERROR (syntax_View)] NEXT_STMT / stack_pop \ 422* 423*View_1 424*141 / 425* / [view.count = view.count + 1; 426* view.name (view.count) = viewname; 427* view.media (view.count) = token.Nvalue] 428* LEX(1) / View_2 \ 429*142 / / / View_err \ 430*View_2 431*143 / , /LEX(1) / Viewrest \ 432*144 / ; /LEX(1) / stack_pop \ 433*145 / / / View_err \ 434* 435*Defrest 436*146 / ; 437* / [Def.count = Def.count + 1; 438* Def.name (Def.count) = token_value] 439* LEX(2) [Def.pt (Def.count) = Pthis_token; 440* vals_ct = 0] / Def_1 \ 441*\" the token pointer is saved here so that at ref time parsing can be 442*\" temporarily diverted back here. 443* 444*147 / /[call ERROR (no_name_Def)] NEXT_STMT /\ 445* 446* 447*\" This keeps parsing until either a DEF, FONT, or INVALID STATEMENT occurs. 448*\" Nothing is done with the results of the parse other than invalid statements 449*\" are deleted so they will not cause further errors. 450*Def_1 451*148 / Def / / stack_pop \ 452*149 / Font / / stack_pop \ 453*150 / Size / / stack_pop \ 454*151 / Device / / stack_pop \ 455*152 / / / stack_pop \ 456*153 / / [this_view = -1] 457* PUSH (Def_2)[call push ("Def_2")] / font_char \ 458*Def_2 459*154 / ; /LEX(1) / Def_1 \ 460*155 / /DELETE_STMT / Def_1 \ 461* \" font_char has already said why it is bad. 462* \" Deleting statement is so error won't happen again 463* \" during reparse at ref time. 464* 465*font_char 466*156 / / [vals_ct = 0] /\ 467*fch_1 468*157 / 469* /LEX(1) [vals_ct = vals_ct + 1; 470* vals (vals_ct) = rank (Input)] / fch_2 \ 471*158 / art 472* /LEX(1) / fch_0 \ 473*159 / /[call ERROR (inv_Mul_char_spec)] / fch_e \ 474*fch_0 475*160 / 476* /LEX(1) [vals_ct = vals_ct + 1; 477* vals (vals_ct) = rank (Input)] / fch_5 \ 478*161 / /[call ERROR (inv_artwork_spec)] / fch_e \ 479*fch_2 480*162 / : /LEX(1) / fch_3 \ 481*163 / / / fch_5 \ 482*fch_3 483*164 / 484* /LEX(1) [i = rank (Input); 485* if (vals (vals_ct) > i) 486* then do; 487* call ERROR (inv_Multics_char_range); 488* call LEX (-2); 489* \" ******* back up to the ":" to force error exit at fch_4 490* end; 491* else do; 492* j = vals (vals_ct); 493* do while (j < i); 494* j = j + 1; 495* vals_ct = vals_ct + 1; 496* vals (vals_ct) = j; 497* end; 498* end] / fch_4 \ 499*165 / /[call ERROR (syntax_after_colon)] / fch_e \ 500*fch_4 501*166 / : \" ******* this catches error forced above 502* / / fch_e \ 503*fch_5 504*167 / , /LEX(1) / fch_1 \ 505*168 / 506* / [if (this_view ^= -1) 507* then this_view = token.Nvalue] 508* LEX(1) /\ 509* 510* \" MC_STRING is an alternate entry point to this routine. 511*mc_string 512*169 / / [mediawidth, self_ct = 0; 513* the_string = ""] /\ 514*170 / / / fch_6 \ 515*171 / ( /LEX(1) / fch_A \ 516*172 / ( / / fch_6 \ 517*173 / SELF / / fch_6 \ 518*174 / / / fch_6 \ 519*175 / /[call ERROR (not_charname)] /\ 520*fch_6 521*176 / / [part_nest = 0] 522* PUSH (fch_7)[call push ("fch_7")] / fch_l \ 523*fch_7 524*177 / / [the_string = part_str (1); 525* testwidth = nulwidth; 526* mediawidth = part_width (1)] /\ 527*178 / = /LEX(1) / fch_9 \ 528*fch_8 529*179 / ; / / stack_pop \ 530* \" normal return is with ";" token current 531*180 / , / / stack_pop \ 532* \" but don't complain about a "," either. 533*181 / /[call ERROR (not_charname)] LEX (1) / fch_6 \ 534*fch_9 535*182 / 536* / [testwidth = token.Nvalue] 537* LEX(1) / fch_8 \ 538*183 / 539* / [testwidth = token.Nvalue] 540* LEX(1) / fch_8 \ 541*184 / /[call ERROR (no_test_width)] / fch_8 \ 542* 543*fch_A 544*185 / / [part_nest = 0] 545* PUSH (fch_B)[call push ("fch_B")] / fch_l \ 546*fch_B 547*186 / ) = 548* /LEX (2) [the_string = part_str (1); 549* testwidth = nulwidth] / fch_C \ 550*187 / /[call ERROR (paren_equal_expected)] / fch_8 \ 551*fch_C 552*188 / 553* / [mediawidth = token.Nvalue] 554* LEX(1) / fch_8 \ 555*189 / 556* / [mediawidth = token.Nvalue] 557* LEX(1) / fch_8 \ 558*190 / /[call ERROR (missing_width)] / fch_8 \ 559* 560*fch_e 561*191 / ; /LEX(-1) / stack_pop \ 562* \" error return can't be with token ";" current 563*192 / / / stack_pop \ 564*fch_l 565*193 / / [part_nest = part_nest + 1; 566* part_str (part_nest) = ""; 567* part_width (part_nest) = 0] /\ 568*fch_M 569*194 / ( 570* / [part_repl (part_nest) = token.Nvalue] 571* LEX(2) PUSH (fch_el)[call push ("fch_el")] / fch_l \ 572*195 / SELF 573* /LEX(1) [part_str (part_nest) = part_str (part_nest) || o777] 574* / fch_M \ 575*196 / 576* /PUSH(fch_M)[call push("fch_M")] / fch_K \ 577*197 / 578* /LEX(1) [list_ndx = 1] / fch_L \ 579*198 / / [part_nest = part_nest - 1] / stack_pop \ 580*fch_L 581*199 / /LEX(-1) /\ 582*200 / \" peel them off one char at a time 583* /PUSH(fch_L)[call push("fch_L")] / fch_K \ 584*201 / /LEX(1) / fch_M \ 585*fch_K 586*202 / / [str_p = ptr (next_str_p, mediachars.out_r (token.Nvalue)); 587* part_str (part_nest) = part_str (part_nest) || bstr.str; 588* if this_view > 0 589* then do; 590* if (media.rel_units (view.media (this_view)) 591* ^= font.rel_units) 592* then call ERROR (bad_stroke_value); 593* mw = media.width (view.media (this_view), 594* token.Nvalue); 595* if mw = nulwidth 596* then call ERROR_ (no_width_specified, 597* view.name (this_view), 598* show_name (mediachars.name (token.Nvalue))); 599* part_width (part_nest) = part_width (part_nest) + mw; 600* end] 601* LEX(1) / stack_pop \ 602* 603*fch_el 604*203 / ) /LEX(1) [part_str (part_nest) = part_str (part_nest) 605* || copy (part_str(part_nest+1), part_repl (part_nest)); 606* part_width (part_nest) = part_width (part_nest) 607* + part_width (part_nest+1) * part_repl (part_nest)] 608* / fch_M \ 609*204 / /[call ERROR (unbal_parens)] / stack_pop \ 610* 611*Fontrest 612*205 / 613* / [fnt_p = find_font ("1"b); 614* if fnt.pt ^= null () 615* then call ERROR (dup_fontname); 616* font_ptr, fnt.pt = area_free_p; 617* area_free_p = addr_inc (area_free_p, size (font)); 618* uni_p = area_free_p; 619* area_free_p = addr_inc (area_free_p, size (uni)); 620* call link (unil_p, uni_p); 621* uni.seqno, uni.refno, uni_ct = uni_ct + 1; 622* units_ptr, uni.ref_p = area_free_p; 623* area_free_p = addr_inc (area_free_p, size (units)); 624* opu_p = area_free_p; 625* area_free_p = addr_inc (area_free_p, size (opu)); 626* call link (opul_p, opu_p); 627* opu.refno, opu.seqno = uni_ct; 628* oput_p, opu.ref_p = area_free_p; 629* font.units_r = rel (uni_p); 630* font.oput_r = rel (opu_p); 631* font.rel_units = -1; 632* font.footsep = Footsep; 633* font.min_wsp = MinWordsp; 634* font.avg_wsp = AvgWordsp; 635* font.max_wsp = MaxWordsp; 636* units (*) = 0; 637* oput.data_ct = 0; 638* default_view = 1] 639* LEX(1) / Font_1 \ 640*206 / /[call ERROR (not_valid_Font_name)] NEXT_STMT / Font_3 \ 641* 642*Font_1 643*207 / 644* / [default_view = token.Nvalue; 645* font.rel_units 646* = media.rel_units (view.media (default_view))] 647* LEX(1) / Font_2 \ 648*208 / /[call ERROR (not_viewname)] NEXT_STMT / Font_3 \ 649* 650*Font_2 651*209 / ; / / Font_3 \ 652*210 / /[call ERROR (syntax_Font)] /\ 653*Font_3 654*211 / / [if Wordspace_p = null() 655* then goto RD_NEXT_REDUCTION; 656* hold_Pthis_token = Pthis_token; 657* Ptoken, Pthis_token = Wordspace_p] 658* PUSH(Font_4)[call push("Font_4")] / wordspace \ 659*212 / / / Font_5 \ 660*Font_4 661*213 / ; / [Ptoken, Pthis_token = hold_Pthis_token] / Font_8 \ 662*214 / /[call ERROR (syntax_Wordspace)] 663* [Ptoken, Pthis_token = hold_Pthis_token] / Font_5 \ 664* 665*font_err 666*215 / /[call ERROR (syntax_Font_sec)] NEXT_STMT / stack_pop \ 667* 668*Font_5 669*216 / /PUSH (endFont)[call push("endFont")] /\ 670*Font_6 671*217 / 672* / [this_view = default_view] 673* PUSH (Font_8)[call push ("Font_8")] / font_char \ 674*218 / art 675* / [this_view = default_view] 676* PUSH (Font_8)[call push ("Font_8")] / font_char \ 677*219 / Def \" This is here for purposes of ref closure 678* / / stack_pop \ 679*220 / footrefseparator : 680* /LEX(2) / footrefsep \ 681*221 / wordspace : 682* /LEX(2) PUSH(Font_9)[call push("Font_9")] / wordspace \ 683*222 / ref : 684* /LEX(2) / ref \ 685*223 / Font / / stack_pop \ 686*224 / Size / / stack_pop \ 687*225 / Device / / stack_pop \ 688*226 / / / stack_pop \ 689*227 / /PUSH (Font_6)[call push ("Font_6")] / global_device \ 690* 691*Font_8 692*228 / ; / [self_ct = 0; 693* j = index (the_string, o777); 694* if (j = 0) 695* then the_string_r = rel (find_str (2)); 696* else do; 697* do while (j <= length(the_string)); 698* self_ct = self_ct + 1; 699* self_i (self_ct) = j; 700* j = j + 1; 701* if (j < length (the_string)) 702* then do; 703* i = index (substr (the_string, j), o777); 704* if (i = 0) 705* then j = length (the_string)+1; 706* else j = j + i - 1; 707* end; 708* end; 709* end; 710* media1 = "[ ]"; 711* jj= 0; 712* do i = 1 to vals_ct; 713* ii = vals (i); 714* if (self_ct > 0) 715* then do; 716* substr (media1, 2, 1) = byte (ii); 717* do j = 1 to self_ct; 718* substr (the_string, self_i (j), 1) = byte (ii); 719* end; 720* the_string_r = rel (find_str (2)); 721* charid = 0; 722* do jj = 1 to mediachars.count 723* while (charid = 0); 724* if (mediachars.name (jj) = media1) 725* then charid = jj; 726* end; 727* if (charid = 0) \" a MediaChar must be 728* then do; \" defined with this name 729* call ERROR (inv_Font_SELF_ref); 730* jj = 0; 731* end; 732* else do; 733* jj = media.width (view.media (this_view), 734* charid); 735* if jj = nulwidth 736* then call ERROR_ (no_width_specified, 737* view.name (this_view), 738* show_name (mediachars.name (charid))); 739* end; 740* end; 741* units (ii) = mediawidth + jj * self_ct; 742* oput.data_ct = max (oput.data_ct, ii); 743* oput.which (ii) = this_view; 744* oput.what_r (ii) = the_string_r; 745* if (testwidth ^= nulwidth) 746* then if (units (ii) ^= testwidth) 747* then call ERROR_ (bad_width_value, 748* ltrim (char (units (ii))), 749* ltrim (char (testwidth))); 750* end] 751* LEX(1) / Font_6 \ 752* \" the LEX(1) needs to be after so error msg will display 753* \" proper statement. 754*229 / /NEXT_STMT / Font_6 \ 755* \" font_char already told why in error 756* 757* 758*footrefsep 759*230 / ; 760* /LEX(2) [font.footsep = Input] / Font_6 \ 761*Font_9 762*231 / ; /LEX(1) / Font_6 \ 763*232 / /[call ERROR (syntax_wordspace)] NEXT_STMT LEX(-1) / Font_6 \ 764* 765* 766*wordspace 767*233 / , 768* / [font.min_wsp = token.Nvalue] 769* LEX(2) / font_s2 \ 770*234 / / / font_se \ 771*font_s2 772*235 / , 773* / [font.avg_wsp = token.Nvalue] 774* LEX(2) / font_s3 \ 775*236 / / / font_se \ 776*font_s3 777*237 / , 778* / [font.max_wsp = token.Nvalue] 779* LEX(2) / font_s4 \ 780*238 / / / font_se \ 781*font_s4 782*239 / ; 783* / [this_view = default_view; 784* vals_ct = 1; 785* vals (1) = 32] / mc_string \ 786* \" Consistency between AvgWordsp and mediawidth will be checked later. 787*font_se 788*240 / ; / LEX(-1) / stack_pop \ 789* \" make sure NOT pointing to ";" token when return 790* 791*241 / / / stack_pop \ 792* 793*endFont 794*242 / / [tp = unil_p (2); \" see if units is like a prior one 795* done = "0"b; 796* do uni_p = unil_p (1) repeat (uni.next) 797* while ((uni_p ^= unil_p (2)) & ^done); 798* if (uni.refno = uni.seqno) 799* then do; \" check only "real" ones 800* if (unspec (uni.ref_p -> units) 801* = unspec (tp -> uni.ref_p -> units)) 802* then do; 803* tp -> uni.refno = uni.seqno; \"its a duplicate 804* done = "1"b; 805* end; 806* end; 807* end; 808* tp = opul_p (2); \" see if oput is like a prior one 809* done = "0"b; 810* do opu_p = opul_p (1) repeat (opu.next) 811* while ((opu_p ^= opul_p (2)) & ^done); 812* if (opu.refno = opu.seqno) 813* then do; \" check only "real" ones 814* if (unspec (opu.ref_p -> oput) 815* = unspec (tp -> opu.ref_p -> oput)) 816* then do; 817* tp -> opu.refno = opu.seqno; \"its a duplicate 818* done = "1"b; 819* end; 820* end; 821* end] / stack_pop \ 822* 823* 824*\" ---------------------------------------------------------------------------- 825*\" This routine reparses the source following the named Def and then continues 826*\" following the ref statement. 827*ref 828*243 / 829* / [i = token.Nvalue] 830* LEX(1) / ref__ \ 831*244 / /[call ERROR (not_Defname)] NEXT_STMT / Font_6 \ 832*ref__ 833*245 / ; / / ref_0 \ 834*246 / /[call ERROR (missing_semicolon)] /\ 835*ref_0 836*247 / / [hold_Pthis_token = Pthis_token; 837* Ptoken, Pthis_token = Def.pt (i)] 838* PUSH (ref_1)[call push ("ref_1")] / Font_6 \ 839* \" divert parsing back to the Def source 840*ref_1 841*248 / / [Ptoken, Pthis_token = hold_Pthis_token] 842* NEXT_STMT / Font_6 \ 843* \" have reached end of Def, 844* \" continue parsing where we left off 845*\" ---------------------------------------------------------------------- 846*Sizerest 847*249 / 848* / [size_list.count = size_list.count + 1; 849* size_list.name (size_list.count) = token_value; 850* size_list.pt (size_list.count) = sizel_p; 851* sizel.val_ct = 0] 852* LEX(1) / point_1 \ 853*250 / /[call ERROR (no_Size_name)] NEXT_STMT / stack_pop \ 854* 855*point_1 856*251 / , 857* /LEX(1) [sizel.val_ct = sizel.val_ct + 1; 858* sizel.val (sizel.val_ct) = scale_unit (1000)] 859* LEX(1) / point_1 \ 860*252 / / [area_free_p, sizel_p = addr_inc (sizel_p, size (sizel))]/\ 861*253 / ; /LEX(1) / stack_pop \ 862*254 / /[call ERROR (syntax_Size)] NEXT_STMT / stack_pop \ 863*\" 864*global_device 865*255 / Units : ; 866* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Units ^a", 867* dt_sw, token_value); 868* Hscale = hscales (token.Nvalue); 869* Vscale = vscales (token.Nvalue)] 870* LEX(2) / stack_pop \ 871*256 / Artproc : 872* /LEX(2) [ArtProc = token_value] 873* LEX(1) / Artproc \ 874*257 / Attach : ; 875* /LEX(2) [the_string = token_value; 876* Atd_r = rel (find_str (2))] 877* LEX(2) / stack_pop \ 878*258 / Cleanup : 879* /LEX(2) [part_nest = 0] 880* PUSH (Cleanup)[call push ("Cleanup")] / mc_string \ 881*259 / Font : 882* / / stack_pop \ 883*260 / Comment : ; 884* /LEX(2) [the_string = token_value; 885* Com_r = rel (find_str (2))] 886* LEX(2) / stack_pop \ 887*261 / DefaultMargs : , , , ; 888* /LEX(2) [DefVmt = scale_unit (Vscale)] 889* LEX(2) [DefVmh = scale_unit (Vscale)] 890* LEX(2) [DefVmf = scale_unit (Vscale)] 891* LEX(2) [DefVmb = scale_unit (Vscale)] 892* LEX(2) / stack_pop \ 893*262 / DevClass : ; 894* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===DevClass", dt_sw); 895* DevClass = token_value] 896* LEX(2) / stack_pop \ 897*263 / DevName : ; 898* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===DevName", dt_sw); 899* DevName = token_value] 900* LEX(2) / stack_pop \ 901*264 / Endpage : ; 902* /LEX(2) [EndPage = unspec (Input)] 903* LEX(2) / stack_pop \ 904*265 / Footproc : 905* / [if db_sw 906* then call ioa_ ("^[^/^]===Footproc", dt_sw)] 907* LEX(2) / Footproc \ 908*266 / Footrefseparator : 909* / [if db_sw 910* then call ioa_ ("^[^/^]===Footrefseparator", dt_sw)] 911* LEX(2) / Footrefsep \ 912*267 / Justify : ; 913* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Justify", dt_sw); 914* Justify = (token.Nvalue > 0)] 915* LEX(2) / stack_pop \ 916*268 / Interleave : ; 917* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Interleave", dt_sw); 918* Interleave = (token.Nvalue > 0)] 919* LEX(2) / stack_pop \ 920*269 / Letterspace : ; 921* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Letterspace", dt_sw); 922* Letterspace = token.Nvalue] 923* LEX(2) / stack_pop \ 924*270 / MaxFiles : ; 925* /LEX(2) [MaxFiles = token.Nvalue] 926* LEX(2) / stack_pop \ 927*271 / MaxPages : ; 928* /LEX(2) [MaxPages = token.Nvalue] 929* LEX(2) / stack_pop \ 930*272 / MaxPageLength : ; 931* /LEX(2) [MaxPageLength = scale_unit (Vscale)] 932* LEX(2) / stack_pop \ 933*273 / MaxPageWidth : ; 934* /LEX(2) [if db_sw 935* then call ioa_ ("^[^/^]===MaxPageWidth", dt_sw); 936* MaxPageWidth = scale_unit (Hscale)] 937* LEX(2) / stack_pop \ 938*274 / MinBotMarg : ; 939* /LEX(2) [MinVmb = scale_unit (Vscale)] 940* LEX(2) / stack_pop \ 941*275 / MinLead : ; 942* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===MinLead", dt_sw); 943* MinLead = scale_unit (Vscale)] 944* LEX(2) / stack_pop \ 945*276 / MinSpace : ; 946* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===MinSpace", dt_sw); 947* MinSpace = scale_unit (Hscale)] 948* LEX(2) / stack_pop \ 949*277 / MinTopMarg : ; 950* /LEX(2) [MinVmt = scale_unit (Vscale)] 951* LEX(2) / stack_pop \ 952*278 / Outproc : 953* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Outproc", dt_sw); 954* OutProc, DisplayProc = token_value] 955* LEX(1) / Outproc \ 956*279 / Strokes : ; 957* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Strokes", dt_sw); 958* Strokes = token.Nvalue] 959* LEX(2) / stack_pop \ 960*280 / Wordspace : 961* /LEX(2) [if db_sw then call ioa_ ("===Wordspace"); 962* Wordspace_p = Pthis_token] NEXT_STMT / stack_pop \ 963* \" just remember where this is for later use. 964*281 / Sizes : ; 965* /LEX(2) [Sizes = token.Nvalue] 966* LEX(2) / stack_pop \ 967*282 / Stream : ; 968* /LEX(2) [if db_sw then call ioa_ ("^[^/^]===Stream", dt_sw); 969* Openmode = 5 - 3 * token.Nvalue] 970* LEX(2) / stack_pop \ 971*283 / TapeRec : ; 972* /LEX(2) [TapeRec = token.Nvalue] 973* LEX(2) / stack_pop \ 974*284 / /[call ERROR (end_of_source)] / RETURN \ 975*285 / dcl 976* / / out_of_place \ 977*286 / MediaChars 978* / / out_of_place \ 979*287 / Media 980* / / out_of_place \ 981*288 / View 982* / / out_of_place \ 983*289 / Def 984* / / out_of_place \ 985*290 / Font 986* / / out_of_place \ 987*291 / Size 988* / / out_of_place \ 989*292 / Device 990* / / out_of_place \ 991*293 / /[call ERROR (inv_statement)] NEXT_STMT / stack_pop \ 992*out_of_place 993*294 / /[call ERROR (stmt_out_of_place)] NEXT_STMT / stack_pop \ 994* 995*Artproc 996*295 / $ ; 997* /LEX(1) [ArtEntry = token_value] 998* LEX(2) / stack_pop \ 999*296 / / [ArtEntry = ArtProc] 1000* LEX(1) / stack_pop \ 1001* 1002*Footrefsep 1003*297 / ; 1004* / [Footsep = Input] 1005* LEX(2) / stack_pop \ 1006*298 / /[call ERROR (syntax_Footrefsep)] NEXT_STMT / stack_pop \ 1007* 1008*Footproc 1009*299 / 1010* / [FootProc = token_value] 1011* LEX(1) / Foot_1 \ 1012*300 / , /LEX(1) / Foot_2 \ 1013*301 / /[call ERROR (syntax_Footproc)] NEXT_STMT / stack_pop \ 1014* 1015*Foot_1 1016*302 / $ 1017* /LEX(1) [FootEntry = token_value] 1018* LEX(1) / Foot_2 \ 1019*303 / / [FootEntry = FootProc] /\ 1020* 1021*Foot_2 1022*304 / , 1023* /LEX(2) [FootFamily = font_fam; 1024* FootMember = font_mem] /\ 1025*305 / ; /LEX(1) / stack_pop \ 1026*306 / /[call ERROR (syntax_Footproc)] NEXT_STMT / stack_pop \ 1027* 1028*Outproc 1029*307 / $ ; 1030* /LEX(1) [OutEntry = token_value] 1031* LEX(2) / stack_pop \ 1032*308 / ; / [OutEntry = OutProc] 1033* LEX(1) / stack_pop \ 1034*309 / /[call ERROR (syntax_Outproc)] NEXT_STMT / stack_pop \ 1035* 1036*Cleanup 1037*310 / ; /LEX(1) [ Clean_r = rel (find_str (2))] / stack_pop \ 1038*311 / /[call ERROR (syntax_Cleanup)] NEXT_STMT / stack_pop \ 1039* 1040*output_0 1041*312 / / [iii, parenct, part_nest = 0] /\ 1042*output_1 1043*313 / / [part_nest = part_nest + 1; 1044* part_repl (part_nest) = iii; 1045* part_str (part_nest) = ""] /\ 1046* 1047*output_2 1048*314 / 1049* / [part_str (part_nest) = part_str (part_nest) || Input] 1050* LEX(1) / output_2 \ 1051*315 / 1052* / [part_str (part_nest) = part_str (part_nest) || token_value] 1053* LEX(1) / output_2 \ 1054*316 / SELF 1055* / [part_str (part_nest) = part_str (part_nest) || o777] 1056* LEX(1) / output_2 \ 1057*317 / ( 1058* / [iii = token.Nvalue; 1059* parenct = parenct + 1] 1060* LEX(2) PUSH (output_3)[call push ("output_3")] / output_1 \ 1061*318 / 1062* / [part_str(part_nest) = part_str(part_nest)||bstr.str] 1063* LEX(1) / output_2 \ 1064*319 / / / stack_pop \ 1065* 1066*output_3 1067*320 / ) /LEX(1) [part_str (part_nest-1) = part_str (part_nest-1) 1068* || copy (part_str (part_nest), part_repl (part_nest)); 1069* part_nest = part_nest - 1; 1070* parenct = parenct - 1] / output_2 \ 1071*321 / ; /[call ERROR (unbal_parens)] / stack_pop \ 1072*322 / / / stack_pop \ 1073* 1074*Devicerest 1075*323 / / [comp_dvid_ct = comp_dvid_ct+1; 1076* comp_dvid_new="1"b; 1077* like_table = -1] /\ 1078*Device_0 1079*324 / 1080* / [if (dvid_ct = 0) 1081* then dvid_ct = dvid_ct + 1; \" add Device name 1082* dvid_p = area_free_p; 1083* area_free_p = addr (dvid.dummy); 1084* call link (dvidl_p, dvid_p); 1085* dvid.ndx = comp_dvid_ct; 1086* dvid.real = comp_dvid_new; 1087* dvid.refname = token_value; 1088* dvid.devname = DevName; 1089* dvid.dvt_ndx = dvt_ct + 1; 1090* comp_dvid_new = "0"b] 1091* LEX(1) / Device_1 \ 1092* 1093*table_e 1094*325 / /[call ERROR (syntax_Device)] NEXT_STMT / stack_pop \ 1095* 1096*Device_1 1097*326 / , /LEX(1) / Device_0 \ 1098*327 / like 1099* /LEX(1) / like_table \ 1100*328 / ; /LEX(1) PUSH (startDevice)[call push ("startDevice")] / Device_I \ 1101*329 / / / table_e \ 1102* 1103*like_table 1104*330 / ; 1105* / [like_table = token.Nvalue] 1106* LEX(2) / like_table2 \ 1107*331 / / / table_e \ 1108* 1109*like_table3 1110*332 / / [do dvid_p = dvidl_p (1) repeat (dvid.next) 1111* while (dvid_p ^= null ()); 1112* if dvid.dvt_ndx = dvt_ct + 1 1113* then dvid.dvt_ndx = like_table; 1114* end] / stack_pop \ 1115*like_table2 1116*333 / Device 1117* / / like_table3 \ 1118*334 / 1119* / / like_table3 \ 1120*335 / / PUSH (copy_table)[call push ("copy_table")] / Device_I \ 1121* 1122*Device_I 1123*336 / / [dvt_p = area_free_p; 1124* area_free_p = addr (dvt.dummy); 1125* call link (dvtl_p, dvt_p); 1126* dvt.ndx, dvt_ct = dvt_ct + 1; 1127* dvt.med_sel = area_free_p; 1128* med_sel_tab.count = font_count; 1129* area_free_p 1130* = addr_inc (area_free_p, size (med_sel_tab)); 1131* med_sel_tab.ref_r (*) = "0"b; 1132* 1133* dvt.prent, prent_p = area_free_p; 1134* area_free_p = addr (prent.dummy); 1135* 1136* dvt.ref, const.devptr = area_free_p; 1137* dvt_ct = dvt_ct + 1] / stack_pop \ 1138* 1139*copy_table 1140*337 / / [tp = null (); 1141* do dvt_p = dvtl_p (1) repeat (dvt.next) 1142* while (dvt_p ^= null () & tp = null ()); 1143* if dvt.ndx = like_table 1144* then tp = dvt_p; 1145* end; 1146* 1147* dvt_p = tp; 1148* med_sel_tab = dvt.med_sel -> med_sel_tab; 1149* prent = dvt.prent -> prent; 1150* comp_dvt.family_ct = dvt.ref -> comp_dvt.family_ct; 1151* comp_dvt = dvt.ref -> comp_dvt] / Device_2 \ 1152* 1153*startDevice 1154*338 / / [prent.outproc = OutProc || "$" || OutEntry; 1155* prent.artproc = ArtProc || "$" || ArtEntry; 1156* prent.footproc = FootProc || "$" || FootEntry; 1157* initfamily, initmember = ""; 1158* footfamily = FootFamily; 1159* footmember = FootMember; 1160* hscale = Hscale; 1161* vscale = Vscale; 1162* comp_dvt.devclass = DevClass; 1163* comp_dvt.min_WS = MinSpace; 1164* comp_dvt.min_lead = MinLead; 1165* comp_dvt.vmt_min = MinVmt; 1166* comp_dvt.vmb_min = MinVmb; 1167* comp_dvt.def_vmt = DefVmt; 1168* comp_dvt.def_vmh = DefVmh; 1169* comp_dvt.def_vmf = DefVmf; 1170* comp_dvt.def_vmb = DefVmb; 1171* comp_dvt.pdw_max = MaxPageWidth; 1172* comp_dvt.pdl_max = MaxPageLength; 1173* comp_dvt.upshift = 0; 1174* comp_dvt.init_ps = 0; 1175* comp_dvt.lettersp = Letterspace; 1176* comp_dvt.max_pages = MaxPages; 1177* comp_dvt.max_files = MaxFiles; 1178* comp_dvt.init_family = ""; 1179* comp_dvt.init_member = ""; 1180* comp_dvt.atd_r = Atd_r; 1181* comp_dvt.dvc_r = ""b; 1182* comp_dvt.comment_r = Com_r; 1183* comp_dvt.cleanup_r = Clean_r; 1184* comp_dvt.medsel_table_r = ""b; 1185* comp_dvt.foot_family = ""; 1186* comp_dvt.foot_member = ""; 1187* 1188* comp_dvt.sws.interleave = Interleave; 1189* comp_dvt.sws.justifying = Justify; 1190* comp_dvt.sws.mbz = "0"b; 1191* comp_dvt.sws.endpage = EndPage; 1192* comp_dvt.open_mode = Openmode; 1193* comp_dvt.recleng = TapeRec; 1194* comp_dvt.family_ct = 0] /\ 1195* 1196*Device_2 1197*339 / units : ; 1198* /LEX(2) [hscale = hscales (token.Nvalue); 1199* vscale = vscales (token.Nvalue)] 1200* LEX(2) / Device_2 \ 1201*340 / artproc : 1202* /LEX(2) [prent.artproc = token_value] 1203* LEX(1) / artproc \ 1204*341 / attach : ; 1205* /LEX(2) [the_string = token_value; 1206* comp_dvt.atd_r = rel (find_str (2))] 1207* LEX(2) / Device_2 \ 1208*342 / cleanup : 1209* /LEX(2) PUSH (cleanup)[call push ("cleanup")] / mc_string \ 1210*343 / comment : ; 1211* /LEX(2) [the_string = token_value; 1212* comp_dvt.comment_r = rel (find_str (2)); 1213* if length (token_value) > length (the_string) 1214* then call ERROR (comment_gt_8000)] 1215* LEX(2) / Device_2 \ 1216* 1217*344 / defaultmargs : , , , ; 1218* /LEX(2) [comp_dvt.def_vmt = scale_unit (vscale)] 1219* LEX(2) [comp_dvt.def_vmh = scale_unit (vscale)] 1220* LEX(2) [comp_dvt.def_vmf = scale_unit (vscale)] 1221* LEX(2) [comp_dvt.def_vmb = scale_unit (vscale)] 1222* LEX(2) / Device_2 \ 1223*345 / devclass : ; 1224* /LEX(2) [comp_dvt.devclass = token_value] 1225* LEX(2) / Device_2 \ 1226*346 / devname : ; 1227* /LEX(2) [do dvid_p = dvidl_p (1) repeat (dvid.next) 1228* while (dvid_p ^= null ()); 1229* if dvid.dvt_ndx = dvt_ct 1230* then dvid.devname = token_value; 1231* end] 1232* LEX(2) / Device_2 \ 1233*\" / dvc : , 1234*\" /LEX(2) [dvcname = token_value] 1235*\" LEX(2) [dvcproc, the_string = ""] / dvc_1 \ 1236*347 / endpage : ; 1237* /LEX(2) [comp_dvt.endpage = unspec (Input)] 1238* LEX(2) / Device_2 \ 1239*348 / family : 1240* / [bach_sw = "0"b] 1241* LEX(2) PUSH(family)[call push("family")] / add_family \ 1242*349 / footproc : 1243* /LEX(2) / footproc \ 1244*350 / init : 1245* /LEX(2) / init_f0 \ 1246*351 / interleave : ; 1247* /LEX(2) [comp_dvt.interleave = (token.Nvalue > 0)] / Device_2 \ 1248*352 / justify : ; 1249* /LEX(2) [comp_dvt.justifying = (token.Nvalue > 0)] / Device_2 \ 1250*353 / letterspace : ; 1251* /LEX(2) [comp_dvt.lettersp = token.Nvalue] 1252* LEX(2) / Device_2 \ 1253*354 / maxfiles : ; 1254* /LEX(2) [comp_dvt.max_files = token.Nvalue] 1255* LEX(2) / Device_2 \ 1256*355 / maxpages : ; 1257* /LEX(2) [comp_dvt.max_pages = token.Nvalue] 1258* LEX(2) / Device_2 \ 1259*356 / maxpagelength : ; 1260* /LEX(2) [comp_dvt.pdl_max = scale_unit (vscale)] 1261* LEX(2) / Device_2 \ 1262*357 / maxpagewidth : ; 1263* /LEX(2) [comp_dvt.pdw_max = scale_unit (hscale)] 1264* LEX(2) / Device_2 \ 1265*358 / minbotmarg : ; 1266* /LEX(2) [comp_dvt.vmb_min = scale_unit (vscale)] 1267* LEX(2) / Device_2 \ 1268*359 / minlead : ; 1269* /LEX(2) [comp_dvt.min_lead = scale_unit (vscale)] 1270* LEX(2) / Device_2 \ 1271*360 / minspace : ; 1272* /LEX(2) [comp_dvt.min_WS = scale_unit (hscale)] 1273* LEX(2) / Device_2 \ 1274*361 / mintopmarg : ; 1275* /LEX(2) [comp_dvt.vmt_min = scale_unit (vscale)] 1276* LEX(2) / Device_2 \ 1277*362 / outproc : 1278* /LEX(2) [prent.outproc = token_value] 1279* LEX(1) / outproc \ 1280*363 / stream : ; 1281* /LEX(2) [comp_dvt.open_mode = 5 - 3 * token.Nvalue] 1282* LEX(2) / Device_2 \ 1283*364 / taperec : ; 1284* /LEX(2) [comp_dvt.recleng = token.Nvalue] 1285* LEX(2) / Device_2 \ 1286*365 / bachelor : 1287* / [bach_sw = "1"b] 1288* LEX(2) PUSH(bachelor)[call push("bachelor")] / add_family \ 1289*366 / viewselect : 1290* /LEX(2) / viewselect \ 1291*367 / Device 1292* / / endDevice \ 1293*368 / 1294* / / endDevice \ 1295*369 / / PUSH (Device_2)[call push ("Device_2")] / global_device \ 1296* 1297*endDevice 1298*370 / / [tp = Pthis_token; 1299* Ptoken, Pthis_token = Device_Pthis_token; 1300* 1301* done = "0"b; 1302* do dvid_p = dvidl_p (1) repeat (dvid.next) 1303* while ((dvid_p ^= null ()) & ^done); 1304* if (dvid.dvt_ndx = dvt_ct) 1305* then if (dvid.devname = "") 1306* then do; 1307* call ERROR (no_devname); 1308* done = "1"b; 1309* end; 1310* end; 1311* dvid_p = dvidl_p (2); 1312* if (comp_dvt.family_ct = 0) 1313* then call ERROR (no_fonts_selected); 1314* if (initfamily = "") 1315* then call ERROR (no_init_font); 1316* if (footfamily = "") 1317* then do; 1318* footfamily = initfamily; 1319* footmember = initmember; 1320* end; 1321* 1322* views_selected = 0; 1323* do i = 1 to view.count; 1324* if (med_sel_tab.ref_r (i) ^= "0"b) 1325* then views_selected = views_selected + 1; 1326* end; 1327* 1328* do i = 1 to comp_dvt.family_ct; 1329* mem_p = ptr (area1_p, comp_dvt.member_r (i)); 1330* member_ptr = mem.ref_p; 1331* do ii = 1 to member.count; 1332* if initfamily = comp_dvt.family (i).name 1333* & initmember = member.name (ii) 1334* then do; 1335* comp_dvt.init_fam = i; 1336* comp_dvt.init_family = initfamily; 1337* comp_dvt.init_mem = ii; 1338* comp_dvt.init_member = initmember; 1339* end; 1340* if footfamily = comp_dvt.family (i).name 1341* & footmember = member.name (ii) 1342* then do; 1343* comp_dvt.foot_fam = i; 1344* comp_dvt.foot_family = footfamily; 1345* comp_dvt.foot_mem = ii; 1346* comp_dvt.foot_member = footmember; 1347* end; 1348* 1349* if views_selected < view.count 1350* then do; 1351* fnt_p = ptr (area2_p, member.font_r (ii)); 1352* font_ptr = fnt.pt; 1353* uni_p = ptr (fnt.pt, font.units_r); 1354* units_ptr = uni.ref_p; 1355* opu_p = ptr (fnt.pt, font.oput_r); 1356* oput_p = opu.ref_p; 1357* 1358* do iii = 0 to oput.data_ct; 1359* j = oput.which (iii); 1360* if (j > 0) \" is the char defined? 1361* then do; \" YES 1362* if (med_sel_tab.ref_r (j) = "0"b) 1363* then do; \" but you can't get at it! 1364* call ERROR_ (no_viewselect, 1365* view.name (j), dvid.refname); 1366* med_sel_tab.ref_r (j) = "000001"b3; 1367* \" don't want to say this again. 1368* views_selected = views_selected + 1; 1369* end; 1370* end; 1371* end; 1372* end; 1373* end; 1374* end; 1375* if (comp_dvt.init_family = "") 1376* then call ERROR (init_font_not_on_Device); 1377* if (comp_dvt.foot_family = "") 1378* then call ERROR (foot_font_not_on_Device); 1379* Ptoken, Pthis_token = tp; 1380* area_free_p = addr_inc (area_free_p, size (comp_dvt))] 1381* \" finish allocation 1382* / stack_pop \ 1383* 1384*artproc 1385*371 / $ ; 1386* /LEX(1) [prent.artproc = prent.artproc || "$"; 1387* prent.artproc = prent.artproc || token_value] 1388* LEX(2) / Device_2 \ 1389*372 / /LEX(1) [prent.artproc 1390* = prent.artproc || "$" || prent.artproc] / Device_2 \ 1391* 1392*outproc 1393*373 / $ ; 1394* /LEX(1) [prent.outproc = prent.outproc || "$" || token_value] 1395* LEX(2) / Device_2 \ 1396*374 / ; /LEX(1) / Device_2 \ 1397*375 / /[call ERROR (syntax_outproc)] NEXT_STMT / Device_2 \ 1398* 1399*cleanup 1400*376 / ; /LEX(1) [comp_dvt.cleanup_r = rel (find_str (2))] / Device_2 \ 1401*377 / /[call ERROR (syntax_cleanup)] NEXT_STMT / Device_2 \ 1402* 1403*add_family 1404*378 / / [new_family = "1"b] /\ 1405*family_1 1406*379 / 1407* / [if new_family 1408* then do; 1409* if (member_ptr = null ()) 1410* then mem_p = area1_p; 1411* else mem_p = addr_inc ((member_ptr), size (member)); 1412* call link (meml_p, mem_p); 1413* mem.seqno, mem.refno, mem_ct = mem_ct + 1; 1414* member_ptr, mem.ref_p = addr (mem.dummy); 1415* member.count = 0; 1416* new_family = "0"b; 1417* end; 1418* comp_dvt.family_ct = comp_dvt.family_ct + 1; 1419* comp_dvt.member_r (comp_dvt.family_ct) = rel (mem_p); 1420* if ^bach_sw 1421* then comp_dvt.family (comp_dvt.family_ct).name 1422* = translate (token_value, az, AZ); 1423* else comp_dvt.family (comp_dvt.family_ct).name 1424* = token_value; 1425* Scale_x, Scale_y = Scale_scale] 1426* LEX(1) / family_2 \ 1427*380 / /[call ERROR (fam_bach_name_expected)] / stack_pop \ 1428*family_2 1429*381 / , /LEX(1) / family_1 \ 1430*382 / / / stack_pop \ 1431*family 1432*383 / ; member 1433* /LEX(1) / member \ 1434*family_err 1435*384 / /[call ERROR (syntax_family)] NEXT_STMT / Device_2 \ 1436*member 1437*385 / member : 1438* / [new_member = member.count+1] 1439* LEX(2) / member_1 \ 1440*386 / / / endmem \ 1441* 1442*member_1 1443*387 / 1444* / [member.count = member.count + 1; 1445* member.font_r (member.count) = "0"b; 1446* member.size_r (member.count) = "0"b; 1447* member.name (member.count) 1448* = translate (token_value, az, AZ)] 1449* LEX(1) / member_2 \ 1450*388 / /[call ERROR (syntax_member)] NEXT_STMT / Device_2 \ 1451*member_2 1452*389 / , /LEX(1) / member_1 \ 1453*390 / /PUSH (member) [call push ("member")] /\ 1454*member_3 1455*391 / 1456* /LEX(1) / member_4 \ 1457*392 / /[call ERROR (no_fontname)] /\ 1458*member_4 1459*393 / ; /LEX(1) / member_6 \ 1460*394 / /[call ERROR (syntax_member)] NEXT_STMT / stack_pop \ 1461*member_6 1462*395 / Scale : 1463* /LEX(2) / member_7 \ 1464*396 / / / member_A \ 1465*member_7 1466*397 / 1467* / [Scale_x, Scale_y 1468* = convert (fd12_8, token_value)* Scale_scale] 1469* LEX(1) / member_8 \ 1470*398 / / / Scale_err \ 1471*member_8 1472*399 / , 1473* /LEX(1) [Scale_y = convert (fd12_8, token_value) * Scale_scale] 1474* LEX(1) / member_9 \ 1475*400 / / / Scale_err \ 1476*member_9 1477*401 / ; /LEX(1) / member_A \ 1478*Scale_err 1479*402 / /[call ERROR (syntax_Scale)] NEXT_STMT /\ 1480*member_A 1481*403 / / [the_string_r = rel (find_str (2)); 1482* do i = new_member to member.count; 1483* member.font_r (i) = rel (the_font); 1484* member.Scalex (i) = Scale_x; 1485* member.Scaley (i) = Scale_y; 1486* addr (member.size_r (i)) -> bfb = Sizes; 1487* end] / stack_pop \ 1488* 1489*init_f0 1490*404 / 1491* /LEX(1) [initfamily = font_fam; 1492* initmember = font_mem] / init_f2 \ 1493*405 / /[call ERROR (missing_font)]NEXT_STMT / Device_2 \ 1494*init_f2 1495*406 / 1496* / [comp_dvt.init_ps = scale_unit (1000)] 1497* LEX(1) / init_f3 \ 1498*407 / /[call ERROR (no_init_ps)]NEXT_STMT / Device_2 \ 1499*init_f3 1500*408 / ; /LEX(1) / Device_2 \ 1501*409 / /[call ERROR (missing_semicolon)]NEXT_STMT / Device_2 \ 1502* 1503*bachelor 1504*410 / / [new_member, member.count = 1; 1505* member.font_r (1) = "0"b; 1506* member.size_r (1) = "0"b; 1507* member.Scalex (1) = Scale_x; 1508* member.Scaley (1) = Scale_y; 1509* member.name (1) = ""] 1510* PUSH (endmem) [call push ("endmem")] / member_3 \ 1511*endmem 1512*411 / / [done = "0"b; \" put into "normal" form 1513* do while (^done); 1514* done = "1"b; 1515* do i = 1 to member.count-1; 1516* call memorder; 1517* end; 1518* if ^done 1519* then do; 1520* done = "1"b; 1521* do i = member.count-1 to 1 by -1; 1522* call memorder; 1523* end; 1524* end; 1525* end; 1526*memorder: proc; 1527* if member.name (i) > member.name (i+1) 1528* then do; 1529* member_hold = member.e (i); 1530* member.e (i) = member.e (i+1); 1531* member.e (i+1) = member_hold; 1532* done = "0"b; 1533* end; 1534* end memorder; 1535* tp = meml_p (2); \" see if member is like a prior one 1536* done = "0"b; 1537* do mem_p = meml_p (1) repeat (mem.next) 1538* while (mem_p ^= meml_p (2)); 1539* if (mem.seqno = mem.refno) 1540* then do; \" check only "real" ones 1541* if (unspec (mem.ref_p -> mem) 1542* = unspec (tp -> mem.ref_p -> mem)) 1543* then do; 1544* tp -> mem.refno = mem.seqno; \"its a duplicate 1545* done = "1"b; 1546* end; 1547* end; 1548* end] / Device_2 \ 1549* 1550*\"dvc_1 1551*\" / $ 1552*\" / [dvcproc = token_value] 1553*\" LEX(2) [dvcentry = token_value] 1554*\" LEX(1) /\ 1555*\" / 1556*\" / [the_string = token_value] 1557*\" LEX(1) /\ 1558*\" / ; /LEX(1) [the_string = ""] / Device_2 \ 1559* 1560*footproc 1561*412 / 1562* / [prent.footproc = token_value] 1563* LEX(1) / foot_1 \ 1564*413 / , /LEX(1) / foot_2 \ 1565*414 / ; /LEX(1) / Device_2 \ 1566*415 / /[call ERROR (syntax_footproc)] NEXT_STMT / Device_2 \ 1567* 1568*foot_1 1569*416 / $ 1570* /LEX(1) [prent.footproc = prent.footproc || "$" || token_value] 1571* LEX(1) /\ 1572* 1573*foot_2 1574*417 / , 1575* /LEX(2) [FootFamily = font_fam; 1576* FootMember = font_mem] / foot_3 \ 1577*418 / / / foot_e \ 1578*foot_3 1579*419 / ; /LEX(1) / Device_2 \ 1580*foot_e 1581*420 / /[call ERROR (syntax_footproc)] NEXT_STMT / Device_2 \ 1582* 1583*viewselect 1584*421 / 1585* / [default_view = token.Nvalue; 1586* this_view = -1] 1587* LEX(1) PUSH (viewsel1)[call push ("viewsel1")] / mc_string \ 1588*viewselect_err 1589*422 / /[call ERROR (syntax_viewselect)] NEXT_STMT / Device_2 \ 1590*viewsel1 1591*423 / / [med_sel_tab.ref_r (default_view) = rel (find_str (2))] /\ 1592*424 / ; /LEX(1) / Device_2 \ 1593*425 / , /LEX(1) / viewselect \ 1594*426 / / / viewselect_err \ 1595*++*/ 1596 1597 compdv: 1598 proc; 1599 1600 dcl version char (10) var static options (constant) init ("2.0a"); 1601 dcl compdv_severity_ 1602 fixed bin (35) ext static; 1603 1604 compstat$compconst.ptr = addr (compstat$compconst.ptr); 1605 dt_sw = "0"b; 1606 1607 /* initialize static on first call in the process */ 1608 if first_time 1609 then 1610 do; 1611 breaks, ignored_breaks = 1612 substr (collate (), 1, 33) || substr (collate (), 128, 1); 1613 breaks = breaks || ":,()$="; 1614 call lex_string_$init_lex_delims ("""", """", "/*", "*/", ";", "10"b, 1615 /* suppress quote, keep statement */ 1616 breaks, ignored_breaks, lex_delims, lex_ctl_chars); 1617 first_time = "0"b; /* static init done, reset switch */ 1618 end; 1619 1620 /* ******************** PROCESS COMMAND LINE******************** */ 1621 1622 call cu_$arg_count (nargs); /* how many given? */ 1623 1624 compdv_severity_ = 5; /* preset for command parser */ 1625 1626 if nargs = 0 /* if none are given ... */ 1627 then 1628 do; 1629 call com_err_ (0, "compdv", 1630 "(Vers. ^a) Proper usage is: compdv" 1631 || " {.compdv}^/^-[-check | -ck | -list | -ls]", 1632 version); 1633 return; 1634 end; /**/ 1635 /* fetch input pathname */ 1636 call cu_$arg_ptr (1, argp, argl, ercd); 1637 if ercd ^= 0 1638 then 1639 do; 1640 call com_err_ (ercd, "compdv", "Reading input pathname."); 1641 return; 1642 end; 1643 1644 if search ("<>", arg) = 0 /* if a search is needed */ 1645 then 1646 do; /* check entry name length */ 1647 if length (before (arg, ".compdv")) > 25 1648 then 1649 do; 1650 call com_err_ (0, "compdv", "Input entryname ""^a"" is too long", 1651 rtrim (arg)); 1652 return; 1653 end; 1654 1655 ename = before (arg, ".compdv");/* strip the suffix */ 1656 1657 call search_paths_$find_dir ("compose", 1658 /* use compose list */ 1659 null (), rtrim (ename) || ".compdv", "", dname, ercd); 1660 if ercd ^= 0 1661 then 1662 do; 1663 call com_err_ (ercd, "compdv", "Searching for ""^a""", 1664 rtrim (ename) || ".compdv"); 1665 return; 1666 end; 1667 end; 1668 1669 else 1670 do; 1671 call expand_pathname_$add_suffix (arg, "compdv", dname, ename, ercd); 1672 if ercd ^= 0 1673 then 1674 do; 1675 call com_err_ (ercd, "compdv", "Expanding path for ""^a""", 1676 rtrim (arg)); 1677 return; 1678 end; /**/ 1679 /* trim the suffix */ 1680 ename = before (ename, ".compdv"); 1681 end; 1682 1683 check_opt, list_opt = "0"b; /* reset option flags */ 1684 1685 if nargs > 1 /* any control args? */ 1686 then 1687 do; 1688 call cu_$arg_ptr (2, argp, argl, ercd); 1689 if ercd ^= 0 1690 then 1691 do; 1692 call com_err_ (ercd, "compdv", "Reading control argument."); 1693 return; 1694 end; 1695 1696 if arg = "-check" | arg = "-ck" 1697 then check_opt = "1"b; 1698 1699 else if arg = "-list" | arg = "-ls" 1700 then list_opt = "1"b; 1701 1702 else 1703 do; 1704 call com_err_ (error_table_$badopt, "compdv", """^a""", arg); 1705 return; 1706 end; 1707 end; 1708 1709 call hcs_$initiate_count (dname, rtrim (ename) || ".compdv", "", 1710 input_bitcount, 0, input_ptr, ercd); 1711 if input_ptr = null () 1712 then 1713 do; 1714 call com_err_ (ercd, "compdv", "Initiating ^a>^a.compdv", 1715 rtrim (dname), rtrim (ename)); 1716 return; 1717 end; 1718 1719 on condition (cleanup) call cleaner;/* we now need cleaning */ 1720 1721 input_charcount = divide (input_bitcount, 9, 24, 0); 1722 1723 call translator_temp_$get_segment ("compdv", lex_temp_ptr, ercd); 1724 if ercd ^= 0 /* get a temp seg for lex_string_ */ 1725 then 1726 do; 1727 call com_err_ (ercd, "compdv", "Getting a translator temp seg."); 1728 call cleaner; 1729 return; 1730 end; 1731 1732 call get_temp_segments_ ("compdv", temp_ptrs, ercd); 1733 if ercd ^= 0 1734 then 1735 do; 1736 call com_err_ (ercd, "compdv", "Getting temp segments"); 1737 call cleaner; 1738 return; 1739 end; 1740 1741 /* ******************** INITIALIZE FOR EXECUTION ******************** */ 1742 1743 call ioa_ ("COMPDV ^a-^d", version, comp_dvid_version); 1744 1745 compdv_severity_ = 0; /* clear for execution */ 1746 dcl_l_p (*) = null (); 1747 next_str_p = ptr (string_area_p, 1);/* next string definition */ 1748 size_list_p = null (); 1749 1750 area_free_p = area2_p; /* next symbol declaration */ 1751 mediachars_p = null (); /* good housekeeping */ 1752 media_p = null (); 1753 view_p = null (); 1754 Def_p = null (); 1755 1756 dvid_ct = 0; 1757 dvidl_p (*) = null (); 1758 dvt_ct = 0; 1759 dvtl_p (*) = null (); 1760 1761 font_count = 0; 1762 member_ptr = null (); 1763 fntl_p (*) = null (); 1764 meml_p (*) = null (); 1765 unil_p (*) = null (); 1766 opul_p (*) = null (); 1767 1768 the_string = ""; 1769 if rel (find_str (1)) 1770 then ; /* put null string as first */ 1771 if rel (find_str (2)) 1772 then ; /* string table entries */ 1773 1774 ArtProc, FootProc, OutProc, DisplayProc, OutEntry = 1775 rtrim (ename) || "_writer_"; 1776 FootFamily, FootMember = ""; 1777 Com_r, Clean_r = "0"b; 1778 Vscale = vscales (6); /* default to points */ 1779 Hscale = hscales (6); 1780 1781 if input_charcount = 0 1782 then 1783 do; 1784 code = error_table_$zero_length_seg; 1785 goto empty_seg; 1786 end; 1787 1788 call lex_string_$lex (input_ptr, input_charcount, 0, lex_temp_ptr, "1000"b, 1789 """", """", "/*", "*/", ";", breaks, ignored_breaks, lex_delims, 1790 lex_ctl_chars, null (), first_token_p, code); 1791 if code ^= 0 1792 then 1793 do; 1794 empty_seg: 1795 if code = error_table_$zero_length_seg 1796 then call com_err_ (0, "compdv", 1797 "Source contains no statements. ^a>^a.compdv.", dname, ename) 1798 ; 1799 else call com_err_ (code, "compdv", 1800 "^a does not end with a statement delimiter.", 1801 pathname_ (dname, ename)); 1802 call cleaner; 1803 return; 1804 end; 1805 1806 Ptoken, Pthis_token = first_token_p; 1807 1808 /* ***************************** GO ***************************** */ 1809 call SEMANTIC_ANALYSIS; 1810 compdv_severity_ = MERROR_SEVERITY; 1811 1812 if MERROR_SEVERITY < 3 1813 then 1814 do; 1815 dvid_p = dvidl_p (1); 1816 ename = rtrim (dvid.refname) || ".comp_dsm"; 1817 call iox_$attach_name ("comp_gen_", ALM, 1818 "vfile_ " || rtrim (ename) || ".alm", null (), code); 1819 call iox_$open (ALM, 2, "0"b, code); 1820 call outputter; 1821 call iox_$close (ALM, code); 1822 call iox_$detach_iocb (ALM, code); 1823 1824 if ^check_opt 1825 then 1826 do; 1827 if list_opt 1828 then call alm (ename, "-list"); 1829 else call alm (ename); 1830 1831 do dvid_p = dvidl_p (1) repeat (dvid.next) 1832 while (dvid_p ^= null ()); 1833 call hcs_$chname_file (get_wdir_ (), ename, "", 1834 rtrim (dvid.refname) || ".comp_dsm", code); 1835 if (code = error_table_$segnamedup) 1836 then code = 0; 1837 if code ^= 0 1838 then call com_err_ (code, "compdv", 1839 "Trying to add name ^a.comp_dsm to ^a>^a", 1840 dvid.refname, get_wdir_ (), ename); 1841 end; 1842 end; 1843 end; 1844 1845 call cleaner; 1846 return; 1847 1848 /**** +++[Syntax Function]++++++++ A_DEBUG +++++++++++++++++++++++++++++++++ */ 1849 /* */ 1850 /* This routine helps in debugging. To use it a change must be made to the */ 1851 /* output of rdc before compilation. At the label RD_MATCH this must be put: */ 1852 /* if db_sw then call a_debug; */ 1853 1854 a_debug: 1855 proc; 1856 call ioa_$nnl (" ""^a""", token_value); 1857 if (token_value = ",") | (token_value = ";") 1858 then call ioa_$nnl ("^/"); 1859 end a_debug; 1860 1861 /**** +++[Function]+++++++++++++++ ADDR_INC ++++++++++++++++++++++++++++++++ */ 1862 /* */ 1863 /* this is an addrel function which increments by double words */ 1864 addr_inc: 1865 proc (a_ptr, an_inc) returns (ptr); 1866 1867 dcl a_ptr ptr, 1868 an_inc fixed bin (24); 1869 1870 return (addrel (a_ptr, divide (an_inc + 1, 2, 17, 0) * 2)); 1871 end addr_inc; 1872 1873 /**** +++[Syntax Function]++++++++ CHARLIST ++++++++++++++++++++++++++++++++ */ 1874 /* */ 1875 /* Tests for the chars of a quoted string being defined charnames. Each */ 1876 /* entry processes the next char in the list. */ 1877 /* USES: token_value - current token */ 1878 /* list_ndx - character to process this time */ 1879 /* SETS: token.Nvalue - index of found charname */ 1880 1881 charlist: 1882 proc returns (bit (1) aligned); 1883 1884 dcl i fixed bin; 1885 1886 if list_ndx > length (token_value) 1887 then return ("0"b); 1888 media2 = "[" || substr (token_value, list_ndx, 1) || "]"; 1889 1890 do i = 1 to mediachars.count; /* look thru the mediachars list */ 1891 if (mediachars.name (i) = media2) 1892 then 1893 do; 1894 token.Nvalue = i; 1895 if dt_sw 1896 then call ioa_$nnl ("", list_ndx); 1897 list_ndx = list_ndx + 1; 1898 return ("1"b); 1899 end; 1900 end; 1901 call ERROR_ (not_charname, show_name (media2), ""); 1902 return ("0"b); 1903 1904 end charlist; 1905 1906 /**** +++[Syntax Function]++++++++ CHARNAME ++++++++++++++++++++++++++++++++ */ 1907 /* */ 1908 /* Tests for the token being a defined charname. */ 1909 /* USES: token_value - current token */ 1910 /* SETS: token.Nvalue - index of found charname */ 1911 1912 charname: 1913 proc returns (bit (1) aligned); 1914 1915 dcl i fixed bin; 1916 1917 if input_ () /* (sets Input if true) */ 1918 then media2 = "[" || Input || "]"; 1919 else if ident_ () 1920 then media2 = token_value; 1921 else return ("0"b); 1922 do i = 1 to mediachars.count; /* look thru the mediachars list */ 1923 if (mediachars.name (i) = media2) 1924 then 1925 do; 1926 token.Nvalue = i; 1927 if dt_sw 1928 then call ioa_$nnl (""); 1929 return ("1"b); 1930 end; 1931 end; 1932 return ("0"b); 1933 1934 end charname; 1935 1936 /**** +++[Procedure]++++++++++++++ CLEANER +++++++++++++++++++++++++++++++++ */ 1937 /* */ 1938 /* Does all the needed stuff for condition(cleanup). However, doesn't report */ 1939 /* any errors since we may be in trouble. */ 1940 1941 cleaner: 1942 proc; 1943 1944 if db_sw 1945 then call ioa_ ("===cleaner"); 1946 1947 call hcs_$terminate_noname (input_ptr, code); 1948 1949 if lex_temp_ptr ^= null () 1950 then call translator_temp_$release_all_segments (lex_temp_ptr, code); 1951 1952 if temp_ptrs (1) ^= null () 1953 then call release_temp_segments_ ("compdv", temp_ptrs, code); 1954 1955 if ALM ^= null () 1956 then 1957 do; 1958 call iox_$close (ALM, code); 1959 call iox_$detach_iocb (ALM, code); 1960 ALM = null (); 1961 end; 1962 1963 if ^check_opt 1964 then call delete_$path (get_wdir_ (), rtrim (ename) || ".alm", "100100"b, 1965 "compdv", code); 1966 1967 end cleaner; 1968 1969 /**** +++[Syntax Function]+++++++++ DCL_ED +++++++++++++++++++++++++++++++++ */ 1970 1971 dcl_ed: 1972 proc returns (bit (1) aligned); 1973 1974 do dcl_p = dcl_l_p (1) repeat (dcl_.next) while (dcl_p ^= null ()); 1975 if (dcl_.dcl_name = token_value) 1976 then 1977 do; 1978 str_p = addr (dcl_.leng); 1979 if dt_sw 1980 then call ioa_$nnl (""); 1981 return ("1"b); 1982 end; 1983 end; 1984 return ("0"b); 1985 1986 end dcl_ed; 1987 1988 /**** +++[Procedure]+++++++++++++++ ERROR_ +++++++++++++++++++++++++++++++++ */ 1989 /* */ 1990 /* This routine prints error messages which need "non-standard" insertions. */ 1991 1992 ERROR_: 1993 proc (Nerror, Arg1, Arg2); 1994 1995 dcl Nerror fixed bin, 1996 Arg1 char (*), /* The need is currently for 2 */ 1997 Arg2 char (*); /* arguments, (may need expansion). */ 1998 1999 dcl Pstmt ptr, 2000 1 erring_token aligned based (Perring_token) like token, 2001 Perring_token ptr, 2002 erring_token_value 2003 char (erring_token.Lvalue) based (erring_token.Pvalue); 2004 dcl lex_error_ entry options (variable); 2005 2006 Perring_token = Pthis_token; 2007 2008 if error_control_table.Soutput_stmt (Nerror) 2009 then Pstmt = erring_token.Pstmt; /* addr statement descriptor. */ 2010 else Pstmt = null (); 2011 2012 call lex_error_ (Nerror, SERROR_PRINTED (Nerror), 2013 (error_control_table.severity (Nerror)), MERROR_SEVERITY, Pstmt, 2014 null (), SERROR_CONTROL, (error_control_table.message (Nerror)), 2015 (error_control_table.brief_message (Nerror)), Arg1, Arg2); 2016 2017 compdv_severity_ = 2018 max (compdv_severity_, error_control_table.severity (Nerror)); 2019 end ERROR_; 2020 2021 /**** +++[Syntax Function]++++++++ FAM_MEM +++++++++++++++++++++++++++++++++ */ 2022 2023 fam_mem: 2024 proc returns (bit (1) aligned); 2025 2026 if token.quoted_string /* quoted string? */ 2027 | token_value = "SELF" /* the reserved word? */ 2028 then return ("0"b); /* any of these, return false */ 2029 /* extract the first name */ 2030 font_fam = before (token_value, "/"); 2031 if font_fam = "" /* no family given */ 2032 then return ("0"b); /**/ 2033 /* extract possible second name */ 2034 font_mem = after (token_value, "/");/* invalid names? */ 2035 if (verify (font_fam, az_AZ09) ^= 0) | (verify (font_mem, az_AZ09) ^= 0) 2036 | (search (font_fam, "0123456789_") = 1) 2037 | (search (font_mem, "0123456789_") ^= 0) 2038 then return ("0"b); 2039 2040 if (index (token_value, "/") ^= 0) 2041 then 2042 do; 2043 font_mem = "/" || rtrim (font_mem); 2044 font_fam = translate (font_fam, az, AZ); 2045 font_mem = translate (font_mem, az, AZ); 2046 end; 2047 2048 if dt_sw 2049 then call ioa_$nnl (""); 2050 2051 return ("1"b); 2052 2053 end fam_mem; 2054 2055 /**** +++[Syntax Function]++++++++ FAM_BACH ++++++++++++++++++++++++++++++++ */ 2056 2057 fam_bach: 2058 proc returns (bit (1) aligned); 2059 2060 dcl i fixed bin; 2061 dcl name char (32); 2062 2063 if token.quoted_string /* quoted string? */ 2064 | token_value = "SELF" /* the reserved word? */ 2065 then return ("0"b); /* any of these, return false */ 2066 /* invalid names? */ 2067 if (verify (token_value, az_AZ09) ^= 0) 2068 | (search (token_value, "0123456789_") = 1) 2069 then return ("0"b); 2070 2071 if ^bach_sw 2072 then name = translate (token_value, az, AZ); 2073 else name = token_value; 2074 2075 do i = 1 to comp_dvt.family_ct; 2076 if name = comp_dvt.family (i).name 2077 then 2078 do; 2079 call ERROR (duplicate_font_name); 2080 return ("0"b); 2081 end; 2082 end; 2083 2084 if dt_sw 2085 then call ioa_$nnl (""); 2086 2087 return ("1"b); 2088 2089 end fam_bach; 2090 2091 /**** +++[Function]++++++++++++++ FIND_FONT ++++++++++++++++++++++++++++++++ */ 2092 2093 find_font: 2094 proc (create) returns (ptr); 2095 2096 /* PARAMETERS */ 2097 2098 dcl create bit (1); /* 1 = font is to be created */ 2099 2100 /* LOCAL STORAGE */ 2101 2102 dcl tp ptr; 2103 dcl fname char (32); 2104 2105 if db_sw 2106 then call ioa_ ("===find_font"); 2107 2108 fname = token_value; 2109 if token_value = "SELF" /* can't use "SELF" as a font name */ 2110 | token.quoted_string /* can't be a literal */ 2111 | octal_ () /* or an octal value */ 2112 | num () /* or a numeric */ 2113 then 2114 do; 2115 if create 2116 then goto bad_news; 2117 return (null ()); 2118 end; /* go thru all defined fonts */ 2119 do tp = fntl_p (1) repeat (tp -> fnt.next) while (tp ^= null ()); 2120 if tp -> fnt.name = token_value /* is this the one we want? */ 2121 then return (tp); /* YES, return its addr */ 2122 end; 2123 2124 if ^create /* not found; if not creating */ 2125 then return (null); /* return a null value */ 2126 2127 if ^ident_ () /* but must be a legal name */ 2128 then 2129 do; 2130 bad_news: 2131 call ERROR (not_valid_Font_name); 2132 fname = ""; /* supply something */ 2133 end; 2134 2135 if (font_count > 0) 2136 then area_free_p = addr_inc (oput_p, size (oput)); 2137 tp = area_free_p; 2138 area_free_p = addr (tp -> fnt.dummy); 2139 font_count = font_count + 1; /* record new font info */ 2140 call link (fntl_p, tp); 2141 tp -> fnt.name = fname; /* fill in the internal font name */ 2142 tp -> fnt.refno = font_count; /* and the reference # */ 2143 tp -> fnt.node = Ptoken; /* keep statement ptr for error msgs */ 2144 tp -> fnt.pt = null (); /* no table started yet */ 2145 2146 return (tp); /* return the new addr */ 2147 2148 end find_font; 2149 2150 /**** +++[Function]+++++++++++++++ FIND_STR ++++++++++++++++++++++++++++++++ */ 2151 /* */ 2152 /* Finds the location of a string in a string table. If the string is not */ 2153 /* in the table, then it is entered. */ 2154 2155 find_str: 2156 proc (which) returns (ptr); 2157 2158 dcl which fixed bin; /* 1- temporary string area */ 2159 /* 2- DSM string area */ 2160 2161 dcl i fixed bin; 2162 2163 if dt_sw 2164 then call ioa_$nnl ("`^a'", the_string); 2165 if (string_l (which) > 0) & (length (the_string) = 0) 2166 then 2167 do; 2168 if dt_sw 2169 then call ioa_ ("--is ^i,1", which); 2170 return (strl_p (which, 1)); 2171 end; 2172 2173 2174 do i = 1 to string_l (which); 2175 str_p = strl_p (which, i); 2176 if (length (bstr.str) = length (the_string)) 2177 then if (bstr.str = the_string) 2178 then 2179 do; 2180 if dt_sw 2181 then call ioa_ ("--found ^i,^i", which, i); 2182 return (str_p); 2183 end; 2184 end; 2185 str_p = next_str_p; 2186 bstr.leng = length (the_string); 2187 bstr.str = the_string; 2188 string_l (which), i = string_l (which) + 1; 2189 strl_p (which, i) = str_p; 2190 next_str_p = addr (bstr.dummy); 2191 if dt_sw 2192 then call ioa_ ("--new ^i,^i", which, i); 2193 return (strl_p (which, i)); 2194 2195 end find_str; 2196 2197 /**** +++[Syntax Function]+++++++ FONT_NAME ++++++++++++++++++++++++++++++++ */ 2198 /* */ 2199 /* Test for token being a defined fontname. */ 2200 2201 font_name: 2202 proc returns (bit (1) aligned); 2203 2204 the_font = find_font ("0"b); 2205 if the_font ^= null () 2206 then 2207 do; 2208 if dt_sw 2209 then call ioa_$nnl (""); 2210 return ("1"b); 2211 end; 2212 the_font = fntl_p (1); /* fill in a value so program will */ 2213 /* keep running */ 2214 return ("0"b); 2215 2216 end font_name; 2217 2218 /**** +++[Syntax Function]++++++ IDENT/IDENT2 ++++++++++++++++++++++++++++++ */ 2219 /* */ 2220 /* check for legal string */ 2221 2222 ident: 2223 proc returns (bit (1) aligned); 2224 2225 ldt_sw = dt_sw; 2226 goto start; 2227 2228 ident2: 2229 entry returns (bit (1) aligned); 2230 2231 ldt_sw = dt_sw; 2232 if (token.Lvalue = 1) 2233 then return ("0"b); 2234 goto start; 2235 2236 ident_: 2237 entry returns (bit (1) aligned); 2238 2239 ldt_sw = "0"b; /* never db displays */ 2240 2241 dcl ldt_sw bit (1); 2242 2243 start: 2244 if token.quoted_string /* quoted string? */ 2245 | token_value = "SELF" /* the reserved word? */ 2246 | verify (token_value, az_AZ09) ^= 0 2247 /* non-(alphanumeric or _)? */ 2248 then return ("0"b); /* any of these, return false */ 2249 2250 if (index ("0123456789_", substr (token_value, 1, 1)) ^= 0) 2251 then return ("0"b); 2252 if ldt_sw 2253 then call ioa_$nnl (""); 2254 return ("1"b); /* must not have leading number or _ */ 2255 end ident; 2256 2257 /**** +++[Syntax Function]++++ INPUT/ALL_INPUT +++++++++++++++++++++++++++++ */ 2258 /* */ 2259 /* Tests for token being a single char in either octal or quoted form. */ 2260 /* ALL_INPUT also checks for a whole slew of builtin char names. */ 2261 /* SETS: Input - 9-bit char value which results */ 2262 2263 input: 2264 proc returns (bit (1) aligned); 2265 2266 dcl which char (12); 2267 dcl ldt_sw bit (1); 2268 2269 which = ""; 2270 ldt_sw = dt_sw; 2271 goto some; 2272 2273 input_: 2274 entry returns (bit (1) aligned); 2275 2276 ldt_sw = "0"b; /* never db displays */ 2277 goto some; 2278 2279 all_input: 2280 entry returns (bit (1) aligned); 2281 2282 which = ""; 2283 ldt_sw = dt_sw; 2284 2285 if (token_value = "EM") 2286 then Input = EM; 2287 2288 else if (token_value = "EN") 2289 then Input = EN; 2290 2291 else if (token_value = "THICK") 2292 then Input = THICK; 2293 2294 else if (token_value = "MEDIUM") 2295 then Input = MEDIUM; 2296 2297 else if (token_value = "THIN") 2298 then Input = THIN; 2299 2300 else if (token_value = "HAIR") 2301 then Input = HAIR; 2302 2303 else if (token_value = "DEVIT") 2304 then Input = DEVIT; 2305 2306 else if (token_value = "STROKE") 2307 then Input = STROKE; 2308 2309 else if (token_value = "EM-") 2310 then Input = EMdash; 2311 2312 else if (token_value = "EN-") 2313 then Input = ENd; 2314 2315 else if (token_value = "EM_") 2316 then Input = EM_; 2317 else if (token_value = "EN_") 2318 then Input = EN_; 2319 else if (token_value = "^0") 2320 then Input = sup0; 2321 else if (token_value = "^1") 2322 then Input = sup1; 2323 else if (token_value = "^2") 2324 then Input = sup2; 2325 else if (token_value = "^3") 2326 then Input = sup3; 2327 else if (token_value = "^4") 2328 then Input = sup4; 2329 else if (token_value = "^5") 2330 then Input = sup5; 2331 else if (token_value = "^6") 2332 then Input = sup6; 2333 else if (token_value = "^7") 2334 then Input = sup7; 2335 else if (token_value = "^8") 2336 then Input = sup8; 2337 else if (token_value = "^9") 2338 then Input = sup9; 2339 else if (token_value = "''") 2340 then Input = rquote; 2341 else if (token_value = "``") 2342 then Input = lquote; 2343 else if (token_value = "PS") 2344 then Input = PS; 2345 else if (token_value = "lslnt") 2346 then Input = lslnt; 2347 else if (token_value = "vrule") 2348 then Input = vrule; 2349 else if (token_value = "bullet") 2350 then Input = bullet; 2351 else if (token_value = "cright") 2352 then Input = cright; 2353 else if (token_value = "modmark") 2354 then Input = modmark; 2355 else if (token_value = "delmark") 2356 then Input = delmark; 2357 else if (token_value = "multiply") 2358 then Input = multiply; 2359 else if (token_value = "nabla") 2360 then Input = nabla; 2361 else if (token_value = "pl_mi") 2362 then Input = pl_mi; 2363 else 2364 some: 2365 if token.quoted_string 2366 then 2367 do; 2368 if token.Lvalue ^= 1 2369 then return ("0"b); 2370 Input = token_value; 2371 end; 2372 else if ^octal_ () 2373 then return ("0"b); 2374 if ldt_sw 2375 then call ioa_$nnl ("^a", which); 2376 return ("1"b); 2377 2378 end input; 2379 2380 /**** +++[Syntax Function]+++++++ IS_DEFNAME +++++++++++++++++++++++++++++++ */ 2381 /* */ 2382 /* Tests for a token being a defined Defname. */ 2383 /* SETS: token.Nvalue - index of the found Defname */ 2384 2385 is_Defname: 2386 proc returns (bit (1) aligned); 2387 2388 do i = 1 to Def.count; 2389 if (Def.name (i) = token_value) 2390 then 2391 do; 2392 token.Nvalue = i; 2393 if dt_sw 2394 then call ioa_$nnl (""); 2395 return ("1"b); 2396 end; 2397 end; 2398 return ("0"b); 2399 2400 end is_Defname; 2401 2402 /**** +++[Syntax Function]++++++ IS_VIEWNAME +++++++++++++++++++++++++++++++ */ 2403 /* */ 2404 /* Tests for token being a defined viewname. */ 2405 /* SETS: token.Nvalue - index of the found viewname */ 2406 2407 is_viewname: 2408 proc returns (bit (1) aligned); 2409 2410 do i = 1 to view.count; 2411 if (view.name (i) = token_value) 2412 then 2413 do; 2414 token.Nvalue = i; 2415 if dt_sw 2416 then call ioa_$nnl (""); 2417 return ("1"b); 2418 end; 2419 end; 2420 return ("0"b); 2421 2422 end is_viewname; 2423 2424 /**** +++[Procedure]++++++++++++++++ LINK ++++++++++++++++++++++++++++++++++ */ 2425 /* */ 2426 /* link an element to end of a list */ 2427 2428 link: 2429 proc (l_p, e_p); 2430 dcl l_p (2) ptr, /* begin/end list ptrs */ 2431 e_p ptr; /* element to be linked */ 2432 2433 dcl next ptr based (e_p); /* first word of element -> next */ 2434 2435 if (l_p (1) = null ()) 2436 then l_p (*) = e_p; /* initialize list */ 2437 else 2438 do; 2439 l_p (2) -> next = e_p; /* last one points to this one */ 2440 l_p (2) = e_p; /* this one is now last */ 2441 end; 2442 next = null (); /* this one points nowhere */ 2443 2444 end link; 2445 2446 /**** +++[Syntax Function]+++++++ MEDIANAME ++++++++++++++++++++++++++++++++ */ 2447 /* */ 2448 /* Test for the token being a defined medianame */ 2449 /* SETS: token.Nvalue - the index of the found medianame */ 2450 2451 medianame: 2452 proc returns (bit (1) aligned); 2453 2454 dcl i fixed bin; 2455 2456 if ^ident_ () 2457 then return ("0"b); 2458 do i = 1 to media.count; 2459 if (media.name (i) = token_value) 2460 then 2461 do; 2462 token.Nvalue = i; 2463 if dt_sw 2464 then call ioa_$nnl (""); 2465 return ("1"b); 2466 end; 2467 end; 2468 return ("0"b); 2469 2470 end medianame; 2471 2472 /**** +++[Syntax Function]+++++++ MEMBERNAME +++++++++++++++++++++++++++++++ */ 2473 2474 membername: 2475 proc returns (bit (1) aligned); 2476 2477 dcl i fixed bin; 2478 2479 if (substr (token_value, 1, 1) ^= "/") 2480 then return ("0"b); 2481 if (token.Lvalue > 32) 2482 then return ("0"b); 2483 if (token.Lvalue > 1) 2484 then 2485 do; 2486 if (index ("0123456789", substr (token_value, 2, 1)) ^= 0) 2487 then return ("0"b); 2488 if (verify (substr (token_value, 2), az_AZ09) ^= 0) 2489 then return ("0"b); 2490 end; 2491 if dt_sw 2492 then call ioa_$nnl (""); 2493 return ("1"b); 2494 2495 end membername; 2496 2497 /**** +++[Syntax Function]+++++++++ NEGNUM +++++++++++++++++++++++++++++++++ */ 2498 /* */ 2499 /* Tests token for being a negative number */ 2500 2501 negnum: 2502 proc returns (bit (1) aligned); /* check negative decimal value */ 2503 2504 if (substr (token_value, 1, 1) ^= "-") 2505 /* must start with - sign */ 2506 then return ("0"b); 2507 if (token_value = "-.") /* just in case they throw a curve */ 2508 then return ("0"b); 2509 if (verify (substr (token_value, 2), "0123456789.") ^= 0) 2510 /* and have */ 2511 then return ("0"b); /* only legal decimal chars & */ 2512 if (index (after (token_value, "."), ".") ^= 0) 2513 /* only 1 decimal pt */ 2514 then return ("0"b); 2515 if dt_sw 2516 then call ioa_$nnl (""); 2517 token.Nvalue = convert (token.Nvalue, token_value); 2518 return ("1"b); 2519 2520 end negnum; 2521 2522 /**** +++[Syntax Function]+++++++ NUM/LIMIT ++++++++++++++++++++++++++++++++ */ 2523 /* */ 2524 /* Tests token for being UNLIMITED or being a number */ 2525 /* Tests token for being a number */ 2526 2527 limit: 2528 proc returns (bit (1) aligned); 2529 2530 if (token_value = "unlimited") 2531 then 2532 do; 2533 token.Nvalue = -1; 2534 return ("1"b); 2535 end; 2536 2537 num: 2538 entry returns (bit (1) aligned); /* check decimal value */ 2539 2540 if token_value = "." 2541 then return ("0"b); 2542 if verify (token_value, "0123456789.") ^= 0 2543 /* legal decimal chars */ 2544 then return ("0"b); 2545 2546 if (index (after (token_value, "."), ".") ^= 0) 2547 /* only 1 dec pt */ 2548 then return ("0"b); 2549 if dt_sw 2550 then call ioa_$nnl (""); 2551 token.Nvalue = convert (token.Nvalue, token_value); 2552 return ("1"b); 2553 2554 end limit; 2555 2556 /**** +++[Syntax Function]+++++++++ OCTAL ++++++++++++++++++++++++++++++++++ */ 2557 /* */ 2558 /* Tests token for being an octal character representation */ 2559 /* SETS: Input - 9-bit char gotten by converting the 3 octal digits */ 2560 2561 octal: 2562 proc returns (bit (1) aligned); 2563 2564 ldt_sw = dt_sw; 2565 goto start; 2566 2567 octal_: 2568 entry returns (bit (1) aligned); 2569 2570 ldt_sw = "0"b; /* never db displays */ 2571 2572 dcl ldt_sw bit (1); 2573 dcl 1 bits (3) unal, /* copy of the 3 token chars as bits */ 2574 2 f bit (6), 2575 2 b bit (3); 2576 2577 start: 2578 if token.Lvalue ^= 3 /* if token is not exactly 3 chars */ 2579 then return ("0"b); /* it can't be octal */ 2580 2581 if verify (token_value, "01234567") ^= 0 2582 /* it can't have any chars */ 2583 then return ("0"b); /* outside the octal range */ 2584 2585 string (bits) = unspec (token_value); 2586 /* copy token into structure */ 2587 unspec (Input) = b (1) || b (2) || b (3); 2588 /* convert octal to binary */ 2589 if ldt_sw 2590 then call ioa_$nnl (""); 2591 return ("1"b); 2592 2593 end octal; 2594 2595 /**** +++[Procedure]+++++++++++++ OUTPUTTER ++++++++++++++++++++++++++++++++ */ 2596 /* */ 2597 /* Outputs the whole schmeer to an alm source file. */ 2598 /* USES: most everything of value */ 2599 2600 outputter: 2601 proc; 2602 2603 dcl addname bit (1); /* 1 = table name is an addname */ 2604 /**** format: off */ 2605 dcl bitname (0:511) char (16) /* char names for tables */ 2606 int static options (constant) init 2607 ("000", "001", "002", "003", "004", "005", "006", "007", "010 BSP", "011 HT", 2608 "012 NL", "013 VT", "014 FF", "015 CR", "016", "017", "020", "021 ctl-str", 2609 "022", "023", "024", "025", "026", "027", "030", "031", "032", "033 ESC", 2610 "034", "035", "036", "037", "040 SP", "041 !", "042 """, "043 #", "044 $", 2611 "045 %", "046 &", "047 '", "050 Lp", "051 Rp", "052 *", "053 +", "054 ,", 2612 "055 -", "056 .", "057 /", "060 0", "061 1", "062 2", "063 3", "064 4", 2613 "065 5", "066 6", "067 7", "070 8", "071 9", "072 :", "073 ;", "074 <", 2614 "075 =", "076 >", "077 ?", "100 @", "101 A", "102 B", "103 C", "104 D", 2615 "105 E", "106 F", "107 G", "110 H", "111 I", "112 J", "113 K", "114 L", 2616 "115 M", "116 N", "117 O", "120 P", "121 Q", "122 R", "123 S", "124 T", 2617 "125 U", "126 V", "127 W", "130 X", "131 Y", "132 Z", "133 [", "134 \", 2618 "135 ]", "136 ^", "137 _", "140 `", "141 a", "142 b", "143 c", "144 d", 2619 "145 e", "146 f", "147 g", "150 h", "151 i", "152 j", "153 k", "154 l", 2620 "155 m", "156 n", "157 o", "160 p", "161 q", "162 r", "163 s", "164 t", 2621 "165 u", "166 v", "167 w", "170 x", "171 y", "172 z", "173 {", "174 |", 2622 "175 }", "176 ~", "177 PAD", "200", "201", "202", "203", "204", "205", 2623 "206", "207", "210", "211", "212", "213", "214", "215", "216", "217", 2624 "220", "221", "222", "223", "224", "225", "226", "227", "230", "231", 2625 "232", "233", "234", "235", "236", "237", "240", "241", "242", "243", 2626 "244", "245", "246", "247", "250", "251", "252 mlpy", "253 +_", "254 nabla", 2627 "255 EMdash", "256", "257 slash", "260", "261 dagger", "262", "263", "264", 2628 "265", "266", "267", "270", "271", "272", "273 _|", "274", "275 /=", "276", 2629 "277", "300", "301 dbl dagger", "302", "303 copyright", "304 delta", "305", 2630 "306", "307", "310", "311", "312", "313", "314", "315 bullet", "316||", 2631 "317", "320 PI", "321", "322", "323", "324", "325", "326 therefore", "327", 2632 "330", "331", "332 = ", "333", "334", "335", "336", "337 infinity", "340", 2633 "341", "342", "343", "344", "345", "346", "347", "350", "351", "352 theta", 2634 "353", "354", "355", "356", "357", "360 pi", "361", "362", "363", "364", 2635 "365", "366", "367", "370", "371", "372", "373", "374", "375 square", 2636 "376 overbar", "377 punct SP", "400 superior 0", "401 superior 1", 2637 "402 superior 2", "403 superior 3", "404 superior 4", "405 superior 5", 2638 "406 superior 6", "407 superior 7", "410 superior 8", "411 superior 9", 2639 "412 EM", "413 EM _dash", "414 EN", "415 EN _dash", "416 EN dash", 2640 "417 thin space", "420", "421 ``", "422 ''", "423 1hi X", "424", 2641 "425 v|", "426", "427 dia left", "430 delete mark", "431 dia right", 2642 "432 dia top", "433 <", "434 1hi {", "435 1hi [", "436 left circle", "437", 2643 "440 ->", "441 1hi }", "442 1hi ]", "443 right circle", "444", "445 ^|", 2644 "446", "447", "450", "451", "452", "453", "454", "455", "456", "457", 2645 "460", "461", "462", "463", "464", "465", "466", "467", "470", "471", 2646 "472", "473", "474", "475", "476", "477", "500", "501", "502", "503", 2647 "504", "505", "506", "507", "510", "511", "512", "513", "514", "515", 2648 "516", "517", "520", "521", "522", "523", "524", "525", "526", "527", 2649 "530", "531", "532", "533", "534", "535", "536", "537", "540", "541", 2650 "542", "543", "544", "545", "546", "547", "550", "551", "552", "553", 2651 "554", "555", "556", "557", "560", "561", "562", "563", "564", "565", 2652 "566", "567", "570", "571", "572", "573", "574", "575", "576", "577", 2653 "600", "601", "602", "603", "604", "605", "606", "607", "610", "611", 2654 "612", "613", "614", "615", "616", "617", "620", "621", "622", "623", 2655 "624", "625", "626", "627", "630", "631", "632", "633", "634", "635", 2656 "636", "637", "640", "641", "642", "643", "644", "645", "646", "647", 2657 "650", "651", "652", "653", "654", "655", "656", "657", "660", "661", 2658 "662", "663", "664", "665", "666", "667", "670", "671", "672", "673", 2659 "674", "675", "676", "677", "700", "701", "702", "703", "704", "705", 2660 "706", "707", "710", "711", "712", "713", "714", "715", "716", "717", 2661 "720", "721", "722", "723", "724", "725", "726", "727", "730", "731", 2662 "732", "733", "734", "735", "736", "737", "740", "741", "742", "743", 2663 "744", "745", "746", "747", "750", "751", "752", "753", "754", "755", 2664 "756", "757", "760", "761", "762", "763", "764", "765", "766", "767", 2665 "770", "771", "772", "773", "774", "775", "776", "777"); 2666 /**** format: on */ 2667 2668 dcl (i, j) fixed bin; /* working index */ 2669 dcl oct_p ptr; 2670 dcl jjj fixed bin; 2671 dcl 1 oct based, 2672 2 ct fixed bin (35), 2673 2 e (o_s) fixed bin (35); 2674 dcl o_s fixed bin; 2675 dcl out entry automatic options (variable); 2676 out = ioa_$ioa_switch; /* to shrink the line size below */ 2677 2678 /* This writes things in this sequence: */ 2679 /* 1) "include compdv" */ 2680 /* 2) ({comp_dvid} segdef's)'s */ 2681 /* 3) (comp_dvt member's med_sel)'s */ 2682 /* 4) font's */ 2683 /* 5) sizel's */ 2684 /* 6) strings ... */ 2685 /* 7) "end" */ 2686 2687 if db_sw 2688 then call ioa_ ("===outputter"); 2689 2690 call out (ALM, "^-include^-compdv"); 2691 2692 do dvid_p = dvidl_p (1) repeat (dvid.next) while (dvid_p ^= null ()); 2693 if dvid.real 2694 then 2695 do; 2696 call out (ALM, "^/dvid.^i:", dvid.ndx); 2697 call out (ALM, "^-dvid.version^-^i", comp_dvid_version); 2698 call out (ALM, "^-dvid.devname^-^a,^i", dvid.devname, 2699 length (dvid.devname)); 2700 call out (ALM, "^-dvid.dvt_r^-dvt.^i", dvid.dvt_ndx); 2701 end; 2702 call out (ALM, "^/^-dvid_segdef^-^i,^a", dvid.ndx, dvid.refname); 2703 end; 2704 2705 do dvt_p = dvtl_p (1) repeat (dvt.next) while (dvt_p ^= null ()); 2706 prent_p = dvt.prent; 2707 const.devptr = dvt.ref; 2708 call out (ALM, "^-even^/dvt.^i:", dvt.ndx); 2709 call out (ALM, "^-dvt.devclass^-^a,^i", comp_dvt.devclass, 2710 length (comp_dvt.devclass)); 2711 call out (ALM, "^-dvt.outproc^-^a", prent.outproc); 2712 call out (ALM, "^-dvt.footproc^-^a", prent.footproc); 2713 call out (ALM, "^-dvt.artproc^-^a", prent.artproc); 2714 call out (ALM, "^-dvt.displayproc^-^a", DisplayProc || "$display"); 2715 call out (ALM, "^-dvt.min_WS^-^i", comp_dvt.min_WS); 2716 call out (ALM, "^-dvt.min_lead^-^i", comp_dvt.min_lead); 2717 call out (ALM, "^-dvt.vmt_min^-^i", comp_dvt.vmt_min); 2718 call out (ALM, "^-dvt.vmb_min^-^i", comp_dvt.vmb_min); 2719 call out (ALM, "^-dvt.def_vmt^-^i", comp_dvt.def_vmt); 2720 call out (ALM, "^-dvt.def_vmh^-^i", comp_dvt.def_vmh); 2721 call out (ALM, "^-dvt.def_vmf^-^i", comp_dvt.def_vmf); 2722 call out (ALM, "^-dvt.def_vmb^-^i", comp_dvt.def_vmb); 2723 call out (ALM, "^-dvt.pdw_max^-^i", comp_dvt.pdw_max); 2724 call out (ALM, "^-dvt.pdl_max^-^i", comp_dvt.pdl_max); 2725 call out (ALM, "^-dvt.upshift^-^i", comp_dvt.upshift); 2726 call out (ALM, "^-dvt.init_ps^-^i", comp_dvt.init_ps); 2727 call out (ALM, "^-dvt.lettersp^-^i", comp_dvt.lettersp); 2728 call out (ALM, "^-dvt.max_pages^-^i", comp_dvt.max_pages); 2729 call out (ALM, "^-dvt.max_files^-^i", comp_dvt.max_files); 2730 call out (ALM, "^-dvt.init_fam^-^i", comp_dvt.init_fam); 2731 call out (ALM, "^-dvt.init_mem^-^i", comp_dvt.init_mem); 2732 call out (ALM, "^-dvt.foot_fam^-^i", comp_dvt.foot_fam); 2733 call out (ALM, "^-dvt.foot_mem^-^i", comp_dvt.foot_mem); 2734 call out (ALM, "^-dvt.init_family^-^a,^i", comp_dvt.init_family, 2735 length (comp_dvt.init_family)); 2736 call out (ALM, "^-dvt.init_member^-^a,^i", comp_dvt.init_member, 2737 length (comp_dvt.init_member)); 2738 call out (ALM, "^-dvt.atd_r^2-^a", fmt_str_r (comp_dvt.atd_r)); 2739 call out (ALM, "^-dvt.dvc_r^2-dvc^.3b", comp_dvt.dvc_r); 2740 call out (ALM, "^-dvt.comment_r^-^a", fmt_str_r (comp_dvt.comment_r)); 2741 call out (ALM, "^-dvt.cleanup_r^-^a", fmt_str_r (comp_dvt.cleanup_r)); 2742 call out (ALM, "^-dvt.medsel_table_r^-med_sel.^d", dvt.ndx); 2743 call out (ALM, "^-dvt.foot_family^-^a,^i", comp_dvt.foot_family, 2744 length (comp_dvt.foot_family)); 2745 call out (ALM, "^-dvt.foot_member^-^a,^i", comp_dvt.foot_member, 2746 length (comp_dvt.foot_member)); 2747 call out (ALM, "^-dvt.sws^2-^w", string (comp_dvt.sws)); 2748 call out (ALM, "^-dvt.open_mode^-.^[str^;seq^]_out.", 2749 (comp_dvt.open_mode = 2)); 2750 call out (ALM, "^-dvt.recleng^-^i", comp_dvt.recleng); 2751 call out (ALM, "^-dvt.family_ct^-^i", comp_dvt.family_ct); 2752 2753 do family_i = 1 to comp_dvt.family_ct; 2754 mem_p = ptr (area1_p, comp_dvt.family (family_i).member_r); 2755 call out (ALM, "^-dvt..member_r^-mem.^d", mem.refno); 2756 call out (ALM, "^-dvt..name^2-^a,^i", comp_dvt.family (family_i).name, 2757 32); 2758 end; 2759 2760 call out (ALM, "^/med_sel.^i:", dvt.ndx); 2761 call out (ALM, "^-med_sel_tab.count^-^i", view.count); 2762 do med_sel_i = 1 to view.count; 2763 call out (ALM, "^-med_sel_tab..ref_r^-^a^-^i", 2764 fmt_str_r (med_sel_tab.ref_r (med_sel_i)), med_sel_i); 2765 end; 2766 end; 2767 2768 do mem_p = meml_p (1) repeat (mem.next) while (mem_p ^= null ()); 2769 if mem.refno = mem.seqno 2770 then 2771 do; 2772 member_ptr = mem.ref_p; 2773 call out (ALM, "mem.^d:", mem.seqno); 2774 call out (ALM, "^-member.count^-^i", member.count); 2775 do mem_i = 1 to member.count; 2776 fnt_p = ptr (area2_p, member.font_r (mem_i)); 2777 call out (ALM, "^-member..font_r^-f.^i", fnt.refno); 2778 call out (ALM, "^-member..size_r^-size.^i", 2779 addr (member.size_r (mem_i)) -> bfb); 2780 call out (ALM, "^-member..Scale^-^i,^i", member.Scalex (mem_i), 2781 member.Scaley (mem_i)); 2782 call out (ALM, "^-member..name^-^a,^i", member.name (mem_i), 2783 length (member.name (mem_i))); 2784 end; 2785 end; 2786 end; 2787 2788 call out (ALM, "^|"); /* eject page before fonts */ 2789 do fnt_p = fntl_p (1) repeat (fnt.next) while (fnt_p ^= null ()); 2790 font_ptr = fnt.pt; 2791 uni_p = ptr (fnt.pt, font.units_r); 2792 opu_p = ptr (fnt.pt, font.oput_r); 2793 call out (ALM, "f.^i:^2-""^a", fnt.refno, fnt.name); 2794 call out (ALM, "^-font.oput_r^-opu.^i", opu.refno); 2795 call out (ALM, "^-font.units_r^-uni.^i", uni.refno); 2796 call out (ALM, "^-font.rel_units^-^i", font.rel_units); 2797 call out (ALM, "^-font.footsep^-(^1a)", font.footsep); 2798 call out (ALM, "^-font.fill^- "); 2799 call out (ALM, "^-font.min_wsp^-^i", font.min_wsp); 2800 call out (ALM, "^-font.avg_wsp^-^i", font.avg_wsp); 2801 call out (ALM, "^-font.max_wsp^-^i", font.max_wsp); 2802 end; 2803 2804 do uni_p = unil_p (1) repeat (uni.next) while (uni_p ^= null ()); 2805 if uni.refno = uni.seqno 2806 then 2807 do; 2808 call out (ALM, "uni.^i:", uni.seqno); 2809 units_ptr = uni.ref_p; 2810 mediawidth = units (0); 2811 dup_ct = 1; 2812 do i = 1 to 511; 2813 if (mediawidth = units (i)) 2814 then dup_ct = dup_ct + 1; 2815 else 2816 do; 2817 call out (ALM, "^-units (^i),^[0^;^i^]", dup_ct, 2818 (mediawidth = nulwidth), mediawidth); 2819 mediawidth = units (i); 2820 dup_ct = 1; 2821 end; 2822 end; 2823 call out (ALM, "^-units (^i),^[0^;^i^]", dup_ct, 2824 (mediawidth = nulwidth), mediawidth); 2825 end; 2826 end; 2827 2828 do opu_p = opul_p (1) repeat (opu.next) while (opu_p ^= null ()); 2829 if opu.refno = opu.seqno 2830 then 2831 do; 2832 call out (ALM, "opu.^i:", opu.seqno); 2833 oput_p = opu.ref_p; 2834 call out (ALM, "^-oput.data_ct^-^i", oput.data_ct); 2835 skip_ct = 0; 2836 do i = 0 to oput.data_ct; 2837 if (oput.what_r (i) = "0"b) 2838 then skip_ct = skip_ct + 1; 2839 else 2840 do; 2841 if (skip_ct > 0) 2842 then call out (ALM, "^-no_ch (^i)", skip_ct); 2843 skip_ct = 0; 2844 call out (ALM, "^-ch ^i,^a [^[null^s^;^i^]]^-^a", 2845 oput.which (i), fmt_str_r ((oput.what_r (i))), 2846 (units (i) = nulwidth), units (i), bitname (i)); 2847 end; 2848 end; 2849 end; 2850 end; 2851 2852 do i = 1 to size_list.count; 2853 sizel_p = size_list.pt (i); 2854 call out (ALM, "^/size.^i:", i); 2855 call out (ALM, "^-sizel.val_ct^-^i", sizel.val_ct); 2856 do j = 1 to sizel.val_ct; 2857 call out (ALM, "^-sizel..val^-^d", sizel.val (j)); 2858 end; 2859 end; 2860 2861 call out (ALM, "^/.nul_str.:^-zero"); 2862 do j = 2 to string_l (2); 2863 oct_p = strl_p (2, j); 2864 o_s = divide (oct_p -> bstr.leng + 3, 4, 17, 0); 2865 if j = 2 2866 then call out (ALM, "^/str:^-dec^-^d", oct_p -> oct.ct); 2867 else call out (ALM, "^/^-dec^-^d^2-^a", oct_p -> oct.ct, 2868 fmt_str_r (rel (oct_p))); 2869 do jjj = 1 to o_s; 2870 call out (ALM, "^-oct^-^w^-^a", oct_p -> oct.e (jjj), 2871 fmt_str_cmt (oct_p -> oct.e (jjj), 2872 oct_p -> oct.ct - 4 * (jjj - 1))); 2873 end; 2874 end; 2875 2876 call out (ALM, "^/^-end"); 2877 2878 end outputter; 2879 2880 /**** +++ OUTPUTTER UTILITY: FMT_STR_CMT ++++++++++++++++++++++++++++++++++ */ 2881 2882 fmt_str_cmt: 2883 proc (Oct, Len) returns (char (4) aligned); 2884 2885 dcl Oct fixed bin (35); 2886 dcl Len fixed bin; 2887 dcl idx fixed bin; 2888 dcl str char (4) aligned; 2889 2890 unspec (str) = unspec (Oct); 2891 if Len < 4 2892 then substr (str, Len + 1) = ""; 2893 2894 do idx = 1 to min (4, Len); 2895 if substr (str, idx, 1) = ";" 2896 | rank (substr (str, idx, 1)) < rank (" ") 2897 | rank (substr (str, idx, 1)) > rank ("~") 2898 then substr (str, idx, 1) = "."; 2899 end; 2900 2901 return (str); 2902 2903 end fmt_str_cmt; 2904 2905 /**** +++ OUTPUTTER UTILITY: FMT_STR_R +++++++++++++++++++++++++++++++++++++ */ 2906 2907 fmt_str_r: 2908 proc (Rel) returns (char (9)); 2909 2910 dcl Rel bit (18) aligned; 2911 dcl pic picture "99999"; 2912 2913 if Rel = ""b 2914 then return (".no_repl."); 2915 2916 if Rel = rel (strl_p (2, 1)) 2917 then return (".nul_str."); 2918 2919 pic = binary (Rel, 18) - wordno (strl_p (2, 2)); 2920 return ("str+" || pic); 2921 2922 end fmt_str_r; 2923 2924 /**** +++[Syntax Function]++++++++++ PART ++++++++++++++++++++++++++++++++++ */ 2925 2926 part: 2927 proc returns (bit (1) aligned); 2928 2929 /**** format: off */ 2930 dcl art_tokens char (388) init /* token string */ 2931 ("[ ] { } ( ) | || o / X d m \ c t " || 2932 "v ^ <- -> D^ D< D> Dv Clf Crt -str-rul-stp|rul/rul\rul" || 2933 "[tp ]tp {tp }tp lptprptp|tp ||tp[ht ]ht {ht }ht lphtrpht|ht ||ht" || 2934 "[md ]md {md }md lpmdrpmd|md ||md[hb ]hb {hb }hb lphbrphb|hb ||hb" || 2935 "[bt ]bt {bt }bt lpbtrpbt|bt ||bt[fl ]fl {fl }fl lpflrpfl|fl ||fl" || 2936 "PI pi bxtlbxt bxtrbxl bxx bxr bxblbxb bxbrlztllztrlzl lzr lzbllzbr"); 2937 dcl art_codes (97) char (1) init /* codes */ 2938 (art.one (1), art.one (2), art.one (3), art.one (4), art.one (5), 2939 art.one (6), art.one (7), art.one (8), art.one (9), art.one (10), 2940 art.one (11), art.one (12), art.one (13), art.lslnt, cright, tmark, 2941 art.daro, art.uparo, art.laro, art.raro, art.diam.top, art.diam.lvert, 2942 art.diam.rvert, art.diam.bottom, art.lcirc, art.rcirc, art.horiz.start, 2943 art.horiz.line, art.horiz.term, art.vpart, art.rslnt, art.lslnt, 2944 art.top (1), art.top (2), art.top (3), art.top (4), art.top (5), 2945 art.top (6), art.top (7), art.top (8), art.half_top (1), art.half_top (2), 2946 art.half_top (3), art.half_top (4), art.half_top (5), art.half_top (6), 2947 art.half_top (7), art.half_top (8), art.middle (1), art.middle (2), 2948 art.middle (3), art.middle (4), art.middle (5), art.middle (6), 2949 art.middle (7), art.middle (8), art.half_bottom (1), art.half_bottom (2), 2950 art.half_bottom (3), art.half_bottom (4), art.half_bottom (5), 2951 art.half_bottom (6), art.half_bottom (7), art.half_bottom (8), 2952 art.bottom (1), art.bottom (2), art.bottom (3), art.bottom (4), 2953 art.bottom (5), art.bottom (6), art.bottom (7), art.bottom (8), 2954 art.other_part (1), art.other_part (2), art.other_part (3), 2955 art.other_part (4), art.other_part (5), art.other_part (6), 2956 art.other_part (7), art.other_part (8), art.PI, art.pi, 2957 art.box.tl, art.box.t, art.box.tr, art.box.l, art.box.x, art.box.r, 2958 art.box.bl, art.box.b, art.box.br, art.loz.tl, art.loz.tr, 2959 art.loz.l, art.loz.r, art.loz.bl, art.loz.br); 2960 /**** format: on */ 2961 2962 dcl i fixed bin; /* working index */ 2963 dcl part_token char (4); /* token expanded to 4 chars */ 2964 2965 part_token = token_value; /* copy the token */ 2966 2967 i = index (art_tokens, part_token); /* scan art tokens */ 2968 if i > 0 /* found? */ 2969 then 2970 do; 2971 i = divide (i, 4, 17, 0) + 1; /* calculate code index */ 2972 Input = art_codes (i); /* fetch the code */ 2973 if dt_sw 2974 then call ioa_$nnl (""); 2975 return ("1"b); /* return true */ 2976 end; 2977 2978 else return ("0"b); 2979 end part; 2980 2981 /**** +++[Debug Routine]+++++++++ PUSH/POP +++++++++++++++++++++++++++++++++ */ 2982 /* */ 2983 2984 dcl Stack (20) char (16); 2985 2986 2987 /**** +++[Function]++++++++++++++ SCALE_UNIT +++++++++++++++++++++++++++++++ */ 2988 /* */ 2989 /* convert units to millipoints */ 2990 2991 scale_unit: 2992 proc (the_scale) returns (fixed bin (31)); 2993 2994 dcl the_scale fixed bin (31); 2995 dcl (pi, pt) char (10); 2996 2997 if (the_scale > 0) /* not pica/point form */ 2998 then return (the_scale * bin (before (token_value, ".")) 2999 + 3000 divide (the_scale 3001 * bin (substr (after (token_value, ".") || "000", 1, 3)), 1000, 3002 17, 0)); 3003 3004 return (hscales (5) * bin (before (token_value, ".")) 3005 + hscales (6) * bin (after (token_value, "."))); 3006 3007 end scale_unit; 3008 3009 /**** +++[Syntax Function]++++++++ SIZENAME ++++++++++++++++++++++++++++++++ */ 3010 3011 sizename: 3012 proc returns (bit (1) aligned); 3013 3014 dcl i fixed bin; 3015 3016 do i = 1 to size_list.count; /* scan sizetable names */ 3017 if size_list.name (i) = token_value 3018 then 3019 do; 3020 token.Nvalue = i; /* set index value */ 3021 if dt_sw 3022 then call ioa_$nnl (""); 3023 return ("1"b); 3024 end; 3025 end; 3026 3027 return ("0"b); 3028 end sizename; 3029 3030 /**** +++[Function]++++++++++++++ SHOW_NAME ++++++++++++++++++++++++++++++++ */ 3031 /* */ 3032 /* converts a MediaChar name into display form if needed. */ 3033 show_name: 3034 proc (str) returns (char (32)); 3035 3036 dcl str char (*); 3037 3038 dcl bits (3) bit (3) unal; 3039 dcl bins (3) fixed bin (3) unsigned unal based (addr (bits)); 3040 3041 if (substr (str, 1, 1) ^= "[") 3042 then return (str); 3043 if (substr (str, 2, 1) > " ") & (substr (str, 2, 1) <= "~") 3044 then return ("""" || substr (str, 2, 1) || """"); 3045 string (bits) = unspec (substr (str, 2, 1)); 3046 return (substr ("01234567", bins (1) + 1, 1) 3047 || substr ("01234567", bins (2) + 1, 1) 3048 || substr ("01234567", bins (3) + 1, 1)); 3049 3050 end show_name; 3051 3052 /**** +++[Syntax Function]+++++++++ SWITCH +++++++++++++++++++++++++++++++++ */ 3053 /* */ 3054 /* check for on/off */ 3055 /* SETS: token.Nvalue - 0 (off) 1 (on) */ 3056 switch: 3057 proc returns (bit (1) aligned); 3058 3059 if token_value = "on" 3060 then token.Nvalue = 1; 3061 else if token_value = "off" 3062 then token.Nvalue = 0; 3063 else return ("0"b); 3064 if dt_sw 3065 then call ioa_$nnl (""); 3066 return ("1"b); 3067 3068 end switch; 3069 3070 /**** +++[Syntax Function]+++++++ TABLE_NAME +++++++++++++++++++++++++++++++ */ 3071 3072 table_name: 3073 proc returns (bit (1) aligned); 3074 3075 dcl i fixed bin; /* scan dvid list names */ 3076 do dvid_p = dvidl_p (1) repeat (dvid.next) while (dvid_p ^= null ()); 3077 if dvid.refname = token_value 3078 then 3079 do; 3080 if dvid.dvt_ndx = dvt_ct + 1 3081 then 3082 do; 3083 call ERROR (circular_Device_def); 3084 return ("0"b); 3085 end; 3086 token.Nvalue = dvid.dvt_ndx; /* set index value */ 3087 if dt_sw 3088 then call ioa_$nnl (""); 3089 return ("1"b); 3090 end; 3091 end; 3092 return ("0"b); 3093 3094 end table_name; 3095 3096 /**** +++[Syntax Function]++++++++ UNITKEY +++++++++++++++++++++++++++++++++ */ 3097 3098 unitkey: 3099 proc returns (bit (1) aligned); 3100 3101 dcl i fixed bin; /* working index */ 3102 dcl unit_key_list (7) char (2) /* list of Units keywords */ 3103 static options (constant) 3104 init ("pi", "el", "in", "mm", "pc", "pt", "pp"); 3105 3106 do i = 1 to hbound (unit_key_list, 1) 3107 while (token_value ^= unit_key_list (i)); 3108 end; 3109 3110 if i > hbound (unit_key_list, 1) 3111 then 3112 do; 3113 call ERROR (inv_Units_keyword); 3114 return ("0"b); 3115 end; 3116 3117 token.Nvalue = i; 3118 if dt_sw 3119 then call ioa_$nnl (""); 3120 return ("1"b); 3121 3122 end unitkey; 3123 3124 /**** +++[Syntax Function]+++ VALID_DEVICE_NAME ++++++++++++++++++++++++++++ */ 3125 /* */ 3126 /* Test for token being a valid Device name, i.e. an which is not */ 3127 /* already defined as a Device name. */ 3128 3129 valid_Device_name: 3130 proc returns (bit (1) aligned); 3131 3132 if ^ident_ () 3133 then return ("0"b); 3134 do dvid_p = dvidl_p (1) repeat (dvid.next) while (dvid_p ^= null ()); 3135 if token_value = dvid.refname 3136 then 3137 do; 3138 call ERROR (dup_Device); 3139 return ("0"b); 3140 end; 3141 end; 3142 if dt_sw 3143 then call ioa_$nnl (""); 3144 return ("1"b); 3145 3146 end valid_Device_name; 3147 3148 /**** +++[Syntax Function]+++ VALID_MEDIA_NAME ++++++++++++++++++++++++++++ */ 3149 /* */ 3150 /* Test for token being a valid Media name, i.e. an which is not */ 3151 /* already defined as a Media name. */ 3152 3153 valid_Media_name: 3154 proc returns (bit (1) aligned); 3155 3156 if ^ident_ () 3157 then return ("0"b); 3158 do i = 1 to media.count; 3159 if (media.name (i) = token_value) 3160 then 3161 do; 3162 call ERROR (dup_Media); 3163 return ("0"b); 3164 end; 3165 end; 3166 if dt_sw 3167 then call ioa_$nnl (""); 3168 return ("1"b); 3169 3170 end valid_Media_name; 3171 3172 save_unref: 3173 if "0"b 3174 then call a_debug; 3175 goto save_unref; 3176 3177 dbs: 3178 entry (xxxx); 3179 db_start = xxxx; 3180 return; 3181 dcl xxxx char (*); 3182 3183 dbn: 3184 entry; 3185 db_sw = "1"b; 3186 return; 3187 dbf: 3188 entry; 3189 db_sw = "0"b; 3190 return; 3191 3192 dtn: 3193 entry; 3194 dt_sw = "1"b; 3195 return; 3196 dtf: 3197 entry; 3198 dt_sw = "0"b; 3199 return; 3200 3201 trn: 3202 entry; 3203 tr_sw = "1"b; 3204 return; 3205 trf: 3206 entry; 3207 tr_sw = "0"b; 3208 return; 3209 3210 /* +++++++++++++++++++++++++++ LOOSE VARIABLES +++++++++++++++++++++++++++++ */ 3211 3212 dcl ALM ptr init (null ()); 3213 /* iocb pointer for alm output file */ 3214 dcl arg char (argl) based (argp); 3215 /* a command line argument */ 3216 dcl argl fixed bin; /* length of arg */ 3217 dcl argp ptr; /* pointer to arg */ 3218 dcl ArtEntry char (32) var init ("artproc"); 3219 /* artwork proc entry */ 3220 dcl ArtProc char (32) varying; 3221 /* artwork procedure entryname */ 3222 dcl Atd_r bit (18) init ("000000"b3); 3223 /* default attach descr relp */ 3224 dcl attach char (256) var; 3225 dcl AvgWordsp fixed bin init (-1); 3226 /* global average wordspace */ 3227 dcl az_AZ09 char (64) int static options (constant) 3228 init ("abcdefghijklmnopqrstuvwxyz_" 3229 || "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"); 3230 dcl bach_sw bit (1); 3231 dcl bfb fixed bin (35) based aligned; 3232 dcl bpptr ptr based; 3233 dcl breaks char (128) var static; 3234 /* control string for lex_string_ */ 3235 dcl ch1 char (1); 3236 dcl char_val fixed bin; 3237 dcl charid fixed bin; 3238 dcl charid_ fixed bin; 3239 dcl check_opt bit (1) static; /* check mode flag */ 3240 dcl cleanup condition; 3241 dcl code fixed bin (35); 3242 dcl Com_r bit (18); 3243 dcl Clean_r bit (18); 3244 dcl db_start char (12) int static init (""); 3245 dcl db_sw bit (1) int static init ("0"b); 3246 dcl dclname char (8); 3247 dcl default_view fixed bin; 3248 dcl DefVmt fixed bin (31) init (48000); 3249 dcl DefVmh fixed bin (31) init (24000); 3250 dcl DefVmf fixed bin (31) init (24000); 3251 dcl DefVmb fixed bin (31) init (48000); 3252 dcl DevClass char (24) init ("typewriter"); 3253 /* default device class */ 3254 dcl Device_Pthis_token 3255 ptr; 3256 dcl DevName char (24) init ("ascii"); 3257 /* default device name */ 3258 dcl dname char (168); /* name of dir containing ename */ 3259 dcl done bit (1); 3260 dcl dt_sw bit (1); 3261 dcl dup_ct fixed bin; 3262 dcl dvt_i fixed bin; 3263 dcl ename char (32); /* input entryname (no suffix) */ 3264 dcl EndPage bit (9) init ("0"b); 3265 dcl ercd fixed bin (35); /* error code */ 3266 dcl family_i fixed bin; 3267 dcl fd12_8 fixed dec (12, 8); 3268 dcl first_time bit (1) static init ("1"b); 3269 /* initing control switch */ 3270 dcl first_token_p ptr; 3271 dcl font_fam char (32); 3272 dcl font_mem char (32); 3273 dcl FootEntry char (32) varying/* footnote procedure entrypoint */ 3274 init ("footproc"); 3275 dcl footentry char (32); 3276 dcl FootFamily char (32); /* global footnote font family name */ 3277 dcl footfamily char (32); 3278 dcl FootMember char (32); /* global footnote font member name */ 3279 dcl footmember char (32); 3280 dcl FootProc char (32) varying; 3281 /* footnote procedure entryname */ 3282 dcl Footsep char (1) init (","); 3283 dcl held_Pthis_token 3284 ptr; 3285 dcl hold_Pthis_token 3286 ptr; 3287 dcl Hscale fixed bin (31); /* global hor scale */ 3288 dcl hscale fixed bin (31); /* local hor scale */ 3289 dcl hscales (7) fixed bin (31) 3290 /* hor scale factors */ 3291 static options (constant) 3292 init (7200, 6000, 72000, 2834.65, 12000, 1000, 0); 3293 dcl i fixed bin; 3294 dcl ignored_breaks char (128) var static; 3295 /* control string for lex_string_ */ 3296 dcl ii fixed bin; 3297 dcl iii fixed bin; 3298 dcl initfamily char (32); 3299 dcl initmember char (32); 3300 dcl Input char (1); 3301 dcl input_bitcount fixed bin (24); /* bit count for ename segment */ 3302 dcl input_charcount 3303 fixed bin (24); /* char count for ename segment */ 3304 dcl input_file char (input_charcount) 3305 /* source file overlay */ 3306 based (input_ptr); 3307 dcl input_ptr ptr; /* point to ename segment */ 3308 dcl Interleave bit (1) init ("0"b); 3309 dcl j fixed bin; 3310 dcl jj fixed bin; 3311 dcl Justify bit (1) init ("0"b); 3312 dcl Letterspace fixed bin (31) init (0); 3313 dcl lex_ctl_chars char (128) var static; 3314 /* control string for lex_string_ */ 3315 dcl lex_delims char (128) var static; 3316 /* control string for lex_string_ */ 3317 dcl lex_temp_ptr ptr init (null ()); 3318 /* temp seg for lex_string_ */ 3319 dcl like_table fixed bin; 3320 dcl list_ndx fixed bin; 3321 dcl list_opt bit (1); /* list option flag */ 3322 /* font locator */ 3323 dcl loc_font fixed bin (35) based; 3324 dcl ( 3325 MaxFiles, /* global maximum file/reel */ 3326 MaxWordsp, /* global maximum wordspace */ 3327 MaxPages, /* global maximum pages/file */ 3328 MaxPageLength 3329 ) fixed bin (31) init (-1); 3330 dcl MaxPageWidth fixed bin (31) init (979200); 3331 dcl media1 char (32); 3332 dcl media2 char (32); 3333 dcl mediabase fixed bin; 3334 dcl mediact fixed bin; 3335 dcl mediawidth fixed bin; 3336 dcl media_ char (32); 3337 dcl media_i fixed bin; 3338 dcl 1 member_hold like member.e; 3339 dcl mem_i fixed bin; 3340 dcl med_sel_i fixed bin; 3341 dcl MinLead fixed bin (31) init (7200); 3342 /* global minimum lead */ 3343 dcl MinSpace fixed bin (31) init (7200); 3344 dcl MinWordsp fixed bin init (-1); 3345 /* global minimum wordspace */ 3346 dcl MinVmb fixed bin (31) init (0); 3347 dcl MinVmt fixed bin (31) init (0); 3348 dcl mw fixed bin; 3349 dcl nargs fixed bin; /* command line arg count */ 3350 dcl new_family bit (1); 3351 dcl new_member fixed bin; 3352 dcl next_dcl_p ptr; 3353 dcl next_str_p ptr; 3354 dcl nulwidth fixed bin int static options (constant) init (-100000); 3355 dcl o777 char (1) int static options (constant) init ("ÿ"); 3356 dcl Openmode fixed bin init (5); 3357 /* opening mode for compout file */ 3358 dcl OutEntry char (32) var; 3359 dcl OutProc char (32) var; 3360 dcl DisplayProc char (32) var; 3361 dcl parenct fixed bin; /* next 4 vars for "n(medchars)" */ 3362 /* and "n(output)" */ 3363 dcl part_repl (10) fixed bin; /* replication count for a part */ 3364 dcl part_str (10) char (400) var; 3365 /* the string for a part */ 3366 dcl part_width (10) fixed bin; /* the width of a part */ 3367 dcl part_nest fixed bin; /* nesting of parts */ 3368 dcl Scale_scale fixed bin (35) int static options (constant) 3369 init (100000000); 3370 dcl Scale_x fixed bin (35); 3371 dcl Scale_y fixed bin (35); 3372 dcl self_sw bit (1); 3373 dcl self_ct fixed bin; /* number of SELFs in mediachar list */ 3374 dcl self_i (16) fixed bin; /* location of these SELFs */ 3375 dcl Sizes fixed bin init (0); 3376 dcl skip_ct fixed bin; 3377 dcl string_l (2) fixed bin init (0, 0); 3378 dcl Strokes fixed bin init (1); 3379 dcl TapeRec fixed bin init (-1); 3380 dcl testwidth fixed bin; 3381 dcl the_font ptr; 3382 dcl the_string char (8000) var; 3383 dcl the_string_r bit (18) aligned;/* offset in string table */ 3384 dcl this_view fixed bin; 3385 dcl top_dcl_p ptr init (null ()); 3386 dcl tp ptr; 3387 dcl tr_sw bit (1) int static init ("0"b); 3388 dcl vals_ct fixed bin; /* count of entries in vals array */ 3389 dcl vals (1:512) fixed bin; 3390 dcl views_selected fixed bin; 3391 dcl viewname char (32); 3392 dcl Vscale fixed bin (31); /* global vertical scale */ 3393 dcl vscale fixed bin (31); /* local vertical scale */ 3394 dcl vscales (7) fixed bin (31) 3395 /* vertical scale factors */ 3396 static options (constant) 3397 init (12000, 9000, 72000, 2834.65, 12000, 1000, 0); 3398 dcl Wordspace_p ptr init (null ()); 3399 3400 dcl (addr, addrel, after, before, bin, bit, byte, collate, convert, copy, 3401 dec, dimension, divide, fixed, hbound, index, length, ptr, rel, size, 3402 unspec, verify, max, null, rank, rtrim, search, string, substr, 3403 translate) builtin; 3404 3405 /* ++++++++++++++++++ ERROR CODES & EXTERNAL PROCEDURES ++++++++++++++++++++ */ 3406 3407 dcl error_table_$badopt 3408 fixed bin (35) ext static; 3409 dcl error_table_$namedup 3410 fixed bin (35) ext static; 3411 dcl error_table_$segnamedup 3412 fixed bin (35) ext static; 3413 dcl error_table_$zero_length_seg 3414 fixed bin (35) ext static; 3415 3416 dcl alm entry options (variable); 3417 dcl az char (26) int static 3418 init ("abcdefghijklmnopqrstuvwxyz"); 3419 dcl AZ char (26) int static 3420 init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 3421 dcl com_err_ entry options (variable); 3422 dcl cu_$arg_count entry (fixed bin); 3423 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed (35)); 3424 dcl delete_$path entry (char (*), char (*), bit (6) aligned, char (*), 3425 fixed bin (35)); 3426 dcl expand_pathname_$add_suffix 3427 entry (char (*), char (*), char (*), char (*), 3428 fixed (35)); 3429 dcl get_temp_segments_ 3430 entry (char (*), (*) ptr, fixed bin (35)); 3431 dcl get_wdir_ entry returns (char (168)); 3432 dcl hcs_$chname_file 3433 entry (char (*), char (*), char (*), char (*), 3434 fixed bin (35)); 3435 dcl hcs_$initiate_count 3436 entry (char (*), char (*), char (*), fixed bin (24), 3437 fixed bin (2), ptr, fixed bin (35)); 3438 dcl hcs_$terminate_noname 3439 entry (ptr, fixed bin (35)); 3440 dcl ioa_$ioa_switch 3441 entry options (variable); 3442 dcl iox_$attach_name 3443 entry (char (*), ptr, char (*), ptr, fixed bin (35)); 3444 dcl iox_$close entry (ptr, fixed bin (35)); 3445 dcl iox_$detach_iocb 3446 entry (ptr, fixed bin (35)); 3447 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 3448 dcl lex_string_$init_lex_delims 3449 entry (char (*), char (*), char (*), char (*), char (*), 3450 bit (*), char (*) var, char (*) var, char (*) var, 3451 char (*) var); 3452 dcl lex_string_$lex 3453 entry (ptr, fixed bin (24), fixed bin (24), ptr, 3454 bit (*), char (*), char (*), char (*), char (*), 3455 char (*), char (*) var, char (*) var, char (*) var, 3456 char (*) var, ptr, ptr, fixed bin (35)); 3457 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 3458 dcl release_temp_segments_ 3459 entry (char (*), (*) ptr, fixed bin (35)); 3460 dcl search_paths_$find_dir 3461 entry (char (*), ptr, char (*), char (*), char (*), 3462 fixed (35)); 3463 dcl translator_temp_$get_segment 3464 entry (char (*), ptr, fixed bin (35)); 3465 dcl translator_temp_$release_all_segments 3466 entry (ptr, fixed bin (35)); 3467 3468 /* ++++++++++++++++++++++++++++++ STRUCTURES +++++++++++++++++++++++++++++++ */ 3469 3470 dcl temp_ptrs (4) ptr init ((4) null ()); 3471 3472 /* These 4 segments are used to hold these structures (in order): */ 3473 /* 1 2 3 4 */ 3474 /* strl_p bstr dcl_ */ 3475 /* mediachars */ 3476 /* media */ 3477 /* view */ 3478 /* Def */ 3479 /* fnt, font, units, oput ... */ 3480 /* size_list, sizel... */ 3481 /* mem dvid..., dvt, med_sel, comp_dvt ... */ 3482 3483 dcl strl_p (2, 2000) ptr based (temp_ptrs (1)); 3484 /* list of strings */ 3485 dcl string_area_p ptr defined (temp_ptrs (2)); 3486 /* place to hold strings */ 3487 dcl area1_p ptr defined (temp_ptrs (3)); 3488 dcl area2_p ptr defined (temp_ptrs (4)); 3489 dcl area_free_p ptr; /* next free location in area2 */ 3490 3491 dcl size_list_p ptr; 3492 dcl 1 size_list based (size_list_p), 3493 2 count fixed bin, 3494 2 free ptr, /* where to put next list */ 3495 2 e (50), 3496 3 name char (32), /* name of size list */ 3497 3 pt ptr, /* point to size list */ 3498 2 start ptr; /* start of list area */ 3499 3500 /* COMPDV/COMP_DSM STRUCTURE INTERCONNECTION */ 3501 3502 /* TABLES USED BY compdv WHILE PARSING, */ 3503 /* NAMES MARKED WITH * ARE internal ONLY */ 3504 /* Tables are generally shown in order generated */ 3505 /* (except for strings, which crop up all over) */ 3506 3507 /*++ 3508*/* dcl_l_p(1)>----+ */ 3509 /* dcl_l_p(2)>-+ | dcls are made first. */ 3510 /* | | dcl_* They are strings which */ 3511 /* | | ________ are referenced by name */ 3512 /* | +->|next >--+ as an aid to understanding */ 3513 /* | |dcl_name| | the DSM definition. They */ 3514 /* | |leng | | are not necessary to do */ 3515 /* | |dcl_v | | the job. */ 3516 /* | |________| | */ 3517 /* | +--------------+ Strings used by mediachars are */ 3518 /* | | dcl_* temporary, i.e. only used by compdv, */ 3519 /* | | ________ pointers to these go in strl_p(1,*). */ 3520 /* | +->|next >--+ */ 3521 /* | |dcl_name| | Strings used by font, cleanup, etc. */ 3522 /* | |leng | | are permanent, i.e. they end up in */ 3523 /* | |dcl_v | | the DSM, pointers to these go in */ 3524 /* | |________| | strl_p(2,*). */ 3525 /* | +--------------+ */ 3526 /* | | dcl_* strl_p* */ 3527 /* | | ________ _________ bstr* */ 3528 /* +--+->|next >null |1,1 |2,1 >... ____ */ 3529 /* |dcl_name| |1,2 |2,2 >-------->|leng| */ 3530 /* |leng | . . . |str | */ 3531 /* |dcl_v | : : : |____| */ 3532 /* |________| */ 3533 3534 dcl str_p ptr; 3535 dcl 1 bstr based (str_p), /* based string used for building */ 3536 2 leng fixed bin, /* pseudo-char_var strings */ 3537 2 str char (bstr.leng), 3538 2 dummy bit (36) aligned;/* where next structure will go */ 3539 3540 dcl dcl_l_p (2) ptr; /* dcl_ list begin/end */ 3541 dcl dcl_p ptr; 3542 dcl 1 dcl_ based (dcl_p), /* ** symbol declaration */ 3543 2 next ptr, /* linked list next element */ 3544 2 dcl_name char (8), /* declared name */ 3545 2 leng fixed bin, /* length of definition string */ 3546 2 dcl_v char (dcl_.leng),/* symbol definition string */ 3547 2 dummy ptr; /* where next one is based */ 3548 3549 /* mediachars* */ 3550 /* _______ Next, all mediachars are defined */ 3551 /* |count=n|__ in terms of dcl'ed symbols or */ 3552 /* (1)|name|out_r>----------+ literals. */ 3553 /* (2)|name|out_r>... | bstr* */ 3554 /* . . . | ____ */ 3555 /* : : : +---------------------------->|leng| */ 3556 /* (n)|name|out_r>... |str | */ 3557 /* |____|_____| |____| */ 3558 dcl mediachars_p ptr; 3559 dcl 1 mediachars based (mediachars_p), 3560 2 count fixed bin, /* how many have been defined */ 3561 2 e (mediachars.count), 3562 3 name char (32), /* name of the char */ 3563 3 out_r bit (18) aligned;/* output string to get it */ 3564 3565 /* media* 3566*/* _______ Then, all media are */ 3567 /* ______|count=m|_________ ... ______ described in terms of the */ 3568 /* (1)|name|rel_units|w11 |w12 |... |w1n | mediachars, with the */ 3569 /* (2)|name|rel_units|w21 |w22 |... | @ | widths being defined for */ 3570 /* . . . . . . . each. Values might not */ 3571 /* : : : : : : : exist for all mediachars */ 3572 /* (m)|name|rel_units|wm1 | @ |... |wmn | in all media (shown as @). */ 3573 /* |____|_________|____|____|... |____| */ 3574 /* mediachar # --> (1) (2) ... (n) */ 3575 dcl media_p ptr; 3576 dcl 1 media based (media_p), 3577 2 count fixed bin, /* how many have been defined */ 3578 2 e (media.count), 3579 3 name char (32), /* name of the media */ 3580 3 rel_units 3581 fixed bin, /* its stroke value */ 3582 3 width (mediachars.count) fixed bin; 3583 /* for each mediachar */ 3584 3585 /* view* */ 3586 /* _______ Views are then made up */ 3587 /* |count=k|__ from the defined media. */ 3588 /* (1)|view1|med4| Views can share a media, */ 3589 /* (2)|view2|med2| but will differ media */ 3590 /* . . . select string. Each Device */ 3591 /* : : : specifies its own set of */ 3592 /* (k)|viewk|med4| media select strings. 3593*/* |_____|____| */ 3594 3595 dcl view_p ptr; 3596 dcl 1 view based (view_p), 3597 2 count fixed bin, /* how many defined */ 3598 2 e (view.count), 3599 3 name char (32), /* viewname */ 3600 3 media fixed bin; /* media being referenced */ 3601 3602 3603 /* Def* */ 3604 /* _______ Def's are a sort of macro definition. */ 3605 /* |count=d|_ Whenever a set of Multics chars have the same */ 3606 /* (1)|name1|pt1| definition in several fonts, instead of */ 3607 /* (2)|name2|pt2| entering the description again and again, a */ 3608 /* . . . Def is made containing the needed info and */ 3609 /* : : : then they are ref'ed in each table as needed. */ 3610 /* (d)|named|ptd| */ 3611 /* |_____|___| */ 3612 3613 dcl Def_p ptr; 3614 dcl 1 Def based (Def_p), 3615 2 count fixed bin, /* how many Def's present */ 3616 2 e (Def.count), 3617 3 name char (32), /* internal name of this Def */ 3618 3 pt ptr; /* Points to the node in the */ 3619 /* lex_string_ list at which source */ 3620 /* of the Def begins. At ref time, */ 3621 /* this source will be be re-parsed */ 3622 /* via this pointer. */ 3623 3624 /* fntl_p(1)>----+ */ 3625 /* fntl_p(2)>---)|(---------------------+ */ 3626 /* +----------+ | */ 3627 /* | fnt* fnt* | fnt* */ 3628 /* | _____ _____ | _____ */ 3629 /* +-->|next >------------>|next >---+-------->|next >null */ 3630 /* |name | |name | |name | */ 3631 /* |refno| |refno| |refno| */ 3632 /* |node >... |node >... |node >... */ 3633 /* |pt >---+ |pt >... |pt >... */ 3634 /* |_____| | |_____| |_____| */ 3635 /* +-------------+ */ 3636 /* | font Fonts are made up by selecting one */ 3637 /* | _________ or more mediachars from a view and */ 3638 /* +-->|units_r >-----+ associating them to Multics (input) */ 3639 /* |oput_r >--+ | characters. To speed up measuring, */ 3640 /* |rel_units| | | the width portion of the font table */ 3641 /* |footsep | | | is a fixed size. */ 3642 /* |min_spb | | | To save space, however, the output */ 3643 /* |avg_spb | | | string portion of the font is only */ 3644 /* |max_spb | | | as long as the highest Multics char */ 3645 /* |_________| | | defined. */ 3646 /* +----------------+ | */ 3647 /* | opu* | uni* The oput and units */ 3648 /* | _____ | _____ units tables often end up */ 3649 /* +-->|next >... +-->|next >... _____ looking like others of */ 3650 /* |ref_p>---+ |ref_p>------>|(0) | their kind. Thus when */ 3651 /* |seqno| | |seqno| |(1) | each is completed, it */ 3652 /* |refno| | |refno| . . is matched against all */ 3653 /* |_____| | |_____| : : prior ones & logically */ 3654 /* +-------------+ |(511)| removed if already */ 3655 /* | oput |_____| there, reducing DSM */ 3656 /* | ____________ size. */ 3657 /* +-->|data_count=k| */ 3658 /* (0)|which|what_r>... */ 3659 /* (1)|which|what_r>... From compdv's point of */ 3660 /* . . . medchar_sel view, medchar_sel is a */ 3661 /* : : : ________..._ bstr. */ 3662 /* (k)|which|what_r>------->|len|text... | */ 3663 /* |_____|______| |___|________| */ 3664 /* */ 3665 /* oput.which references an entry in */ 3666 /* the Device's med_sel_table. */ 3667 3668 dcl font_count fixed bin; /* # font entries present */ 3669 dcl fntl_p (2) ptr; /* begin/end fnt list */ 3670 dcl fnt_p ptr; 3671 dcl 1 fnt based (fnt_p), /* === font info entry */ 3672 2 next ptr, /* next entry */ 3673 2 name char (32), /* internal reference only */ 3674 2 refno fixed bin, /* internal reference # */ 3675 2 node ptr, /* rdc node for Font: statement */ 3676 /* used for error messages */ 3677 2 pt ptr, /* points to the font table */ 3678 2 dummy ptr; /* where next structure goes */ 3679 3680 dcl uni_ct fixed bin init (0); 3681 dcl unil_p (2) ptr; 3682 dcl uni_p ptr; 3683 dcl 1 uni based (uni_p), /* === units entry */ 3684 2 next ptr, /* next entry */ 3685 2 ref_p ptr, /* points to units table */ 3686 2 seqno fixed bin, /* internal sequence # */ 3687 2 refno fixed bin; /* internal reference # */ 3688 /* when seqno=refno this is a "real" */ 3689 /* entry, otherwise it's a duplicate */ 3690 3691 dcl opul_p (2) ptr; 3692 dcl opu_p ptr; 3693 dcl 1 opu based (opu_p), /* === oputs entry */ 3694 2 next ptr, /* next entry */ 3695 2 ref_p ptr, /* points to oput table */ 3696 2 seqno fixed bin, /* internal sequence # */ 3697 2 refno fixed bin; /* internal reference # */ 3698 /* when seqno=refno this is a "real" */ 3699 /* entry, otherwise it's a duplicate */ 3700 3701 3702 /* dvid* */ 3703 /* _______ */ 3704 /* dvidl_p(1)>-------------->|next >------+ dvid* */ 3705 /* dvidl_p(2)>----------+ |ndx | | _______ */ 3706 /* | |real | +--->|next >null */ 3707 /* | |refname| | |ndx | */ 3708 /* | |devname| | |real | */ 3709 /* | |dvt_ndx| | |refname| */ 3710 /* | |_______| | |devname| */ 3711 /* | | |dvt_ndx| */ 3712 /* +-------------------+ |_______| */ 3713 dcl comp_dvid_new bit (1); /* a new comp_dvid is being started */ 3714 dcl comp_dvid_ct fixed bin init (0); 3715 /* how many actual comp_dvid defined */ 3716 dcl dvid_ct fixed bin; /* # dvid entries present */ 3717 dcl dvidl_p (2) ptr; /* begin/end of dvid list */ 3718 dcl dvid_p ptr; 3719 dcl 1 dvid based (dvid_p), /* === comp_dvid data */ 3720 2 next ptr, /* link to next entry */ 3721 2 ndx fixed bin, /* which dvid being referenced */ 3722 2 real bit (1) aligned, /* 1- defines a comp_dvid */ 3723 2 refname char (32), /* external reference name */ 3724 2 devname char (32), /* comp_dvid.devname */ 3725 2 dvt_ndx fixed bin, /* comp_dvid.dvt_r derived from this */ 3726 2 dummy ptr; /* place where next structure goes */ 3727 3728 /* This structure contains all the info necessary to generate comp_dvid. */ 3729 3730 /* dvt* */ 3731 /* dvtl_p(1) >------+ _______ */ 3732 /* dvtl_p(2) >-----)|(-------------------------------+---->|next >null */ 3733 /* | dvt* | |ndx | */ 3734 /* | _______ | |prent >-... */ 3735 /* +------>|next >----------------+ |med_sel>--... */ 3736 /* |ndx | |ref >-... */ 3737 /* |prent >--------+ |_______| */ 3738 /* |med_sel>-----+ | */ 3739 /* |ref >--+ | | prent* */ 3740 /* |_______| | | | __________ */ 3741 /* +-------------------------+ | +------------>|outproc | */ 3742 /* | | |artproc | */ 3743 /* | comp_dvt | med_sel |footproc | */ 3744 /* | _________ | _________ |__________| */ 3745 /* +---->| details | +-->| details | */ 3746 /* | below | | below | */ 3747 /* |_________| |_________| */ 3748 3749 dcl dvt_ct fixed bin; /* # dvt entries present */ 3750 dcl dvtl_p (2) ptr; /* begin/end of dvt list */ 3751 3752 dcl dvt_p ptr; 3753 dcl 1 dvt based (dvt_p), /* === comp_dvt reference info */ 3754 2 next ptr, /* link to next entry */ 3755 2 ndx fixed bin, /* which index this represents */ 3756 2 prent ptr, /* ptr to prent data */ 3757 2 med_sel ptr, /* ptr to associated med_sel array */ 3758 2 ref ptr, /* ptr to comp_dvt */ 3759 2 dummy ptr; /* place where next structure goes */ 3760 3761 dcl prent_p ptr; 3762 dcl 1 prent based (prent_p), /* === entryname strings, comp_dvt */ 3763 2 outproc char (68) var, 3764 2 artproc char (68) var, 3765 2 footproc char (68) var, 3766 2 dummy ptr; /* place where next structure goes */ 3767 3768 dcl 1 med_sel_tab aligned based (dvt.med_sel), 3769 2 count fixed bin, 3770 2 ref_r (med_sel_tab.count) bit (18) aligned; 3771 3772 /* mem* */ 3773 /* ______ */ 3774 /* meml_p(1) >---- +->|next >--+ */ 3775 /* meml_p(2) >--+ |ref_p > | */ 3776 /* | |seqno | | */ 3777 /* | |______| | */ 3778 /* +---------------+ */ 3779 /* | mem* */ 3780 /* | ______ member */ 3781 /* +--->|next >null _________ */ 3782 /* |ref_p >-------->| details | */ 3783 /* |seqno | | below | */ 3784 /* |______| |_________| */ 3785 3786 dcl meml_p (2) ptr; /* begin/end member list */ 3787 dcl mem_ct fixed bin init (0); 3788 /* internal sequence counter */ 3789 dcl mem_p ptr; 3790 dcl 1 mem based (mem_p), /* === member table (code gen only) */ 3791 2 next ptr, /* next entry */ 3792 2 ref_p ptr, /* pointer to the member table */ 3793 2 seqno fixed bin, /* internal sequence # */ 3794 2 refno fixed bin, /* internal reference # */ 3795 /* when seqno=refno this is a "real" */ 3796 /* entry, otherwise it's a duplicate */ 3797 2 dummy ptr; /* where next structure goes */ 3798 3799 /* EXTERNAL INTERCONNECTION in the DSM */ 3800 /* linkage */ 3801 /* section comp_dvid */ 3802 /* ______ +-----------------------------------------+ _______ */ 3803 /* | | | +--->| | */ 3804 /* |name1 >----+ |devname| */ 3805 /* |name2 >---)|(-------------------+ comp_dvid |dvt_r >--+ */ 3806 /* |name3 >----+ comp_dvid | _______ |_______| | */ 3807 /* |name4 >--+ _______ +-->| | comp_dvt | */ 3808 /* | etc. | +--->| | |devname| ________ | */ 3809 /* |______| |devname| |dvt_r >--->| ... | */ 3810 /* |dvt_r >--+ |_______| | | */ 3811 /* |_______| | | */ 3812 /* +-------<----------------+-----------------------------------<-------+ */ 3813 /* | comp_dvt */ 3814 /* | _____________ bstr */ 3815 /* +-->| | ___________ */ 3816 /* |atd_r >-------------------------------------->|len|str... | */ 3817 /* |dvc_r >... |___|_______| */ 3818 /* |med_sel_tab_r>-----------------+ med_sel_tab */ 3819 /* | ... | | _______ med_sel */ 3820 /* |family_ct=F | +-->|count=K| ___________ */ 3821 /* (1)|.member_r >--+ (1)|ref_r>---------->|len|str... | */ 3822 /* (1)|.name | | . . |___|_______| */ 3823 /* | ... | | (n)|ref_r>nullo */ 3824 /* |_____________| | . . */ 3825 /* +---------------+ (K)|ref_r>... sizel */ 3826 /* | member |_____| ________ */ 3827 /* | _______ +--------------------------->|val_ct=S| */ 3828 /* +-->|count=L|_________|________________ (1)|val | */ 3829 /* (1)|font_r> size_r> | lex|Scaley|name| . . */ 3830 /* (2)|font_r> size_r>--+ lex|Scaley|name| : : */ 3831 /* . . . . . . (S)|val | */ 3832 /* : : : : : : |________| */ 3833 /* (L)|font_r>---+ > Scalex|Scaley|name| */ 3834 /* |______|___|___|_______|______|____| */ 3835 /* | */ 3836 /* +-----------------+ */ 3837 /* | font units */ 3838 /* | _________ _____ */ 3839 /* +-->|units_r >-------------------------------------->|(0) | */ 3840 /* |oput_r >---+ |(1) | */ 3841 /* |rel_units| | . . */ 3842 /* |footsep | | oput : : */ 3843 /* |min_spb | | _________ |(511)| */ 3844 /* |avg_spb | +-->|data_ct=k|__ |_____| */ 3845 /* |max_spb | (0)|which|what_r>... */ 3846 /* |_________| (1)|which|what_r>... */ 3847 /* . . . medchar_sel */ 3848 /* : : : ________..._ */ 3849 /* (k)|which|what_r>--------->|len|text... | */ 3850 /* |_____|______| |___|________| */ 3851 /* */ 3852 /* oput.which references an entry in */ 3853 /* the Device's med_sel_table. */ 3854 1 1 /* BEGIN INCLUDE FILE comp_art_parts.incl.pl1 */ 1 2 1 3 /**** format: off */ 1 4 dcl 1 art static options (constant), 1 5 1 6 2 top (8) char (1) unal init 1 7 ("'", "-", "3", "9", "?", "E", "K", "Q"), 1 8 2 half_top (8) char (1) unal init 1 9 ("(", ".", "4", ":", "@", "F", "L", "R"), 1 10 2 middle (8) char (1) unal init 1 11 (")", "/", "5", ";", "A", "G", "M", "S"), 1 12 2 bottom (8) char (1) unal init 1 13 ("*", "0", "6", "<", "B", "H", "N", "T"), 1 14 2 half_bottom (8) char (1) unal init 1 15 ("+", "1", "7", "=", "C", "I", "O", "U"), 1 16 2 other_part (8) char (1) unal init 1 17 (",", "2", "8", ">", "D", "J", "P", "V"), 1 18 2 one (15) char (1) unal init 1 19 ("", """, "", "!", "", "$", "W", "X", 1 20 "Í", /* o = bullet */ 1 21 "Y", /* / = right slash */ 1 22 "", /* X = multiply */ 1 23 "", /* * = delete */ 1 24 "", /* m = modify */ 1 25 "Ã", /* c = copyright */ 1 26 "Ô"), /* t = trademark */ 1 27 1 28 /* artwork codes */ 1 29 2 vpart char (1) unal init ("Z"), 1 30 2 daro char (1) unal init (""), 1 31 2 uparo char (1) unal init ("%"), 1 32 2 horiz, 1 33 3 start char (1) unal init ("["), 1 34 3 line char (1) unal init ("\"), 1 35 3 term char (1) unal init ("]"), 1 36 2 laro char (1) unal init (""), 1 37 2 raro char (1) unal init (" "), 1 38 2 diam, 1 39 3 top char (1) unal init (""), 1 40 3 lvert char (1) unal init (""), 1 41 3 rvert char (1) unal init (""), 1 42 3 bottom char (1) unal init (""), 1 43 2 lslnt char (1) unal init ("^"), 1 44 2 rslnt char (1) unal init ("_"), 1 45 2 lcirc char (1) unal init (""), 1 46 2 rcirc char (1) unal init ("#"), 1 47 2 PI char (1) unal init ("Ð"), 1 48 2 pi char (1) unal init ("ð"), 1 49 2 box, 1 50 3 tl char (1) unal init ("`"), /* top left corner */ 1 51 3 t char (1) unal init ("a"), /* top intersection */ 1 52 3 tr char (1) unal init ("b"), /* top right corner */ 1 53 3 l char (1) unal init ("c"), /* left edge intersection */ 1 54 3 x char (1) unal init ("d"), /* interior insection */ 1 55 3 r char (1) unal init ("e"), /* right edge intersection */ 1 56 3 bl char (1) unal init ("f"), /* bottom left corner */ 1 57 3 b char (1) unal init ("g"), /* bottom intersection */ 1 58 3 br char (1) unal init ("h"), /* bottom right corner */ 1 59 2 loz, 1 60 3 tl char (1) unal init ("i"), /* top left corner */ 1 61 3 tr char (1) unal init ("j"), /* top right corner */ 1 62 3 l char (1) unal init ("k"), /* left vertx */ 1 63 3 r char (1) unal init ("l"), /* right vertex */ 1 64 3 bl char (1) unal init ("m"), /* bottom left corner */ 1 65 3 br char (1) unal init ("n"); /* bottom right corner */ 1 66 1 67 /**** format: on */ 1 68 /* END INCLUDE FILE comp_art_parts.incl.pl1 */ 3855 2 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 2 2 2 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 2 4 2 5 /* ASCII control characters */ 2 6 dcl ( 2 7 NUL init (""), /* 000 */ 2 8 SOH init (""), /* 001 */ 2 9 STX init (""), /* 002 */ 2 10 ETX init (""), /* 003 */ 2 11 EOT init (""), /* 004 */ 2 12 ENQ init (""), /* 005 */ 2 13 ACK init (""), /* 006 */ 2 14 BEL init (""), /* 007 */ 2 15 BSP init (""), /* 010 */ 2 16 HT init (" "), 2 17 /* 011 */ 2 18 (NL, LF) init (" 2 19 "), /* 012 */ 2 20 VT init (" "), /* 013 */ 2 21 FF init (" "), /* 014 */ 2 22 CR init (" "), /* 015 */ 2 23 (RRS, SO) init (""), /* 016 */ 2 24 (BRS, SI) init (""), /* 017 */ 2 25 DLE init (""), /* 020 */ 2 26 DC1 init (""), /* 021 */ 2 27 (DC2, HLF, HUGE) init (""), /* 022 */ 2 28 DC3 init (""), /* 023 */ 2 29 (DC4, HLR, THICK) init (""), /* 024 */ 2 30 (NAK, MEDIUM) init (""), /* 025 */ 2 31 SYN init (""), /* 026 */ 2 32 (ETB, HAIR) init (""), /* 027 */ 2 33 (CAN, STROKE) init (""), /* 030 */ 2 34 oct031 init (""), /* 031 */ 2 35 SUB init (""), /* 032 */ 2 36 ESC init (""), /* 033 */ 2 37 FS init (""), /* 034 */ 2 38 GS init (""), /* 035 */ 2 39 RS init (""), /* 036 */ 2 40 US init (""), /* 037 */ 2 41 (DEL, PAD) init (""), /* 177 */ 2 42 /* compose meta-characters */ 2 43 multiply init ("ª"), /* 252 - multiply symbol */ 2 44 pl_mi init ("«"), /* 253 - plus/minus sign */ 2 45 nabla init ("¬"), /* 254 */ 2 46 EMdash init ("­"), /* 255 - EM dash */ 2 47 slash init ("¯"), /* 256 */ 2 48 dagger init ("±"), /* 261 */ 2 49 perpen init ("»"), /* 273 - perpendicular mark */ 2 50 not_eq init ("½"), /* 275 - not-equal mark */ 2 51 dbldag init ("Á"), /* 301 - double daggar */ 2 52 cright init ("Ã"), /* 303 - copyright mark */ 2 53 delta init ("Ä"), /* 304 */ 2 54 bullet init ("Í"), /* 315 */ 2 55 prll init ("Î"), /* 316 - parallel mark */ 2 56 PI init ("Ð"), /* 320 - uppercase Greek pi */ 2 57 tmark init ("Ô"), /* 324 - trademark */ 2 58 tfore init ("Ö"), /* 326 - therefore mark */ 2 59 approx init ("Ú"), /* 332 - approximately-equal mark */ 2 60 infin init ("ß"), /* 337 - infinity */ 2 61 theta init ("ê"), /* 352 */ 2 62 pi init ("ð"), /* 360 - lowercase Greek pi */ 2 63 square init ("ý"), /* 375 */ 2 64 overbar init ("þ"), /* 376 */ 2 65 PS init ("ÿ"), /* 377 - punctuation space */ 2 66 sup0 init (""), /* 400 - superior digit 0 */ 2 67 sup1 init (""), /* 401 - superior digit 1 */ 2 68 sup2 init (""), /* 402 - superior digit 2 */ 2 69 sup3 init (""), /* 403 - superior digit 3 */ 2 70 sup4 init (""), /* 404 - superior digit 4 */ 2 71 sup5 init (""), /* 405 - superior digit 5 */ 2 72 sup6 init (""), /* 406 - superior digit 6 */ 2 73 sup7 init (""), /* 407 - superior digit 7 */ 2 74 sup8 init (""), /* 410 - superior digit 8 */ 2 75 sup9 init (" "), /* 411 - superior digit 9 */ 2 76 EM init (" "), /* 412 - EM space */ 2 77 EM_ init (" "), /* 413 - EM aligned dash */ 2 78 EN init (" "), /* 414 - EN space */ 2 79 EN_ init (" "), /* 415 - EN aligned dash */ 2 80 ENd init (""), /* 416 - EN dash */ 2 81 THIN init (""), /* 417 - thinspace */ 2 82 DEVIT init (""), /* 420 - device unit */ 2 83 lquote init (""), /* 421 - left double quote */ 2 84 rquote init (""), /* 422 - right double quote */ 2 85 modmark init (""), /* 424 - text modification/addition mark */ 2 86 delmark init (""), /* 430 - deletion mark */ 2 87 vrule init ("Z"), /* 532 - vertical rule */ 2 88 lslnt init ("^") /* 536 - left slant */ 2 89 ) char (1) unaligned static options (constant); 2 90 2 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 3856 3 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */ 3 2 3 3 /* Written: JA Falksen - 6/81 3 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */ 3 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */ 3 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */ 3 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 3 8* (3) char (*) var. Version 4. */ 3 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 3 10* sequence for comp_dvt.displayproc. - Version 5. */ 3 11 3 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 13 3 14 dcl comp_dvid_version 3 15 fixed bin static options (constant) init (5); 3 16 3 17 dcl 1 comp_dvid aligned based (const.dvidptr), 3 18 2 version fixed bin, /* version of this structure and */ 3 19 /* of comp_dvt */ 3 20 2 devname char (32), /* name of device */ 3 21 2 dvt_r bit (18); /* device table offset */ 3 22 3 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */ 3857 4 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 4 2 4 3 /* Written: 9/80 - JA Falksen 4 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 4 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 4 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 4 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 4 8* (3) char (*) var. Version 4. */ 4 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 4 10* sequence for comp_dvt.displayproc. - Version 5. 4 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 4 12**/ 4 13 4 14 /* All names which end in "_r"are offset values within the device table */ 4 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 4 16 4 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 4 18 4 19 dcl 1 comp_dvt aligned based (const.devptr), 4 20 2 devclass char (32), /* what general kind of device is */ 4 21 /* this, currently available: */ 4 22 /* "printer" (includes terminals), */ 4 23 /* "braille", "bitmap" */ 4 24 2 outproc entry /* page output processor */ 4 25 (fixed bin, /* function - 0=build */ 4 26 /* 1=init page */ 4 27 /* 2=init file */ 4 28 /* 3=cleanup */ 4 29 fixed bin (35)),/* error code */ 4 30 2 footproc entry /* footnote reference proc */ 4 31 ((3) char (*) var, 4 32 /* reference string (IN/OUT) */ 4 33 ptr), /* comp_dvt_p (IN) */ 4 34 2 artproc entry (), /* artwork proc */ 4 35 /* dont know how to describe yet */ 4 36 2 displayproc 4 37 entry /* string display interpreter */ 4 38 (char (*) var, /* raw input string */ 4 39 fixed bin (24), /* chars used in this call */ 4 40 bit (1)) /* 1= dont show display errors */ 4 41 returns (char (*) var), 4 42 /* interpreted output string */ 4 43 /* following values are in millipoints */ 4 44 2 min_WS fixed bin (31), /* minimum whitespace */ 4 45 2 min_lead fixed bin (31), /* minimun lead */ 4 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 4 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 4 48 2 def_vmt fixed bin (31), /* default .vmt */ 4 49 2 def_vmh fixed bin (31), /* default .vmh */ 4 50 2 def_vmf fixed bin (31), /* default .vmf */ 4 51 2 def_vmb fixed bin (31), /* default .vmb */ 4 52 2 pdw_max fixed bin (31), /* max page width available */ 4 53 2 pdl_max fixed bin (31), /* max page length available, */ 4 54 /* (0 = unlimited) */ 4 55 2 upshift fixed bin (31), /* footnote reference shift */ 4 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 4 57 2 lettersp fixed bin (31), /* max letterspacing */ 4 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 4 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 4 60 2 init_fam fixed bin, /* initial family index */ 4 61 2 init_mem fixed bin, /* initial member index */ 4 62 2 foot_fam fixed bin, /* initial foot family index */ 4 63 2 foot_mem fixed bin, /* initial foot member index */ 4 64 2 init_family 4 65 char (32), /* initial font family to use */ 4 66 2 init_member 4 67 char (32), /* initial font member to use */ 4 68 ( /* the following are offsets */ 4 69 2 atd_r, /* attach desc for on-line output */ 4 70 2 dvc_r, /* device control table relptr */ 4 71 2 comment_r, /* comment string relptr */ 4 72 2 cleanup_r, /* "cleanup" string relptr */ 4 73 2 medsel_table_r /* media select table relptr */ 4 74 ) bit (18) aligned, 4 75 2 foot_family 4 76 char (32), /* family for footnote reference */ 4 77 2 foot_member 4 78 char (32), /* member for footnote reference */ 4 79 /* if one was specified */ 4 80 2 sws unaligned, 4 81 3 interleave /* 0- page block has lines in column */ 4 82 bit (1), /* order left-to-right */ 4 83 /* 1- page block has lines in line */ 4 84 /* order top-to-bottom */ 4 85 3 justifying /* 1- device justifies lines */ 4 86 bit (1), 4 87 3 mbz bit (24), 4 88 3 endpage bit (9), /* EOP char if not "0"b */ 4 89 2 open_mode fixed bin (35), /* when going to a file */ 4 90 2 recleng fixed bin, /* length of tape records */ 4 91 2 family_ct fixed bin, /* # families present */ 4 92 2 family (comp_dvt.family_ct), 4 93 /* families of fonts defined */ 4 94 3 member_r bit (18) aligned, 4 95 /* member table relptr */ 4 96 3 name char (32); /* family name */ 4 97 4 98 4 99 /* The usage formula for units: */ 4 100 /* */ 4 101 /* rel_units * length_in_points */ 4 102 /* ---------------------------- = length_in_units */ 4 103 /* points_per_EM */ 4 104 4 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 3858 5 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 5 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 5 7 2 bachelor bit (1), /* 1= has no members */ 5 8 2 devfnt fixed bin, /* font in the device */ 5 9 2 fam_name char (32), /* family name */ 5 10 2 famndx fixed bin, /* family index */ 5 11 2 fntptr ptr, /* font table pointer */ 5 12 2 mem_name char (32), /* /member name (or null) */ 5 13 2 memndx fixed bin, /* member index */ 5 14 2 memptr ptr, /* member table pointer */ 5 15 2 name char (65) var, /* font name */ 5 16 2 size fixed bin (31), /* requested point size */ 5 17 2 ps fixed bin (31), /* effective point size */ 5 18 2 fcs_str char (8); /* FCS string */ 5 19 5 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 3859 6 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 6 2 6 3 /* Fonts already loaded into the compose (pdir) database */ 6 4 6 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 6 6 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 6 8 2 count fixed bin, /* number of fonts loaded */ 6 9 2 ndx fixed bin, /* index of current font */ 6 10 2 medsel_ptr ptr, /* -> media select table */ 6 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 6 12 6 13 dcl fnttbl_ptr ptr init (null); 6 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 6 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 6 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 6 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 6 18 2 rel_units fixed bin, /* stroke value for this font */ 6 19 2 siztbl_ptr ptr, /* -> loaded size table */ 6 20 2 entry /* stack entry for this font */ 6 21 like fntstk_entry, 6 22 ( /* for each font character */ 6 23 2 devfnt fixed bin, /* font in the device */ 6 24 2 replptr ptr, /* replacement string ptrs */ 6 25 2 units fixed bin, /* width in strokes */ 6 26 2 white bit (1) unal /* white space flags */ 6 27 ) dimension (0:511); 6 28 6 29 dcl repl_str_ptr ptr; /* replacement strings */ 6 30 dcl 1 repl_str based (repl_str_ptr), 6 31 2 len fixed bin (35), 6 32 2 str char (256); 6 33 dcl replstr char (256) var based (repl_str_ptr); 6 34 /* media select strings */ 6 35 /* (indexed on fnttbldata.ndx) */ 6 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 6 37 6 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 6 39 2 ct fixed bin, /* number of sizes */ 6 40 2 size (siztbl.ct) fixed bin (31); 6 41 6 42 /* This is the storage referred by family.member_r in comp_dvt 6 43* 6 44* If member.count is 1 and member.name(1) is null, then the font is a 6 45* 'bachelor'. 6 46* 6 47* The font stack will hold the family/member names which were used to 6 48* originally get to the font. When a bachelor is accessed, the member name 6 49* will remain but the bachelor flag will be set to tell any displayers not 6 50* to include it. 6 51* 6 52* %FontName% will contain either "family" or "family/member" depending on 6 53* the setting of the bachelor switch. */ 6 54 6 55 dcl member_ptr ptr; 6 56 dcl 1 member based (member_ptr), 6 57 2 count fixed bin, /* # members present */ 6 58 2 e (member.count), /* members defined for this device */ 6 59 3 font_r bit (18) unal, /* font character table relptr */ 6 60 3 size_r bit (18) aligned, 6 61 /* point size list relptr */ 6 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 6 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 6 64 3 name char (32); /* member name */ 6 65 6 66 /* Storage referred by member.font_r */ 6 67 dcl font_ptr ptr; 6 68 dcl 1 font based (font_ptr), 6 69 ( 2 oput_r, /* offset of output data array */ 6 70 2 units_r /* offset of width array */ 6 71 ) bit (18) aligned, 6 72 2 rel_units fixed bin, /* stroke value for this table */ 6 73 2 footsep char (1), /* footref separator */ 6 74 2 fill char (3), 6 75 2 min_wsp fixed bin, /* min wordspace */ 6 76 2 avg_wsp fixed bin, /* nominal wordspace */ 6 77 2 max_wsp fixed bin; /* max wordspace */ 6 78 6 79 /* storage referred by font.units_r */ 6 80 dcl units_ptr ptr; /* width in strokes */ 6 81 dcl units (0:511) fixed bin based (units_ptr); 6 82 6 83 /* media select table in the device table */ 6 84 dcl medsel_table_ptr 6 85 ptr; 6 86 dcl 1 medsel_table based (medsel_table_ptr), 6 87 2 count fixed bin, 6 88 2 ref_r (medsel_table.count) bit (18) aligned; 6 89 6 90 /* storage referred by font.oput_r */ 6 91 dcl oput_p ptr; 6 92 dcl 1 oput based (oput_p), 6 93 2 data_ct fixed bin, /* highest char defined */ 6 94 2 e (0:oput.data_ct), 6 95 3 which /* index into view array */ 6 96 fixed bin (17) unal, 6 97 3 what_r /* output string */ 6 98 bit (18) unal; 6 99 6 100 /* storage referred by member.size_r */ 6 101 6 102 dcl sizel_p ptr; 6 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 6 104 2 val_ct fixed bin, 6 105 2 val (sizel.val_ct) fixed bin (31); 6 106 6 107 /* storage referred by oput.what_r */ 6 108 6 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 6 110 dcl 1 medchar_sel based (medchar_sel_p), 6 111 2 str_l fixed bin, 6 112 2 str char (medchar_sel.str_l); 6 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 6 114 6 115 dcl med_sel_p ptr; /* media select string */ 6 116 dcl 1 med_sel based (med_sel_p), 6 117 2 str_l fixed bin, 6 118 2 str char (med_sel.str_l); 6 119 6 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 3860 7 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 7 2* 7 3* This storage is converted from external (as declared) to internal by the 7 4* binder and contains items that must be accessible to both the bound and 7 5* unbound program. */ 7 6 7 7 /* Written: ??/??/7? - EJW 7 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 7 9* and removed the codes array; version 6. 7 10**/ 7 11 7 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 13 7 14 dcl 1 compstat$compconst 7 15 aligned like const ext static; 7 16 7 17 dcl const_version fixed bin (35) static options (constant) init (6); 7 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 7 19 fixed bin static options (constant) init (80); 7 20 dcl MAX_TREE_AREAS /* number of tree areas */ 7 21 fixed bin static options (constant) init (20); 7 22 7 23 dcl 1 const aligned based (compstat$compconst.ptr), 7 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 7 25 2 version fixed bin (35), /* structure version */ 7 26 2 art_symbols /* string of art symbols */ 7 27 char (28) aligned, 7 28 2 builtin_count /* count of builtin variables */ 7 29 fixed bin, 7 30 2 comp_dir char (200), /* dir in which compose lives */ 7 31 2 comp_version 7 32 char (8) var, /* compose version id */ 7 33 2 date_value char (8) var, /* current date */ 7 34 2 dsm_name char (32), /* device support module name */ 7 35 2 dvt_name char (32), /* device table name */ 7 36 2 max_seg_chars 7 37 fixed bin (35), /* char count in a max seg */ 7 38 2 null_str char (1) var, /* an empty string */ 7 39 2 ptrs, 7 40 ( 3 call_stk_ptr, /* -> insert call stack */ 7 41 3 colhdrptr, /* empty column header structure */ 7 42 3 ctl_ptr, /* input line structure */ 7 43 3 current_parms_ptr, /* current formatting parms */ 7 44 3 default_parms_ptr, /* default initial text parms */ 7 45 3 devptr, /* -> comp_dvt structure */ 7 46 3 dvidptr, /* -> comp_dvid structure */ 7 47 3 errblk_ptr, /* error message block pointer */ 7 48 3 footnote_parms_ptr, /* footnote formatting parms */ 7 49 3 fnttbldata_ptr, /* -> font table data */ 7 50 3 global_area_ptr, /* per invocation storage */ 7 51 3 init_page_parms_ptr, /* default initial page parms */ 7 52 3 insert_data_ptr, /* insert file data block */ 7 53 3 local_area_ptr, /* per file storage */ 7 54 3 loctbl_ptr, /* for font copying */ 7 55 3 option_ptr, /* program options block */ 7 56 3 outproc_ptr, /* device writer for cleanup */ 7 57 3 page_ptr, /* active page structure */ 7 58 3 page_header_ptr, /* empty page header structure */ 7 59 3 page_parms_ptr, /* page formatting parameter block */ 7 60 3 save_shared_ptr, /* saved shared data */ 7 61 3 shared_ptr, /* shared data structure */ 7 62 3 text_entry_ptr, /* empty text entry structure */ 7 63 3 text_header_ptr, /* empty text header structure */ 7 64 3 text_parms_ptr, /* main body formatting parms */ 7 65 3 tree_ptr /* symbol tree structure */ 7 66 ) ptr, 7 67 2 time_value char (6) var; /* time at start */ 7 68 7 69 /* Other external */ 7 70 dcl ( 7 71 ioa_, 7 72 ioa_$nnl 7 73 ) entry options (variable); 7 74 dcl iox_$error_output 7 75 ptr ext static, /* iocb pointer for error_output */ 7 76 iox_$user_input 7 77 ptr ext static, /* iocb pointer for user_input */ 7 78 iox_$user_output 7 79 ptr ext static; /* iocb pointer for user_output */ 7 80 dcl sys_info$max_seg_size 7 81 fixed bin (18) ext static; 7 82 7 83 /* END INCLUDE FILE compstat.incl.pl1 */ 3861 8 1 /* BEGIN INCLUDE FILE ..... compdv_msgs.incl.pl1 07/02/81 Falksenj */ 8 2 8 3 /* Modified 5/83 by Ed Wallman - MR10.2 - compose error 915 8 4* Added duplicate_font_name at end of array. 8 5* Added format: style. 8 6**/ 8 7 8 8 /* format: style2,ind2,ll79,dclind4,idind15,comcol61,linecom */ 8 9 8 10 dcl 1 error_control_table 8 11 (81) int static options (constant), 8 12 2 severity fixed bin unal init /**/ 8 13 ((4) 3, 1, (4) 3, 4, (10) 3, /* 1-20 */ 8 14 (10) 3, (10) 3, (10) 3, (10) 3, /* 21-60 */ 8 15 (10) 3, (10) 3, /* 61-80 */ 8 16 3), /* 81- */ 8 17 2 Soutput_stmt 8 18 bit (1) unal init /**/ 8 19 ((4) (1)"1"b, "0"b, (5) (1)"1"b, /* 1-10 */ 8 20 (10) (1)"1"b, (10) (1)"1"b, /* 11-30 */ 8 21 (10) (1)"1"b, (10) (1)"1"b, /* 31-50 */ 8 22 (10) (1)"1"b, (10) (1)"1"b, /* 51-70 */ 8 23 (10) (1)"1"b, /* 71-80 */ 8 24 "1"b), /* 81- */ 8 25 2 message char (66) var init ( /* 1 */ 8 26 "The stroke value does not match that of the Font.", 8 27 "The calculated width value (^a) does not match that supplied (^a)." 8 28 , "Circular Device definitions. ""^a""", 8 29 "Comma expected at token ""^a"".", 8 30 "Comment truncated- it exceeds 8000 characters.", 8 31 """^a"" already defined as a Device.", 8 32 "Duplicate Media name. ^a", 8 33 "Duplicate MediaChars name near token ""^a""", 8 34 """^a"" has already been defined as a font.", 8 35 "Premature end of source.", /**/ 8 36 /* 10 */ 8 37 "Family/Bachelor name expected at token ""^a"".", 8 38 "Footref font not on this Device.", 8 39 "Initial font not on this Device.", 8 40 """^a"" is not a defined artwork symbol.", 8 41 "Invalid Font SELF reference.", 8 42 "Invalid MediaChar range near token ""^a"".", 8 43 "Invalid Media range.", 8 44 "Invalid MediaChar SELF reference at or near token ""^a""." 8 45 , 8 46 "Invalid Multics char specification at token ""^a"".", 8 47 /* 20 */ 8 48 "Invalid Multics character range near token ""^a"".", 8 49 "Invalid Units keyword. ""^a""", 8 50 "Statement unknown or out of place. ""^a""", 8 51 "Missing family name at token ""^a"".", 8 52 "Missing font specification at token ""^a"".", 8 53 "Missing Font section", "Missing Media section", 8 54 "Missing MediaChars section", 8 55 "Missing member name at token ""^a"".", 8 56 /* 30 */ 8 57 "Expected a semicolon at token ""^a"".", 8 58 "Missing Size section", "Missing View section", 8 59 "Missing width value at token ""^a"".", 8 60 "No Device specifications present.", 8 61 "No devname has been specified.", 8 62 "No fontname specified at token ""^a"".", 8 63 "No fonts selected for this Device.", 8 64 "No family given.", /**/ 8 65 /* 40 */ 8 66 "No init: statement specified.", "No pointsize given.", 8 67 "Missing name on Def statement at token ""^a"".", 8 68 "No prior width to copy at token ""^a"".", 8 69 "Missing Size name at token ""^a"".", 8 70 "No Size's specified.", 8 71 "No wordspace values supplied.", 8 72 "No test-width value supplied.", 8 73 "No viewselect was given for View ""^a"" in Device ""^a""." 8 74 , /**/ 8 75 /* 50 */ 8 76 "View ""^a"" MediaChar ""^a"" has no width specified.", 8 77 """^a"" is not the name of a MediaChar.", 8 78 """^a"" is not defined as a font.", 8 79 """^a"" is not defined as a Def.", 8 80 """^a"" is not a valid Font name.", 8 81 """^a"" is not a viewname.", 8 82 """)="" expected at token ""^a"".", 8 83 "Statement out of place.", 8 84 "Syntax error in Cleanup statement at token ""^a"".", 8 85 /* 60 */ 8 86 "Syntax error in Device statement at token ""^a"".", 8 87 "Syntax error in Font statement.", 8 88 "Syntax error in Font section at token ""^a"".", 8 89 "Syntax error in Footproc statement at token ""^a"".", 8 90 "Syntax error in Footrefseparator statement at token ""^a""." 8 91 , 8 92 "Syntax error in MediaChars statement at token ""^a"".", 8 93 "Syntax error in Media section at token ""^a"".", 8 94 "Syntax error in Outproc statement at token ""^a"".", 8 95 "Syntax error in Scale statement at token ""^a"".", 8 96 /* 70 */ 8 97 "Syntax error in Size statement at token ""^a"".", 8 98 "Syntax error in Wordspace statement at token ""^a"".", 8 99 "Syntax error in View statement at token ""^a"".", 8 100 "Syntax error after "":"".", 8 101 "Syntax error in cleanup statement at token ""^a"".", 8 102 "Syntax error in dcl statement at token ""^a"".", 8 103 "Syntax error in family statement at token ""^a"".", 8 104 "Syntax error in footproc statement at token ""^a"".", 8 105 "Syntax error in member statement at token ""^a"".", 8 106 /* 80 */ 8 107 "Syntax error in outproc statement at token ""^a"".", 8 108 "Syntax error in wordspace statement at token ""^a"".", 8 109 "Syntax error in use statement at token ""^a"".", 8 110 "Syntax error in viewselect statement at token ""^a"".", 8 111 "Too many stroke values given.", 8 112 "Too many width values given.", 8 113 "Unbalanced parentheses.", 8 114 "Duplicate family/bachelor name ""^a""."), 8 115 2 brief_message 8 116 char (14) var 8 117 init ("", "(^a) (^a)", """^a""", """^a""", "", 8 118 """^a""", """^a""", """^a""", """^a""", "", """^a""", 8 119 "", "", """^a""", "", """^a""", "", """^a""", """^a""", 8 120 """^a""", """^a""", """^a""", """^a""", """^a""", "", 8 121 "", "", """^a""", """^a""", "", "", """^a""", "", "", 8 122 """^a""", "", "", "", "", """^a""", """^a""", """^a""", 8 123 "", "", "", """^a"" ""^a""", """^a"" ""^a"".", 8 124 """^a""", """^a""", """^a""", """^a""", """^a""", 8 125 """^a""", "", """^a""", """^a""", "", """^a""", 8 126 """^a""", """^a""", """^a""", """^a""", """^a""", 8 127 """^a""", """^a""", """^a""", """^a""", "", """^a""", 8 128 """^a""", """^a""", """^a""", """^a""", """^a""", 8 129 """^a""", """^a""", """^a""", "", "", "", """^a"""); 8 130 8 131 /* format: style2,ind2,ll79,dclind4,idind25,comcol61,linecom */ 8 132 8 133 dcl ( 8 134 bad_stroke_value init (1), 8 135 bad_width_value init (2), 8 136 circular_Device_def init (3), 8 137 comma_expected init (4), 8 138 comment_gt_8000 init (5), 8 139 dup_Device init (6), 8 140 dup_Media init (7), 8 141 dup_MediaChars init (8), 8 142 dup_fontname init (9), 8 143 end_of_source init (10), 8 144 fam_bach_name_expected init (11), 8 145 foot_font_not_on_Device init (12), 8 146 init_font_not_on_Device init (13), 8 147 inv_artwork_spec init (14), 8 148 inv_Font_SELF_ref init (15), 8 149 inv_MediaChar_range init (16), 8 150 inv_Media_range init (17), 8 151 inv_MediaChar_SELF_ref init (18), 8 152 inv_Mul_char_spec init (19), 8 153 inv_Multics_char_range init (20), 8 154 inv_Units_keyword init (21), 8 155 inv_statement init (22), 8 156 missing_family_name init (23), 8 157 missing_font init (24), 8 158 missing_Font init (25), 8 159 missing_Media init (26), 8 160 missing_MediaChars init (27), 8 161 missing_member_name init (28), 8 162 missing_semicolon init (29), 8 163 missing_Size init (30), 8 164 missing_View init (31), 8 165 missing_width init (32), 8 166 no_Device init (33), 8 167 no_devname init (34), 8 168 no_fontname init (35), 8 169 no_fonts_selected init (36), 8 170 no_init_fam init (37), 8 171 no_init_font init (38), 8 172 no_init_ps init (39), 8 173 no_name_Def init (40), 8 174 no_prior_width init (41), 8 175 no_Size_name init (42), 8 176 no_Sizes init (43), 8 177 no_wordspace_val init (44), 8 178 no_test_width init (45), 8 179 no_viewselect init (46), 8 180 no_width_specified init (47), 8 181 not_charname init (48), 8 182 not_fontname init (49), 8 183 not_Defname init (50), 8 184 not_valid_Font_name init (51), 8 185 not_viewname init (52), 8 186 paren_equal_expected init (53), 8 187 stmt_out_of_place init (54), 8 188 syntax_Cleanup init (55), 8 189 syntax_Device init (56), 8 190 syntax_Font init (57), 8 191 syntax_Font_sec init (58), 8 192 syntax_Footproc init (59), 8 193 syntax_Footrefsep init (60), 8 194 syntax_MediaChars init (61), 8 195 syntax_Media_sec init (62), 8 196 syntax_Outproc init (63), 8 197 syntax_Scale init (64), 8 198 syntax_Size init (65), 8 199 syntax_Wordspace init (66), 8 200 syntax_View init (67), 8 201 syntax_after_colon init (68), 8 202 syntax_cleanup init (69), 8 203 syntax_dcl init (70), 8 204 syntax_family init (71), 8 205 syntax_footproc init (72), 8 206 syntax_member init (73), 8 207 syntax_outproc init (74), 8 208 syntax_wordspace init (75), 8 209 syntax_use init (76), 8 210 syntax_viewselect init (77), 8 211 too_many_stroke_values init (78), 8 212 too_many_widths init (79), 8 213 unbal_parens init (80), 8 214 duplicate_font_name init (81) 8 215 ) fixed bin int static options (constant); 8 216 8 217 /* END INCLUDE FILE ..... compdv_msgs.incl.pl1 */ 3862 3863 3864 3865 dcl TRACING bit(1) aligned int static init("0"b); 3866 3867 9 1 /* START OF: rdc_start_.incl.pl1 * * * * * * */ 9 2 9 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 9 4 /* */ 9 5 /* N__a_m_e: rdc_start_.incl.pl1 */ 9 6 /* */ 9 7 /* This include segment is used by compilers generated by the */ 9 8 /* reduction_compiler. Such compilers include a SEMANTIC_ANALYSIS */ 9 9 /* subroutine generated by the reduction_compiler. This subroutine */ 9 10 /* compares a chain of input tokens with token requirements */ 9 11 /* specified in reductions. This include segment declares the */ 9 12 /* structure of the input tokens (which are generated by lex_string_),*/ 9 13 /* defines the beginning of the SEMANTIC_ANALYSIS procedure, and */ 9 14 /* declares Pthis_token, a global pointer variable which points to */ 9 15 /* the "current" token being referenced by SEMANTIC_ANALYSIS. */ 9 16 /* */ 9 17 /* S__t_a_t_u_s */ 9 18 /* */ 9 19 /* 0) Created: April, 1974 by G. C. Dixon */ 9 20 /* */ 9 21 /* * * * * * * * * * * * * * * * * * * * * * * */ 9 22 9 23 dcl Pthis_token ptr; /* ptr to the "current" token being acted upon. */ 9 24 10 1 /* START OF: lex_descriptors_.incl.pl1 * * * * * * */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* Name: lex_descriptors_.incl.pl1 */ 10 6 /* */ 10 7 /* This include segment defines the structure of the token */ 10 8 /* descriptor, statement descriptor, and comment descriptor created */ 10 9 /* by the lex_string_ program. */ 10 10 /* */ 10 11 /* Status: */ 10 12 /* */ 10 13 /* 0) Created: Dec, 1973 by G. C. Dixon */ 10 14 /* */ 10 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 10 16 10 17 10 18 10 19 10 20 dcl 10 21 1 comment aligned based (Pcomment), 10 22 /* descriptor for a comment. */ 10 23 2 group1 unaligned, 10 24 3 version fixed bin(17), /* comment descriptor version. */ 10 25 3 size fixed bin(17), /* comment descriptor size (in words). */ 10 26 2 Pnext ptr unal, /* ptr to next comment descriptor. */ 10 27 2 Plast ptr unal, /* ptr to last comment descriptor. */ 10 28 2 Pvalue ptr unal, /* ptr to comment. */ 10 29 2 Lvalue fixed bin(18), /* length of comment. */ 10 30 2 group2 unaligned, 10 31 3 line_no fixed bin(17), /* line no of line containing comment. */ 10 32 3 S, /* switches: */ 10 33 4 before_stmt bit(1), /* comment is before 1st token of stmt. */ 10 34 4 contiguous bit(1), /* no tokens between this and last comment. */ 10 35 4 pad bit(16), 10 36 comment_value char(comment.Lvalue) based (comment.Pvalue), 10 37 /* body of comment. */ 10 38 Pcomment ptr; /* ptr to comment descriptor. */ 10 39 10 40 dcl 10 41 1 stmt aligned based (Pstmt), 10 42 /* descriptor for a statement. */ 10 43 2 group1 unaligned, 10 44 3 version fixed bin(17), /* statement descriptor version. */ 10 45 3 size fixed bin(17), /* statement descriptor size (in words). */ 10 46 2 Pnext ptr unal, /* ptr to next statement descriptor. */ 10 47 2 Plast ptr unal, /* ptr to last statement descriptor. */ 10 48 2 Pvalue ptr unal, /* ptr to statement. */ 10 49 2 Lvalue fixed bin(18), /* length of statement. */ 10 50 2 Pfirst_token ptr unal, /* ptr to 1st token of statement. */ 10 51 2 Plast_token ptr unal, /* ptr to last token of statement. */ 10 52 2 Pcomments ptr unal, /* ptr to comments in statement. */ 10 53 2 Puser ptr unal, /* user-defined ptr. */ 10 54 2 group2 unaligned, 10 55 3 Ntokens fixed bin(17), /* number of tokens in statement. */ 10 56 3 line_no fixed bin(17), /* line no of line on which statement begins. */ 10 57 3 Istmt_in_line fixed bin(17), /* number of stmts in line containing this stmt. */ 10 58 /* (the number includes this stmt.) */ 10 59 3 semant_type fixed bin(17), /* semantic type of the statement. */ 10 60 3 S, /* switches: */ 10 61 4 error_in_stmt bit(1), /* stmt contains a syntactic error. */ 10 62 4 output_in_err_msg bit(1), /* stmt has been output in previous error message.*/ 10 63 4 pad bit(34), 10 64 stmt_value char(stmt.Lvalue) based (stmt.Pvalue), 10 65 /* text of the statement. */ 10 66 Pstmt ptr; /* ptr to a stmt descriptor. */ 10 67 10 68 dcl 10 69 1 token aligned based (Ptoken), 10 70 /* descriptor for a token. */ 10 71 2 group1 unaligned, 10 72 3 version fixed bin(17), /* token descriptor version. */ 10 73 3 size fixed bin(17), /* token descriptor size (in words). */ 10 74 2 Pnext ptr unal, /* ptr to next token descriptor. */ 10 75 2 Plast ptr unal, /* ptr to last token descriptor. */ 10 76 2 Pvalue ptr unal, /* ptr to token. */ 10 77 2 Lvalue fixed bin(18), /* length of token. */ 10 78 2 Pstmt ptr unal, /* ptr to descriptor of stmt containing token. */ 10 79 2 Psemant ptr unal, /* ptr to descriptor(s) of token's semantic value.*/ 10 80 2 group2 unaligned, 10 81 3 Itoken_in_stmt fixed bin(17), /* position of token within its statement. */ 10 82 3 line_no fixed bin(17), /* line number of the line containing the token. */ 10 83 3 Nvalue fixed bin(35), /* numeric value of decimal-integer tokens. */ 10 84 3 S, /* switches: */ 10 85 4 end_of_stmt bit(1), /* token is an end-of-stmt token. */ 10 86 4 quoted_string bit(1), /* token is a quoted string. */ 10 87 4 quotes_in_string bit(1), /* on if quote-close delimiters appear in quoted */ 10 88 /* string (as doubled quotes on input.) */ 10 89 4 quotes_doubled bit(1), /* on if quotes in the string are doubled after */ 10 90 /* string has been lexed into a token. */ 10 91 4 pad2 bit(32), 10 92 token_value char(token.Lvalue) based (token.Pvalue), 10 93 /* value of the token. */ 10 94 Ptoken ptr; /* ptr to a token descriptor. */ 10 95 10 96 /* END OF: lex_descriptors_.incl.pl1 * * * * * * */ 9 25 9 26 9 27 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 9 28 9 29 9 30 SEMANTIC_ANALYSIS: procedure; /* procedure which analyzes the syntax and */ 9 31 /* semantics of the tokens in the input list. */ 9 32 9 33 dcl /* automatic variables */ 9 34 LTOKEN_REQD_VALUE fixed bin(18), /* length of a token requirement. */ 9 35 NRED fixed bin, /* number of the reduction tokens are being */ 9 36 /* compared to. */ 9 37 PRED ptr, /* ptr to the reduction tokens are being */ 9 38 /* compared to. */ 9 39 PTOKEN_REQD ptr, /* ptr to token requirement descriptor associated */ 9 40 /* with reduction tokens are being compared to. */ 9 41 PTOKEN_REQD_VALUE ptr, /* ptr to a token requirement. */ 9 42 STOKEN_FCN bit(1) aligned, /* return value from a relative syntax function. */ 9 43 CODE fixed bin(35), /* an error code. */ 9 44 I fixed bin, /* a do-group index. */ 9 45 NUMBER fixed bin(35); /* fixed binary representation of a decimal */ 9 46 /* number character string. */ 9 47 9 48 dcl /* based variables */ 9 49 1 RED aligned based (PRED), 9 50 /* descriptor for reduction tokens are being */ 9 51 /* compared to. */ 9 52 2 TOKEN_REQD unaligned, 9 53 3 IFIRST fixed bin(17) unal, /* index of first token requirement. */ 9 54 3 ILAST fixed bin(17) unal, /* index of last token requirement associated */ 9 55 /* with this reduction. */ 9 56 1 TOKEN_REQD aligned based (PTOKEN_REQD), 9 57 /* a token requirement descriptor. */ 9 58 2 FORM fixed bin(17) unal, /* form of the token requirement: */ 9 59 /* -1 = relative token requirement function; */ 9 60 /* TYPE = index of the particular token */ 9 61 /* function in the token_fcn array. */ 9 62 /* 0 = built-in token requirement function; */ 9 63 /* TYPE = as defined below. */ 9 64 /* >0 = absolute token requirement: */ 9 65 /* FORM = index(TOKEN_STRINGS,TOKEN_REQD); */ 9 66 /* TYPE = length(TOKEN_REQD); */ 9 67 2 TYPE fixed bin(17) unal, /* TYPE of built-in token requirement function: */ 9 68 /* 1 = compile test to see if input token */ 9 69 /* chain is exhausted (). */ 9 70 /* 2 = compile test for any token value */ 9 71 /* (). */ 9 72 /* 3 = compile test for a PL/I identifier */ 9 73 /* () of 32 or fewer characters. */ 9 74 /* 4 = compile test for token which is a */ 9 75 /* . */ 9 76 /* 5 = compile test for token which is a single */ 9 77 /* backspace character (). */ 9 78 /* 6 = compile test for a token which is a */ 9 79 /* . */ 9 80 9 81 1 TOKEN_REQD_STRING aligned based (PTOKEN_REQD), 9 82 /* overlay for an absolute token requirement */ 9 83 /* descriptor. */ 9 84 2 I fixed bin(17) unal, /* index into list of token strings of the */ 9 85 /* absolute token string assoc w/ descriptor. */ 9 86 2 L fixed bin(17) unal, /* length of the absolute token string. */ 9 87 TOKEN_REQD_VALUE char(LTOKEN_REQD_VALUE) based (PTOKEN_REQD_VALUE); 9 88 /* absolute token string which token is reqd */ 9 89 /* to match in order for tokens which are */ 9 90 /* "current" on the list to match the reduction. */ 9 91 9 92 dcl /* builtin functions */ 9 93 (addr, max, null, search, substr, verify) 9 94 builtin; 9 95 9 96 dcl /* entries */ 9 97 cv_dec_check_ entry (char(*), fixed bin(35)) returns (fixed bin(35)); 9 98 9 99 dcl /* static variables */ 9 100 BACKSPACE char(1) aligned int static init (""); 9 101 9 102 /* END OF: rdc_start_.incl.pl1 * * * * * * */ 3868 3869 3870 dcl DIRECTION fixed bin init(+1); /* direction in which tokens compared. */ 3871 dcl STACK (10) fixed bin, /* reduction label stack. */ 3872 STACK_DEPTH fixed bin init (0); /* index into STACK. */ 3873 3874 3875 dcl 1 REDUCTION (426) unaligned based (addr (REDUCTIONS)), 3876 /* object reductions. */ 3877 2 TOKEN_REQD, 3878 3 IFIRST fixed bin(17), /* index of first required token. */ 3879 3 ILAST fixed bin(17), /* index of last required token. */ 3880 3881 REDUCTIONS (852) fixed bin(17) unaligned internal static options(constant) initial ( 3882 1, 0, /* 1/ */ 3883 1, 2, /* 2/ dcl : */ 3884 3, 4, /* 3/ MediaChars : */ 3885 5, 5, /* 4/ Media */ 3886 6, 6, /* 5/ View */ 3887 7, 7, /* 6/ Def */ 3888 8, 8, /* 7/ Font */ 3889 9, 9, /* 8/ Size */ 3890 10, 10, /* 9/ Device */ 3891 11, 11, /* 10/ */ 3892 12, 11, /* 11/ */ 3893 12, 11, /* 12/ */ 3894 12, 11, /* 13/ */ 3895 12, 11, /* 14/ */ 3896 12, 11, /* 15/ */ 3897 6, 6, /* 16/ View */ 3898 7, 7, /* 17/ Def */ 3899 8, 8, /* 18/ Font */ 3900 9, 9, /* 19/ Size */ 3901 10, 10, /* 20/ Device */ 3902 11, 11, /* 21/ */ 3903 12, 11, /* 22/ */ 3904 12, 13, /* 23/ Media : */ 3905 6, 6, /* 24/ View */ 3906 7, 7, /* 25/ Def */ 3907 8, 8, /* 26/ Font */ 3908 9, 9, /* 27/ Size */ 3909 10, 10, /* 28/ Device */ 3910 14, 13, /* 29/ */ 3911 14, 13, /* 30/ */ 3912 14, 13, /* 31/ */ 3913 14, 13, /* 32/ */ 3914 14, 13, /* 33/ */ 3915 7, 7, /* 34/ Def */ 3916 8, 8, /* 35/ Font */ 3917 9, 9, /* 36/ Size */ 3918 10, 10, /* 37/ Device */ 3919 11, 11, /* 38/ */ 3920 14, 13, /* 39/ */ 3921 14, 15, /* 40/ View : */ 3922 7, 7, /* 41/ Def */ 3923 8, 8, /* 42/ Font */ 3924 9, 9, /* 43/ Size */ 3925 10, 10, /* 44/ Device */ 3926 16, 15, /* 45/ */ 3927 16, 15, /* 46/ */ 3928 16, 15, /* 47/ */ 3929 16, 15, /* 48/ */ 3930 16, 15, /* 49/ */ 3931 8, 8, /* 50/ Font */ 3932 9, 9, /* 51/ Size */ 3933 10, 10, /* 52/ Device */ 3934 11, 11, /* 53/ */ 3935 16, 15, /* 54/ */ 3936 16, 17, /* 55/ Def : */ 3937 8, 8, /* 56/ Font */ 3938 9, 9, /* 57/ Size */ 3939 10, 10, /* 58/ Device */ 3940 18, 17, /* 59/ */ 3941 18, 17, /* 60/ */ 3942 18, 17, /* 61/ */ 3943 18, 17, /* 62/ */ 3944 9, 9, /* 63/ Size */ 3945 10, 10, /* 64/ Device */ 3946 11, 11, /* 65/ */ 3947 18, 17, /* 66/ */ 3948 18, 19, /* 67/ Font : */ 3949 9, 9, /* 68/ Size */ 3950 10, 10, /* 69/ Device */ 3951 20, 19, /* 70/ */ 3952 20, 19, /* 71/ */ 3953 20, 19, /* 72/ */ 3954 20, 19, /* 73/ */ 3955 20, 19, /* 74/ */ 3956 10, 10, /* 75/ Device */ 3957 11, 11, /* 76/ */ 3958 20, 19, /* 77/ */ 3959 20, 21, /* 78/ Size : */ 3960 10, 10, /* 79/ Device */ 3961 22, 21, /* 80/ */ 3962 22, 21, /* 81/ */ 3963 22, 21, /* 82/ */ 3964 22, 21, /* 83/ */ 3965 22, 21, /* 84/ */ 3966 22, 23, /* 85/ Device : */ 3967 11, 11, /* 86/ */ 3968 24, 23, /* 87/ */ 3969 24, 23, /* 88/ */ 3970 24, 23, /* 89/ */ 3971 24, 25, /* 90/ , */ 3972 26, 26, /* 91/ ; */ 3973 27, 26, /* 92/ */ 3974 27, 27, /* 93/ */ 3975 28, 28, /* 94/ */ 3976 29, 28, /* 95/ */ 3977 25, 25, /* 96/ , */ 3978 26, 26, /* 97/ ; */ 3979 29, 29, /* 98/ */ 3980 2, 2, /* 99/ : */ 3981 30, 29, /* 100/ */ 3982 28, 28, /* 101/ */ 3983 30, 29, /* 102/ */ 3984 30, 29, /* 103/ */ 3985 30, 29, /* 104/ */ 3986 25, 25, /* 105/ , */ 3987 26, 26, /* 106/ ; */ 3988 30, 29, /* 107/ */ 3989 30, 29, /* 108/ */ 3990 30, 30, /* 109/ */ 3991 31, 30, /* 110/ */ 3992 25, 25, /* 111/ , */ 3993 26, 26, /* 112/ ; */ 3994 31, 30, /* 113/ */ 3995 31, 32, /* 114/ strokes : */ 3996 33, 32, /* 115/ */ 3997 33, 33, /* 116/ */ 3998 25, 25, /* 117/ , */ 3999 26, 26, /* 118/ ; */ 4000 34, 33, /* 119/ */ 4001 34, 34, /* 120/ */ 4002 35, 34, /* 121/ */ 4003 35, 35, /* 122/ */ 4004 36, 35, /* 123/ */ 4005 2, 2, /* 124/ : */ 4006 36, 35, /* 125/ */ 4007 34, 34, /* 126/ */ 4008 36, 35, /* 127/ */ 4009 35, 35, /* 128/ */ 4010 36, 35, /* 129/ */ 4011 33, 33, /* 130/ */ 4012 36, 36, /* 131/ */ 4013 37, 37, /* 132/ = */ 4014 38, 37, /* 133/ */ 4015 38, 37, /* 134/ */ 4016 38, 37, /* 135/ */ 4017 26, 26, /* 136/ ; */ 4018 25, 25, /* 137/ , */ 4019 38, 37, /* 138/ */ 4020 24, 24, /* 139/ */ 4021 38, 37, /* 140/ */ 4022 38, 38, /* 141/ */ 4023 39, 38, /* 142/ */ 4024 25, 25, /* 143/ , */ 4025 26, 26, /* 144/ ; */ 4026 39, 38, /* 145/ */ 4027 39, 40, /* 146/ ; */ 4028 41, 40, /* 147/ */ 4029 7, 7, /* 148/ Def */ 4030 8, 8, /* 149/ Font */ 4031 9, 9, /* 150/ Size */ 4032 10, 10, /* 151/ Device */ 4033 11, 11, /* 152/ */ 4034 41, 40, /* 153/ */ 4035 26, 26, /* 154/ ; */ 4036 41, 40, /* 155/ */ 4037 41, 40, /* 156/ */ 4038 41, 41, /* 157/ */ 4039 42, 42, /* 158/ art */ 4040 43, 42, /* 159/ */ 4041 43, 43, /* 160/ */ 4042 44, 43, /* 161/ */ 4043 2, 2, /* 162/ : */ 4044 44, 43, /* 163/ */ 4045 41, 41, /* 164/ */ 4046 44, 43, /* 165/ */ 4047 2, 2, /* 166/ : */ 4048 25, 25, /* 167/ , */ 4049 44, 44, /* 168/ */ 4050 45, 44, /* 169/ */ 4051 45, 45, /* 170/ */ 4052 46, 46, /* 171/ ( */ 4053 47, 48, /* 172/ ( */ 4054 49, 49, /* 173/ SELF */ 4055 34, 34, /* 174/ */ 4056 50, 49, /* 175/ */ 4057 50, 49, /* 176/ */ 4058 50, 49, /* 177/ */ 4059 37, 37, /* 178/ = */ 4060 26, 26, /* 179/ ; */ 4061 25, 25, /* 180/ , */ 4062 50, 49, /* 181/ */ 4063 36, 36, /* 182/ */ 4064 33, 33, /* 183/ */ 4065 50, 49, /* 184/ */ 4066 50, 49, /* 185/ */ 4067 50, 51, /* 186/ ) = */ 4068 52, 51, /* 187/ */ 4069 36, 36, /* 188/ */ 4070 33, 33, /* 189/ */ 4071 52, 51, /* 190/ */ 4072 26, 26, /* 191/ ; */ 4073 52, 51, /* 192/ */ 4074 52, 51, /* 193/ */ 4075 47, 48, /* 194/ ( */ 4076 49, 49, /* 195/ SELF */ 4077 34, 34, /* 196/ */ 4078 45, 45, /* 197/ */ 4079 52, 51, /* 198/ */ 4080 52, 51, /* 199/ */ 4081 52, 52, /* 200/ */ 4082 53, 52, /* 201/ */ 4083 53, 52, /* 202/ */ 4084 50, 50, /* 203/ ) */ 4085 53, 52, /* 204/ */ 4086 24, 24, /* 205/ */ 4087 53, 52, /* 206/ */ 4088 44, 44, /* 207/ */ 4089 53, 52, /* 208/ */ 4090 26, 26, /* 209/ ; */ 4091 53, 52, /* 210/ */ 4092 53, 52, /* 211/ */ 4093 53, 52, /* 212/ */ 4094 26, 26, /* 213/ ; */ 4095 53, 52, /* 214/ */ 4096 53, 52, /* 215/ */ 4097 53, 52, /* 216/ */ 4098 41, 41, /* 217/ */ 4099 42, 42, /* 218/ art */ 4100 7, 7, /* 219/ Def */ 4101 53, 54, /* 220/ footrefseparator : */ 4102 55, 56, /* 221/ wordspace : */ 4103 57, 58, /* 222/ ref : */ 4104 8, 8, /* 223/ Font */ 4105 9, 9, /* 224/ Size */ 4106 10, 10, /* 225/ Device */ 4107 11, 11, /* 226/ */ 4108 59, 58, /* 227/ */ 4109 26, 26, /* 228/ ; */ 4110 59, 58, /* 229/ */ 4111 59, 60, /* 230/ ; */ 4112 26, 26, /* 231/ ; */ 4113 61, 60, /* 232/ */ 4114 61, 62, /* 233/ , */ 4115 63, 62, /* 234/ */ 4116 61, 62, /* 235/ , */ 4117 63, 62, /* 236/ */ 4118 61, 62, /* 237/ , */ 4119 63, 62, /* 238/ */ 4120 63, 64, /* 239/ ; */ 4121 26, 26, /* 240/ ; */ 4122 65, 64, /* 241/ */ 4123 65, 64, /* 242/ */ 4124 65, 65, /* 243/ */ 4125 66, 65, /* 244/ */ 4126 26, 26, /* 245/ ; */ 4127 66, 65, /* 246/ */ 4128 66, 65, /* 247/ */ 4129 66, 65, /* 248/ */ 4130 24, 24, /* 249/ */ 4131 66, 65, /* 250/ */ 4132 66, 67, /* 251/ , */ 4133 68, 67, /* 252/ */ 4134 26, 26, /* 253/ ; */ 4135 68, 67, /* 254/ */ 4136 68, 71, /* 255/ Units : ; */ 4137 72, 74, /* 256/ Artproc : */ 4138 75, 78, /* 257/ Attach : ; */ 4139 79, 80, /* 258/ Cleanup : */ 4140 18, 19, /* 259/ Font : */ 4141 81, 84, /* 260/ Comment : ; */ 4142 85, 94, /* 261/ DefaultMargs : , , , ; */ 4143 95, 98, /* 262/ DevClass : ; */ 4144 99, 102, /* 263/ DevName : ; */ 4145 103, 106, /* 264/ Endpage : ; */ 4146 107, 108, /* 265/ Footproc : */ 4147 109, 110, /* 266/ Footrefseparator : */ 4148 111, 114, /* 267/ Justify : ; */ 4149 115, 118, /* 268/ Interleave : ; */ 4150 119, 122, /* 269/ Letterspace : ; */ 4151 123, 126, /* 270/ MaxFiles : ; */ 4152 127, 130, /* 271/ MaxPages : ; */ 4153 131, 134, /* 272/ MaxPageLength : ; */ 4154 135, 138, /* 273/ MaxPageWidth : ; */ 4155 139, 142, /* 274/ MinBotMarg : ; */ 4156 143, 146, /* 275/ MinLead : ; */ 4157 147, 150, /* 276/ MinSpace : ; */ 4158 151, 154, /* 277/ MinTopMarg : ; */ 4159 155, 157, /* 278/ Outproc : */ 4160 158, 161, /* 279/ Strokes : ; */ 4161 162, 163, /* 280/ Wordspace : */ 4162 164, 167, /* 281/ Sizes : ; */ 4163 168, 171, /* 282/ Stream : ; */ 4164 172, 175, /* 283/ TapeRec : ; */ 4165 11, 11, /* 284/ */ 4166 1, 1, /* 285/ dcl */ 4167 3, 3, /* 286/ MediaChars */ 4168 5, 5, /* 287/ Media */ 4169 6, 6, /* 288/ View */ 4170 7, 7, /* 289/ Def */ 4171 8, 8, /* 290/ Font */ 4172 9, 9, /* 291/ Size */ 4173 10, 10, /* 292/ Device */ 4174 176, 175, /* 293/ */ 4175 176, 175, /* 294/ */ 4176 176, 178, /* 295/ $ ; */ 4177 179, 178, /* 296/ */ 4178 59, 60, /* 297/ ; */ 4179 179, 178, /* 298/ */ 4180 24, 24, /* 299/ */ 4181 25, 25, /* 300/ , */ 4182 179, 178, /* 301/ */ 4183 176, 177, /* 302/ $ */ 4184 179, 178, /* 303/ */ 4185 179, 180, /* 304/ , */ 4186 26, 26, /* 305/ ; */ 4187 181, 180, /* 306/ */ 4188 176, 178, /* 307/ $ ; */ 4189 26, 26, /* 308/ ; */ 4190 181, 180, /* 309/ */ 4191 26, 26, /* 310/ ; */ 4192 181, 180, /* 311/ */ 4193 181, 180, /* 312/ */ 4194 181, 180, /* 313/ */ 4195 181, 181, /* 314/ */ 4196 45, 45, /* 315/ */ 4197 49, 49, /* 316/ SELF */ 4198 47, 48, /* 317/ ( */ 4199 182, 182, /* 318/ */ 4200 183, 182, /* 319/ */ 4201 50, 50, /* 320/ ) */ 4202 26, 26, /* 321/ ; */ 4203 183, 182, /* 322/ */ 4204 183, 182, /* 323/ */ 4205 183, 183, /* 324/ */ 4206 184, 183, /* 325/ */ 4207 25, 25, /* 326/ , */ 4208 184, 184, /* 327/ like */ 4209 26, 26, /* 328/ ; */ 4210 185, 184, /* 329/ */ 4211 185, 186, /* 330/ ; */ 4212 187, 186, /* 331/ */ 4213 187, 186, /* 332/ */ 4214 10, 10, /* 333/ Device */ 4215 11, 11, /* 334/ */ 4216 187, 186, /* 335/ */ 4217 187, 186, /* 336/ */ 4218 187, 186, /* 337/ */ 4219 187, 186, /* 338/ */ 4220 187, 190, /* 339/ units : ; */ 4221 191, 193, /* 340/ artproc : */ 4222 194, 197, /* 341/ attach : ; */ 4223 198, 199, /* 342/ cleanup : */ 4224 200, 203, /* 343/ comment : ; */ 4225 204, 213, /* 344/ defaultmargs : , , , ; */ 4226 214, 217, /* 345/ devclass : ; */ 4227 218, 221, /* 346/ devname : ; */ 4228 222, 225, /* 347/ endpage : ; */ 4229 226, 227, /* 348/ family : */ 4230 228, 229, /* 349/ footproc : */ 4231 230, 231, /* 350/ init : */ 4232 232, 235, /* 351/ interleave : ; */ 4233 236, 239, /* 352/ justify : ; */ 4234 240, 243, /* 353/ letterspace : ; */ 4235 244, 247, /* 354/ maxfiles : ; */ 4236 248, 251, /* 355/ maxpages : ; */ 4237 252, 255, /* 356/ maxpagelength : ; */ 4238 256, 259, /* 357/ maxpagewidth : ; */ 4239 260, 263, /* 358/ minbotmarg : ; */ 4240 264, 267, /* 359/ minlead : ; */ 4241 268, 271, /* 360/ minspace : ; */ 4242 272, 275, /* 361/ mintopmarg : ; */ 4243 276, 278, /* 362/ outproc : */ 4244 279, 282, /* 363/ stream : ; */ 4245 283, 286, /* 364/ taperec : ; */ 4246 287, 288, /* 365/ bachelor : */ 4247 289, 290, /* 366/ viewselect : */ 4248 10, 10, /* 367/ Device */ 4249 11, 11, /* 368/ */ 4250 291, 290, /* 369/ */ 4251 291, 290, /* 370/ */ 4252 176, 178, /* 371/ $ ; */ 4253 291, 290, /* 372/ */ 4254 176, 178, /* 373/ $ ; */ 4255 26, 26, /* 374/ ; */ 4256 291, 290, /* 375/ */ 4257 26, 26, /* 376/ ; */ 4258 291, 290, /* 377/ */ 4259 291, 290, /* 378/ */ 4260 291, 291, /* 379/ */ 4261 292, 291, /* 380/ */ 4262 25, 25, /* 381/ , */ 4263 292, 291, /* 382/ */ 4264 292, 293, /* 383/ ; member */ 4265 294, 293, /* 384/ */ 4266 294, 295, /* 385/ member : */ 4267 296, 295, /* 386/ */ 4268 296, 296, /* 387/ */ 4269 297, 296, /* 388/ */ 4270 25, 25, /* 389/ , */ 4271 297, 296, /* 390/ */ 4272 297, 297, /* 391/ */ 4273 298, 297, /* 392/ */ 4274 26, 26, /* 393/ ; */ 4275 298, 297, /* 394/ */ 4276 298, 299, /* 395/ Scale : */ 4277 300, 299, /* 396/ */ 4278 33, 33, /* 397/ */ 4279 300, 299, /* 398/ */ 4280 66, 67, /* 399/ , */ 4281 300, 299, /* 400/ */ 4282 26, 26, /* 401/ ; */ 4283 300, 299, /* 402/ */ 4284 300, 299, /* 403/ */ 4285 180, 180, /* 404/ */ 4286 300, 299, /* 405/ */ 4287 33, 33, /* 406/ */ 4288 300, 299, /* 407/ */ 4289 26, 26, /* 408/ ; */ 4290 300, 299, /* 409/ */ 4291 300, 299, /* 410/ */ 4292 300, 299, /* 411/ */ 4293 24, 24, /* 412/ */ 4294 25, 25, /* 413/ , */ 4295 26, 26, /* 414/ ; */ 4296 300, 299, /* 415/ */ 4297 176, 177, /* 416/ $ */ 4298 179, 180, /* 417/ , */ 4299 300, 299, /* 418/ */ 4300 26, 26, /* 419/ ; */ 4301 300, 299, /* 420/ */ 4302 44, 44, /* 421/ */ 4303 300, 299, /* 422/ */ 4304 300, 299, /* 423/ */ 4305 26, 26, /* 424/ ; */ 4306 25, 25, /* 425/ , */ 4307 300, 299); /* 426/ */ 4308 4309 dcl 1 TOKEN_REQUIREMENT (299) unaligned based (addr (TOKEN_REQUIREMENTS)), 4310 /* object token requirements. */ 4311 2 FORM fixed bin(17), /* form of the token requirement: */ 4312 /* -1 = relative token requirement function; */ 4313 /* TYPE = index of the particular token */ 4314 /* function in the token_fcn array. */ 4315 /* 0 = built-in token requirement function; */ 4316 /* TYPE = as defined below. */ 4317 /* >0 = absolute token requirement: */ 4318 /* FORM = index(TOKEN_STRINGS,TOKEN_REQD); */ 4319 /* TYPE = length(TOKEN_REQD); */ 4320 2 TYPE fixed bin(17) unal, /* type of the built-in token requirement */ 4321 /* function: */ 4322 /* 1 = compile test to see if input token */ 4323 /* chain is exhausted (). */ 4324 /* 2 = compile test for any token value */ 4325 /* (). */ 4326 /* 3 = compile test for a PL/I identifier */ 4327 /* () of 32 or fewer characters. */ 4328 /* 4 = compile test for token which is a */ 4329 /* . */ 4330 /* 5 = compile test for token which is a single */ 4331 /* backspace character (). */ 4332 /* 6 = compile test for a token which is a */ 4333 /* . */ 4334 4335 TOKEN_REQUIREMENTS (598) fixed bin(17) unaligned internal static options(constant) initial ( 4336 1, 3, 4, 1, 5, 10, 4, 1, 5, 5, 15, 4, 19, 3, 4337 22, 4, 26, 4, 30, 6, 0, 1, 5, 5, 4, 1, 15, 4, 4338 4, 1, 19, 3, 4, 1, 22, 4, 4, 1, 26, 4, 4, 1, 4339 30, 6, 4, 1, -1, 1, 36, 1, 37, 1, -1, 2, -1, 3, 4340 0, 2, -1, 4, 38, 7, 4, 1, -1, 5, -1, 6, -1, 7, 4341 -1, 8, 45, 1, -1, 9, -1, 1, 37, 1, -1, 10, 46, 3, 4342 -1, 11, -1, 12, 0, 6, 49, 1, -1, 5, 49, 1, 50, 4, 4343 54, 1, 45, 1, -1, 13, 55, 16, 4, 1, 71, 9, 4, 1, 4344 59, 3, 4, 1, -1, 10, 37, 1, -1, 5, 36, 1, -1, 6, 4345 37, 1, -1, 14, 36, 1, -1, 5, 80, 5, 4, 1, -1, 15, 4346 37, 1, 85, 7, 4, 1, -1, 1, 92, 6, 4, 1, 0, 6, 4347 37, 1, 98, 7, 4, 1, 105, 7, 4, 1, 0, 6, 37, 1, 4348 112, 12, 4, 1, -1, 5, 36, 1, -1, 5, 36, 1, -1, 5, 4349 36, 1, -1, 5, 37, 1, 124, 8, 4, 1, 0, 6, 37, 1, 4350 132, 7, 4, 1, 0, 6, 37, 1, 139, 7, 4, 1, -1, 10, 4351 37, 1, 146, 8, 4, 1, 154, 16, 4, 1, 170, 7, 4, 1, 4352 -1, 16, 37, 1, 177, 10, 4, 1, -1, 16, 37, 1, 187, 11, 4353 4, 1, -1, 5, 37, 1, 198, 8, 4, 1, -1, 17, 37, 1, 4354 206, 8, 4, 1, -1, 17, 37, 1, 214, 13, 4, 1, -1, 17, 4355 37, 1, 227, 12, 4, 1, -1, 5, 37, 1, 239, 10, 4, 1, 4356 -1, 5, 37, 1, 249, 7, 4, 1, -1, 5, 37, 1, 256, 8, 4357 4, 1, -1, 5, 37, 1, 264, 10, 4, 1, -1, 5, 37, 1, 4358 274, 7, 4, 1, -1, 1, 281, 7, 4, 1, -1, 5, 37, 1, 4359 288, 9, 4, 1, 297, 5, 4, 1, -1, 18, 37, 1, 302, 6, 4360 4, 1, -1, 16, 37, 1, 308, 7, 4, 1, -1, 17, 37, 1, 4361 315, 1, -1, 1, 37, 1, 36, 1, -1, 19, -1, 20, -1, 21, 4362 -1, 22, 316, 4, -1, 23, 37, 1, 320, 5, 4, 1, -1, 15, 4363 37, 1, 325, 7, 4, 1, -1, 1, 332, 6, 4, 1, 0, 6, 4364 37, 1, 338, 7, 4, 1, 345, 7, 4, 1, 0, 6, 37, 1, 4365 352, 12, 4, 1, -1, 5, 36, 1, -1, 5, 36, 1, -1, 5, 4366 36, 1, -1, 5, 37, 1, 364, 8, 4, 1, 0, 6, 37, 1, 4367 372, 7, 4, 1, 0, 6, 37, 1, 379, 7, 4, 1, -1, 10, 4368 37, 1, 386, 6, 4, 1, 392, 8, 4, 1, 400, 4, 4, 1, 4369 404, 10, 4, 1, -1, 16, 37, 1, 414, 7, 4, 1, -1, 16, 4370 37, 1, 421, 11, 4, 1, -1, 5, 37, 1, 432, 8, 4, 1, 4371 -1, 17, 37, 1, 440, 8, 4, 1, -1, 17, 37, 1, 448, 13, 4372 4, 1, -1, 17, 37, 1, 461, 12, 4, 1, -1, 5, 37, 1, 4373 473, 10, 4, 1, -1, 5, 37, 1, 483, 7, 4, 1, -1, 5, 4374 37, 1, 490, 8, 4, 1, -1, 5, 37, 1, 498, 10, 4, 1, 4375 -1, 5, 37, 1, 508, 7, 4, 1, -1, 1, 515, 6, 4, 1, 4376 -1, 16, 37, 1, 521, 7, 4, 1, -1, 17, 37, 1, 528, 8, 4377 4, 1, 536, 10, 4, 1, -1, 24, 37, 1, 546, 6, 546, 6, 4378 4, 1, -1, 25, -1, 26, 552, 5, 4, 1); 4379 4380 4381 dcl TOKEN_STRINGS char(556) aligned based (addr (TOKEN_STRING_ARRAYS)), 4382 /* object token values. */ 4383 TOKEN_STRING_ARRAYS (6) char(100) aligned internal static options(constant) initial ( 4384 "dcl:MediaCharsViewDefFontSizeDevice,;strokes=art(SELF)footrefseparatorwordspaceUnitsArtprocAttachCle", 4385 "anupCommentDefaultMargsDevClassDevNameEndpageFootprocFootrefseparatorJustifyInterleaveLetterspaceMax", 4386 "FilesMaxPagesMaxPageLengthMaxPageWidthMinBotMargMinLeadMinSpaceMinTopMargOutprocStrokesWordspaceSize", 4387 "sStreamTapeRec$likeunitsartprocattachcleanupcommentdefaultmargsdevclassdevnameendpagefamilyfootproci", 4388 "nitinterleavejustifyletterspacemaxfilesmaxpagesmaxpagelengthmaxpagewidthminbotmargminleadminspacemin", 4389 "topmargoutprocstreamtaperecbachelorviewselectmemberScale"); 4390 4391 /* START OF: rdc_end_.incl.pl1 * * * * * * * * * * * * * * * * */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(86-02-14,GWMay), approve(), audit(), install(): 11 6* old history comments: 11 7* 0) Created: April, 1974 by G. C. Dixon 11 8* 1) Modified: Feb, 1975 by G. C. Dixon 11 9* a) support for Version 2.0 of reduction_compiler. 11 10* 2) Modified: Feb, 1981 by G. C. Dixon 11 11* a) support for Version 2.2 of reduction_compiler 11 12* 3) Modified: Aug, 1983 by G. C. Dixon - support for Version 2.3 of 11 13* reductions command. 11 14* 2) change(86-03-04,GDixon), approve(86-03-04,MCR7362), audit(86-03-17,GWMay), 11 15* install(86-03-17,MR12.0-1032): 11 16* Changed how the PUSH DOWN LANGUAGE (SPDL) definition of is 11 17* implemented to avoid references through a null pointer. The two 11 18* accepted uses are: 11 19* 11 20* / / ... / ... \ 11 21* A 11 22* | 11 23* Pthis_token (points to top of push down stack) 11 24* 11 25* which checks to see if the push down stack is totally exhausted (ie, 11 26* Ptoken = null); and: 11 27* 11 28* / SPEC1 ... SPECN / ... / ... \ 11 29* A 11 30* | 11 31* Pthis_token (points to top of push down stack) 11 32* 11 33* which checks to see whether SPECN is topmost on the push down stack 11 34* AND is the final token in the input list. 11 35* END HISTORY COMMENTS */ 11 36 11 37 11 38 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 39 /* */ 11 40 /* NAME: rdc_end_.incl.pl1 */ 11 41 /* */ 11 42 /* This include segment is used by compilers generated by the reduction_compiler. */ 11 43 /* Such compilers include a SEMANTIC_ANALYSIS subroutine generated by the */ 11 44 /* reduction_compiler. This subroutine compares a chain of input tokens with token */ 11 45 /* requirements specified in reductions. The code in this include segment performs the */ 11 46 /* actual comparisons. This code is the middle part of the SEMANTIC_ANALYSIS procedure. */ 11 47 /* */ 11 48 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 49 11 50 TRACING = TRACING; /* Kludge to prevent pl1 from making TRACING */ 11 51 /* options(constant) because it is never set. */ 11 52 NRED = 1; 11 53 go to RD_TEST_REDUCTION; 11 54 11 55 RD_NEXT_REDUCTION: 11 56 NRED = NRED + 1; 11 57 11 58 RD_TEST_REDUCTION: 11 59 PRED = addr(REDUCTION(NRED)); 11 60 Ptoken = Pthis_token; 11 61 11 62 do I = RED.TOKEN_REQD.IFIRST to RED.TOKEN_REQD.ILAST by DIRECTION; 11 63 PTOKEN_REQD = addr(TOKEN_REQUIREMENT(I)); 11 64 if Ptoken = null then do; 11 65 if TOKEN_REQD.FORM = 0 then /* No more tokens. Only matches spec. */ 11 66 if TOKEN_REQD.TYPE = 1 then 11 67 go to RD_TEST_TOKEN(1); 11 68 go to RD_NEXT_REDUCTION; 11 69 end; 11 70 if TOKEN_REQD.FORM = 0 then do; /* built-in syntax function. */ 11 71 go to RD_TEST_TOKEN(TOKEN_REQD.TYPE); 11 72 11 73 RD_TEST_TOKEN(1): if SPDL then /* */ 11 74 /* In push-down-language, there are 2 */ 11 75 /* interpretations of . */ 11 76 if RED.TOKEN_REQD.IFIRST = RED.TOKEN_REQD.ILAST & 11 77 Ptoken = null then /* When is only spec, the spec asks */ 11 78 go to RD_MATCH_NO_TOKEN; /* "Is push down stack empty (all input gone)?" */ 11 79 else if RED.TOKEN_REQD.IFIRST^= RED.TOKEN_REQD.ILAST & 11 80 RED.TOKEN_REQD.IFIRST = I & 11 81 token.Pnext = null then /* For SPEC1 ... SPECN , the spec asks */ 11 82 go to RD_MATCH_NO_TOKEN; /* "Are the topmost tokens on stack SPEC1 - SPECN,*/ 11 83 /* and is SPECN the final input token?" */ 11 84 else go to RD_NEXT_REDUCTION; /* Those are the only two defs allowed in push */ 11 85 /* down language mode for . */ 11 86 else if Ptoken = null then 11 87 go to RD_MATCH_NO_TOKEN; 11 88 go to RD_NEXT_REDUCTION; 11 89 11 90 RD_TEST_TOKEN(2): go to RD_MATCH; /* */ 11 91 11 92 RD_TEST_TOKEN(3): if token.Lvalue > 0 & /* */ 11 93 token.Lvalue <= 32 & ^token.S.quoted_string then 11 94 if search(substr(token_value,1,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") 11 95 > 0 then 11 96 if verify(token_value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_$") 11 97 = 0 then 11 98 go to RD_MATCH; 11 99 go to RD_NEXT_REDUCTION; 11 100 11 101 RD_TEST_TOKEN(4): /* */ 11 102 if token.Nvalue ^= 0 then /* token already determined to be a number. */ 11 103 go to RD_MATCH; 11 104 if token.S.quoted_string then 11 105 go to RD_NEXT_REDUCTION; 11 106 NUMBER = cv_dec_check_ (token_value, CODE); 11 107 if CODE = 0 then do; 11 108 token.Nvalue = NUMBER; 11 109 go to RD_MATCH; 11 110 end; 11 111 go to RD_NEXT_REDUCTION; 11 112 11 113 RD_TEST_TOKEN(5): if token.Lvalue = 1 then /* */ 11 114 if token_value = BACKSPACE & ^token.S.quoted_string then 11 115 go to RD_MATCH; 11 116 go to RD_NEXT_REDUCTION; 11 117 11 118 RD_TEST_TOKEN(6): if token.S.quoted_string then /* */ 11 119 go to RD_MATCH; 11 120 go to RD_NEXT_REDUCTION; 11 121 end; 11 122 11 123 else if TOKEN_REQD.FORM > 0 then do; /* absolute syntax specification. */ 11 124 if token.S.quoted_string then 11 125 go to RD_NEXT_REDUCTION; 11 126 PTOKEN_REQD_VALUE = addr(substr(TOKEN_STRINGS,TOKEN_REQD_STRING.I)); 11 127 LTOKEN_REQD_VALUE = TOKEN_REQD_STRING.L; 11 128 if token_value = TOKEN_REQD_VALUE then 11 129 go to RD_MATCH; 11 130 go to RD_NEXT_REDUCTION; 11 131 end; 11 132 11 133 /* END OF: rdc_end_.incl.pl1 * * * * * * * * * * * * * * * * */ 4391 4392 4393 else do; /* relative syntax function. */ 4394 go to RD_TOKEN_FCN(TOKEN_REQD.TYPE); 4395 4396 RD_TOKEN_FCN(1): STOKEN_FCN = ident(); 4397 go to RD_TEST_RESULT; 4398 RD_TOKEN_FCN(2): STOKEN_FCN = ident2(); 4399 go to RD_TEST_RESULT; 4400 RD_TOKEN_FCN(3): STOKEN_FCN = input(); 4401 go to RD_TEST_RESULT; 4402 RD_TOKEN_FCN(4): STOKEN_FCN = valid_Media_name(); 4403 go to RD_TEST_RESULT; 4404 RD_TOKEN_FCN(5): STOKEN_FCN = num(); 4405 go to RD_TEST_RESULT; 4406 RD_TOKEN_FCN(6): STOKEN_FCN = charname(); 4407 go to RD_TEST_RESULT; 4408 RD_TOKEN_FCN(7): STOKEN_FCN = input_(); 4409 go to RD_TEST_RESULT; 4410 RD_TOKEN_FCN(8): STOKEN_FCN = negnum(); 4411 go to RD_TEST_RESULT; 4412 RD_TOKEN_FCN(9): STOKEN_FCN = medianame(); 4413 go to RD_TEST_RESULT; 4414 RD_TOKEN_FCN(10): STOKEN_FCN = all_input(); 4415 go to RD_TEST_RESULT; 4416 RD_TOKEN_FCN(11): STOKEN_FCN = part(); 4417 go to RD_TEST_RESULT; 4418 RD_TOKEN_FCN(12): STOKEN_FCN = is_viewname(); 4419 go to RD_TEST_RESULT; 4420 RD_TOKEN_FCN(13): STOKEN_FCN = charlist(); 4421 go to RD_TEST_RESULT; 4422 RD_TOKEN_FCN(14): STOKEN_FCN = is_Defname(); 4423 go to RD_TEST_RESULT; 4424 RD_TOKEN_FCN(15): STOKEN_FCN = unitkey(); 4425 go to RD_TEST_RESULT; 4426 RD_TOKEN_FCN(16): STOKEN_FCN = switch(); 4427 go to RD_TEST_RESULT; 4428 RD_TOKEN_FCN(17): STOKEN_FCN = limit(); 4429 go to RD_TEST_RESULT; 4430 RD_TOKEN_FCN(18): STOKEN_FCN = sizename(); 4431 go to RD_TEST_RESULT; 4432 RD_TOKEN_FCN(19): STOKEN_FCN = fam_mem(); 4433 go to RD_TEST_RESULT; 4434 RD_TOKEN_FCN(20): STOKEN_FCN = octal(); 4435 go to RD_TEST_RESULT; 4436 RD_TOKEN_FCN(21): STOKEN_FCN = dcl_ed(); 4437 go to RD_TEST_RESULT; 4438 RD_TOKEN_FCN(22): STOKEN_FCN = valid_Device_name(); 4439 go to RD_TEST_RESULT; 4440 RD_TOKEN_FCN(23): STOKEN_FCN = table_name(); 4441 go to RD_TEST_RESULT; 4442 RD_TOKEN_FCN(24): STOKEN_FCN = fam_bach(); 4443 go to RD_TEST_RESULT; 4444 RD_TOKEN_FCN(25): STOKEN_FCN = membername(); 4445 go to RD_TEST_RESULT; 4446 RD_TOKEN_FCN(26): STOKEN_FCN = font_name(); 4447 go to RD_TEST_RESULT; 4448 4449 RD_TEST_RESULT: if STOKEN_FCN then go to RD_MATCH; 4450 else go to RD_NEXT_REDUCTION; 4451 end; 4452 4453 RD_MATCH: Ptoken = token.Pnext; 4454 RD_MATCH_NO_TOKEN: 4455 end; 4456 Ptoken = Pthis_token; 4457 go to RD_ACTION(NRED); 4458 4459 /* START OF: rdc_stack_fcns_.incl.pl1 * * * * * * */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* N__a_m_e: rdc_stack_fcns_.incl.pl1 */ 12 6 /* */ 12 7 /* This include segment is used by compilers generated by the */ 12 8 /* reduction_compiler. It includes code for manipulating the */ 12 9 /* reduction label stack. */ 12 10 /* */ 12 11 /* S__t_a_t_u_s */ 12 12 /* */ 12 13 /* 0) Created: April, 1974 by G. C. Dixon */ 12 14 /* */ 12 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 12 16 12 17 RD_STACK: if STACK_DEPTH > 0 then do; 12 18 NRED = STACK (STACK_DEPTH); 12 19 go to RD_TEST_REDUCTION; 12 20 end; 12 21 else 12 22 go to RD_NEXT_REDUCTION; 12 23 12 24 RD_STACK_POP: 12 25 if STACK_DEPTH > 0 then do; 12 26 NRED = STACK (STACK_DEPTH); 12 27 STACK_DEPTH = max (STACK_DEPTH-1, 0); 12 28 go to RD_TEST_REDUCTION; 12 29 end; 12 30 else 12 31 go to RD_NEXT_REDUCTION; 12 32 12 33 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 12 34 12 35 12 36 PUSH: procedure (N); /* invoked to push reduction number 'N' onto */ 12 37 /* the reduction stack. */ 12 38 dcl N fixed bin; 12 39 12 40 dcl (addr, dimension, length, null) 12 41 builtin; 12 42 12 43 dcl cu_$cl entry, 12 44 iox_$put_chars entry (ptr, ptr, fixed bin, fixed bin(35)), 12 45 iox_$error_output ptr ext static, 12 46 lex_error_ entry options(variable); 12 47 12 48 dcl brief_error char(4) varying initial ("") int static, 12 49 long_error char(234) varying int static init( 12 50 "An internal stack (the reduction stack) has overflowed. 12 51 The translation has failed. Contact translator maintenance 12 52 personnel for assistance. 12 53 Processing reduction: ^d 12 54 Reduction being stacked: ^d 12 55 Maximum stack depth: ^d"), 12 56 non_restart_error char(33) int static init ("Translation cannot be restarted. 12 57 "); 12 58 12 59 if STACK_DEPTH >= dimension (STACK, 1) then do; 12 60 call lex_error_ (0, "0"b, 4, 0, null, null, "11"b, long_error, brief_error, NRED, N, 12 61 dimension(STACK,1)); 12 62 get_to_cl: call cu_$cl(); 12 63 call iox_$put_chars (iox_$error_output, addr(non_restart_error), length(non_restart_error), 0); 12 64 go to get_to_cl; 12 65 end; /* stack overflow is a non-recoverable error. */ 12 66 else 12 67 STACK_DEPTH = STACK_DEPTH + 1; 12 68 STACK (STACK_DEPTH) = N; 12 69 12 70 end PUSH; 12 71 12 72 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 12 73 12 74 /* END OF: rdc_stack_fcns_.incl.pl1 * * * * * * */ 4459 4460 4461 4462 RD_ACTION(1): /* / */ 4463 call PUSH(1); /* PUSH(BEGIN) */ 4464 call push ( "BEGIN" ); 4465 go to RD_NEXT_REDUCTION; /* / \ */ 4466 4467 RD_ACTION(2): /* / */ 4468 if db_start = "dcl" then db_sw , dt_sw = "1"b; 4469 if db_sw then call ioa_ ( "^[^/^]===Declare", dt_sw ); 4470 call LEX ( 2 ); 4471 NRED = 90; 4472 go to RD_TEST_REDUCTION; /* / dcl \ */ 4473 4474 RD_ACTION(3): /* / */ 4475 call LEX ( 2 ); 4476 call pop(); 4477 mediachars_p = area_free_p; 4478 call PUSH(13); /* PUSH(done_MediaChars) */ 4479 call push ( "done_MediaChars" ); 4480 NRED = 93; 4481 go to RD_TEST_REDUCTION; /* / MediaChars \ */ 4482 4483 RD_ACTION(4): /* / */ 4484 NRED = 12; 4485 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4486 4487 RD_ACTION(5): /* / */ 4488 NRED = 12; 4489 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4490 4491 RD_ACTION(6): /* / */ 4492 NRED = 12; 4493 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4494 4495 RD_ACTION(7): /* / */ 4496 NRED = 12; 4497 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4498 4499 RD_ACTION(8): /* / */ 4500 NRED = 12; 4501 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4502 4503 RD_ACTION(9): /* / */ 4504 NRED = 12; 4505 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4506 4507 RD_ACTION(10): /* / */ 4508 NRED = 12; 4509 go to RD_TEST_REDUCTION; /* / no_MediaChars \ */ 4510 4511 RD_ACTION(11): /* / */ 4512 NRED = 255; 4513 go to RD_TEST_REDUCTION; /* / global_device \ */ 4514 4515 RD_ACTION(12): /* / */ 4516 call pop(); 4517 call ERROR ( missing_MediaChars ); 4518 mediachars_p = area_free_p; 4519 mediachars.count = 1; 4520 mediachars.name ( 1 ) = ""; 4521 mediachars.out_r ( 1 ) = "0"b; 4522 go to RD_NEXT_REDUCTION; /* / \ */ 4523 4524 RD_ACTION(13): /* / */ 4525 area_free_p = addr_inc ( mediachars_p, size ( mediachars ) ); 4526 go to RD_NEXT_REDUCTION; /* / \ */ 4527 4528 RD_ACTION(14): /* / */ 4529 if ( db_start = "media" ) then db_sw , dt_sw = "1"b; 4530 go to RD_NEXT_REDUCTION; /* / \ */ 4531 4532 RD_ACTION(15): /* / */ 4533 media_p = area_free_p; 4534 media.count = 0; 4535 go to RD_NEXT_REDUCTION; /* / \ */ 4536 4537 RD_ACTION(16): /* / */ 4538 NRED = 30; 4539 go to RD_TEST_REDUCTION; /* / no_Media \ */ 4540 4541 RD_ACTION(17): /* / */ 4542 NRED = 30; 4543 go to RD_TEST_REDUCTION; /* / no_Media \ */ 4544 4545 RD_ACTION(18): /* / */ 4546 NRED = 30; 4547 go to RD_TEST_REDUCTION; /* / no_Media \ */ 4548 4549 RD_ACTION(19): /* / */ 4550 NRED = 30; 4551 go to RD_TEST_REDUCTION; /* / no_Media \ */ 4552 4553 RD_ACTION(20): /* / */ 4554 NRED = 30; 4555 go to RD_TEST_REDUCTION; /* / no_Media \ */ 4556 4557 RD_ACTION(21): /* / */ 4558 NRED = 30; 4559 go to RD_TEST_REDUCTION; /* / no_Media \ */ 4560 4561 RD_ACTION(22): /* / */ 4562 call PUSH(22); /* PUSH(Media_) */ 4563 call push ( "Media_" ); 4564 go to RD_NEXT_REDUCTION; /* / \ */ 4565 4566 RD_ACTION(23): /* / */ 4567 call LEX ( 2 ); 4568 NRED = 108; 4569 go to RD_TEST_REDUCTION; /* / Mwidths \ */ 4570 4571 RD_ACTION(24): /* / */ 4572 call pop(); 4573 NRED = 31; 4574 go to RD_TEST_REDUCTION; /* / done_Media \ */ 4575 4576 RD_ACTION(25): /* / */ 4577 call pop(); 4578 NRED = 31; 4579 go to RD_TEST_REDUCTION; /* / done_Media \ */ 4580 4581 RD_ACTION(26): /* / */ 4582 call pop(); 4583 NRED = 31; 4584 go to RD_TEST_REDUCTION; /* / done_Media \ */ 4585 4586 RD_ACTION(27): /* / */ 4587 call pop(); 4588 NRED = 31; 4589 go to RD_TEST_REDUCTION; /* / done_Media \ */ 4590 4591 RD_ACTION(28): /* / */ 4592 call pop(); 4593 NRED = 31; 4594 go to RD_TEST_REDUCTION; /* / done_Media \ */ 4595 4596 RD_ACTION(29): /* / */ 4597 NRED = 255; 4598 go to RD_TEST_REDUCTION; /* / global_device \ */ 4599 4600 RD_ACTION(30): /* / */ 4601 call ERROR ( missing_Media ); 4602 media.count = 1; 4603 media.name ( 1 ) = ""; 4604 media.rel_units ( 1 ) = 0; 4605 media.width ( 1, 1 ) = 0; 4606 go to RD_NEXT_REDUCTION; /* / \ */ 4607 4608 RD_ACTION(31): /* / */ 4609 area_free_p = addr_inc ( media_p, size ( media ) ); 4610 go to RD_NEXT_REDUCTION; /* / \ */ 4611 4612 RD_ACTION(32): /* / */ 4613 if ( db_start = "view" ) then db_sw , dt_sw = "1"b; 4614 go to RD_NEXT_REDUCTION; /* / \ */ 4615 4616 RD_ACTION(33): /* / */ 4617 view_p = area_free_p; 4618 view.count = 0; 4619 go to RD_NEXT_REDUCTION; /* / \ */ 4620 4621 RD_ACTION(34): /* / */ 4622 NRED = 46; 4623 go to RD_TEST_REDUCTION; /* / no_View \ */ 4624 4625 RD_ACTION(35): /* / */ 4626 NRED = 46; 4627 go to RD_TEST_REDUCTION; /* / no_View \ */ 4628 4629 RD_ACTION(36): /* / */ 4630 NRED = 46; 4631 go to RD_TEST_REDUCTION; /* / no_View \ */ 4632 4633 RD_ACTION(37): /* / */ 4634 NRED = 46; 4635 go to RD_TEST_REDUCTION; /* / no_View \ */ 4636 4637 RD_ACTION(38): /* / */ 4638 NRED = 46; 4639 go to RD_TEST_REDUCTION; /* / no_View \ */ 4640 4641 RD_ACTION(39): /* / */ 4642 call PUSH(39); /* PUSH(View_) */ 4643 call push ( "View_" ); 4644 go to RD_NEXT_REDUCTION; /* / \ */ 4645 4646 RD_ACTION(40): /* / */ 4647 call LEX ( 2 ); 4648 NRED = 139; 4649 go to RD_TEST_REDUCTION; /* / Viewrest \ */ 4650 4651 RD_ACTION(41): /* / */ 4652 call pop(); 4653 NRED = 47; 4654 go to RD_TEST_REDUCTION; /* / done_View \ */ 4655 4656 RD_ACTION(42): /* / */ 4657 call pop(); 4658 NRED = 47; 4659 go to RD_TEST_REDUCTION; /* / done_View \ */ 4660 4661 RD_ACTION(43): /* / */ 4662 call pop(); 4663 NRED = 47; 4664 go to RD_TEST_REDUCTION; /* / done_View \ */ 4665 4666 RD_ACTION(44): /* / */ 4667 call pop(); 4668 NRED = 47; 4669 go to RD_TEST_REDUCTION; /* / done_View \ */ 4670 4671 RD_ACTION(45): /* / */ 4672 NRED = 255; 4673 go to RD_TEST_REDUCTION; /* / global_device \ */ 4674 4675 RD_ACTION(46): /* / */ 4676 call ERROR ( missing_View ); 4677 view.count = 1; 4678 view.name ( 1 ) = ""; 4679 view.media ( 1 ) = 1; 4680 go to RD_NEXT_REDUCTION; /* / \ */ 4681 4682 RD_ACTION(47): /* / */ 4683 area_free_p = addr_inc ( view_p, size ( view ) ); 4684 go to RD_NEXT_REDUCTION; /* / \ */ 4685 4686 RD_ACTION(48): /* / */ 4687 if ( db_start = "def" ) then db_sw , dt_sw = "1"b; 4688 go to RD_NEXT_REDUCTION; /* / \ */ 4689 4690 RD_ACTION(49): /* / */ 4691 Def_p = area_free_p; 4692 Def.count = 0; 4693 go to RD_NEXT_REDUCTION; /* / \ */ 4694 4695 RD_ACTION(50): /* / */ 4696 NRED = 60; 4697 go to RD_TEST_REDUCTION; /* / no_Def \ */ 4698 4699 RD_ACTION(51): /* / */ 4700 NRED = 60; 4701 go to RD_TEST_REDUCTION; /* / no_Def \ */ 4702 4703 RD_ACTION(52): /* / */ 4704 NRED = 60; 4705 go to RD_TEST_REDUCTION; /* / no_Def \ */ 4706 4707 RD_ACTION(53): /* / */ 4708 NRED = 60; 4709 go to RD_TEST_REDUCTION; /* / no_Def \ */ 4710 4711 RD_ACTION(54): /* / */ 4712 call PUSH(54); /* PUSH(Def_) */ 4713 call push ( "Def_" ); 4714 go to RD_NEXT_REDUCTION; /* / \ */ 4715 4716 RD_ACTION(55): /* / */ 4717 call LEX ( 2 ); 4718 NRED = 146; 4719 go to RD_TEST_REDUCTION; /* / Defrest \ */ 4720 4721 RD_ACTION(56): /* / */ 4722 call pop(); 4723 NRED = 61; 4724 go to RD_TEST_REDUCTION; /* / done_Def \ */ 4725 4726 RD_ACTION(57): /* / */ 4727 call pop(); 4728 NRED = 61; 4729 go to RD_TEST_REDUCTION; /* / done_Def \ */ 4730 4731 RD_ACTION(58): /* / */ 4732 call pop(); 4733 NRED = 61; 4734 go to RD_TEST_REDUCTION; /* / done_Def \ */ 4735 4736 RD_ACTION(59): /* / */ 4737 NRED = 255; 4738 go to RD_TEST_REDUCTION; /* / global_device \ */ 4739 4740 RD_ACTION(60): /* / */ 4741 Def.count = 1; 4742 Def.name ( 1 ) = ""; 4743 Def.pt ( 1 ) = null ( ); 4744 go to RD_NEXT_REDUCTION; /* / \ */ 4745 4746 RD_ACTION(61): /* / */ 4747 area_free_p = addr_inc ( Def_p, size ( Def ) ); 4748 go to RD_NEXT_REDUCTION; /* / \ */ 4749 4750 RD_ACTION(62): /* / */ 4751 if ( db_start = "font" ) then db_sw , dt_sw = "1"b; 4752 go to RD_NEXT_REDUCTION; /* / \ */ 4753 4754 RD_ACTION(63): /* / */ 4755 NRED = 71; 4756 go to RD_TEST_REDUCTION; /* / no_Font \ */ 4757 4758 RD_ACTION(64): /* / */ 4759 NRED = 71; 4760 go to RD_TEST_REDUCTION; /* / no_Font \ */ 4761 4762 RD_ACTION(65): /* / */ 4763 NRED = 71; 4764 go to RD_TEST_REDUCTION; /* / no_Font \ */ 4765 4766 RD_ACTION(66): /* / */ 4767 call PUSH(66); /* PUSH(Font_) */ 4768 call push ( "Font_" ); 4769 go to RD_NEXT_REDUCTION; /* / \ */ 4770 4771 RD_ACTION(67): /* / */ 4772 call LEX ( 2 ); 4773 NRED = 205; 4774 go to RD_TEST_REDUCTION; /* / Fontrest \ */ 4775 4776 RD_ACTION(68): /* / */ 4777 call pop(); 4778 NRED = 72; 4779 go to RD_TEST_REDUCTION; /* / done_Font \ */ 4780 4781 RD_ACTION(69): /* / */ 4782 call pop(); 4783 NRED = 72; 4784 go to RD_TEST_REDUCTION; /* / done_Font \ */ 4785 4786 RD_ACTION(70): /* / */ 4787 NRED = 255; 4788 go to RD_TEST_REDUCTION; /* / global_device \ */ 4789 4790 RD_ACTION(71): /* / */ 4791 call ERROR ( missing_Font ); 4792 NRED = 73; 4793 go to RD_TEST_REDUCTION; /* / start_Size \ */ 4794 4795 RD_ACTION(72): /* / */ 4796 area_free_p = addr_inc ( oput_p, size ( oput ) ); 4797 go to RD_NEXT_REDUCTION; /* / \ */ 4798 4799 RD_ACTION(73): /* / */ 4800 if ( db_start = "size" ) then db_sw , dt_sw = "1"b; 4801 go to RD_NEXT_REDUCTION; /* / \ */ 4802 4803 RD_ACTION(74): /* / */ 4804 size_list_p = area_free_p; 4805 size_list.count = 0; 4806 area_free_p , sizel_p = addr ( size_list.start ); 4807 go to RD_NEXT_REDUCTION; /* / \ */ 4808 4809 RD_ACTION(75): /* / */ 4810 NRED = 81; 4811 go to RD_TEST_REDUCTION; /* / no_Size \ */ 4812 4813 RD_ACTION(76): /* / */ 4814 NRED = 81; 4815 go to RD_TEST_REDUCTION; /* / no_Size \ */ 4816 4817 RD_ACTION(77): /* / */ 4818 call PUSH(77); /* PUSH(Size) */ 4819 call push ( "Size" ); 4820 go to RD_NEXT_REDUCTION; /* / \ */ 4821 4822 RD_ACTION(78): /* / */ 4823 call LEX ( 2 ); 4824 NRED = 249; 4825 go to RD_TEST_REDUCTION; /* / Sizerest \ */ 4826 4827 RD_ACTION(79): /* / */ 4828 call pop(); 4829 NRED = 82; 4830 go to RD_TEST_REDUCTION; /* / done_Size \ */ 4831 4832 RD_ACTION(80): /* / */ 4833 NRED = 255; 4834 go to RD_TEST_REDUCTION; /* / global_device \ */ 4835 4836 RD_ACTION(81): /* / */ 4837 call ERROR ( missing_Size ); 4838 size_list.count = 1; 4839 size_list.name ( 1 ) = ""; 4840 size_list.pt ( 1 ) = addr ( size_list.start ); 4841 NRED = 83; 4842 go to RD_TEST_REDUCTION; /* / Device \ */ 4843 4844 RD_ACTION(82): /* / */ 4845 if Sizes = 0 then if size_list.count > 0 then Sizes = 1; 4846 tp = Ptoken; 4847 do fnt_p = fntl_p ( 1 ) repeat ( fnt.next ) while ( fnt_p ^= null ( ) ); 4848 Ptoken , Pthis_token = fnt.node; 4849 if ( font.min_wsp = -1 ) then call ERROR ( no_wordspace_val ); 4850 end; 4851 Ptoken , Pthis_token = tp; 4852 go to RD_NEXT_REDUCTION; /* / \ */ 4853 4854 RD_ACTION(83): /* / */ 4855 if ( db_start = "dev" ) then db_sw , dt_sw = "1"b; 4856 go to RD_NEXT_REDUCTION; /* / \ */ 4857 4858 RD_ACTION(84): /* / */ 4859 call PUSH(83); /* PUSH(Device) */ 4860 call push ( "Device" ); 4861 go to RD_NEXT_REDUCTION; /* / \ */ 4862 4863 RD_ACTION(85): /* / */ 4864 Device_Pthis_token = Pthis_token; 4865 call LEX ( 2 ); 4866 if db_sw then call ioa_ ( "===Device ^a", token_value ); 4867 NRED = 323; 4868 go to RD_TEST_REDUCTION; /* / Devicerest \ */ 4869 4870 RD_ACTION(86): /* / */ 4871 if const.devptr = null ( ) then call ERROR ( no_Device ); 4872 return; /* / RETURN \ */ 4873 4874 RD_ACTION(87): /* / */ 4875 NRED = 255; 4876 go to RD_TEST_REDUCTION; /* / global_device \ */ 4877 4878 RD_ACTION(88): /* / */ 4879 if tr_sw then call ioa_ ( " STACK_POP(^a,^i)", Stack ( STACK_DEPTH ), STACK_DEPTH ); 4880 go to RD_STACK_POP; /* / STACK_POP \ */ 4881 4882 RD_ACTION(89): /* / */ 4883 ; 4884 push: proc ( name ); 4885 dcl name char ( * ); 4886 Stack ( STACK_DEPTH ) = name; 4887 if tr_sw then call ioa_ ( " PUSH(^a,^i)", name, STACK_DEPTH ); 4888 end push; 4889 pop: proc; 4890 if tr_sw then call ioa_ ( " POP(^a,^i)", Stack ( STACK_DEPTH ), STACK_DEPTH ); 4891 STACK_DEPTH = max ( STACK_DEPTH -1, 0 ); 4892 end pop; 4893 ; 4894 go to RD_NEXT_REDUCTION; /* / \ */ 4895 4896 RD_ACTION(90): /* / */ 4897 dclname = token_value; 4898 call LEX ( 2 ); 4899 call PUSH(91); /* PUSH(dcl_1) */ 4900 call push ( "dcl_1" ); 4901 NRED = 312; 4902 go to RD_TEST_REDUCTION; /* / output_0 \ */ 4903 4904 RD_ACTION(91): /* / */ 4905 dcl_p = area_free_p; 4906 dcl_.leng = length ( part_str ( 1 ) ); 4907 dcl_.dcl_v = part_str ( 1 ); 4908 dcl_.dcl_name = dclname; 4909 area_free_p = addr ( dcl_.dummy ); 4910 if dt_sw then call ioa_ ( "^p^-dcl ^8a ""^a""", dcl_p, dcl_name, dcl_v ); 4911 call link ( dcl_l_p, dcl_p ); 4912 call LEX ( 1 ); 4913 NRED = 88; 4914 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 4915 4916 RD_ACTION(92): /* / */ 4917 call ERROR ( syntax_dcl ); 4918 call NEXT_STMT(); 4919 NRED = 88; 4920 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 4921 4922 RD_ACTION(93): /* / */ 4923 media1 , media2 = token_value; 4924 NRED = 103; 4925 go to RD_TEST_REDUCTION; /* / Media_3 \ */ 4926 4927 RD_ACTION(94): /* / */ 4928 media1 , media2 = "[" || Input || "]"; 4929 call LEX ( 1 ); 4930 NRED = 99; 4931 go to RD_TEST_REDUCTION; /* / Media_1 \ */ 4932 4933 RD_ACTION(95): /* / */ 4934 call ERROR ( syntax_MediaChars ); 4935 go to RD_NEXT_REDUCTION; /* / \ */ 4936 4937 RD_ACTION(96): /* / */ 4938 call LEX ( 1 ); 4939 NRED = 93; 4940 go to RD_TEST_REDUCTION; /* / MediaChars \ */ 4941 4942 RD_ACTION(97): /* / */ 4943 NRED = 106; 4944 go to RD_TEST_REDUCTION; /* / Media_9 \ */ 4945 4946 RD_ACTION(98): /* / */ 4947 call LEX ( 1 ); 4948 NRED = 96; 4949 go to RD_TEST_REDUCTION; /* / Media_skip \ */ 4950 4951 RD_ACTION(99): /* / */ 4952 call LEX ( 1 ); 4953 NRED = 101; 4954 go to RD_TEST_REDUCTION; /* / Media_2 \ */ 4955 4956 RD_ACTION(100): /* / */ 4957 call LEX ( -1 ); 4958 NRED = 103; 4959 go to RD_TEST_REDUCTION; /* / Media_3 \ */ 4960 4961 RD_ACTION(101): /* / */ 4962 media2 = "[" || Input || "]"; 4963 NRED = 103; 4964 go to RD_TEST_REDUCTION; /* / Media_3 \ */ 4965 4966 RD_ACTION(102): /* / */ 4967 NRED = 95; 4968 go to RD_TEST_REDUCTION; /* / Media_err \ */ 4969 4970 RD_ACTION(103): /* / */ 4971 held_Pthis_token = Pthis_token; 4972 call LEX ( 1 ); 4973 call PUSH(104); /* PUSH(Media_4) */ 4974 call push ( "Media_4" ); 4975 NRED = 312; 4976 go to RD_TEST_REDUCTION; /* / output_0 \ */ 4977 4978 RD_ACTION(104): /* / */ 4979 hold_Pthis_token = Pthis_token; 4980 Ptoken , Pthis_token = held_Pthis_token; 4981 the_string = part_str ( 1 ); 4982 if ( media1 ^= media2 ) then do; 4983 if ( substr ( media1, 1, 1 ) ^= "[" ) | ( substr ( media2, 1, 1 ) ^= "[" ) then call ERROR ( inv_MediaChar_range ); 4984 else if ( media1 > media2 ) then call ERROR ( inv_Multics_char_range ); 4985 end; 4986 do while ( media1 <= media2 ); 4987 do i = 1 to mediachars.count; 4988 if ( mediachars.name ( i ) = media1 ) then do; 4989 call ERROR ( dup_MediaChars ); 4990 i = mediachars.count; 4991 end; 4992 end; 4993 i = index ( the_string, o777 ); 4994 if ( i > 0 ) then do; 4995 if ( substr ( media1, 1, 1 ) ^= "[" ) then call ERROR ( inv_MediaChar_SELF_ref ); 4996 substr ( the_string, i, 1 ) = substr ( media1, 2, 1 ); 4997 end; 4998 mediachars.count = mediachars.count +1; 4999 mediachars.name ( mediachars.count ) = media1; 5000 mediachars.out_r ( mediachars.count ) = rel ( find_str ( 1 ) ); 5001 if ( i > 0 ) then substr ( the_string, i, 1 ) = o777; 5002 substr ( media1, 2, 1 ) = byte ( rank ( substr ( media1, 2, 1 ) ) +1 ); 5003 end; 5004 Ptoken , Pthis_token = hold_Pthis_token; 5005 go to RD_NEXT_REDUCTION; /* / \ */ 5006 5007 RD_ACTION(105): /* / */ 5008 call LEX ( 1 ); 5009 NRED = 93; 5010 go to RD_TEST_REDUCTION; /* / MediaChars \ */ 5011 5012 RD_ACTION(106): /* / */ 5013 call LEX ( 1 ); 5014 NRED = 88; 5015 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5016 5017 RD_ACTION(107): /* / */ 5018 NRED = 95; 5019 go to RD_TEST_REDUCTION; /* / Media_err \ */ 5020 5021 RD_ACTION(108): /* / */ 5022 mediact = 0; 5023 mediabase = media.count; 5024 go to RD_NEXT_REDUCTION; /* / \ */ 5025 5026 RD_ACTION(109): /* / */ 5027 mediact = mediact +1; 5028 media.count = media.count +1; 5029 media.name ( media.count ) = token_value; 5030 media.rel_units ( media.count ) = Strokes; 5031 media.width ( media.count, * ) = nulwidth; 5032 call LEX ( 1 ); 5033 NRED = 111; 5034 go to RD_TEST_REDUCTION; /* / Mwidth_2 \ */ 5035 5036 RD_ACTION(110): /* / */ 5037 call ERROR ( syntax_Media_sec ); 5038 call NEXT_STMT(); 5039 NRED = 114; 5040 go to RD_TEST_REDUCTION; /* / Mwidth_3 \ */ 5041 5042 RD_ACTION(111): /* / */ 5043 call LEX ( 1 ); 5044 NRED = 109; 5045 go to RD_TEST_REDUCTION; /* / Mwidth_1 \ */ 5046 5047 RD_ACTION(112): /* / */ 5048 call LEX ( 1 ); 5049 NRED = 114; 5050 go to RD_TEST_REDUCTION; /* / Mwidth_3 \ */ 5051 5052 RD_ACTION(113): /* / */ 5053 NRED = 110; 5054 go to RD_TEST_REDUCTION; /* / Mwidth_err \ */ 5055 5056 RD_ACTION(114): /* / */ 5057 call LEX ( 2 ); 5058 media_i = 1; 5059 NRED = 116; 5060 go to RD_TEST_REDUCTION; /* / Mwidth_s1 \ */ 5061 5062 RD_ACTION(115): /* / */ 5063 NRED = 120; 5064 go to RD_TEST_REDUCTION; /* / Mwidth_4 \ */ 5065 5066 RD_ACTION(116): /* / */ 5067 if ( media_i > mediact ) then call ERROR ( too_many_stroke_values ); 5068 media.rel_units ( media_i+mediabase ) = token.Nvalue; 5069 call LEX ( 1 ); 5070 go to RD_NEXT_REDUCTION; /* / \ */ 5071 5072 RD_ACTION(117): /* / */ 5073 call LEX ( 1 ); 5074 media_i = media_i +1; 5075 NRED = 116; 5076 go to RD_TEST_REDUCTION; /* / Mwidth_s1 \ */ 5077 5078 RD_ACTION(118): /* / */ 5079 call LEX ( 1 ); 5080 NRED = 114; 5081 go to RD_TEST_REDUCTION; /* / Mwidth_3 \ */ 5082 5083 RD_ACTION(119): /* / */ 5084 NRED = 110; 5085 go to RD_TEST_REDUCTION; /* / Mwidth_err \ */ 5086 5087 RD_ACTION(120): /* / */ 5088 charid = token.Nvalue; 5089 media1 = media2; 5090 media_i = 1; 5091 mediawidth = nulwidth; 5092 NRED = 122; 5093 go to RD_TEST_REDUCTION; /* / Mwidth_A \ */ 5094 5095 RD_ACTION(121): /* / */ 5096 NRED = 88; 5097 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5098 5099 RD_ACTION(122): /* / */ 5100 call LEX ( 1 ); 5101 NRED = 124; 5102 go to RD_TEST_REDUCTION; /* / Mwidth_B \ */ 5103 5104 RD_ACTION(123): /* / */ 5105 call LEX ( 1 ); 5106 NRED = 130; 5107 go to RD_TEST_REDUCTION; /* / Mwidth_6 \ */ 5108 5109 RD_ACTION(124): /* / */ 5110 call LEX ( 1 ); 5111 NRED = 126; 5112 go to RD_TEST_REDUCTION; /* / Mwidth_C \ */ 5113 5114 RD_ACTION(125): /* / */ 5115 NRED = 130; 5116 go to RD_TEST_REDUCTION; /* / Mwidth_6 \ */ 5117 5118 RD_ACTION(126): /* / */ 5119 NRED = 128; 5120 go to RD_TEST_REDUCTION; /* / Mwidth_D \ */ 5121 5122 RD_ACTION(127): /* / */ 5123 NRED = 110; 5124 go to RD_TEST_REDUCTION; /* / Mwidth_err \ */ 5125 5126 RD_ACTION(128): /* / */ 5127 call LEX ( 1 ); 5128 NRED = 130; 5129 go to RD_TEST_REDUCTION; /* / Mwidth_6 \ */ 5130 5131 RD_ACTION(129): /* / */ 5132 NRED = 110; 5133 go to RD_TEST_REDUCTION; /* / Mwidth_err \ */ 5134 5135 RD_ACTION(130): /* / */ 5136 NRED = 134; 5137 go to RD_TEST_REDUCTION; /* / Mwidth_7 \ */ 5138 5139 RD_ACTION(131): /* / */ 5140 NRED = 134; 5141 go to RD_TEST_REDUCTION; /* / Mwidth_7 \ */ 5142 5143 RD_ACTION(132): /* / */ 5144 NRED = 135; 5145 go to RD_TEST_REDUCTION; /* / Mwidth_8 \ */ 5146 5147 RD_ACTION(133): /* / */ 5148 NRED = 136; 5149 go to RD_TEST_REDUCTION; /* / Mwidth_9 \ */ 5150 5151 RD_ACTION(134): /* / */ 5152 mediawidth = token.Nvalue; 5153 go to RD_NEXT_REDUCTION; /* / \ */ 5154 5155 RD_ACTION(135): /* / */ 5156 call LEX ( 1 ); 5157 media_ = media1; 5158 charid_ = charid; 5159 if ( mediawidth = nulwidth ) then call ERROR ( no_prior_width ); 5160 else if ( media_ > media2 ) then call ERROR ( inv_Media_range ); 5161 else do while ( media_ <= media2 ); 5162 if ( media_i > mediact ) then do; 5163 call ERROR ( too_many_widths ); 5164 media_ = "~" || rtrim ( media2 ); 5165 end; 5166 else do; 5167 media.width ( media_i +mediabase, charid_ ) = mediawidth; 5168 if ( media_ < media2 ) then do; 5169 substr ( media_, 2, 1 ) = byte ( rank ( substr ( media_, 2, 1 ) ) +1 ); 5170 charid_ = 0; 5171 do i = 1 to mediachars.count while ( charid_ = 0 ); 5172 if ( mediachars.name ( i ) = media_ ) then charid_ = i; 5173 end; 5174 if ( charid_ = 0 ) then do; 5175 call ERROR ( inv_Media_range ); 5176 media_ = "~" || rtrim ( media2 ); 5177 end; 5178 end; 5179 else media_ = "~" || rtrim ( media2 ); 5180 end; 5181 end; 5182 go to RD_NEXT_REDUCTION; /* / \ */ 5183 5184 RD_ACTION(136): /* / */ 5185 call LEX ( 1 ); 5186 NRED = 114; 5187 go to RD_TEST_REDUCTION; /* / Mwidth_3 \ */ 5188 5189 RD_ACTION(137): /* / */ 5190 media_i = media_i +1; 5191 call LEX ( 1 ); 5192 NRED = 130; 5193 go to RD_TEST_REDUCTION; /* / Mwidth_6 \ */ 5194 5195 RD_ACTION(138): /* / */ 5196 NRED = 110; 5197 go to RD_TEST_REDUCTION; /* / Mwidth_err \ */ 5198 5199 RD_ACTION(139): /* / */ 5200 viewname = token_value; 5201 call LEX ( 1 ); 5202 NRED = 141; 5203 go to RD_TEST_REDUCTION; /* / View_1 \ */ 5204 5205 RD_ACTION(140): /* / */ 5206 call ERROR ( syntax_View ); 5207 call NEXT_STMT(); 5208 NRED = 88; 5209 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5210 5211 RD_ACTION(141): /* / */ 5212 view.count = view.count +1; 5213 view.name ( view.count ) = viewname; 5214 view.media ( view.count ) = token.Nvalue; 5215 call LEX ( 1 ); 5216 NRED = 143; 5217 go to RD_TEST_REDUCTION; /* / View_2 \ */ 5218 5219 RD_ACTION(142): /* / */ 5220 NRED = 140; 5221 go to RD_TEST_REDUCTION; /* / View_err \ */ 5222 5223 RD_ACTION(143): /* / */ 5224 call LEX ( 1 ); 5225 NRED = 139; 5226 go to RD_TEST_REDUCTION; /* / Viewrest \ */ 5227 5228 RD_ACTION(144): /* / */ 5229 call LEX ( 1 ); 5230 NRED = 88; 5231 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5232 5233 RD_ACTION(145): /* / */ 5234 NRED = 140; 5235 go to RD_TEST_REDUCTION; /* / View_err \ */ 5236 5237 RD_ACTION(146): /* / */ 5238 Def.count = Def.count +1; 5239 Def.name ( Def.count ) = token_value; 5240 call LEX ( 2 ); 5241 Def.pt ( Def.count ) = Pthis_token; 5242 vals_ct = 0; 5243 NRED = 148; 5244 go to RD_TEST_REDUCTION; /* / Def_1 \ */ 5245 5246 RD_ACTION(147): /* / */ 5247 call ERROR ( no_name_Def ); 5248 call NEXT_STMT(); 5249 go to RD_NEXT_REDUCTION; /* / \ */ 5250 5251 RD_ACTION(148): /* / */ 5252 NRED = 88; 5253 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5254 5255 RD_ACTION(149): /* / */ 5256 NRED = 88; 5257 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5258 5259 RD_ACTION(150): /* / */ 5260 NRED = 88; 5261 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5262 5263 RD_ACTION(151): /* / */ 5264 NRED = 88; 5265 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5266 5267 RD_ACTION(152): /* / */ 5268 NRED = 88; 5269 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5270 5271 RD_ACTION(153): /* / */ 5272 this_view = -1; 5273 call PUSH(154); /* PUSH(Def_2) */ 5274 call push ( "Def_2" ); 5275 NRED = 156; 5276 go to RD_TEST_REDUCTION; /* / font_char \ */ 5277 5278 RD_ACTION(154): /* / */ 5279 call LEX ( 1 ); 5280 NRED = 148; 5281 go to RD_TEST_REDUCTION; /* / Def_1 \ */ 5282 5283 RD_ACTION(155): /* / */ 5284 call DELETE_STMT(); 5285 NRED = 148; 5286 go to RD_TEST_REDUCTION; /* / Def_1 \ */ 5287 5288 RD_ACTION(156): /* / */ 5289 vals_ct = 0; 5290 go to RD_NEXT_REDUCTION; /* / \ */ 5291 5292 RD_ACTION(157): /* / */ 5293 call LEX ( 1 ); 5294 vals_ct = vals_ct +1; 5295 vals ( vals_ct ) = rank ( Input ); 5296 NRED = 162; 5297 go to RD_TEST_REDUCTION; /* / fch_2 \ */ 5298 5299 RD_ACTION(158): /* / */ 5300 call LEX ( 1 ); 5301 NRED = 160; 5302 go to RD_TEST_REDUCTION; /* / fch_0 \ */ 5303 5304 RD_ACTION(159): /* / */ 5305 call ERROR ( inv_Mul_char_spec ); 5306 NRED = 191; 5307 go to RD_TEST_REDUCTION; /* / fch_e \ */ 5308 5309 RD_ACTION(160): /* / */ 5310 call LEX ( 1 ); 5311 vals_ct = vals_ct +1; 5312 vals ( vals_ct ) = rank ( Input ); 5313 NRED = 167; 5314 go to RD_TEST_REDUCTION; /* / fch_5 \ */ 5315 5316 RD_ACTION(161): /* / */ 5317 call ERROR ( inv_artwork_spec ); 5318 NRED = 191; 5319 go to RD_TEST_REDUCTION; /* / fch_e \ */ 5320 5321 RD_ACTION(162): /* / */ 5322 call LEX ( 1 ); 5323 NRED = 164; 5324 go to RD_TEST_REDUCTION; /* / fch_3 \ */ 5325 5326 RD_ACTION(163): /* / */ 5327 NRED = 167; 5328 go to RD_TEST_REDUCTION; /* / fch_5 \ */ 5329 5330 RD_ACTION(164): /* / */ 5331 call LEX ( 1 ); 5332 i = rank ( Input ); 5333 if ( vals ( vals_ct ) > i ) then do; 5334 call ERROR ( inv_Multics_char_range ); 5335 call LEX ( -2 ); 5336 end; 5337 else do; 5338 j = vals ( vals_ct ); 5339 do while ( j < i ); 5340 j = j +1; 5341 vals_ct = vals_ct +1; 5342 vals ( vals_ct ) = j; 5343 end; 5344 end; 5345 NRED = 166; 5346 go to RD_TEST_REDUCTION; /* / fch_4 \ */ 5347 5348 RD_ACTION(165): /* / */ 5349 call ERROR ( syntax_after_colon ); 5350 NRED = 191; 5351 go to RD_TEST_REDUCTION; /* / fch_e \ */ 5352 5353 RD_ACTION(166): /* / */ 5354 NRED = 191; 5355 go to RD_TEST_REDUCTION; /* / fch_e \ */ 5356 5357 RD_ACTION(167): /* / */ 5358 call LEX ( 1 ); 5359 NRED = 157; 5360 go to RD_TEST_REDUCTION; /* / fch_1 \ */ 5361 5362 RD_ACTION(168): /* / */ 5363 if ( this_view ^= -1 ) then this_view = token.Nvalue; 5364 call LEX ( 1 ); 5365 go to RD_NEXT_REDUCTION; /* / \ */ 5366 5367 RD_ACTION(169): /* / */ 5368 mediawidth , self_ct = 0; 5369 the_string = ""; 5370 go to RD_NEXT_REDUCTION; /* / \ */ 5371 5372 RD_ACTION(170): /* / */ 5373 NRED = 176; 5374 go to RD_TEST_REDUCTION; /* / fch_6 \ */ 5375 5376 RD_ACTION(171): /* / */ 5377 call LEX ( 1 ); 5378 NRED = 185; 5379 go to RD_TEST_REDUCTION; /* / fch_A \ */ 5380 5381 RD_ACTION(172): /* / */ 5382 NRED = 176; 5383 go to RD_TEST_REDUCTION; /* / fch_6 \ */ 5384 5385 RD_ACTION(173): /* / */ 5386 NRED = 176; 5387 go to RD_TEST_REDUCTION; /* / fch_6 \ */ 5388 5389 RD_ACTION(174): /* / */ 5390 NRED = 176; 5391 go to RD_TEST_REDUCTION; /* / fch_6 \ */ 5392 5393 RD_ACTION(175): /* / */ 5394 call ERROR ( not_charname ); 5395 go to RD_NEXT_REDUCTION; /* / \ */ 5396 5397 RD_ACTION(176): /* / */ 5398 part_nest = 0; 5399 call PUSH(177); /* PUSH(fch_7) */ 5400 call push ( "fch_7" ); 5401 NRED = 193; 5402 go to RD_TEST_REDUCTION; /* / fch_l \ */ 5403 5404 RD_ACTION(177): /* / */ 5405 the_string = part_str ( 1 ); 5406 testwidth = nulwidth; 5407 mediawidth = part_width ( 1 ); 5408 go to RD_NEXT_REDUCTION; /* / \ */ 5409 5410 RD_ACTION(178): /* / */ 5411 call LEX ( 1 ); 5412 NRED = 182; 5413 go to RD_TEST_REDUCTION; /* / fch_9 \ */ 5414 5415 RD_ACTION(179): /* / */ 5416 NRED = 88; 5417 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5418 5419 RD_ACTION(180): /* / */ 5420 NRED = 88; 5421 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5422 5423 RD_ACTION(181): /* / */ 5424 call ERROR ( not_charname ); 5425 call LEX ( 1 ); 5426 NRED = 176; 5427 go to RD_TEST_REDUCTION; /* / fch_6 \ */ 5428 5429 RD_ACTION(182): /* / */ 5430 testwidth = token.Nvalue; 5431 call LEX ( 1 ); 5432 NRED = 179; 5433 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5434 5435 RD_ACTION(183): /* / */ 5436 testwidth = token.Nvalue; 5437 call LEX ( 1 ); 5438 NRED = 179; 5439 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5440 5441 RD_ACTION(184): /* / */ 5442 call ERROR ( no_test_width ); 5443 NRED = 179; 5444 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5445 5446 RD_ACTION(185): /* / */ 5447 part_nest = 0; 5448 call PUSH(186); /* PUSH(fch_B) */ 5449 call push ( "fch_B" ); 5450 NRED = 193; 5451 go to RD_TEST_REDUCTION; /* / fch_l \ */ 5452 5453 RD_ACTION(186): /* / */ 5454 call LEX ( 2 ); 5455 the_string = part_str ( 1 ); 5456 testwidth = nulwidth; 5457 NRED = 188; 5458 go to RD_TEST_REDUCTION; /* / fch_C \ */ 5459 5460 RD_ACTION(187): /* / */ 5461 call ERROR ( paren_equal_expected ); 5462 NRED = 179; 5463 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5464 5465 RD_ACTION(188): /* / */ 5466 mediawidth = token.Nvalue; 5467 call LEX ( 1 ); 5468 NRED = 179; 5469 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5470 5471 RD_ACTION(189): /* / */ 5472 mediawidth = token.Nvalue; 5473 call LEX ( 1 ); 5474 NRED = 179; 5475 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5476 5477 RD_ACTION(190): /* / */ 5478 call ERROR ( missing_width ); 5479 NRED = 179; 5480 go to RD_TEST_REDUCTION; /* / fch_8 \ */ 5481 5482 RD_ACTION(191): /* / */ 5483 call LEX ( -1 ); 5484 NRED = 88; 5485 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5486 5487 RD_ACTION(192): /* / */ 5488 NRED = 88; 5489 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5490 5491 RD_ACTION(193): /* / */ 5492 part_nest = part_nest +1; 5493 part_str ( part_nest ) = ""; 5494 part_width ( part_nest ) = 0; 5495 go to RD_NEXT_REDUCTION; /* / \ */ 5496 5497 RD_ACTION(194): /* / */ 5498 part_repl ( part_nest ) = token.Nvalue; 5499 call LEX ( 2 ); 5500 call PUSH(203); /* PUSH(fch_el) */ 5501 call push ( "fch_el" ); 5502 NRED = 193; 5503 go to RD_TEST_REDUCTION; /* / fch_l \ */ 5504 5505 RD_ACTION(195): /* / */ 5506 call LEX ( 1 ); 5507 part_str ( part_nest ) = part_str ( part_nest ) || o777; 5508 NRED = 194; 5509 go to RD_TEST_REDUCTION; /* / fch_M \ */ 5510 5511 RD_ACTION(196): /* / */ 5512 call PUSH(194); /* PUSH(fch_M) */ 5513 call push ( "fch_M" ); 5514 NRED = 202; 5515 go to RD_TEST_REDUCTION; /* / fch_K \ */ 5516 5517 RD_ACTION(197): /* / */ 5518 call LEX ( 1 ); 5519 list_ndx = 1; 5520 NRED = 199; 5521 go to RD_TEST_REDUCTION; /* / fch_L \ */ 5522 5523 RD_ACTION(198): /* / */ 5524 part_nest = part_nest -1; 5525 NRED = 88; 5526 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5527 5528 RD_ACTION(199): /* / */ 5529 call LEX ( -1 ); 5530 go to RD_NEXT_REDUCTION; /* / \ */ 5531 5532 RD_ACTION(200): /* / */ 5533 call PUSH(199); /* PUSH(fch_L) */ 5534 call push ( "fch_L" ); 5535 NRED = 202; 5536 go to RD_TEST_REDUCTION; /* / fch_K \ */ 5537 5538 RD_ACTION(201): /* / */ 5539 call LEX ( 1 ); 5540 NRED = 194; 5541 go to RD_TEST_REDUCTION; /* / fch_M \ */ 5542 5543 RD_ACTION(202): /* / */ 5544 str_p = ptr ( next_str_p, mediachars.out_r ( token.Nvalue ) ); 5545 part_str ( part_nest ) = part_str ( part_nest ) || bstr.str; 5546 if this_view > 0 then do; 5547 if ( media.rel_units ( view.media ( this_view ) ) ^= font.rel_units ) then call ERROR ( bad_stroke_value ); 5548 mw = media.width ( view.media ( this_view ), token.Nvalue ); 5549 if mw = nulwidth then call ERROR_ ( no_width_specified, view.name ( this_view ), show_name ( mediachars.name ( token.Nvalue ) ) ); 5550 part_width ( part_nest ) = part_width ( part_nest ) +mw; 5551 end; 5552 call LEX ( 1 ); 5553 NRED = 88; 5554 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5555 5556 RD_ACTION(203): /* / */ 5557 call LEX ( 1 ); 5558 part_str ( part_nest ) = part_str ( part_nest ) || copy ( part_str ( part_nest+1 ), part_repl ( part_nest ) ); 5559 part_width ( part_nest ) = part_width ( part_nest ) +part_width ( part_nest+1 ) * part_repl ( part_nest ); 5560 NRED = 194; 5561 go to RD_TEST_REDUCTION; /* / fch_M \ */ 5562 5563 RD_ACTION(204): /* / */ 5564 call ERROR ( unbal_parens ); 5565 NRED = 88; 5566 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5567 5568 RD_ACTION(205): /* / */ 5569 fnt_p = find_font ( "1"b ); 5570 if fnt.pt ^= null ( ) then call ERROR ( dup_fontname ); 5571 font_ptr , fnt.pt = area_free_p; 5572 area_free_p = addr_inc ( area_free_p, size ( font ) ); 5573 uni_p = area_free_p; 5574 area_free_p = addr_inc ( area_free_p, size ( uni ) ); 5575 call link ( unil_p, uni_p ); 5576 uni.seqno , uni.refno , uni_ct = uni_ct +1; 5577 units_ptr , uni.ref_p = area_free_p; 5578 area_free_p = addr_inc ( area_free_p, size ( units ) ); 5579 opu_p = area_free_p; 5580 area_free_p = addr_inc ( area_free_p, size ( opu ) ); 5581 call link ( opul_p, opu_p ); 5582 opu.refno , opu.seqno = uni_ct; 5583 oput_p , opu.ref_p = area_free_p; 5584 font.units_r = rel ( uni_p ); 5585 font.oput_r = rel ( opu_p ); 5586 font.rel_units = -1; 5587 font.footsep = Footsep; 5588 font.min_wsp = MinWordsp; 5589 font.avg_wsp = AvgWordsp; 5590 font.max_wsp = MaxWordsp; 5591 units ( * ) = 0; 5592 oput.data_ct = 0; 5593 default_view = 1; 5594 call LEX ( 1 ); 5595 NRED = 207; 5596 go to RD_TEST_REDUCTION; /* / Font_1 \ */ 5597 5598 RD_ACTION(206): /* / */ 5599 call ERROR ( not_valid_Font_name ); 5600 call NEXT_STMT(); 5601 NRED = 211; 5602 go to RD_TEST_REDUCTION; /* / Font_3 \ */ 5603 5604 RD_ACTION(207): /* / */ 5605 default_view = token.Nvalue; 5606 font.rel_units = media.rel_units ( view.media ( default_view ) ); 5607 call LEX ( 1 ); 5608 NRED = 209; 5609 go to RD_TEST_REDUCTION; /* / Font_2 \ */ 5610 5611 RD_ACTION(208): /* / */ 5612 call ERROR ( not_viewname ); 5613 call NEXT_STMT(); 5614 NRED = 211; 5615 go to RD_TEST_REDUCTION; /* / Font_3 \ */ 5616 5617 RD_ACTION(209): /* / */ 5618 NRED = 211; 5619 go to RD_TEST_REDUCTION; /* / Font_3 \ */ 5620 5621 RD_ACTION(210): /* / */ 5622 call ERROR ( syntax_Font ); 5623 go to RD_NEXT_REDUCTION; /* / \ */ 5624 5625 RD_ACTION(211): /* / */ 5626 if Wordspace_p = null ( ) then goto RD_NEXT_REDUCTION; 5627 hold_Pthis_token = Pthis_token; 5628 Ptoken , Pthis_token = Wordspace_p; 5629 call PUSH(213); /* PUSH(Font_4) */ 5630 call push ( "Font_4" ); 5631 NRED = 233; 5632 go to RD_TEST_REDUCTION; /* / wordspace \ */ 5633 5634 RD_ACTION(212): /* / */ 5635 NRED = 216; 5636 go to RD_TEST_REDUCTION; /* / Font_5 \ */ 5637 5638 RD_ACTION(213): /* / */ 5639 Ptoken , Pthis_token = hold_Pthis_token; 5640 NRED = 228; 5641 go to RD_TEST_REDUCTION; /* / Font_8 \ */ 5642 5643 RD_ACTION(214): /* / */ 5644 call ERROR ( syntax_Wordspace ); 5645 Ptoken , Pthis_token = hold_Pthis_token; 5646 NRED = 216; 5647 go to RD_TEST_REDUCTION; /* / Font_5 \ */ 5648 5649 RD_ACTION(215): /* / */ 5650 call ERROR ( syntax_Font_sec ); 5651 call NEXT_STMT(); 5652 NRED = 88; 5653 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5654 5655 RD_ACTION(216): /* / */ 5656 call PUSH(242); /* PUSH(endFont) */ 5657 call push ( "endFont" ); 5658 go to RD_NEXT_REDUCTION; /* / \ */ 5659 5660 RD_ACTION(217): /* / */ 5661 this_view = default_view; 5662 call PUSH(228); /* PUSH(Font_8) */ 5663 call push ( "Font_8" ); 5664 NRED = 156; 5665 go to RD_TEST_REDUCTION; /* / font_char \ */ 5666 5667 RD_ACTION(218): /* / */ 5668 this_view = default_view; 5669 call PUSH(228); /* PUSH(Font_8) */ 5670 call push ( "Font_8" ); 5671 NRED = 156; 5672 go to RD_TEST_REDUCTION; /* / font_char \ */ 5673 5674 RD_ACTION(219): /* / */ 5675 NRED = 88; 5676 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5677 5678 RD_ACTION(220): /* / */ 5679 call LEX ( 2 ); 5680 NRED = 230; 5681 go to RD_TEST_REDUCTION; /* / footrefsep \ */ 5682 5683 RD_ACTION(221): /* / */ 5684 call LEX ( 2 ); 5685 call PUSH(231); /* PUSH(Font_9) */ 5686 call push ( "Font_9" ); 5687 NRED = 233; 5688 go to RD_TEST_REDUCTION; /* / wordspace \ */ 5689 5690 RD_ACTION(222): /* / */ 5691 call LEX ( 2 ); 5692 NRED = 243; 5693 go to RD_TEST_REDUCTION; /* / ref \ */ 5694 5695 RD_ACTION(223): /* / */ 5696 NRED = 88; 5697 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5698 5699 RD_ACTION(224): /* / */ 5700 NRED = 88; 5701 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5702 5703 RD_ACTION(225): /* / */ 5704 NRED = 88; 5705 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5706 5707 RD_ACTION(226): /* / */ 5708 NRED = 88; 5709 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5710 5711 RD_ACTION(227): /* / */ 5712 call PUSH(217); /* PUSH(Font_6) */ 5713 call push ( "Font_6" ); 5714 NRED = 255; 5715 go to RD_TEST_REDUCTION; /* / global_device \ */ 5716 5717 RD_ACTION(228): /* / */ 5718 self_ct = 0; 5719 j = index ( the_string, o777 ); 5720 if ( j = 0 ) then the_string_r = rel ( find_str ( 2 ) ); 5721 else do; 5722 do while ( j <= length ( the_string ) ); 5723 self_ct = self_ct +1; 5724 self_i ( self_ct ) = j; 5725 j = j +1; 5726 if ( j < length ( the_string ) ) then do; 5727 i = index ( substr ( the_string, j ), o777 ); 5728 if ( i = 0 ) then j = length ( the_string ) +1; 5729 else j = j +i -1; 5730 end; 5731 end; 5732 end; 5733 media1 = "[ ]"; 5734 jj = 0; 5735 do i = 1 to vals_ct; 5736 ii = vals ( i ); 5737 if ( self_ct > 0 ) then do; 5738 substr ( media1, 2, 1 ) = byte ( ii ); 5739 do j = 1 to self_ct; 5740 substr ( the_string, self_i ( j ), 1 ) = byte ( ii ); 5741 end; 5742 the_string_r = rel ( find_str ( 2 ) ); 5743 charid = 0; 5744 do jj = 1 to mediachars.count while ( charid = 0 ); 5745 if ( mediachars.name ( jj ) = media1 ) then charid = jj; 5746 end; 5747 if ( charid = 0 ) then do; 5748 call ERROR ( inv_Font_SELF_ref ); 5749 jj = 0; 5750 end; 5751 else do; 5752 jj = media.width ( view.media ( this_view ), charid ); 5753 if jj = nulwidth then call ERROR_ ( no_width_specified, view.name ( this_view ), show_name ( mediachars.name ( charid ) ) ); 5754 end; 5755 end; 5756 units ( ii ) = mediawidth +jj * self_ct; 5757 oput.data_ct = max ( oput.data_ct, ii ); 5758 oput.which ( ii ) = this_view; 5759 oput.what_r ( ii ) = the_string_r; 5760 if ( testwidth ^= nulwidth ) then if ( units ( ii ) ^= testwidth ) then call ERROR_ ( bad_width_value, ltrim ( char ( units ( ii ) ) ), ltrim ( char ( testwidth ) ) ); 5761 end; 5762 call LEX ( 1 ); 5763 NRED = 217; 5764 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5765 5766 RD_ACTION(229): /* / */ 5767 call NEXT_STMT(); 5768 NRED = 217; 5769 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5770 5771 RD_ACTION(230): /* / */ 5772 call LEX ( 2 ); 5773 font.footsep = Input; 5774 NRED = 217; 5775 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5776 5777 RD_ACTION(231): /* / */ 5778 call LEX ( 1 ); 5779 NRED = 217; 5780 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5781 5782 RD_ACTION(232): /* / */ 5783 call ERROR ( syntax_wordspace ); 5784 call NEXT_STMT(); 5785 call LEX ( -1 ); 5786 NRED = 217; 5787 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5788 5789 RD_ACTION(233): /* / */ 5790 font.min_wsp = token.Nvalue; 5791 call LEX ( 2 ); 5792 NRED = 235; 5793 go to RD_TEST_REDUCTION; /* / font_s2 \ */ 5794 5795 RD_ACTION(234): /* / */ 5796 NRED = 240; 5797 go to RD_TEST_REDUCTION; /* / font_se \ */ 5798 5799 RD_ACTION(235): /* / */ 5800 font.avg_wsp = token.Nvalue; 5801 call LEX ( 2 ); 5802 NRED = 237; 5803 go to RD_TEST_REDUCTION; /* / font_s3 \ */ 5804 5805 RD_ACTION(236): /* / */ 5806 NRED = 240; 5807 go to RD_TEST_REDUCTION; /* / font_se \ */ 5808 5809 RD_ACTION(237): /* / */ 5810 font.max_wsp = token.Nvalue; 5811 call LEX ( 2 ); 5812 NRED = 239; 5813 go to RD_TEST_REDUCTION; /* / font_s4 \ */ 5814 5815 RD_ACTION(238): /* / */ 5816 NRED = 240; 5817 go to RD_TEST_REDUCTION; /* / font_se \ */ 5818 5819 RD_ACTION(239): /* / */ 5820 this_view = default_view; 5821 vals_ct = 1; 5822 vals ( 1 ) = 32; 5823 NRED = 169; 5824 go to RD_TEST_REDUCTION; /* / mc_string \ */ 5825 5826 RD_ACTION(240): /* / */ 5827 call LEX ( -1 ); 5828 NRED = 88; 5829 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5830 5831 RD_ACTION(241): /* / */ 5832 NRED = 88; 5833 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5834 5835 RD_ACTION(242): /* / */ 5836 tp = unil_p ( 2 ); 5837 done = "0"b; 5838 do uni_p = unil_p ( 1 ) repeat ( uni.next ) while ( ( uni_p ^= unil_p ( 2 ) ) & ^ done ); 5839 if ( uni.refno = uni.seqno ) then do; 5840 if ( unspec ( uni.ref_p -> units ) = unspec ( tp -> uni.ref_p -> units ) ) then do; 5841 tp -> uni.refno = uni.seqno; 5842 done = "1"b; 5843 end; 5844 end; 5845 end; 5846 tp = opul_p ( 2 ); 5847 done = "0"b; 5848 do opu_p = opul_p ( 1 ) repeat ( opu.next ) while ( ( opu_p ^= opul_p ( 2 ) ) & ^ done ); 5849 if ( opu.refno = opu.seqno ) then do; 5850 if ( unspec ( opu.ref_p -> oput ) = unspec ( tp -> opu.ref_p -> oput ) ) then do; 5851 tp -> opu.refno = opu.seqno; 5852 done = "1"b; 5853 end; 5854 end; 5855 end; 5856 NRED = 88; 5857 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5858 5859 RD_ACTION(243): /* / */ 5860 i = token.Nvalue; 5861 call LEX ( 1 ); 5862 NRED = 245; 5863 go to RD_TEST_REDUCTION; /* / ref__ \ */ 5864 5865 RD_ACTION(244): /* / */ 5866 call ERROR ( not_Defname ); 5867 call NEXT_STMT(); 5868 NRED = 217; 5869 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5870 5871 RD_ACTION(245): /* / */ 5872 NRED = 247; 5873 go to RD_TEST_REDUCTION; /* / ref_0 \ */ 5874 5875 RD_ACTION(246): /* / */ 5876 call ERROR ( missing_semicolon ); 5877 go to RD_NEXT_REDUCTION; /* / \ */ 5878 5879 RD_ACTION(247): /* / */ 5880 hold_Pthis_token = Pthis_token; 5881 Ptoken , Pthis_token = Def.pt ( i ); 5882 call PUSH(248); /* PUSH(ref_1) */ 5883 call push ( "ref_1" ); 5884 NRED = 217; 5885 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5886 5887 RD_ACTION(248): /* / */ 5888 Ptoken , Pthis_token = hold_Pthis_token; 5889 call NEXT_STMT(); 5890 NRED = 217; 5891 go to RD_TEST_REDUCTION; /* / Font_6 \ */ 5892 5893 RD_ACTION(249): /* / */ 5894 size_list.count = size_list.count +1; 5895 size_list.name ( size_list.count ) = token_value; 5896 size_list.pt ( size_list.count ) = sizel_p; 5897 sizel.val_ct = 0; 5898 call LEX ( 1 ); 5899 NRED = 251; 5900 go to RD_TEST_REDUCTION; /* / point_1 \ */ 5901 5902 RD_ACTION(250): /* / */ 5903 call ERROR ( no_Size_name ); 5904 call NEXT_STMT(); 5905 NRED = 88; 5906 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5907 5908 RD_ACTION(251): /* / */ 5909 call LEX ( 1 ); 5910 sizel.val_ct = sizel.val_ct +1; 5911 sizel.val ( sizel.val_ct ) = scale_unit ( 1000 ); 5912 call LEX ( 1 ); 5913 NRED = 251; 5914 go to RD_TEST_REDUCTION; /* / point_1 \ */ 5915 5916 RD_ACTION(252): /* / */ 5917 area_free_p , sizel_p = addr_inc ( sizel_p, size ( sizel ) ); 5918 go to RD_NEXT_REDUCTION; /* / \ */ 5919 5920 RD_ACTION(253): /* / */ 5921 call LEX ( 1 ); 5922 NRED = 88; 5923 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5924 5925 RD_ACTION(254): /* / */ 5926 call ERROR ( syntax_Size ); 5927 call NEXT_STMT(); 5928 NRED = 88; 5929 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5930 5931 RD_ACTION(255): /* / */ 5932 call LEX ( 2 ); 5933 if db_sw then call ioa_ ( "^[^/^]===Units ^a", dt_sw, token_value ); 5934 Hscale = hscales ( token.Nvalue ); 5935 Vscale = vscales ( token.Nvalue ); 5936 call LEX ( 2 ); 5937 NRED = 88; 5938 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5939 5940 RD_ACTION(256): /* / */ 5941 call LEX ( 2 ); 5942 ArtProc = token_value; 5943 call LEX ( 1 ); 5944 NRED = 295; 5945 go to RD_TEST_REDUCTION; /* / Artproc \ */ 5946 5947 RD_ACTION(257): /* / */ 5948 call LEX ( 2 ); 5949 the_string = token_value; 5950 Atd_r = rel ( find_str ( 2 ) ); 5951 call LEX ( 2 ); 5952 NRED = 88; 5953 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5954 5955 RD_ACTION(258): /* / */ 5956 call LEX ( 2 ); 5957 part_nest = 0; 5958 call PUSH(310); /* PUSH(Cleanup) */ 5959 call push ( "Cleanup" ); 5960 NRED = 169; 5961 go to RD_TEST_REDUCTION; /* / mc_string \ */ 5962 5963 RD_ACTION(259): /* / */ 5964 NRED = 88; 5965 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5966 5967 RD_ACTION(260): /* / */ 5968 call LEX ( 2 ); 5969 the_string = token_value; 5970 Com_r = rel ( find_str ( 2 ) ); 5971 call LEX ( 2 ); 5972 NRED = 88; 5973 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5974 5975 RD_ACTION(261): /* / */ 5976 call LEX ( 2 ); 5977 DefVmt = scale_unit ( Vscale ); 5978 call LEX ( 2 ); 5979 DefVmh = scale_unit ( Vscale ); 5980 call LEX ( 2 ); 5981 DefVmf = scale_unit ( Vscale ); 5982 call LEX ( 2 ); 5983 DefVmb = scale_unit ( Vscale ); 5984 call LEX ( 2 ); 5985 NRED = 88; 5986 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5987 5988 RD_ACTION(262): /* / */ 5989 call LEX ( 2 ); 5990 if db_sw then call ioa_ ( "^[^/^]===DevClass", dt_sw ); 5991 DevClass = token_value; 5992 call LEX ( 2 ); 5993 NRED = 88; 5994 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 5995 5996 RD_ACTION(263): /* / */ 5997 call LEX ( 2 ); 5998 if db_sw then call ioa_ ( "^[^/^]===DevName", dt_sw ); 5999 DevName = token_value; 6000 call LEX ( 2 ); 6001 NRED = 88; 6002 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6003 6004 RD_ACTION(264): /* / */ 6005 call LEX ( 2 ); 6006 EndPage = unspec ( Input ); 6007 call LEX ( 2 ); 6008 NRED = 88; 6009 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6010 6011 RD_ACTION(265): /* / */ 6012 if db_sw then call ioa_ ( "^[^/^]===Footproc", dt_sw ); 6013 call LEX ( 2 ); 6014 NRED = 299; 6015 go to RD_TEST_REDUCTION; /* / Footproc \ */ 6016 6017 RD_ACTION(266): /* / */ 6018 if db_sw then call ioa_ ( "^[^/^]===Footrefseparator", dt_sw ); 6019 call LEX ( 2 ); 6020 NRED = 297; 6021 go to RD_TEST_REDUCTION; /* / Footrefsep \ */ 6022 6023 RD_ACTION(267): /* / */ 6024 call LEX ( 2 ); 6025 if db_sw then call ioa_ ( "^[^/^]===Justify", dt_sw ); 6026 Justify = ( token.Nvalue > 0 ); 6027 call LEX ( 2 ); 6028 NRED = 88; 6029 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6030 6031 RD_ACTION(268): /* / */ 6032 call LEX ( 2 ); 6033 if db_sw then call ioa_ ( "^[^/^]===Interleave", dt_sw ); 6034 Interleave = ( token.Nvalue > 0 ); 6035 call LEX ( 2 ); 6036 NRED = 88; 6037 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6038 6039 RD_ACTION(269): /* / */ 6040 call LEX ( 2 ); 6041 if db_sw then call ioa_ ( "^[^/^]===Letterspace", dt_sw ); 6042 Letterspace = token.Nvalue; 6043 call LEX ( 2 ); 6044 NRED = 88; 6045 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6046 6047 RD_ACTION(270): /* / */ 6048 call LEX ( 2 ); 6049 MaxFiles = token.Nvalue; 6050 call LEX ( 2 ); 6051 NRED = 88; 6052 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6053 6054 RD_ACTION(271): /* / */ 6055 call LEX ( 2 ); 6056 MaxPages = token.Nvalue; 6057 call LEX ( 2 ); 6058 NRED = 88; 6059 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6060 6061 RD_ACTION(272): /* / */ 6062 call LEX ( 2 ); 6063 MaxPageLength = scale_unit ( Vscale ); 6064 call LEX ( 2 ); 6065 NRED = 88; 6066 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6067 6068 RD_ACTION(273): /* / */ 6069 call LEX ( 2 ); 6070 if db_sw then call ioa_ ( "^[^/^]===MaxPageWidth", dt_sw ); 6071 MaxPageWidth = scale_unit ( Hscale ); 6072 call LEX ( 2 ); 6073 NRED = 88; 6074 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6075 6076 RD_ACTION(274): /* / */ 6077 call LEX ( 2 ); 6078 MinVmb = scale_unit ( Vscale ); 6079 call LEX ( 2 ); 6080 NRED = 88; 6081 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6082 6083 RD_ACTION(275): /* / */ 6084 call LEX ( 2 ); 6085 if db_sw then call ioa_ ( "^[^/^]===MinLead", dt_sw ); 6086 MinLead = scale_unit ( Vscale ); 6087 call LEX ( 2 ); 6088 NRED = 88; 6089 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6090 6091 RD_ACTION(276): /* / */ 6092 call LEX ( 2 ); 6093 if db_sw then call ioa_ ( "^[^/^]===MinSpace", dt_sw ); 6094 MinSpace = scale_unit ( Hscale ); 6095 call LEX ( 2 ); 6096 NRED = 88; 6097 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6098 6099 RD_ACTION(277): /* / */ 6100 call LEX ( 2 ); 6101 MinVmt = scale_unit ( Vscale ); 6102 call LEX ( 2 ); 6103 NRED = 88; 6104 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6105 6106 RD_ACTION(278): /* / */ 6107 call LEX ( 2 ); 6108 if db_sw then call ioa_ ( "^[^/^]===Outproc", dt_sw ); 6109 OutProc , DisplayProc = token_value; 6110 call LEX ( 1 ); 6111 NRED = 307; 6112 go to RD_TEST_REDUCTION; /* / Outproc \ */ 6113 6114 RD_ACTION(279): /* / */ 6115 call LEX ( 2 ); 6116 if db_sw then call ioa_ ( "^[^/^]===Strokes", dt_sw ); 6117 Strokes = token.Nvalue; 6118 call LEX ( 2 ); 6119 NRED = 88; 6120 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6121 6122 RD_ACTION(280): /* / */ 6123 call LEX ( 2 ); 6124 if db_sw then call ioa_ ( "===Wordspace" ); 6125 Wordspace_p = Pthis_token; 6126 call NEXT_STMT(); 6127 NRED = 88; 6128 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6129 6130 RD_ACTION(281): /* / */ 6131 call LEX ( 2 ); 6132 Sizes = token.Nvalue; 6133 call LEX ( 2 ); 6134 NRED = 88; 6135 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6136 6137 RD_ACTION(282): /* / */ 6138 call LEX ( 2 ); 6139 if db_sw then call ioa_ ( "^[^/^]===Stream", dt_sw ); 6140 Openmode = 5 -3 * token.Nvalue; 6141 call LEX ( 2 ); 6142 NRED = 88; 6143 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6144 6145 RD_ACTION(283): /* / */ 6146 call LEX ( 2 ); 6147 TapeRec = token.Nvalue; 6148 call LEX ( 2 ); 6149 NRED = 88; 6150 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6151 6152 RD_ACTION(284): /* / */ 6153 call ERROR ( end_of_source ); 6154 return; /* / RETURN \ */ 6155 6156 RD_ACTION(285): /* / */ 6157 NRED = 294; 6158 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6159 6160 RD_ACTION(286): /* / */ 6161 NRED = 294; 6162 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6163 6164 RD_ACTION(287): /* / */ 6165 NRED = 294; 6166 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6167 6168 RD_ACTION(288): /* / */ 6169 NRED = 294; 6170 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6171 6172 RD_ACTION(289): /* / */ 6173 NRED = 294; 6174 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6175 6176 RD_ACTION(290): /* / */ 6177 NRED = 294; 6178 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6179 6180 RD_ACTION(291): /* / */ 6181 NRED = 294; 6182 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6183 6184 RD_ACTION(292): /* / */ 6185 NRED = 294; 6186 go to RD_TEST_REDUCTION; /* / out_of_place \ */ 6187 6188 RD_ACTION(293): /* / */ 6189 call ERROR ( inv_statement ); 6190 call NEXT_STMT(); 6191 NRED = 88; 6192 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6193 6194 RD_ACTION(294): /* / */ 6195 call ERROR ( stmt_out_of_place ); 6196 call NEXT_STMT(); 6197 NRED = 88; 6198 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6199 6200 RD_ACTION(295): /* / */ 6201 call LEX ( 1 ); 6202 ArtEntry = token_value; 6203 call LEX ( 2 ); 6204 NRED = 88; 6205 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6206 6207 RD_ACTION(296): /* / */ 6208 ArtEntry = ArtProc; 6209 call LEX ( 1 ); 6210 NRED = 88; 6211 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6212 6213 RD_ACTION(297): /* / */ 6214 Footsep = Input; 6215 call LEX ( 2 ); 6216 NRED = 88; 6217 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6218 6219 RD_ACTION(298): /* / */ 6220 call ERROR ( syntax_Footrefsep ); 6221 call NEXT_STMT(); 6222 NRED = 88; 6223 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6224 6225 RD_ACTION(299): /* / */ 6226 FootProc = token_value; 6227 call LEX ( 1 ); 6228 NRED = 302; 6229 go to RD_TEST_REDUCTION; /* / Foot_1 \ */ 6230 6231 RD_ACTION(300): /* / */ 6232 call LEX ( 1 ); 6233 NRED = 304; 6234 go to RD_TEST_REDUCTION; /* / Foot_2 \ */ 6235 6236 RD_ACTION(301): /* / */ 6237 call ERROR ( syntax_Footproc ); 6238 call NEXT_STMT(); 6239 NRED = 88; 6240 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6241 6242 RD_ACTION(302): /* / */ 6243 call LEX ( 1 ); 6244 FootEntry = token_value; 6245 call LEX ( 1 ); 6246 NRED = 304; 6247 go to RD_TEST_REDUCTION; /* / Foot_2 \ */ 6248 6249 RD_ACTION(303): /* / */ 6250 FootEntry = FootProc; 6251 go to RD_NEXT_REDUCTION; /* / \ */ 6252 6253 RD_ACTION(304): /* / */ 6254 call LEX ( 2 ); 6255 FootFamily = font_fam; 6256 FootMember = font_mem; 6257 go to RD_NEXT_REDUCTION; /* / \ */ 6258 6259 RD_ACTION(305): /* / */ 6260 call LEX ( 1 ); 6261 NRED = 88; 6262 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6263 6264 RD_ACTION(306): /* / */ 6265 call ERROR ( syntax_Footproc ); 6266 call NEXT_STMT(); 6267 NRED = 88; 6268 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6269 6270 RD_ACTION(307): /* / */ 6271 call LEX ( 1 ); 6272 OutEntry = token_value; 6273 call LEX ( 2 ); 6274 NRED = 88; 6275 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6276 6277 RD_ACTION(308): /* / */ 6278 OutEntry = OutProc; 6279 call LEX ( 1 ); 6280 NRED = 88; 6281 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6282 6283 RD_ACTION(309): /* / */ 6284 call ERROR ( syntax_Outproc ); 6285 call NEXT_STMT(); 6286 NRED = 88; 6287 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6288 6289 RD_ACTION(310): /* / */ 6290 call LEX ( 1 ); 6291 Clean_r = rel ( find_str ( 2 ) ); 6292 NRED = 88; 6293 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6294 6295 RD_ACTION(311): /* / */ 6296 call ERROR ( syntax_Cleanup ); 6297 call NEXT_STMT(); 6298 NRED = 88; 6299 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6300 6301 RD_ACTION(312): /* / */ 6302 iii , parenct , part_nest = 0; 6303 go to RD_NEXT_REDUCTION; /* / \ */ 6304 6305 RD_ACTION(313): /* / */ 6306 part_nest = part_nest +1; 6307 part_repl ( part_nest ) = iii; 6308 part_str ( part_nest ) = ""; 6309 go to RD_NEXT_REDUCTION; /* / \ */ 6310 6311 RD_ACTION(314): /* / */ 6312 part_str ( part_nest ) = part_str ( part_nest ) || Input; 6313 call LEX ( 1 ); 6314 NRED = 314; 6315 go to RD_TEST_REDUCTION; /* / output_2 \ */ 6316 6317 RD_ACTION(315): /* / */ 6318 part_str ( part_nest ) = part_str ( part_nest ) || token_value; 6319 call LEX ( 1 ); 6320 NRED = 314; 6321 go to RD_TEST_REDUCTION; /* / output_2 \ */ 6322 6323 RD_ACTION(316): /* / */ 6324 part_str ( part_nest ) = part_str ( part_nest ) || o777; 6325 call LEX ( 1 ); 6326 NRED = 314; 6327 go to RD_TEST_REDUCTION; /* / output_2 \ */ 6328 6329 RD_ACTION(317): /* / */ 6330 iii = token.Nvalue; 6331 parenct = parenct +1; 6332 call LEX ( 2 ); 6333 call PUSH(320); /* PUSH(output_3) */ 6334 call push ( "output_3" ); 6335 NRED = 313; 6336 go to RD_TEST_REDUCTION; /* / output_1 \ */ 6337 6338 RD_ACTION(318): /* / */ 6339 part_str ( part_nest ) = part_str ( part_nest ) ||bstr.str; 6340 call LEX ( 1 ); 6341 NRED = 314; 6342 go to RD_TEST_REDUCTION; /* / output_2 \ */ 6343 6344 RD_ACTION(319): /* / */ 6345 NRED = 88; 6346 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6347 6348 RD_ACTION(320): /* / */ 6349 call LEX ( 1 ); 6350 part_str ( part_nest -1 ) = part_str ( part_nest -1 ) || copy ( part_str ( part_nest ), part_repl ( part_nest ) ); 6351 part_nest = part_nest -1; 6352 parenct = parenct -1; 6353 NRED = 314; 6354 go to RD_TEST_REDUCTION; /* / output_2 \ */ 6355 6356 RD_ACTION(321): /* / */ 6357 call ERROR ( unbal_parens ); 6358 NRED = 88; 6359 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6360 6361 RD_ACTION(322): /* / */ 6362 NRED = 88; 6363 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6364 6365 RD_ACTION(323): /* / */ 6366 comp_dvid_ct = comp_dvid_ct+1; 6367 comp_dvid_new = "1"b; 6368 like_table = -1; 6369 go to RD_NEXT_REDUCTION; /* / \ */ 6370 6371 RD_ACTION(324): /* / */ 6372 if ( dvid_ct = 0 ) then dvid_ct = dvid_ct +1; 6373 dvid_p = area_free_p; 6374 area_free_p = addr ( dvid.dummy ); 6375 call link ( dvidl_p, dvid_p ); 6376 dvid.ndx = comp_dvid_ct; 6377 dvid.real = comp_dvid_new; 6378 dvid.refname = token_value; 6379 dvid.devname = DevName; 6380 dvid.dvt_ndx = dvt_ct +1; 6381 comp_dvid_new = "0"b; 6382 call LEX ( 1 ); 6383 NRED = 326; 6384 go to RD_TEST_REDUCTION; /* / Device_1 \ */ 6385 6386 RD_ACTION(325): /* / */ 6387 call ERROR ( syntax_Device ); 6388 call NEXT_STMT(); 6389 NRED = 88; 6390 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6391 6392 RD_ACTION(326): /* / */ 6393 call LEX ( 1 ); 6394 NRED = 324; 6395 go to RD_TEST_REDUCTION; /* / Device_0 \ */ 6396 6397 RD_ACTION(327): /* / */ 6398 call LEX ( 1 ); 6399 NRED = 330; 6400 go to RD_TEST_REDUCTION; /* / like_table \ */ 6401 6402 RD_ACTION(328): /* / */ 6403 call LEX ( 1 ); 6404 call PUSH(338); /* PUSH(startDevice) */ 6405 call push ( "startDevice" ); 6406 NRED = 336; 6407 go to RD_TEST_REDUCTION; /* / Device_I \ */ 6408 6409 RD_ACTION(329): /* / */ 6410 NRED = 325; 6411 go to RD_TEST_REDUCTION; /* / table_e \ */ 6412 6413 RD_ACTION(330): /* / */ 6414 like_table = token.Nvalue; 6415 call LEX ( 2 ); 6416 NRED = 333; 6417 go to RD_TEST_REDUCTION; /* / like_table2 \ */ 6418 6419 RD_ACTION(331): /* / */ 6420 NRED = 325; 6421 go to RD_TEST_REDUCTION; /* / table_e \ */ 6422 6423 RD_ACTION(332): /* / */ 6424 do dvid_p = dvidl_p ( 1 ) repeat ( dvid.next ) while ( dvid_p ^= null ( ) ); 6425 if dvid.dvt_ndx = dvt_ct +1 then dvid.dvt_ndx = like_table; 6426 end; 6427 NRED = 88; 6428 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6429 6430 RD_ACTION(333): /* / */ 6431 NRED = 332; 6432 go to RD_TEST_REDUCTION; /* / like_table3 \ */ 6433 6434 RD_ACTION(334): /* / */ 6435 NRED = 332; 6436 go to RD_TEST_REDUCTION; /* / like_table3 \ */ 6437 6438 RD_ACTION(335): /* / */ 6439 call PUSH(337); /* PUSH(copy_table) */ 6440 call push ( "copy_table" ); 6441 NRED = 336; 6442 go to RD_TEST_REDUCTION; /* / Device_I \ */ 6443 6444 RD_ACTION(336): /* / */ 6445 dvt_p = area_free_p; 6446 area_free_p = addr ( dvt.dummy ); 6447 call link ( dvtl_p, dvt_p ); 6448 dvt.ndx , dvt_ct = dvt_ct +1; 6449 dvt.med_sel = area_free_p; 6450 med_sel_tab.count = font_count; 6451 area_free_p = addr_inc ( area_free_p, size ( med_sel_tab ) ); 6452 med_sel_tab.ref_r ( * ) = "0"b; 6453 dvt.prent , prent_p = area_free_p; 6454 area_free_p = addr ( prent.dummy ); 6455 dvt.ref , const.devptr = area_free_p; 6456 dvt_ct = dvt_ct +1; 6457 NRED = 88; 6458 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6459 6460 RD_ACTION(337): /* / */ 6461 tp = null ( ); 6462 do dvt_p = dvtl_p ( 1 ) repeat ( dvt.next ) while ( dvt_p ^= null ( ) & tp = null ( ) ); 6463 if dvt.ndx = like_table then tp = dvt_p; 6464 end; 6465 dvt_p = tp; 6466 med_sel_tab = dvt.med_sel -> med_sel_tab; 6467 prent = dvt.prent -> prent; 6468 comp_dvt.family_ct = dvt.ref -> comp_dvt.family_ct; 6469 comp_dvt = dvt.ref -> comp_dvt; 6470 NRED = 339; 6471 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6472 6473 RD_ACTION(338): /* / */ 6474 prent.outproc = OutProc || "$" || OutEntry; 6475 prent.artproc = ArtProc || "$" || ArtEntry; 6476 prent.footproc = FootProc || "$" || FootEntry; 6477 initfamily , initmember = ""; 6478 footfamily = FootFamily; 6479 footmember = FootMember; 6480 hscale = Hscale; 6481 vscale = Vscale; 6482 comp_dvt.devclass = DevClass; 6483 comp_dvt.min_WS = MinSpace; 6484 comp_dvt.min_lead = MinLead; 6485 comp_dvt.vmt_min = MinVmt; 6486 comp_dvt.vmb_min = MinVmb; 6487 comp_dvt.def_vmt = DefVmt; 6488 comp_dvt.def_vmh = DefVmh; 6489 comp_dvt.def_vmf = DefVmf; 6490 comp_dvt.def_vmb = DefVmb; 6491 comp_dvt.pdw_max = MaxPageWidth; 6492 comp_dvt.pdl_max = MaxPageLength; 6493 comp_dvt.upshift = 0; 6494 comp_dvt.init_ps = 0; 6495 comp_dvt.lettersp = Letterspace; 6496 comp_dvt.max_pages = MaxPages; 6497 comp_dvt.max_files = MaxFiles; 6498 comp_dvt.init_family = ""; 6499 comp_dvt.init_member = ""; 6500 comp_dvt.atd_r = Atd_r; 6501 comp_dvt.dvc_r = ""b; 6502 comp_dvt.comment_r = Com_r; 6503 comp_dvt.cleanup_r = Clean_r; 6504 comp_dvt.medsel_table_r = ""b; 6505 comp_dvt.foot_family = ""; 6506 comp_dvt.foot_member = ""; 6507 comp_dvt.sws.interleave = Interleave; 6508 comp_dvt.sws.justifying = Justify; 6509 comp_dvt.sws.mbz = "0"b; 6510 comp_dvt.sws.endpage = EndPage; 6511 comp_dvt.open_mode = Openmode; 6512 comp_dvt.recleng = TapeRec; 6513 comp_dvt.family_ct = 0; 6514 go to RD_NEXT_REDUCTION; /* / \ */ 6515 6516 RD_ACTION(339): /* / */ 6517 call LEX ( 2 ); 6518 hscale = hscales ( token.Nvalue ); 6519 vscale = vscales ( token.Nvalue ); 6520 call LEX ( 2 ); 6521 NRED = 339; 6522 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6523 6524 RD_ACTION(340): /* / */ 6525 call LEX ( 2 ); 6526 prent.artproc = token_value; 6527 call LEX ( 1 ); 6528 NRED = 371; 6529 go to RD_TEST_REDUCTION; /* / artproc \ */ 6530 6531 RD_ACTION(341): /* / */ 6532 call LEX ( 2 ); 6533 the_string = token_value; 6534 comp_dvt.atd_r = rel ( find_str ( 2 ) ); 6535 call LEX ( 2 ); 6536 NRED = 339; 6537 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6538 6539 RD_ACTION(342): /* / */ 6540 call LEX ( 2 ); 6541 call PUSH(376); /* PUSH(cleanup) */ 6542 call push ( "cleanup" ); 6543 NRED = 169; 6544 go to RD_TEST_REDUCTION; /* / mc_string \ */ 6545 6546 RD_ACTION(343): /* / */ 6547 call LEX ( 2 ); 6548 the_string = token_value; 6549 comp_dvt.comment_r = rel ( find_str ( 2 ) ); 6550 if length ( token_value ) > length ( the_string ) then call ERROR ( comment_gt_8000 ); 6551 call LEX ( 2 ); 6552 NRED = 339; 6553 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6554 6555 RD_ACTION(344): /* / */ 6556 call LEX ( 2 ); 6557 comp_dvt.def_vmt = scale_unit ( vscale ); 6558 call LEX ( 2 ); 6559 comp_dvt.def_vmh = scale_unit ( vscale ); 6560 call LEX ( 2 ); 6561 comp_dvt.def_vmf = scale_unit ( vscale ); 6562 call LEX ( 2 ); 6563 comp_dvt.def_vmb = scale_unit ( vscale ); 6564 call LEX ( 2 ); 6565 NRED = 339; 6566 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6567 6568 RD_ACTION(345): /* / */ 6569 call LEX ( 2 ); 6570 comp_dvt.devclass = token_value; 6571 call LEX ( 2 ); 6572 NRED = 339; 6573 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6574 6575 RD_ACTION(346): /* / */ 6576 call LEX ( 2 ); 6577 do dvid_p = dvidl_p ( 1 ) repeat ( dvid.next ) while ( dvid_p ^= null ( ) ); 6578 if dvid.dvt_ndx = dvt_ct then dvid.devname = token_value; 6579 end; 6580 call LEX ( 2 ); 6581 NRED = 339; 6582 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6583 6584 RD_ACTION(347): /* / */ 6585 call LEX ( 2 ); 6586 comp_dvt.endpage = unspec ( Input ); 6587 call LEX ( 2 ); 6588 NRED = 339; 6589 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6590 6591 RD_ACTION(348): /* / */ 6592 bach_sw = "0"b; 6593 call LEX ( 2 ); 6594 call PUSH(383); /* PUSH(family) */ 6595 call push ( "family" ); 6596 NRED = 378; 6597 go to RD_TEST_REDUCTION; /* / add_family \ */ 6598 6599 RD_ACTION(349): /* / */ 6600 call LEX ( 2 ); 6601 NRED = 412; 6602 go to RD_TEST_REDUCTION; /* / footproc \ */ 6603 6604 RD_ACTION(350): /* / */ 6605 call LEX ( 2 ); 6606 NRED = 404; 6607 go to RD_TEST_REDUCTION; /* / init_f0 \ */ 6608 6609 RD_ACTION(351): /* / */ 6610 call LEX ( 2 ); 6611 comp_dvt.interleave = ( token.Nvalue > 0 ); 6612 NRED = 339; 6613 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6614 6615 RD_ACTION(352): /* / */ 6616 call LEX ( 2 ); 6617 comp_dvt.justifying = ( token.Nvalue > 0 ); 6618 NRED = 339; 6619 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6620 6621 RD_ACTION(353): /* / */ 6622 call LEX ( 2 ); 6623 comp_dvt.lettersp = token.Nvalue; 6624 call LEX ( 2 ); 6625 NRED = 339; 6626 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6627 6628 RD_ACTION(354): /* / */ 6629 call LEX ( 2 ); 6630 comp_dvt.max_files = token.Nvalue; 6631 call LEX ( 2 ); 6632 NRED = 339; 6633 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6634 6635 RD_ACTION(355): /* / */ 6636 call LEX ( 2 ); 6637 comp_dvt.max_pages = token.Nvalue; 6638 call LEX ( 2 ); 6639 NRED = 339; 6640 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6641 6642 RD_ACTION(356): /* / */ 6643 call LEX ( 2 ); 6644 comp_dvt.pdl_max = scale_unit ( vscale ); 6645 call LEX ( 2 ); 6646 NRED = 339; 6647 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6648 6649 RD_ACTION(357): /* / */ 6650 call LEX ( 2 ); 6651 comp_dvt.pdw_max = scale_unit ( hscale ); 6652 call LEX ( 2 ); 6653 NRED = 339; 6654 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6655 6656 RD_ACTION(358): /* / */ 6657 call LEX ( 2 ); 6658 comp_dvt.vmb_min = scale_unit ( vscale ); 6659 call LEX ( 2 ); 6660 NRED = 339; 6661 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6662 6663 RD_ACTION(359): /* / */ 6664 call LEX ( 2 ); 6665 comp_dvt.min_lead = scale_unit ( vscale ); 6666 call LEX ( 2 ); 6667 NRED = 339; 6668 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6669 6670 RD_ACTION(360): /* / */ 6671 call LEX ( 2 ); 6672 comp_dvt.min_WS = scale_unit ( hscale ); 6673 call LEX ( 2 ); 6674 NRED = 339; 6675 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6676 6677 RD_ACTION(361): /* / */ 6678 call LEX ( 2 ); 6679 comp_dvt.vmt_min = scale_unit ( vscale ); 6680 call LEX ( 2 ); 6681 NRED = 339; 6682 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6683 6684 RD_ACTION(362): /* / */ 6685 call LEX ( 2 ); 6686 prent.outproc = token_value; 6687 call LEX ( 1 ); 6688 NRED = 373; 6689 go to RD_TEST_REDUCTION; /* / outproc \ */ 6690 6691 RD_ACTION(363): /* / */ 6692 call LEX ( 2 ); 6693 comp_dvt.open_mode = 5 -3 * token.Nvalue; 6694 call LEX ( 2 ); 6695 NRED = 339; 6696 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6697 6698 RD_ACTION(364): /* / */ 6699 call LEX ( 2 ); 6700 comp_dvt.recleng = token.Nvalue; 6701 call LEX ( 2 ); 6702 NRED = 339; 6703 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6704 6705 RD_ACTION(365): /* / */ 6706 bach_sw = "1"b; 6707 call LEX ( 2 ); 6708 call PUSH(410); /* PUSH(bachelor) */ 6709 call push ( "bachelor" ); 6710 NRED = 378; 6711 go to RD_TEST_REDUCTION; /* / add_family \ */ 6712 6713 RD_ACTION(366): /* / */ 6714 call LEX ( 2 ); 6715 NRED = 421; 6716 go to RD_TEST_REDUCTION; /* / viewselect \ */ 6717 6718 RD_ACTION(367): /* / */ 6719 NRED = 370; 6720 go to RD_TEST_REDUCTION; /* / endDevice \ */ 6721 6722 RD_ACTION(368): /* / */ 6723 NRED = 370; 6724 go to RD_TEST_REDUCTION; /* / endDevice \ */ 6725 6726 RD_ACTION(369): /* / */ 6727 call PUSH(339); /* PUSH(Device_2) */ 6728 call push ( "Device_2" ); 6729 NRED = 255; 6730 go to RD_TEST_REDUCTION; /* / global_device \ */ 6731 6732 RD_ACTION(370): /* / */ 6733 tp = Pthis_token; 6734 Ptoken , Pthis_token = Device_Pthis_token; 6735 done = "0"b; 6736 do dvid_p = dvidl_p ( 1 ) repeat ( dvid.next ) while ( ( dvid_p ^= null ( ) ) & ^ done ); 6737 if ( dvid.dvt_ndx = dvt_ct ) then if ( dvid.devname = "" ) then do; 6738 call ERROR ( no_devname ); 6739 done = "1"b; 6740 end; 6741 end; 6742 dvid_p = dvidl_p ( 2 ); 6743 if ( comp_dvt.family_ct = 0 ) then call ERROR ( no_fonts_selected ); 6744 if ( initfamily = "" ) then call ERROR ( no_init_font ); 6745 if ( footfamily = "" ) then do; 6746 footfamily = initfamily; 6747 footmember = initmember; 6748 end; 6749 views_selected = 0; 6750 do i = 1 to view.count; 6751 if ( med_sel_tab.ref_r ( i ) ^= "0"b ) then views_selected = views_selected +1; 6752 end; 6753 do i = 1 to comp_dvt.family_ct; 6754 mem_p = ptr ( area1_p, comp_dvt.member_r ( i ) ); 6755 member_ptr = mem.ref_p; 6756 do ii = 1 to member.count; 6757 if initfamily = comp_dvt.family ( i ) .name & initmember = member.name ( ii ) then do; 6758 comp_dvt.init_fam = i; 6759 comp_dvt.init_family = initfamily; 6760 comp_dvt.init_mem = ii; 6761 comp_dvt.init_member = initmember; 6762 end; 6763 if footfamily = comp_dvt.family ( i ) .name & footmember = member.name ( ii ) then do; 6764 comp_dvt.foot_fam = i; 6765 comp_dvt.foot_family = footfamily; 6766 comp_dvt.foot_mem = ii; 6767 comp_dvt.foot_member = footmember; 6768 end; 6769 if views_selected < view.count then do; 6770 fnt_p = ptr ( area2_p, member.font_r ( ii ) ); 6771 font_ptr = fnt.pt; 6772 uni_p = ptr ( fnt.pt, font.units_r ); 6773 units_ptr = uni.ref_p; 6774 opu_p = ptr ( fnt.pt, font.oput_r ); 6775 oput_p = opu.ref_p; 6776 do iii = 0 to oput.data_ct; 6777 j = oput.which ( iii ); 6778 if ( j > 0 ) then do; 6779 if ( med_sel_tab.ref_r ( j ) = "0"b ) then do; 6780 call ERROR_ ( no_viewselect, view.name ( j ), dvid.refname ); 6781 med_sel_tab.ref_r ( j ) = "000001"b3; 6782 views_selected = views_selected +1; 6783 end; 6784 end; 6785 end; 6786 end; 6787 end; 6788 end; 6789 if ( comp_dvt.init_family = "" ) then call ERROR ( init_font_not_on_Device ); 6790 if ( comp_dvt.foot_family = "" ) then call ERROR ( foot_font_not_on_Device ); 6791 Ptoken , Pthis_token = tp; 6792 area_free_p = addr_inc ( area_free_p, size ( comp_dvt ) ); 6793 NRED = 88; 6794 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6795 6796 RD_ACTION(371): /* / */ 6797 call LEX ( 1 ); 6798 prent.artproc = prent.artproc || "$"; 6799 prent.artproc = prent.artproc || token_value; 6800 call LEX ( 2 ); 6801 NRED = 339; 6802 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6803 6804 RD_ACTION(372): /* / */ 6805 call LEX ( 1 ); 6806 prent.artproc = prent.artproc || "$" || prent.artproc; 6807 NRED = 339; 6808 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6809 6810 RD_ACTION(373): /* / */ 6811 call LEX ( 1 ); 6812 prent.outproc = prent.outproc || "$" || token_value; 6813 call LEX ( 2 ); 6814 NRED = 339; 6815 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6816 6817 RD_ACTION(374): /* / */ 6818 call LEX ( 1 ); 6819 NRED = 339; 6820 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6821 6822 RD_ACTION(375): /* / */ 6823 call ERROR ( syntax_outproc ); 6824 call NEXT_STMT(); 6825 NRED = 339; 6826 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6827 6828 RD_ACTION(376): /* / */ 6829 call LEX ( 1 ); 6830 comp_dvt.cleanup_r = rel ( find_str ( 2 ) ); 6831 NRED = 339; 6832 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6833 6834 RD_ACTION(377): /* / */ 6835 call ERROR ( syntax_cleanup ); 6836 call NEXT_STMT(); 6837 NRED = 339; 6838 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6839 6840 RD_ACTION(378): /* / */ 6841 new_family = "1"b; 6842 go to RD_NEXT_REDUCTION; /* / \ */ 6843 6844 RD_ACTION(379): /* / */ 6845 if new_family then do; 6846 if ( member_ptr = null ( ) ) then mem_p = area1_p; 6847 else mem_p = addr_inc ( ( member_ptr ), size ( member ) ); 6848 call link ( meml_p, mem_p ); 6849 mem.seqno , mem.refno , mem_ct = mem_ct +1; 6850 member_ptr , mem.ref_p = addr ( mem.dummy ); 6851 member.count = 0; 6852 new_family = "0"b; 6853 end; 6854 comp_dvt.family_ct = comp_dvt.family_ct +1; 6855 comp_dvt.member_r ( comp_dvt.family_ct ) = rel ( mem_p ); 6856 if ^ bach_sw then comp_dvt.family ( comp_dvt.family_ct ) .name = translate ( token_value, az, AZ ); 6857 else comp_dvt.family ( comp_dvt.family_ct ) .name = token_value; 6858 Scale_x , Scale_y = Scale_scale; 6859 call LEX ( 1 ); 6860 NRED = 381; 6861 go to RD_TEST_REDUCTION; /* / family_2 \ */ 6862 6863 RD_ACTION(380): /* / */ 6864 call ERROR ( fam_bach_name_expected ); 6865 NRED = 88; 6866 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6867 6868 RD_ACTION(381): /* / */ 6869 call LEX ( 1 ); 6870 NRED = 379; 6871 go to RD_TEST_REDUCTION; /* / family_1 \ */ 6872 6873 RD_ACTION(382): /* / */ 6874 NRED = 88; 6875 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6876 6877 RD_ACTION(383): /* / */ 6878 call LEX ( 1 ); 6879 NRED = 385; 6880 go to RD_TEST_REDUCTION; /* / member \ */ 6881 6882 RD_ACTION(384): /* / */ 6883 call ERROR ( syntax_family ); 6884 call NEXT_STMT(); 6885 NRED = 339; 6886 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6887 6888 RD_ACTION(385): /* / */ 6889 new_member = member.count+1; 6890 call LEX ( 2 ); 6891 NRED = 387; 6892 go to RD_TEST_REDUCTION; /* / member_1 \ */ 6893 6894 RD_ACTION(386): /* / */ 6895 NRED = 411; 6896 go to RD_TEST_REDUCTION; /* / endmem \ */ 6897 6898 RD_ACTION(387): /* / */ 6899 member.count = member.count +1; 6900 member.font_r ( member.count ) = "0"b; 6901 member.size_r ( member.count ) = "0"b; 6902 member.name ( member.count ) = translate ( token_value, az, AZ ); 6903 call LEX ( 1 ); 6904 NRED = 389; 6905 go to RD_TEST_REDUCTION; /* / member_2 \ */ 6906 6907 RD_ACTION(388): /* / */ 6908 call ERROR ( syntax_member ); 6909 call NEXT_STMT(); 6910 NRED = 339; 6911 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 6912 6913 RD_ACTION(389): /* / */ 6914 call LEX ( 1 ); 6915 NRED = 387; 6916 go to RD_TEST_REDUCTION; /* / member_1 \ */ 6917 6918 RD_ACTION(390): /* / */ 6919 call PUSH(385); /* PUSH(member) */ 6920 call push ( "member" ); 6921 go to RD_NEXT_REDUCTION; /* / \ */ 6922 6923 RD_ACTION(391): /* / */ 6924 call LEX ( 1 ); 6925 NRED = 393; 6926 go to RD_TEST_REDUCTION; /* / member_4 \ */ 6927 6928 RD_ACTION(392): /* / */ 6929 call ERROR ( no_fontname ); 6930 go to RD_NEXT_REDUCTION; /* / \ */ 6931 6932 RD_ACTION(393): /* / */ 6933 call LEX ( 1 ); 6934 NRED = 395; 6935 go to RD_TEST_REDUCTION; /* / member_6 \ */ 6936 6937 RD_ACTION(394): /* / */ 6938 call ERROR ( syntax_member ); 6939 call NEXT_STMT(); 6940 NRED = 88; 6941 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6942 6943 RD_ACTION(395): /* / */ 6944 call LEX ( 2 ); 6945 NRED = 397; 6946 go to RD_TEST_REDUCTION; /* / member_7 \ */ 6947 6948 RD_ACTION(396): /* / */ 6949 NRED = 403; 6950 go to RD_TEST_REDUCTION; /* / member_A \ */ 6951 6952 RD_ACTION(397): /* / */ 6953 Scale_x , Scale_y = convert ( fd12_8, token_value ) * Scale_scale; 6954 call LEX ( 1 ); 6955 NRED = 399; 6956 go to RD_TEST_REDUCTION; /* / member_8 \ */ 6957 6958 RD_ACTION(398): /* / */ 6959 NRED = 402; 6960 go to RD_TEST_REDUCTION; /* / Scale_err \ */ 6961 6962 RD_ACTION(399): /* / */ 6963 call LEX ( 1 ); 6964 Scale_y = convert ( fd12_8, token_value ) * Scale_scale; 6965 call LEX ( 1 ); 6966 NRED = 401; 6967 go to RD_TEST_REDUCTION; /* / member_9 \ */ 6968 6969 RD_ACTION(400): /* / */ 6970 NRED = 402; 6971 go to RD_TEST_REDUCTION; /* / Scale_err \ */ 6972 6973 RD_ACTION(401): /* / */ 6974 call LEX ( 1 ); 6975 NRED = 403; 6976 go to RD_TEST_REDUCTION; /* / member_A \ */ 6977 6978 RD_ACTION(402): /* / */ 6979 call ERROR ( syntax_Scale ); 6980 call NEXT_STMT(); 6981 go to RD_NEXT_REDUCTION; /* / \ */ 6982 6983 RD_ACTION(403): /* / */ 6984 the_string_r = rel ( find_str ( 2 ) ); 6985 do i = new_member to member.count; 6986 member.font_r ( i ) = rel ( the_font ); 6987 member.Scalex ( i ) = Scale_x; 6988 member.Scaley ( i ) = Scale_y; 6989 addr ( member.size_r ( i ) ) -> bfb = Sizes; 6990 end; 6991 NRED = 88; 6992 go to RD_TEST_REDUCTION; /* / stack_pop \ */ 6993 6994 RD_ACTION(404): /* / */ 6995 call LEX ( 1 ); 6996 initfamily = font_fam; 6997 initmember = font_mem; 6998 NRED = 406; 6999 go to RD_TEST_REDUCTION; /* / init_f2 \ */ 7000 7001 RD_ACTION(405): /* / */ 7002 call ERROR ( missing_font ); 7003 call NEXT_STMT(); 7004 NRED = 339; 7005 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7006 7007 RD_ACTION(406): /* / */ 7008 comp_dvt.init_ps = scale_unit ( 1000 ); 7009 call LEX ( 1 ); 7010 NRED = 408; 7011 go to RD_TEST_REDUCTION; /* / init_f3 \ */ 7012 7013 RD_ACTION(407): /* / */ 7014 call ERROR ( no_init_ps ); 7015 call NEXT_STMT(); 7016 NRED = 339; 7017 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7018 7019 RD_ACTION(408): /* / */ 7020 call LEX ( 1 ); 7021 NRED = 339; 7022 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7023 7024 RD_ACTION(409): /* / */ 7025 call ERROR ( missing_semicolon ); 7026 call NEXT_STMT(); 7027 NRED = 339; 7028 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7029 7030 RD_ACTION(410): /* / */ 7031 new_member , member.count = 1; 7032 member.font_r ( 1 ) = "0"b; 7033 member.size_r ( 1 ) = "0"b; 7034 member.Scalex ( 1 ) = Scale_x; 7035 member.Scaley ( 1 ) = Scale_y; 7036 member.name ( 1 ) = ""; 7037 call PUSH(411); /* PUSH(endmem) */ 7038 call push ( "endmem" ); 7039 NRED = 391; 7040 go to RD_TEST_REDUCTION; /* / member_3 \ */ 7041 7042 RD_ACTION(411): /* / */ 7043 done = "0"b; 7044 do while ( ^ done ); 7045 done = "1"b; 7046 do i = 1 to member.count -1; 7047 call memorder; 7048 end; 7049 if ^ done then do; 7050 done = "1"b; 7051 do i = member.count -1 to 1 by -1; 7052 call memorder; 7053 end; 7054 end; 7055 end; 7056 memorder: proc; 7057 if member.name ( i ) > member.name ( i+1 ) then do; 7058 member_hold = member.e ( i ); 7059 member.e ( i ) = member.e ( i+1 ); 7060 member.e ( i+1 ) = member_hold; 7061 done = "0"b; 7062 end; 7063 end memorder; 7064 tp = meml_p ( 2 ); 7065 done = "0"b; 7066 do mem_p = meml_p ( 1 ) repeat ( mem.next ) while ( mem_p ^= meml_p ( 2 ) ); 7067 if ( mem.seqno = mem.refno ) then do; 7068 if ( unspec ( mem.ref_p -> mem ) = unspec ( tp -> mem.ref_p -> mem ) ) then do; 7069 tp -> mem.refno = mem.seqno; 7070 done = "1"b; 7071 end; 7072 end; 7073 end; 7074 NRED = 339; 7075 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7076 7077 RD_ACTION(412): /* / */ 7078 prent.footproc = token_value; 7079 call LEX ( 1 ); 7080 NRED = 416; 7081 go to RD_TEST_REDUCTION; /* / foot_1 \ */ 7082 7083 RD_ACTION(413): /* / */ 7084 call LEX ( 1 ); 7085 NRED = 417; 7086 go to RD_TEST_REDUCTION; /* / foot_2 \ */ 7087 7088 RD_ACTION(414): /* / */ 7089 call LEX ( 1 ); 7090 NRED = 339; 7091 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7092 7093 RD_ACTION(415): /* / */ 7094 call ERROR ( syntax_footproc ); 7095 call NEXT_STMT(); 7096 NRED = 339; 7097 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7098 7099 RD_ACTION(416): /* / */ 7100 call LEX ( 1 ); 7101 prent.footproc = prent.footproc || "$" || token_value; 7102 call LEX ( 1 ); 7103 go to RD_NEXT_REDUCTION; /* / \ */ 7104 7105 RD_ACTION(417): /* / */ 7106 call LEX ( 2 ); 7107 FootFamily = font_fam; 7108 FootMember = font_mem; 7109 NRED = 419; 7110 go to RD_TEST_REDUCTION; /* / foot_3 \ */ 7111 7112 RD_ACTION(418): /* / */ 7113 NRED = 420; 7114 go to RD_TEST_REDUCTION; /* / foot_e \ */ 7115 7116 RD_ACTION(419): /* / */ 7117 call LEX ( 1 ); 7118 NRED = 339; 7119 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7120 7121 RD_ACTION(420): /* / */ 7122 call ERROR ( syntax_footproc ); 7123 call NEXT_STMT(); 7124 NRED = 339; 7125 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7126 7127 RD_ACTION(421): /* / */ 7128 default_view = token.Nvalue; 7129 this_view = -1; 7130 call LEX ( 1 ); 7131 call PUSH(423); /* PUSH(viewsel1) */ 7132 call push ( "viewsel1" ); 7133 NRED = 169; 7134 go to RD_TEST_REDUCTION; /* / mc_string \ */ 7135 7136 RD_ACTION(422): /* / */ 7137 call ERROR ( syntax_viewselect ); 7138 call NEXT_STMT(); 7139 NRED = 339; 7140 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7141 7142 RD_ACTION(423): /* / */ 7143 med_sel_tab.ref_r ( default_view ) = rel ( find_str ( 2 ) ); 7144 go to RD_NEXT_REDUCTION; /* / \ */ 7145 7146 RD_ACTION(424): /* / */ 7147 call LEX ( 1 ); 7148 NRED = 339; 7149 go to RD_TEST_REDUCTION; /* / Device_2 \ */ 7150 7151 RD_ACTION(425): /* / */ 7152 call LEX ( 1 ); 7153 NRED = 421; 7154 go to RD_TEST_REDUCTION; /* / viewselect \ */ 7155 7156 RD_ACTION(426): /* / */ 7157 NRED = 422; 7158 go to RD_TEST_REDUCTION; /* / viewselect_err \ */ 7159 7160 7161 end SEMANTIC_ANALYSIS; 7162 7163 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 7164 7165 dcl SPDL bit(1) aligned init ("0"b); 7166 /* off: This compiler parses a non-PUSH DOWN */ 7167 /* LANGUAGE. */ 7168 /* START OF: rdc_lex_.incl.pl1 * * * * * * * * * * * * * * * * */ 13 2 13 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 4 /* */ 13 5 /* N__a_m_e: rdc_lex_.incl.pl1 */ 13 6 /* */ 13 7 /* This include segment is used by compilers generated by the reduction_compiler. */ 13 8 /* It contains the LEX subroutine which is used to manipulate the pointer to the */ 13 9 /* "current" token, Pthis_token. */ 13 10 /* */ 13 11 /* E__n_t_r_y: LEX */ 13 12 /* */ 13 13 /* This entry makes the |_nth|-next (or -preceding) token the "current" token, where */ 13 14 /* _n is its positive (or negative) input argument. */ 13 15 /* */ 13 16 /* U__s_a_g_e */ 13 17 /* */ 13 18 /* call LEX(n); */ 13 19 /* */ 13 20 /* 1) n is the number of the token to be made the "current" token, relative to the */ 13 21 /* token identified by Pthis_token (the present "current" token). If n is */ 13 22 /* positive, the nth token following the "current" token made "current". If n */ 13 23 /* is negative, the nth token preceding the "current" token is made "current". */ 13 24 /* */ 13 25 /* S__t_a_t_u_s */ 13 26 /* */ 13 27 /* 0) Created by: G. C. Dixon in February, 1975 */ 13 28 /* */ 13 29 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 30 13 31 LEX: procedure (n); 13 32 13 33 dcl n fixed bin, 13 34 i fixed bin; 13 35 13 36 Ptoken = Pthis_token; /* do everything relative to "current" token. */ 13 37 if Ptoken = null then return; /* can't lex if token list exhausted. */ 13 38 if n >= 0 then do; /* new "current" token will follow present one. */ 13 39 do i = 1 to n while (token.Pnext ^= null); /* find new "current" token, taking care not to */ 13 40 Ptoken = token.Pnext; /* run off end of token list. */ 13 41 end; 13 42 if ^SPDL then if i <= n then Ptoken = null; /* if not in 'PUSH DOWN LANGUAGE' mode, allow */ 13 43 /* running off end of token list. */ 13 44 end; 13 45 else /* new "current" token precedes present one. */ 13 46 do i = -1 to n by -1 while (token.Plast ^= null); 13 47 Ptoken = token.Plast; 13 48 end; 13 49 Pthis_token = Ptoken; /* simple wasn't it. */ 13 50 13 51 end LEX; 13 52 13 53 /* END OF: rdc_lex_.incl.pl1 * * * * * * * * * * * * * * * * */ 7168 7169 7170 /* START OF: rdc_delete_stmt_.incl.pl1 * * * * * * * * * * * * * * * * */ 14 2 14 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 4 /* */ 14 5 /* N__a_m_e: rdc_delete_stmt_.incl.pl1 */ 14 6 /* */ 14 7 /* This include segment is used by compilers generated by the reduction_compiler. */ 14 8 /* It includes a procedure which deletes all of the tokens associated with the current */ 14 9 /* statement (i.e., the statement which contains the token identified by Pthis_token). */ 14 10 /* */ 14 11 /* S__t_a_t_u_s */ 14 12 /* */ 14 13 /* 0) created by: G. C. Dixon in February, 1975. */ 14 14 /* */ 14 15 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 16 14 17 14 18 DELETE_STMT: procedure; 14 19 14 20 dcl (Plast, Pnext) ptr, /* ptr to (first, last) token to be deleted. */ 14 21 Ssearching bit(1) aligned; /* on if scan for first/last token continuing. */ 14 22 14 23 if Pthis_token = null then return; /* if input list exhausted, we can't do anything. */ 14 24 Pstmt = Pthis_token -> token.Pstmt; /* address the statement descriptor of "current" */ 14 25 if Pstmt = null then return; /* token, if it exists. */ 14 26 Plast = Pthis_token; /* start scanning with "current" token. */ 14 27 Ssearching = "1"b; /* set switch indicating search still continuing. */ 14 28 do while (Ssearching & Plast -> token.Plast ^= null); 14 29 if Plast -> token.Plast -> token.Pstmt = Pstmt then 14 30 Plast = Plast -> token.Plast; /* scan backward for 1st _n_o_n-__d_e_l_e_t_e_d token of stmt*/ 14 31 else Ssearching = "0"b; /* when found, stop searching. */ 14 32 end; /* Recall that 1st token of stmt (ie, token */ 14 33 /* pointed to by stmt.Pfirst_token) may have */ 14 34 /* been deleted. */ 14 35 Pnext = Pthis_token; /* start scanning forward with "current" token. */ 14 36 Ssearching = "1"b; 14 37 do while (Ssearching & Pnext -> token.Pnext ^= null); 14 38 if Pnext -> token.Pnext -> token.Pstmt = Pstmt then 14 39 Pnext = Pnext -> token.Pnext; /* scan forward for last _n_o_n-__d_e_l_e_t_e_d token of stmt*/ 14 40 else Ssearching = "0"b; /* when found, stop searching. */ 14 41 end; 14 42 if Pnext -> token.Pnext = null then /* if there is no next statement, and */ 14 43 if SPDL then /* if in PUSH DOWN LANGUAGE mode, and */ 14 44 if Plast -> token.Plast = null then /* if there are no more tokens before the */ 14 45 Ptoken, Pthis_token = null; /* "current" statement, then input exhausted. */ 14 46 else do; 14 47 Ptoken, Pthis_token = Plast -> token.Plast; 14 48 /* otherwise, make token preceding the "current"*/ 14 49 /* statement the "current" token. */ 14 50 token.Pnext = null; /* indicate that input list exhausted. Only the*/ 14 51 /* tokens before the new "current" token exist. */ 14 52 end; 14 53 else Ptoken, Pthis_token = null; /* not in PUSH DOWN LANGUAGE - input exhausted. */ 14 54 else do; 14 55 Ptoken, Pthis_token = Pnext -> token.Pnext; /* normally, token following "current" statement */ 14 56 /* becomes the "current" token. */ 14 57 token.Plast = Plast -> token.Plast; /* unthread the deleted tokens. */ 14 58 if Plast -> token.Plast ^= null then 14 59 Plast -> token.Plast -> token.Pnext = Ptoken; 14 60 end; 14 61 14 62 if Pnext -> token.Pnext = null then /* unthread statement descriptor from list. */ 14 63 Pnext = null; 14 64 else Pnext = Pnext -> token.Pnext -> token.Pstmt; 14 65 if Plast -> token.Plast = null then 14 66 Plast = null; 14 67 else Plast = Plast -> token.Plast -> token.Pstmt; 14 68 if Pnext ^= null then 14 69 Pnext -> stmt.Plast = Plast; 14 70 if Plast ^= null then 14 71 Plast -> stmt.Pnext = Pnext; 14 72 14 73 end DELETE_STMT; 14 74 14 75 /* END OF: rdc_delete_stmt_.incl.pl1 * * * * * * * * * * * * * * * * */ 7170 7171 7172 /* START OF: rdc_error_.incl.pl1 * * * * * * * * * * * * * * * * */ 15 2 15 3 dcl MERROR_SEVERITY fixed bin init (0), /* Severity of highest-severity error. */ 15 4 SERROR_CONTROL bit(2) init ("00"b),/* Global switches control error message format. */ 15 5 SERROR_PRINTED (dimension (error_control_table,1)) 15 6 bit(1) unaligned init ((dimension (error_control_table,1))(1)"0"b), 15 7 /* Array bit is on if corresponding error message */ 15 8 /* in error_control_table has already been printed*/ 15 9 MIN_PRINT_SEVERITY fixed bin init (0), /* Mimimum severity message that will be printed */ 15 10 PRINT_SEVERITY_CONTROL bit(2) init ("11"b);/* Action if severity < MIN_PRINT_SEVERITY */ 15 11 15 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 13 /* */ 15 14 /* N__a_m_e: rdc_error_.incl.pl1 */ 15 15 /* */ 15 16 /* This include segment is used by compilers generated by the reduction_compiler. */ 15 17 /* It defines a procedure which the compilers can use to print error messages. */ 15 18 /* */ 15 19 /* E__n_t_r_y: ERROR */ 15 20 /* */ 15 21 /* Given an error number, this procedure prints a corresponding error message. */ 15 22 /* The message is stored in a compiler-defined error_control_table, along with an integer */ 15 23 /* which specifies the severity level of the error, and a switch which specifies whether */ 15 24 /* the source statement in which the error occurred (if any) should be printed after the */ 15 25 /* error message. The printing of the error message may be supressed for all messages */ 15 26 /* having a severity less than a specified (MIN_PRINT_SEVERITY) value. The ERROR */ 15 27 /* procedure calls the lex_error_ subroutine to perform the formatting and printing of */ 15 28 /* the error message. */ 15 29 /* */ 15 30 /* U__s_a_g_e */ 15 31 /* */ 15 32 /* call ERROR (error_number); */ 15 33 /* */ 15 34 /* 1) error_number is the index of one of the structures in the error_control_table */ 15 35 /* which defines the error message to be printed. */ 15 36 /* */ 15 37 /* N__o_t_e_s */ 15 38 /* */ 15 39 /* The format of the error_control_table is shown below. */ 15 40 /* */ 15 41 /* dcl 1 error_control_table (2) aligned internal static, */ 15 42 /* 2 severity fixed bin(17) unaligned init (2,3), */ 15 43 /* 2 Soutput_stmt bit(1) unaligned initial ("0"b,"1"b), */ 15 44 /* 2 message char(252) varying initial ( */ 15 45 /* "The reduction source segment does not contain any reductions.", */ 15 46 /* "Reduction label '^a' is invalid."), */ 15 47 /* 2 brief_message char(100) varying initial ( */ 15 48 /* "", "'^a'"); */ 15 49 /* */ 15 50 /* error_control_table is an array of structures, with one array element per error. */ 15 51 /* Each structure contains: a severity level for the error; a switch which specifies */ 15 52 /* whether the source statement being processed should be output after the error message; */ 15 53 /* the long form of the error message text; and the brief form of the error message text.*/ 15 54 /* The dimension of the error_control_table array of structures, and the lengths of */ 15 55 /* message (long message) and brief_message (brief message), are compiler-defined. */ 15 56 /* structures and the lengths of the message and brief_message are compiler-defined. */ 15 57 /* The only requirement is that the messages be 256 characters or less in length. */ 15 58 /* (Remember that the longest character string which can be used in an initial attribute */ 15 59 /* is 254 characters in length.) */ 15 60 /* */ 15 61 /* The severity number causes the error message to be preceded by a herald which */ 15 62 /* includes one of the following prefixes: */ 15 63 /* */ 15 64 /* _s_e_v _p_r_e_f_i_x _e_x_p_l_a_n_a_t_i_o_n */ 15 65 /* 0 = COMMENT - this is a comment. */ 15 66 /* 1 = WARNING - a possible error has been detected. The */ 15 67 /* compiler will still generate an object segment. */ 15 68 /* 2 = ERROR - a probable error has been detected. The */ 15 69 /* compiler will still generate an object segment. */ 15 70 /* 3 = FATAL ERROR - an error has been detected which is so severe */ 15 71 /* that no object segment will be generated. */ 15 72 /* 4 = TRANSLATOR ERROR - an error has been detected in the operation of */ 15 73 /* the compiler or translator. No object segment */ 15 74 /* will be generated. */ 15 75 /* */ 15 76 /* Full error messages are of the form: */ 15 77 /* */ 15 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 */ 15 79 /* _t_e_x_t__o_f__e_r_r_o_r__m_e_s_s_a_g_e */ 15 80 /* SOURCE: */ 15 81 /* _s_o_u_r_c_e__s_t_a_t_e_m_e_n_t */ 15 82 /* */ 15 83 /* If only one statement appears in line _m, then "STATEMENT _n OF" is omitted. */ 15 84 /* If the source statement has been printed in a previous error message, it is omitted. */ 15 85 /* */ 15 86 /* The reduction compiler declares a bit string, SERROR_CONTROL, which controls the */ 15 87 /* text of an error message. The compiler may set this bit string, as shown below. */ 15 88 /* */ 15 89 /* SERROR_CONTROL _m_e_a_n_i_n_g */ 15 90 /* "00"b the first time a particular error occurs, the long message */ 15 91 /* is printed; the brief message is used in subsequent */ 15 92 /* occurrences of that error. */ 15 93 /* "10"b or "11"b the long error message is always used. */ 15 94 /* "01"b the brief error message is always used. */ 15 95 /* The initial value of SERROR_CONTROL is "00"b. */ 15 96 /* */ 15 97 /* The reduction_compiler creates a declaration for SERROR_PRINTED, an array */ 15 98 /* of switches (one per error). The switch corresponding to a particular error is */ 15 99 /* turned on whenever the error message is printed. This allows lex_error_ to detect */ 15 100 /* subsequent occurrences of that same error. */ 15 101 /* */ 15 102 /* The reduction_compiler creates MERROR_SEVERITY, a fixed bin(17) integer */ 15 103 /* in which the severity of the highest-severity error encountered is maintained. */ 15 104 /* The compiler may reference this integer. */ 15 105 /* */ 15 106 /* The reduction_compiler creates MIN_PRINT_SEVERITY, a fixed bin (17) integer */ 15 107 /* which controls the printing of error messages by the ERROR procedure. */ 15 108 /* Errors having a severity less than MIN_PRINT_SEVERITY will not cause lex_error_ to be */ 15 109 /* and no error will be printed. The behaviour of the ERROR procedure for such errors */ 15 110 /* is controlled by the value of PRINT_SEVERITY_CONTROL, described below. */ 15 111 /* The compiler may set the value of MIN_PRINT_SEVERITY; its initial value is 0. */ 15 112 15 113 /* */ 15 114 /* The reduction_compiler declares a bit string, PRINT_SEVERITY_CONTROL, which */ 15 115 /* controls the updating of MERROR_SEVERITY and SERROR_PRINTED when the severity of an */ 15 116 /* error is less than MIN_PRINT_SEVERITY. In such cases, the lex_error_ procedure is not */ 15 117 /* invoked, and the ERROR procedure must update these values as though lex_error_ were */ 15 118 /* called. The compiler may set this bit string, as shown below. */ 15 119 /* */ 15 120 /* PRINT_SEVERITY_CONTROL _m_e_a_n_i_n_g */ 15 121 /* "00"b update neither SERROR_PRINTED nor MERROR_SEVERITY. */ 15 122 /* "01"b update SERROR_PRINTED to reflect the error. */ 15 123 /* "10"b update MERROR_SEVERITY to reflect the error severity. */ 15 124 /* "11"b update SERROR_PRINTED and MERROR_SEVERITY appropriately. */ 15 125 /*The initial value of PRINT_SEVERITY_CONTROL is "11"b. */ 15 126 /* */ 15 127 /* The ERROR procedure is simple to use, but it does limit the flexibility of the */ 15 128 /* error message. A compiler action routine can output more flexible error messages */ 15 129 /* by calling lex_error_ directly. See lex_error_ documentation for more details. */ 15 130 /* */ 15 131 /* S__t_a_t_u_s */ 15 132 /* */ 15 133 /* 0) Created: April, 1974 by G. C. Dixon */ 15 134 /* 1) Modified: April, 1982 by E. N. Kittlitz. Added MIN_PRINT_SEVERITY, */ 15 135 /* PRINT_SEVERITY_CONTROL. */ 15 136 /* */ 15 137 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 138 15 139 ERROR: procedure (Nerror); 15 140 15 141 dcl Nerror fixed bin; /* Number of the error which was detected. (In) */ 15 142 15 143 dcl Pstmt ptr, 15 144 1 erring_token aligned based (Perring_token) like token, 15 145 Perring_token ptr, 15 146 erring_token_value char(erring_token.Lvalue) based (erring_token.Pvalue); 15 147 15 148 dcl (max, null) builtin; 15 149 15 150 dcl lex_error_ entry options (variable); 15 151 15 152 15 153 if error_control_table.severity(Nerror) < MIN_PRINT_SEVERITY then do; /* don't print */ 15 154 if PRINT_SEVERITY_CONTROL & "1"b then /* update MERROR_SEVERITY */ 15 155 MERROR_SEVERITY = max (MERROR_SEVERITY, error_control_table.severity(Nerror)); 15 156 if PRINT_SEVERITY_CONTROL & "01"b then /* update SERROR_PRINTED */ 15 157 SERROR_PRINTED(Nerror) = "1"b; 15 158 return; 15 159 end; 15 160 Perring_token = Pthis_token; /* address the current erring_token. */ 15 161 if error_control_table.Soutput_stmt(Nerror) then 15 162 if Perring_token = null then 15 163 Pstmt = null; 15 164 else 15 165 Pstmt = erring_token.Pstmt; /* address the statement descriptor. */ 15 166 else 15 167 Pstmt = null; 15 168 if Perring_token = null then 15 169 call lex_error_ (Nerror, SERROR_PRINTED(Nerror), (error_control_table.severity(Nerror)), 15 170 MERROR_SEVERITY, Pstmt, Perring_token, SERROR_CONTROL, (error_control_table.message(Nerror)), 15 171 (error_control_table.brief_message(Nerror))); 15 172 else 15 173 call lex_error_ (Nerror, SERROR_PRINTED(Nerror), (error_control_table.severity(Nerror)), 15 174 MERROR_SEVERITY, Pstmt, Perring_token, SERROR_CONTROL, (error_control_table.message(Nerror)), 15 175 (error_control_table.brief_message(Nerror)), erring_token_value, erring_token_value, erring_token_value); 15 176 15 177 end ERROR; 15 178 15 179 /* END OF: rdc_error_.incl.pl1 * * * * * * * * * * * * * * * * */ 7172 7173 7174 /* START OF: rdc_next_stmt_.incl.pl1 * * * * * * */ 16 2 16 3 /* * * * * * * * * * * * * * * * * * * * * * * */ 16 4 /* */ 16 5 /* N__a_m_e: rdc_next_stmt_.incl.pl1 */ 16 6 /* */ 16 7 /* This include segment is used by compilers generated by the */ 16 8 /* reduction_compiler. It includes a procedure which shifts the */ 16 9 /* compilation process to the next source statement. */ 16 10 /* */ 16 11 /* S__t_a_t_u_s */ 16 12 /* */ 16 13 /* 0) Created: April, 1974 by G. C. Dixon */ 16 14 /* */ 16 15 /* * * * * * * * * * * * * * * * * * * * * * * */ 16 16 16 17 16 18 NEXT_STMT: procedure; /* invoked to begin parsing the next statement of */ 16 19 /* the input tokens. */ 16 20 16 21 dcl null builtin, 16 22 Ssearching bit(1) aligned; 16 23 16 24 Ptoken = Pthis_token; /* make sure these pointers are the same. */ 16 25 Pstmt = token.Pstmt; /* address "current" statement's descriptor. */ 16 26 Ssearching = "1"b; /* start scanning forward for next statement. */ 16 27 do while (Ssearching & token.Pnext ^= null); 16 28 Ptoken = token.Pnext; 16 29 if token.Pstmt = Pstmt then; 16 30 else Ssearching = "0"b; 16 31 end; 16 32 if token.Pstmt = Pstmt then /* if there is no next statement, and */ 16 33 if SPDL then /* in PUSH DOWN LANGUAGE mode, can't run off */ 16 34 Ptoken = Ptoken; /* end of input list. */ 16 35 else Ptoken, Pthis_token = null; /* otherwise, input list exhausted. */ 16 36 else Pthis_token = Ptoken; /* normally, next statement exists and Ptoken */ 16 37 /* points to its 1st _n_o_n-__d_e_l_e_t_e_d token. */ 16 38 16 39 end NEXT_STMT; 16 40 16 41 /* END OF: rdc_next_stmt_.incl.pl1 * * * * * * */ 7174 7175 7176 end compdv; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/17/86 1449.6 compdv.pl1 >spec>install>1032>compdv.pl1 3855 1 03/01/85 1411.8 comp_art_parts.incl.pl1 >ldd>include>comp_art_parts.incl.pl1 3856 2 04/23/85 1346.4 comp_metacodes.incl.pl1 >ldd>include>comp_metacodes.incl.pl1 3857 3 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1 3858 4 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 3859 5 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 3860 6 04/23/85 1347.0 comp_font.incl.pl1 >ldd>include>comp_font.incl.pl1 3861 7 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 3862 8 03/01/85 1412.1 compdv_msgs.incl.pl1 >ldd>include>compdv_msgs.incl.pl1 3868 9 04/18/75 1242.4 rdc_start_.incl.pl1 >ldd>include>rdc_start_.incl.pl1 9-25 10 04/18/75 1242.4 lex_descriptors_.incl.pl1 >ldd>include>lex_descriptors_.incl.pl1 4391 11 03/17/86 1404.9 rdc_end_.incl.pl1 >spec>install>1032>rdc_end_.incl.pl1 4459 12 04/18/75 1242.4 rdc_stack_fcns_.incl.pl1 >ldd>include>rdc_stack_fcns_.incl.pl1 7168 13 04/18/75 1242.4 rdc_lex_.incl.pl1 >ldd>include>rdc_lex_.incl.pl1 7170 14 04/18/75 1242.4 rdc_delete_stmt_.incl.pl1 >ldd>include>rdc_delete_stmt_.incl.pl1 7172 15 08/15/83 1511.7 rdc_error_.incl.pl1 >ldd>include>rdc_error_.incl.pl1 7174 16 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. ALM 000220 automatic pointer initial dcl 3212 set ref 1817* 1819* 1821* 1822* 1955 1958* 1959* 1960* 2690* 2696* 2697* 2698* 2700* 2702* 2708* 2709* 2711* 2712* 2713* 2714* 2715* 2716* 2717* 2718* 2719* 2720* 2721* 2722* 2723* 2724* 2725* 2726* 2727* 2728* 2729* 2730* 2731* 2732* 2733* 2734* 2736* 2738* 2739* 2740* 2741* 2742* 2743* 2745* 2747* 2748* 2750* 2751* 2755* 2756* 2760* 2761* 2763* 2773* 2774* 2777* 2778* 2780* 2782* 2788* 2793* 2794* 2795* 2796* 2797* 2798* 2799* 2800* 2801* 2808* 2817* 2823* 2832* 2834* 2841* 2844* 2854* 2855* 2857* 2861* 2865* 2867* 2870* 2876* 3212* AZ 012417 constant char(26) initial unaligned dcl 3419 ref 2044 2045 2071 6856 6902 Arg1 parameter char unaligned dcl 1995 set ref 1992 2012* Arg2 parameter char unaligned dcl 1995 set ref 1992 2012* ArtEntry 000226 automatic varying char(32) initial dcl 3218 set ref 3218* 6202* 6207* 6475 ArtProc 000237 automatic varying char(32) dcl 3220 set ref 1774* 5942* 6207 6475 Atd_r 000250 automatic bit(18) initial unaligned dcl 3222 set ref 3222* 5950* 6500 AvgWordsp 000251 automatic fixed bin(17,0) initial dcl 3225 set ref 3225* 5589 BACKSPACE 053050 constant char(1) initial dcl 9-99 ref 11-113 CODE 010737 automatic fixed bin(35,0) dcl 9-33 set ref 11-106* 11-107 Clean_r 000266 automatic bit(18) unaligned dcl 3243 set ref 1777* 6291* 6503 Com_r 000265 automatic bit(18) unaligned dcl 3242 set ref 1777* 5970* 6502 DEVIT constant char(1) initial unaligned dcl 2-6 ref 2303 DIRECTION 010742 automatic fixed bin(17,0) initial dcl 3870 set ref 11-62 3870* Def based structure level 1 unaligned dcl 3614 set ref 4746 4746 DefVmb 000276 automatic fixed bin(31,0) initial dcl 3251 set ref 3251* 5983* 6490 DefVmf 000275 automatic fixed bin(31,0) initial dcl 3250 set ref 3250* 5981* 6489 DefVmh 000274 automatic fixed bin(31,0) initial dcl 3249 set ref 3249* 5979* 6488 DefVmt 000273 automatic fixed bin(31,0) initial dcl 3248 set ref 3248* 5977* 6487 Def_p 007762 automatic pointer dcl 3613 set ref 1754* 2388 2389 4690* 4692 4740 4742 4743 4746* 4746 4746 4746 4746 5237 5237 5239 5239 5241 5241 5881 DevClass 000277 automatic char(24) initial unaligned dcl 3252 set ref 3252* 5991* 6482 DevName 000310 automatic char(24) initial unaligned dcl 3256 set ref 3256* 5999* 6379 Device_Pthis_token 000306 automatic pointer dcl 3254 set ref 4863* 6734 DisplayProc 000703 automatic varying char(32) dcl 3360 set ref 1774* 2714 6109* EM constant char(1) initial unaligned dcl 2-6 ref 2285 EM_ constant char(1) initial unaligned dcl 2-6 ref 2315 EMdash constant char(1) initial unaligned dcl 2-6 ref 2309 EN constant char(1) initial unaligned dcl 2-6 ref 2288 EN_ constant char(1) initial unaligned dcl 2-6 ref 2317 ENd constant char(1) initial unaligned dcl 2-6 ref 2312 EndPage 000403 automatic bit(9) initial unaligned dcl 3264 set ref 3264* 6006* 6510 FORM based fixed bin(17,0) level 2 packed unaligned dcl 9-48 ref 11-65 11-70 11-123 FootEntry 000430 automatic varying char(32) initial dcl 3273 set ref 3273* 6244* 6249* 6476 FootFamily 000441 automatic char(32) unaligned dcl 3276 set ref 1776* 6255* 6478 7107* FootMember 000461 automatic char(32) unaligned dcl 3278 set ref 1776* 6256* 6479 7108* FootProc 000501 automatic varying char(32) dcl 3280 set ref 1774* 6225* 6249 6476 Footsep 000512 automatic char(1) initial unaligned dcl 3282 set ref 3282* 5587 6213* HAIR constant char(1) initial unaligned dcl 2-6 ref 2300 Hscale 000520 automatic fixed bin(31,0) dcl 3287 set ref 1779* 5934* 6071* 6094* 6480 I 010740 automatic fixed bin(17,0) dcl 9-33 in procedure "SEMANTIC_ANALYSIS" set ref 11-62* 11-63 11-79* I based fixed bin(17,0) level 2 in structure "TOKEN_REQD_STRING" packed unaligned dcl 9-48 in procedure "SEMANTIC_ANALYSIS" ref 11-126 IFIRST based fixed bin(17,0) level 3 packed unaligned dcl 9-48 ref 11-62 11-73 11-79 11-79 ILAST 0(18) based fixed bin(17,0) level 3 packed unaligned dcl 9-48 ref 11-62 11-73 11-79 Input 000545 automatic char(1) unaligned dcl 3300 set ref 1917 2285* 2288* 2291* 2294* 2297* 2300* 2303* 2306* 2309* 2312* 2315* 2317* 2319* 2321* 2323* 2325* 2327* 2329* 2331* 2333* 2335* 2337* 2339* 2341* 2343* 2345* 2347* 2349* 2351* 2353* 2355* 2357* 2359* 2361* 2370* 2587* 2972* 4927 4961 5295 5312 5332 5773 6006 6213 6311 6586 Interleave 000552 automatic bit(1) initial unaligned dcl 3308 set ref 3308* 6034* 6507 Justify 000555 automatic bit(1) initial unaligned dcl 3311 set ref 3311* 6026* 6508 L 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 9-48 ref 11-127 LTOKEN_REQD_VALUE 010726 automatic fixed bin(18,0) dcl 9-33 set ref 11-127* 11-128 Len parameter fixed bin(17,0) dcl 2886 ref 2882 2891 2891 2894 Letterspace 000556 automatic fixed bin(31,0) initial dcl 3312 set ref 3312* 6042* 6495 Lvalue 4 based fixed bin(18,0) level 2 in structure "token" dcl 10-68 in procedure "compdv" ref 1856 1856 1857 1857 1886 1888 1919 1975 2026 2030 2034 2040 2063 2067 2067 2071 2073 2108 2109 2120 2232 2243 2243 2250 2285 2288 2291 2294 2297 2300 2303 2306 2309 2312 2315 2317 2319 2321 2323 2325 2327 2329 2331 2333 2335 2337 2339 2341 2343 2345 2347 2349 2351 2353 2355 2357 2359 2361 2368 2370 2389 2411 2459 2479 2481 2483 2486 2488 2504 2507 2509 2512 2517 2530 2540 2542 2546 2551 2577 2581 2585 2965 2997 2997 3004 3004 3017 3059 3061 3077 3106 3135 3159 11-92 11-92 11-92 11-92 11-106 11-106 11-113 11-113 11-128 4866 4866 4896 4922 5029 5199 5239 5895 5933 5933 5942 5949 5969 5991 5999 6109 6202 6225 6244 6272 6317 6378 6526 6533 6548 6550 6570 6578 6686 6799 6812 6856 6857 6902 6952 6964 7077 7101 Lvalue 4 based fixed bin(18,0) level 2 in structure "erring_token" dcl 15-143 in procedure "ERROR" ref 15-172 15-172 15-172 15-172 15-172 15-172 MEDIUM constant char(1) initial unaligned dcl 2-6 ref 2294 MERROR_SEVERITY 010071 automatic fixed bin(17,0) initial dcl 15-3 set ref 1810 1812 15-3* 2012* 15-154* 15-154 15-168* 15-172* MIN_PRINT_SEVERITY 010073 automatic fixed bin(17,0) initial dcl 15-3 set ref 15-3* 15-153 MaxFiles 000565 automatic fixed bin(31,0) initial dcl 3324 set ref 3324* 6049* 6497 MaxPageLength 000570 automatic fixed bin(31,0) initial dcl 3324 set ref 3324* 6063* 6492 MaxPageWidth 000571 automatic fixed bin(31,0) initial dcl 3330 set ref 3330* 6071* 6491 MaxPages 000567 automatic fixed bin(31,0) initial dcl 3324 set ref 3324* 6056* 6496 MaxWordsp 000566 automatic fixed bin(31,0) initial dcl 3324 set ref 3324* 5590 MinLead 000644 automatic fixed bin(31,0) initial dcl 3341 set ref 3341* 6086* 6484 MinSpace 000645 automatic fixed bin(31,0) initial dcl 3343 set ref 3343* 6094* 6483 MinVmb 000647 automatic fixed bin(31,0) initial dcl 3346 set ref 3346* 6078* 6486 MinVmt 000650 automatic fixed bin(31,0) initial dcl 3347 set ref 3347* 6101* 6485 MinWordsp 000646 automatic fixed bin(17,0) initial dcl 3344 set ref 3344* 5588 N parameter fixed bin(17,0) dcl 12-38 set ref 12-36 12-60* 12-68 NRED 010727 automatic fixed bin(17,0) dcl 9-33 set ref 11-52* 11-55* 11-55 11-58 4457 12-18* 12-26* 4471* 4480* 4483* 4487* 4491* 4495* 4499* 4503* 4507* 4511* 4537* 4541* 4545* 4549* 4553* 4557* 4568* 4573* 4578* 4583* 4588* 4593* 4596* 4621* 4625* 4629* 4633* 4637* 4648* 4653* 4658* 4663* 4668* 4671* 4695* 4699* 4703* 4707* 4718* 4723* 4728* 4733* 4736* 4754* 4758* 4762* 4773* 4778* 4783* 4786* 4792* 4809* 4813* 4824* 4829* 4832* 4841* 4867* 4874* 4901* 4913* 4919* 4924* 4930* 4939* 4942* 4948* 4953* 4958* 4963* 4966* 4975* 5009* 5014* 5017* 5033* 5039* 5044* 5049* 5052* 5059* 5062* 5075* 5080* 5083* 5092* 5095* 5101* 5106* 5111* 5114* 5118* 5122* 5128* 5131* 5135* 5139* 5143* 5147* 5186* 5192* 5195* 5202* 5208* 5216* 5219* 5225* 5230* 5233* 5243* 5251* 5255* 5259* 5263* 5267* 5275* 5280* 5285* 5296* 5301* 5306* 5313* 5318* 5323* 5326* 5345* 5350* 5353* 5359* 5372* 5378* 5381* 5385* 5389* 5401* 5412* 5415* 5419* 5426* 5432* 5438* 5443* 5450* 5457* 5462* 5468* 5474* 5479* 5484* 5487* 5502* 5508* 5514* 5520* 5525* 5535* 5540* 5553* 5560* 5565* 5595* 5601* 5608* 5614* 5617* 5631* 5634* 5640* 5646* 5652* 5664* 5671* 5674* 5680* 5687* 5692* 5695* 5699* 5703* 5707* 5714* 5763* 5768* 5774* 5779* 5786* 5792* 5795* 5802* 5805* 5812* 5815* 5823* 5828* 5831* 5856* 5862* 5868* 5871* 5884* 5890* 5899* 5905* 5913* 5922* 5928* 5937* 5944* 5952* 5960* 5963* 5972* 5985* 5993* 6001* 6008* 6014* 6020* 6028* 6036* 6044* 6051* 6058* 6065* 6073* 6080* 6088* 6096* 6103* 6111* 6119* 6127* 6134* 6142* 6149* 6156* 6160* 6164* 6168* 6172* 6176* 6180* 6184* 6191* 6197* 6204* 6210* 6216* 6222* 6228* 6233* 6239* 6246* 6261* 6267* 6274* 6280* 6286* 6292* 6298* 6314* 6320* 6326* 6335* 6341* 6344* 6353* 6358* 6361* 6383* 6389* 6394* 6399* 6406* 6409* 6416* 6419* 6427* 6430* 6434* 6441* 6457* 6470* 6521* 6528* 6536* 6543* 6552* 6565* 6572* 6581* 6588* 6596* 6601* 6606* 6612* 6618* 6625* 6632* 6639* 6646* 6653* 6660* 6667* 6674* 6681* 6688* 6695* 6702* 6710* 6715* 6718* 6722* 6729* 6793* 6801* 6807* 6814* 6819* 6825* 6831* 6837* 6860* 6865* 6870* 6873* 6879* 6885* 6891* 6894* 6904* 6910* 6915* 6925* 6934* 6940* 6945* 6948* 6955* 6958* 6966* 6969* 6975* 6991* 6998* 7004* 7010* 7016* 7021* 7027* 7039* 7074* 7080* 7085* 7090* 7096* 7109* 7112* 7118* 7124* 7133* 7139* 7148* 7153* 7156* 12-60* NUMBER 010741 automatic fixed bin(35,0) dcl 9-33 set ref 11-106* 11-108 Nerror parameter fixed bin(17,0) dcl 15-141 in procedure "ERROR" set ref 15-139 15-153 15-154 15-156 15-161 15-168* 15-168 15-168 15-168 15-168 15-172* 15-172 15-172 15-172 15-172 Nerror parameter fixed bin(17,0) dcl 1995 in procedure "ERROR_" set ref 1992 2008 2012* 2012 2012 2012 2012 2017 Nvalue 10 based fixed bin(35,0) level 3 packed unaligned dcl 10-68 set ref 1894* 1926* 2392* 2414* 2462* 2517* 2517 2533* 2551* 2551 3020* 3059* 3061* 3086* 3117* 11-101 11-108* 5068 5087 5151 5214 5362 5429 5435 5465 5471 5497 5543 5548 5549 5549 5604 5789 5799 5809 5859 5934 5935 6026 6034 6042 6049 6056 6117 6132 6140 6147 6329 6413 6518 6519 6611 6617 6623 6630 6637 6693 6700 7127 Oct parameter fixed bin(35,0) dcl 2885 ref 2882 2890 Openmode 000660 automatic fixed bin(17,0) initial dcl 3356 set ref 3356* 6140* 6511 OutEntry 000661 automatic varying char(32) dcl 3358 set ref 1774* 6272* 6277* 6473 OutProc 000672 automatic varying char(32) dcl 3359 set ref 1774* 6109* 6277 6473 PI 23(27) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 PRED 010730 automatic pointer dcl 9-33 set ref 11-58* 11-62 11-62 11-73 11-73 11-79 11-79 11-79 PRINT_SEVERITY_CONTROL 010074 automatic bit(2) initial unaligned dcl 15-3 set ref 15-3* 15-154 15-156 PS constant char(1) initial unaligned dcl 2-6 ref 2343 PTOKEN_REQD 010732 automatic pointer dcl 9-33 set ref 11-63* 11-65 11-65 11-70 11-71 11-123 11-126 11-127 4394 PTOKEN_REQD_VALUE 010734 automatic pointer dcl 9-33 set ref 11-126* 11-128 Perring_token 000102 automatic pointer dcl 1999 in procedure "ERROR_" set ref 2006* 2008 Perring_token 011104 automatic pointer dcl 15-143 in procedure "ERROR" set ref 15-160* 15-161 15-164 15-168 15-168* 15-172* 15-172 15-172 15-172 15-172 15-172 15-172 15-172 15-172 15-172 Plast 2 based pointer level 2 in structure "token" packed unaligned dcl 10-68 in procedure "compdv" set ref 13-45 13-47 14-28 14-29 14-29 14-42 14-47 14-57* 14-57 14-58 14-58 14-65 14-67 Plast 011066 automatic pointer dcl 14-20 in procedure "DELETE_STMT" set ref 14-26* 14-28 14-29 14-29* 14-29 14-42 14-47 14-57 14-58 14-58 14-65 14-65* 14-67* 14-67 14-68 14-70 14-70 Plast 2 based pointer level 2 in structure "stmt" packed unaligned dcl 10-40 in procedure "compdv" set ref 14-68* Pnext 1 based pointer level 2 in structure "token" packed unaligned dcl 10-68 in procedure "compdv" set ref 11-79 4453 13-39 13-40 14-37 14-38 14-38 14-42 14-50* 14-55 14-58* 14-62 14-64 16-27 16-28 Pnext 011070 automatic pointer dcl 14-20 in procedure "DELETE_STMT" set ref 14-35* 14-37 14-38 14-38* 14-38 14-42 14-55 14-62 14-62* 14-64* 14-64 14-68 14-68 14-70 Pnext 1 based pointer level 2 in structure "stmt" packed unaligned dcl 10-40 in procedure "compdv" set ref 14-70* Pstmt 5 based pointer level 2 in structure "erring_token" packed unaligned dcl 1999 in procedure "ERROR_" ref 2008 Pstmt 011102 automatic pointer dcl 15-143 in procedure "ERROR" set ref 15-161* 15-164* 15-166* 15-168* 15-172* Pstmt 5 based pointer level 2 in structure "token" packed unaligned dcl 10-68 in procedure "compdv" ref 14-24 14-29 14-38 14-64 14-67 16-25 16-29 16-32 Pstmt 010064 automatic pointer dcl 10-40 in procedure "compdv" set ref 14-24* 14-25 14-29 14-38 16-25* 16-29 16-32 Pstmt 000100 automatic pointer dcl 1999 in procedure "ERROR_" set ref 2008* 2010* 2012* Pstmt 5 based pointer level 2 in structure "erring_token" packed unaligned dcl 15-143 in procedure "ERROR" ref 15-164 Pthis_token 010062 automatic pointer dcl 9-23 set ref 1806* 2006 11-60 4456 4848* 4851* 4863 4970 4978 4980* 5004* 5241 5627 5628* 5638* 5645* 5879 5881* 5887* 6125 6732 6734* 6791* 13-36 13-49* 14-23 14-24 14-26 14-35 14-42* 14-47* 14-53* 14-55* 15-160 16-24 16-35* 16-36* Ptoken 010066 automatic pointer dcl 10-68 set ref 1806* 1856 1856 1856 1857 1857 1857 1857 1886 1886 1888 1888 1894 1919 1919 1926 1975 1975 2026 2026 2026 2030 2030 2034 2034 2040 2040 2063 2063 2063 2067 2067 2067 2067 2071 2071 2073 2073 2108 2108 2109 2109 2109 2120 2120 2143 2232 2243 2243 2243 2243 2243 2250 2250 2285 2285 2288 2288 2291 2291 2294 2294 2297 2297 2300 2300 2303 2303 2306 2306 2309 2309 2312 2312 2315 2315 2317 2317 2319 2319 2321 2321 2323 2323 2325 2325 2327 2327 2329 2329 2331 2331 2333 2333 2335 2335 2337 2337 2339 2339 2341 2341 2343 2343 2345 2345 2347 2347 2349 2349 2351 2351 2353 2353 2355 2355 2357 2357 2359 2359 2361 2361 2363 2368 2370 2370 2389 2389 2392 2411 2411 2414 2459 2459 2462 2479 2479 2481 2483 2486 2486 2488 2488 2504 2504 2507 2507 2509 2509 2512 2512 2517 2517 2517 2517 2530 2530 2533 2540 2540 2542 2542 2546 2546 2551 2551 2551 2551 2577 2581 2581 2585 2585 2965 2965 2997 2997 2997 2997 3004 3004 3004 3004 3017 3017 3020 3059 3059 3059 3061 3061 3061 3077 3077 3086 3106 3106 3117 3135 3135 3159 3159 11-60* 11-64 11-73 11-79 11-86 11-92 11-92 11-92 11-92 11-92 11-92 11-92 11-101 11-104 11-106 11-106 11-106 11-108 11-113 11-113 11-113 11-113 11-118 11-124 11-128 11-128 4453* 4453 4456* 4846 4848* 4851* 4866 4866 4866 4896 4896 4922 4922 4980* 5004* 5029 5029 5068 5087 5151 5199 5199 5214 5239 5239 5362 5429 5435 5465 5471 5497 5543 5548 5549 5549 5604 5628* 5638* 5645* 5789 5799 5809 5859 5881* 5887* 5895 5895 5933 5933 5933 5934 5935 5942 5942 5949 5949 5969 5969 5991 5991 5999 5999 6026 6034 6042 6049 6056 6109 6109 6117 6132 6140 6147 6202 6202 6225 6225 6244 6244 6272 6272 6317 6317 6329 6378 6378 6413 6518 6519 6526 6526 6533 6533 6548 6548 6550 6550 6570 6570 6578 6578 6611 6617 6623 6630 6637 6686 6686 6693 6700 6734* 6791* 6799 6799 6812 6812 6856 6856 6857 6857 6902 6902 6952 6952 6964 6964 7077 7077 7101 7101 7127 13-36* 13-37 13-39 13-40* 13-40 13-42* 13-45 13-47* 13-47 13-49 14-42* 14-47* 14-50 14-53* 14-55* 14-57 14-58 16-24* 16-25 16-27 16-28* 16-28 16-29 16-32 16-32* 16-32 16-35* 16-36 Pvalue 3 based pointer level 2 in structure "erring_token" packed unaligned dcl 15-143 in procedure "ERROR" ref 15-172 15-172 15-172 Pvalue 3 based pointer level 2 in structure "token" packed unaligned dcl 10-68 in procedure "compdv" ref 1856 1857 1857 1886 1888 1919 1975 2026 2030 2034 2040 2063 2067 2067 2071 2073 2108 2109 2120 2243 2243 2250 2285 2288 2291 2294 2297 2300 2303 2306 2309 2312 2315 2317 2319 2321 2323 2325 2327 2329 2331 2333 2335 2337 2339 2341 2343 2345 2347 2349 2351 2353 2355 2357 2359 2361 2370 2389 2411 2459 2479 2486 2488 2504 2507 2509 2512 2517 2530 2540 2542 2546 2551 2581 2585 2965 2997 2997 3004 3004 3017 3059 3061 3077 3106 3135 3159 11-92 11-92 11-106 11-113 11-128 4866 4896 4922 5029 5199 5239 5895 5933 5942 5949 5969 5991 5999 6109 6202 6225 6244 6272 6317 6378 6526 6533 6548 6550 6570 6578 6686 6799 6812 6856 6857 6902 6952 6964 7077 7101 RED based structure level 1 dcl 9-48 REDUCTION based structure array level 1 packed unaligned dcl 3875 set ref 11-58 REDUCTIONS 005473 constant fixed bin(17,0) initial array unaligned dcl 3875 set ref 11-58 Rel parameter bit(18) dcl 2910 ref 2907 2913 2916 2919 S 11 based structure level 3 packed unaligned dcl 10-68 SERROR_CONTROL 010072 automatic bit(2) initial unaligned dcl 15-3 set ref 15-3* 2012* 15-168* 15-172* SERROR_PRINTED 010073 automatic bit(1) initial array unaligned dcl 15-3 set ref 15-3* 2012* 15-156* 15-168* 15-172* SPDL 010070 automatic bit(1) initial dcl 7165 set ref 7165* 11-73 13-42 14-42 16-32 STACK 010743 automatic fixed bin(17,0) array dcl 3871 set ref 12-18 12-26 12-59 12-60 12-60 12-68* STACK_DEPTH 010755 automatic fixed bin(17,0) initial dcl 3871 set ref 12-17 12-18 12-24 12-26 12-27* 12-27 3871* 4878 4878* 12-59 12-66* 12-66 12-68 4886 4887* 4890 4890* 4891* 4891 STOKEN_FCN 010736 automatic bit(1) dcl 9-33 set ref 4396* 4398* 4400* 4402* 4404* 4406* 4408* 4410* 4412* 4414* 4416* 4418* 4420* 4422* 4424* 4426* 4428* 4430* 4432* 4434* 4436* 4438* 4440* 4442* 4444* 4446* 4449 STROKE constant char(1) initial unaligned dcl 2-6 ref 2306 Scale_scale 012444 constant fixed bin(35,0) initial dcl 3368 ref 6858 6952 6964 Scale_x 002724 automatic fixed bin(35,0) dcl 3370 set ref 6858* 6952* 6987 7034 Scale_y 002725 automatic fixed bin(35,0) dcl 3371 set ref 6858* 6952* 6964* 6988 7035 Scalex 3 based fixed bin(35,0) array level 3 dcl 6-56 set ref 2780* 6987* 7034* Scaley 4 based fixed bin(35,0) array level 3 dcl 6-56 set ref 2780* 6988* 7035* Sizes 002747 automatic fixed bin(17,0) initial dcl 3375 set ref 3375* 4844 4844* 6132* 6989 Soutput_stmt 0(18) 000030 constant bit(1) initial array level 2 packed unaligned dcl 8-10 ref 2008 15-161 Ssearching 011072 automatic bit(1) dcl 14-20 in procedure "DELETE_STMT" set ref 14-27* 14-28 14-31* 14-36* 14-37 14-40* Ssearching 011114 automatic bit(1) dcl 16-21 in procedure "NEXT_STMT" set ref 16-26* 16-27 16-30* Stack 000100 automatic char(16) array unaligned dcl 2984 set ref 4878* 4886* 4890* Strokes 002754 automatic fixed bin(17,0) initial dcl 3378 set ref 3378* 5030 6117* THICK constant char(1) initial unaligned dcl 2-6 ref 2291 THIN constant char(1) initial unaligned dcl 2-6 ref 2297 TOKEN_REQD based structure level 2 in structure "RED" packed unaligned dcl 9-48 in procedure "SEMANTIC_ANALYSIS" TOKEN_REQD based structure level 1 dcl 9-48 in procedure "SEMANTIC_ANALYSIS" TOKEN_REQD_STRING based structure level 1 dcl 9-48 TOKEN_REQD_VALUE based char unaligned dcl 9-48 ref 11-128 TOKEN_REQUIREMENT based structure array level 1 packed unaligned dcl 4309 set ref 11-63 TOKEN_REQUIREMENTS 005020 constant fixed bin(17,0) initial array unaligned dcl 4309 set ref 11-63 TOKEN_STRINGS based char(556) dcl 4381 set ref 11-126 TOKEN_STRING_ARRAYS 004572 constant char(100) initial array dcl 4381 set ref 11-126 TRACING 000223 internal static bit(1) initial dcl 3865 set ref 11-50* 11-50 TYPE 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 9-48 ref 11-65 11-71 4394 TapeRec 002755 automatic fixed bin(17,0) initial dcl 3379 set ref 3379* 6147* 6512 Vscale 007724 automatic fixed bin(31,0) dcl 3392 set ref 1778* 5935* 5977* 5979* 5981* 5983* 6063* 6078* 6086* 6101* 6481 Wordspace_p 007726 automatic pointer initial dcl 3398 set ref 3398* 5625 5628 6125* a_ptr parameter pointer dcl 1867 ref 1864 1870 addr builtin function dcl 12-40 in procedure "PUSH" ref 12-63 12-63 addr builtin function dcl 3400 in procedure "compdv" ref 1604 1978 2138 2190 2778 3046 3046 3046 addr builtin function dcl 9-92 in procedure "SEMANTIC_ANALYSIS" ref 11-58 11-58 11-63 11-63 11-126 11-126 4806 4840 4909 6374 6446 6454 6850 6989 addrel builtin function dcl 3400 ref 1870 after builtin function dcl 3400 ref 2034 2512 2546 2997 3004 alm 000344 constant entry external dcl 3416 ref 1827 1829 an_inc parameter fixed bin(24,0) dcl 1867 ref 1864 1870 area1_p defined pointer dcl 3487 ref 2754 6754 6846 area2_p defined pointer dcl 3488 ref 1750 2776 6770 area_free_p 007740 automatic pointer dcl 3489 set ref 1750* 2135* 2137 2138* 4477 4518 4524* 4532 4608* 4616 4682* 4690 4746* 4795* 4803 4806* 4904 4909* 5571 5572* 5572* 5573 5574* 5574* 5577 5578* 5578* 5579 5580* 5580* 5583 5916* 6373 6374* 6444 6446* 6449 6451* 6451* 6453 6454* 6455 6792* 6792* arg based char unaligned dcl 3214 set ref 1644 1647 1650 1650 1655 1671* 1675 1675 1696 1696 1699 1699 1704* argl 000222 automatic fixed bin(17,0) dcl 3216 set ref 1636* 1644 1647 1650 1650 1655 1671 1671 1675 1675 1688* 1696 1696 1699 1699 1704 1704 argp 000224 automatic pointer dcl 3217 set ref 1636* 1644 1647 1650 1650 1655 1671 1675 1675 1688* 1696 1696 1699 1699 1704 art 000000 constant structure level 1 packed unaligned dcl 1-4 art_codes 010573 automatic char(1) initial array unaligned dcl 2937 set ref 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2937* 2972 art_tokens 010432 automatic char(388) initial unaligned dcl 2930 set ref 2930* 2967 artproc 22 based varying char(68) level 2 dcl 3762 set ref 2713* 6475* 6526* 6798* 6798 6799* 6799 6806* 6806 6806 atd_r 73 based bit(18) level 2 dcl 4-19 set ref 2738* 2738* 6500* 6534* avg_wsp 5 based fixed bin(17,0) level 2 dcl 6-68 set ref 2800* 5589* 5799* az 012426 constant char(26) initial unaligned dcl 3417 ref 2044 2045 2071 6856 6902 az_AZ09 012454 constant char(64) initial unaligned dcl 3227 ref 2035 2035 2067 2243 2488 b 26 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 b 0(06) 010351 automatic bit(3) array level 2 in structure "bits" packed unaligned dcl 2573 in procedure "octal" set ref 2587 2587 2587 bach_sw 000252 automatic bit(1) unaligned dcl 3230 set ref 2071 6591* 6705* 6856 bad_stroke_value constant fixed bin(17,0) initial dcl 8-133 set ref 5547* bad_width_value 012674 constant fixed bin(17,0) initial dcl 8-133 set ref 5760* before builtin function dcl 3400 ref 1647 1655 1680 2030 2997 3004 bfb based fixed bin(35,0) dcl 3231 set ref 2778* 6989* bin builtin function dcl 3400 ref 2997 2997 3004 3004 bins based fixed bin(3,0) array unsigned unaligned dcl 3039 ref 3046 3046 3046 bitname 006351 constant char(16) initial array unaligned dcl 2605 set ref 2844* bits 010351 automatic structure array level 1 packed unaligned dcl 2573 in procedure "octal" set ref 2585* bits 010654 automatic bit(3) array unaligned dcl 3038 in procedure "show_name" set ref 3045* 3046 3046 3046 bl 27(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 bl 25(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 bottom 6 000000 constant char(1) initial array level 2 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 2937 2937 2937 2937 2937 2937 2937 bottom 22(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 box 24(09) 000000 constant structure level 2 packed unaligned dcl 1-4 br 26(09) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 br 27(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 breaks 000010 internal static varying char(128) dcl 3233 set ref 1611* 1613* 1613 1614* 1788* brief_error 000224 internal static varying char(4) initial dcl 12-48 set ref 12-60* brief_message 23 000030 constant varying char(14) initial array level 2 dcl 8-10 ref 2012 15-168 15-172 bstr based structure level 1 unaligned dcl 3535 bullet constant char(1) initial unaligned dcl 2-6 ref 2349 byte builtin function dcl 3400 ref 5002 5169 5738 5740 charid 000253 automatic fixed bin(17,0) dcl 3237 set ref 5087* 5158 5743* 5744 5745* 5747 5752 5753 5753 charid_ 000254 automatic fixed bin(17,0) dcl 3238 set ref 5158* 5167 5170* 5171 5172* 5174 check_opt 000051 internal static bit(1) unaligned dcl 3239 set ref 1683* 1696* 1824 1963 circular_Device_def constant fixed bin(17,0) initial dcl 8-133 set ref 3083* cleanup 000256 stack reference condition dcl 3240 ref 1719 cleanup_r 76 based bit(18) level 2 dcl 4-19 set ref 2741* 2741* 6503* 6830* code 000264 automatic fixed bin(35,0) dcl 3241 set ref 1784* 1788* 1791 1794 1799* 1817* 1819* 1821* 1822* 1833* 1835 1835* 1837 1837* 1947* 1949* 1952* 1958* 1959* 1963* collate builtin function dcl 3400 ref 1611 1611 com_err_ 000346 constant entry external dcl 3421 ref 1629 1640 1650 1663 1675 1692 1704 1714 1727 1736 1794 1799 1837 comment_gt_8000 constant fixed bin(17,0) initial dcl 8-133 set ref 6550* comment_r 75 based bit(18) level 2 dcl 4-19 set ref 2740* 2740* 6502* 6549* comp_dvid_ct 010013 automatic fixed bin(17,0) initial dcl 3714 set ref 3714* 6365* 6365 6376 comp_dvid_new 010012 automatic bit(1) unaligned dcl 3713 set ref 6367* 6377 6381* comp_dvid_version 012650 constant fixed bin(17,0) initial dcl 3-14 set ref 1743* 2697* comp_dvt based structure level 1 dcl 4-19 set ref 6469* 6469 6792 6792 compdv_severity_ 000334 external static fixed bin(35,0) dcl 1601 set ref 1624* 1745* 1810* 2017* 2017 compstat$compconst 000422 external static structure level 1 dcl 7-14 const based structure level 1 dcl 7-23 convert builtin function dcl 3400 ref 2517 2551 6952 6964 copy builtin function dcl 3400 ref 5558 6350 count based fixed bin(17,0) level 2 in structure "media" dcl 3576 in procedure "compdv" set ref 2458 3158 4534* 4602* 4608 4608 5023 5028* 5028 5029 5030 5031 count based fixed bin(17,0) level 2 in structure "med_sel_tab" dcl 3768 in procedure "compdv" set ref 6450* 6451 6451 6452 6466 count based fixed bin(17,0) level 2 in structure "view" dcl 3596 in procedure "compdv" set ref 2410 2761* 2762 4618* 4677* 4682 4682 5211* 5211 5213 5214 6750 6769 count based fixed bin(17,0) level 2 in structure "mediachars" dcl 3559 in procedure "compdv" set ref 1890 1922 2459 2459 3159 3159 4519* 4524 4524 4603 4603 4604 4604 4605 4605 4608 4608 4987 4990 4998* 4998 4999 5000 5029 5029 5030 5030 5031 5031 5031 5068 5068 5167 5167 5171 5547 5547 5548 5548 5606 5606 5744 5752 5752 count based fixed bin(17,0) level 2 in structure "size_list" dcl 3492 in procedure "compdv" set ref 2852 3016 4805* 4838* 4844 5893* 5893 5895 5896 count based fixed bin(17,0) level 2 in structure "member" dcl 6-56 in procedure "compdv" set ref 2774* 2775 6756 6847 6847 6851* 6888 6898* 6898 6900 6901 6902 6985 7030* 7046 7051 count based fixed bin(17,0) level 2 in structure "Def" dcl 3614 in procedure "compdv" set ref 2388 4692* 4740* 4746 4746 5237* 5237 5239 5241 create parameter bit(1) unaligned dcl 2098 ref 2093 2115 2124 cright constant char(1) initial unaligned dcl 2-6 ref 2351 2937 ct based fixed bin(35,0) level 2 dcl 2671 set ref 2865* 2867* 2870 2870 cu_$arg_count 000350 constant entry external dcl 3422 ref 1622 cu_$arg_ptr 000352 constant entry external dcl 3423 ref 1636 1688 cu_$cl 000434 constant entry external dcl 12-43 ref 12-62 cv_dec_check_ 000432 constant entry external dcl 9-96 ref 11-106 daro 20 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 data_ct based fixed bin(17,0) level 2 dcl 6-92 set ref 2135 2135 2834* 2836 4795 4795 5592* 5757* 5757 5850 5850 6776 db_start 000052 internal static char(12) initial unaligned dcl 3244 set ref 3179* 4467 4528 4612 4686 4750 4799 4854 db_sw 000055 internal static bit(1) initial unaligned dcl 3245 set ref 1944 2105 2687 3185* 3189* 4467* 4469 4528* 4612* 4686* 4750* 4799* 4854* 4866 5933 5990 5998 6011 6017 6025 6033 6041 6070 6085 6093 6108 6116 6124 6139 dcl_ based structure level 1 unaligned dcl 3542 dcl_l_p 007746 automatic pointer array dcl 3540 set ref 1746* 1974 4911* dcl_name 2 based char(8) level 2 packed unaligned dcl 3542 set ref 1975 4908* 4910* dcl_p 007752 automatic pointer dcl 3541 set ref 1974* 1974* 1975 1978* 1983 4904* 4906 4907 4907 4908 4909 4909 4910* 4910 4910 4910 4910 4911* dcl_v 5 based char level 2 packed unaligned dcl 3542 set ref 4907* 4910* dclname 000270 automatic char(8) unaligned dcl 3246 set ref 4896* 4908 def_vmb 37 based fixed bin(31,0) level 2 dcl 4-19 set ref 2722* 6490* 6563* def_vmf 36 based fixed bin(31,0) level 2 dcl 4-19 set ref 2721* 6489* 6561* def_vmh 35 based fixed bin(31,0) level 2 dcl 4-19 set ref 2720* 6488* 6559* def_vmt 34 based fixed bin(31,0) level 2 dcl 4-19 set ref 2719* 6487* 6557* default_view 000272 automatic fixed bin(17,0) dcl 3247 set ref 5593* 5604* 5606 5660 5667 5819 7127* 7142 delete_$path 000354 constant entry external dcl 3424 ref 1963 delmark constant char(1) initial unaligned dcl 2-6 ref 2355 devclass based char(32) level 2 dcl 4-19 set ref 2709* 2709 2709 6482* 6570* devname 14 based char(32) level 2 packed unaligned dcl 3719 set ref 2698* 2698 2698 6379* 6578* 6737 devptr 140 based pointer level 3 dcl 7-23 set ref 2075 2076 2707* 2709 2709 2709 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2734 2734 2736 2736 2736 2738 2738 2739 2740 2740 2741 2741 2743 2743 2743 2745 2745 2745 2747 2747 2748 2750 2751 2753 2754 2756 4870 6455* 6468 6469 6469 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6534 6549 6557 6559 6561 6563 6570 6586 6611 6617 6623 6630 6637 6644 6651 6658 6665 6672 6679 6693 6700 6743 6753 6754 6757 6758 6759 6760 6761 6763 6764 6765 6766 6767 6789 6790 6792 6792 6792 6792 6830 6854 6854 6855 6855 6856 6856 6857 6857 7007 diam 21(27) 000000 constant structure level 2 packed unaligned dcl 1-4 dimension builtin function dcl 3400 in procedure "compdv" ref 15-3 15-3 dimension builtin function dcl 12-40 in procedure "PUSH" ref 12-59 12-60 12-60 divide builtin function dcl 3400 ref 1721 1870 2864 2971 2997 dname 000316 automatic char(168) unaligned dcl 3258 set ref 1657* 1671* 1709* 1714 1714 1794* 1799* 1799* done 000370 automatic bit(1) unaligned dcl 3259 set ref 5837* 5838 5842* 5847* 5848 5852* 6735* 6736 6739* 7042* 7044 7045* 7049 7050* 7061* 7065* 7070* dt_sw 000371 automatic bit(1) unaligned dcl 3260 set ref 1605* 1895 1927 1979 2048 2084 2163 2168 2180 2191 2208 2225 2231 2270 2283 2393 2415 2463 2491 2515 2549 2564 2973 3021 3064 3087 3118 3142 3166 3194* 3198* 4467* 4469* 4528* 4612* 4686* 4750* 4799* 4854* 4910 5933* 5990* 5998* 6011* 6017* 6025* 6033* 6041* 6070* 6085* 6093* 6108* 6116* 6139* dummy 6 based pointer level 2 in structure "mem" dcl 3790 in procedure "compdv" set ref 6850 dummy based bit(36) level 2 in structure "bstr" dcl 3535 in procedure "compdv" set ref 2190 dummy 20 based pointer level 2 in structure "fnt" dcl 3671 in procedure "compdv" set ref 2138 dummy based pointer level 2 in structure "dcl_" dcl 3542 in procedure "compdv" set ref 4909 dummy 66 based pointer level 2 in structure "prent" dcl 3762 in procedure "compdv" set ref 6454 dummy 26 based pointer level 2 in structure "dvid" dcl 3719 in procedure "compdv" set ref 6374 dummy 12 based pointer level 2 in structure "dvt" dcl 3753 in procedure "compdv" set ref 6446 dup_Device constant fixed bin(17,0) initial dcl 8-133 set ref 3138* dup_Media constant fixed bin(17,0) initial dcl 8-133 set ref 3162* dup_MediaChars constant fixed bin(17,0) initial dcl 8-133 set ref 4989* dup_ct 000372 automatic fixed bin(17,0) dcl 3261 set ref 2811* 2813* 2813 2817* 2820* 2823* dup_fontname constant fixed bin(17,0) initial dcl 8-133 set ref 5570* duplicate_font_name constant fixed bin(17,0) initial dcl 8-133 set ref 2079* dvc_r 74 based bit(18) level 2 dcl 4-19 set ref 2739* 6501* dvid based structure level 1 unaligned dcl 3719 dvid_ct 010014 automatic fixed bin(17,0) dcl 3716 set ref 1756* 6371 6371* 6371 dvid_p 010022 automatic pointer dcl 3718 set ref 1815* 1816 1831* 1831* 1833 1837* 1841 2692* 2692* 2693 2696 2698 2698 2698 2700 2702 2702* 2703 3076* 3076* 3077 3080 3086* 3091 3134* 3134* 3135* 3141 6373* 6374 6375* 6376 6377 6378 6379 6380 6423* 6423* 6425 6425* 6426 6577* 6577* 6578 6578* 6579 6736* 6736* 6737 6737* 6741 6742* 6780 dvidl_p 010016 automatic pointer array dcl 3717 set ref 1757* 1815 1831 2692 3076 3134 6375* 6423 6577 6736 6742 dvt based structure level 1 unaligned dcl 3753 dvt_ct 010024 automatic fixed bin(17,0) dcl 3749 set ref 1758* 3080 6380 6425 6448 6448* 6456* 6456 6578 6737 dvt_ndx 24 based fixed bin(17,0) level 2 dcl 3719 set ref 2700* 3080 3086 6380* 6425 6425* 6578 6737 dvt_p 010032 automatic pointer dcl 3752 set ref 2705* 2705* 2706 2707 2708 2742 2760 2763 2763* 2766 6444* 6446 6447* 6448 6449 6450 6451 6451 6451 6451 6452 6452 6453 6455 6462* 6462* 6463 6463* 6464 6465* 6466 6466 6466 6467 6468 6469 6751 6779 6781 7142 dvtl_p 010026 automatic pointer array dcl 3750 set ref 1759* 2705 6447* 6462 e 1 based fixed bin(35,0) array level 2 in structure "oct" dcl 2671 in procedure "outputter" set ref 2870* 2870* 2870* e 1 based structure array level 2 in structure "media" unaligned dcl 3576 in procedure "compdv" e 1 based structure array level 2 in structure "oput" packed unaligned dcl 6-92 in procedure "compdv" e 1 based structure array level 2 in structure "view" unaligned dcl 3596 in procedure "compdv" e 4 based structure array level 2 in structure "size_list" unaligned dcl 3492 in procedure "compdv" e 2 based structure array level 2 in structure "Def" unaligned dcl 3614 in procedure "compdv" e 1 based structure array level 2 in structure "mediachars" unaligned dcl 3559 in procedure "compdv" e 1 based structure array level 2 in structure "member" unaligned dcl 6-56 in procedure "compdv" set ref 7058 7059* 7059 7060* e_p parameter pointer dcl 2430 ref 2428 2435 2439 2440 2442 ename 000373 automatic char(32) unaligned dcl 3263 set ref 1655* 1657 1663 1671* 1680* 1680 1709 1714 1714 1774 1794* 1799* 1799* 1816* 1817 1827* 1829* 1833* 1837* 1963 end_of_source constant fixed bin(17,0) initial dcl 8-133 set ref 6152* endpage 120(26) based bit(9) level 3 packed unaligned dcl 4-19 set ref 6510* 6586* ercd 000404 automatic fixed bin(35,0) dcl 3265 set ref 1636* 1637 1640* 1657* 1660 1663* 1671* 1672 1675* 1688* 1689 1692* 1709* 1714* 1723* 1724 1727* 1732* 1733 1736* erring_token based structure level 1 dcl 15-143 in procedure "ERROR" erring_token based structure level 1 dcl 1999 in procedure "ERROR_" erring_token_value based char unaligned dcl 15-143 set ref 15-172* 15-172* 15-172* error_control_table 000030 constant structure array level 1 unaligned dcl 8-10 ref 15-3 15-3 error_table_$badopt 000336 external static fixed bin(35,0) dcl 3407 set ref 1704* error_table_$segnamedup 000340 external static fixed bin(35,0) dcl 3411 ref 1835 error_table_$zero_length_seg 000342 external static fixed bin(35,0) dcl 3413 ref 1784 1794 expand_pathname_$add_suffix 000356 constant entry external dcl 3426 ref 1671 fam_bach_name_expected 012416 constant fixed bin(17,0) initial dcl 8-133 set ref 6863* family 124 based structure array level 2 dcl 4-19 family_ct 123 based fixed bin(17,0) level 2 dcl 4-19 set ref 2075 2751* 2753 6468* 6468 6469 6513* 6743 6753 6792 6792 6854* 6854 6855 6856 6857 family_i 000405 automatic fixed bin(17,0) dcl 3266 set ref 2753* 2754 2756* fd12_8 automatic fixed dec(12,8) dcl 3267 ref 6952 6964 first_time 000056 internal static bit(1) initial unaligned dcl 3268 set ref 1608 1617* first_token_p 000406 automatic pointer dcl 3270 set ref 1788* 1806 fname 010210 automatic char(32) unaligned dcl 2103 set ref 2108* 2132* 2141 fnt based structure level 1 unaligned dcl 3671 fnt_p 007772 automatic pointer dcl 3670 set ref 2776* 2777 2789* 2789* 2790 2791 2792 2793 2793* 2802 4847* 4847* 4848* 4850 5568* 5570 5571 6770* 6771 6772 6774 fntl_p 007766 automatic pointer array dcl 3669 set ref 1763* 2119 2140* 2212 2789 4847 fntstk_entry based structure level 1 dcl 5-6 fnttbl_ptr 010046 automatic pointer initial dcl 6-13 set ref 6-13* font based structure level 1 unaligned dcl 6-68 set ref 5572 5572 font_count 007764 automatic fixed bin(17,0) dcl 3668 set ref 1761* 2135 2139* 2139 2142 6450 font_fam 000410 automatic char(32) unaligned dcl 3271 set ref 2030* 2031 2035 2035 2044* 2044 6255 6996 7107 font_mem 000420 automatic char(32) unaligned dcl 3272 set ref 2034* 2035 2035 2043* 2043 2045* 2045 6256 6997 7108 font_ptr 010052 automatic pointer dcl 6-67 set ref 2790* 2791 2792 2796 2797 2799 2800 2801 4849 5547 5571* 5572 5572 5584 5585 5586 5587 5588 5589 5590 5606 5773 5789 5799 5809 6771* 6772 6774 font_r 1 based bit(18) array level 3 packed unaligned dcl 6-56 set ref 2776 6770 6900* 6986* 7032* foot_fam 51 based fixed bin(17,0) level 2 dcl 4-19 set ref 2732* 6764* foot_family 100 based char(32) level 2 dcl 4-19 set ref 2743* 2743 2743 6505* 6765* 6790 foot_font_not_on_Device constant fixed bin(17,0) initial dcl 8-133 set ref 6790* foot_mem 52 based fixed bin(17,0) level 2 dcl 4-19 set ref 2733* 6766* foot_member 110 based char(32) level 2 dcl 4-19 set ref 2745* 2745 2745 6506* 6767* footfamily 000451 automatic char(32) unaligned dcl 3277 set ref 6478* 6745 6746* 6763 6765 footmember 000471 automatic char(32) unaligned dcl 3279 set ref 6479* 6747* 6763 6767 footproc 44 based varying char(68) level 2 dcl 3762 set ref 2712* 6476* 7077* 7101* 7101 footsep 3 based char(1) level 2 packed unaligned dcl 6-68 set ref 2797* 5587* 5773* get_temp_segments_ 000360 constant entry external dcl 3429 ref 1732 get_wdir_ 000362 constant entry external dcl 3431 ref 1833 1833 1837 1837 1963 1963 group2 7 based structure level 2 packed unaligned dcl 10-68 half_bottom 10 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2937 2937 2937 2937 2937 2937 2937 2937 half_top 2 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2937 2937 2937 2937 2937 2937 2937 2937 hbound builtin function dcl 3400 ref 3106 3110 hcs_$chname_file 000364 constant entry external dcl 3432 ref 1833 hcs_$initiate_count 000366 constant entry external dcl 3435 ref 1709 hcs_$terminate_noname 000370 constant entry external dcl 3438 ref 1947 held_Pthis_token 000514 automatic pointer dcl 3283 set ref 4970* 4980 hold_Pthis_token 000516 automatic pointer dcl 3285 set ref 4978* 5004 5627* 5638 5645 5879* 5887 horiz 20(18) 000000 constant structure level 2 packed unaligned dcl 1-4 hscale 000521 automatic fixed bin(31,0) dcl 3288 set ref 6480* 6518* 6651* 6672* hscales 012445 constant fixed bin(31,0) initial array dcl 3289 ref 1779 3004 3004 5934 6518 i 011054 automatic fixed bin(17,0) dcl 13-33 in procedure "LEX" set ref 13-39* 13-42 13-45* i 010316 automatic fixed bin(17,0) dcl 2454 in procedure "medianame" set ref 2458* 2459 2462* i 010644 automatic fixed bin(17,0) dcl 3014 in procedure "sizename" set ref 3016* 3017 3020* i 010166 automatic fixed bin(17,0) dcl 2060 in procedure "fam_bach" set ref 2075* 2076* i 010360 automatic fixed bin(17,0) dcl 2668 in procedure "outputter" set ref 2812* 2813 2819* 2836* 2837 2844 2844 2844 2844 2844 2844* 2852* 2853 2854* i 000522 automatic fixed bin(17,0) dcl 3293 in procedure "compdv" set ref 2388* 2389 2392* 2410* 2411 2414* 3158* 3159* 4987* 4988 4990* 4993* 4994 4996 5001 5001 5171* 5172 5172* 5332* 5333 5339 5727* 5728 5729 5735* 5736* 5859* 5881 6750* 6751* 6753* 6754 6757 6758 6763 6764* 6985* 6986 6987 6988 6989* 7046* 7051* 7057 7057 7058 7059 7059 7060 i 010226 automatic fixed bin(17,0) dcl 2161 in procedure "find_str" set ref 2174* 2175 2180* 2188* 2189 2191* 2193 i 010624 automatic fixed bin(17,0) dcl 2962 in procedure "part" set ref 2967* 2968 2971* 2971 2972 i 010132 automatic fixed bin(17,0) dcl 1884 in procedure "charlist" set ref 1890* 1891 1894* i 010700 automatic fixed bin(17,0) dcl 3101 in procedure "unitkey" set ref 3106* 3106* 3110 3117 i 010142 automatic fixed bin(17,0) dcl 1915 in procedure "charname" set ref 1922* 1923 1926* idx 010410 automatic fixed bin(17,0) dcl 2887 set ref 2894* 2895 2895 2895 2895* ignored_breaks 000057 internal static varying char(128) dcl 3294 set ref 1611* 1614* 1788* ii 000523 automatic fixed bin(17,0) dcl 3296 set ref 5736* 5738 5740 5756 5757 5758 5759 5760 5760 5760 6756* 6757 6760 6763 6766 6770* iii 000524 automatic fixed bin(17,0) dcl 3297 set ref 6301* 6307 6329* 6776* 6777* index builtin function dcl 3400 ref 2040 2250 2486 2512 2546 2967 4993 5719 5727 init_fam 47 based fixed bin(17,0) level 2 dcl 4-19 set ref 2730* 6758* init_family 53 based char(32) level 2 dcl 4-19 set ref 2734* 2734 2734 6498* 6759* 6789 init_font_not_on_Device constant fixed bin(17,0) initial dcl 8-133 set ref 6789* init_mem 50 based fixed bin(17,0) level 2 dcl 4-19 set ref 2731* 6760* init_member 63 based char(32) level 2 dcl 4-19 set ref 2736* 2736 2736 6499* 6761* init_ps 43 based fixed bin(31,0) level 2 dcl 4-19 set ref 2726* 6494* 7007* initfamily 000525 automatic char(32) unaligned dcl 3298 set ref 6477* 6744 6746 6757 6759 6996* initmember 000535 automatic char(32) unaligned dcl 3299 set ref 6477* 6747 6757 6761 6997* input_bitcount 000546 automatic fixed bin(24,0) dcl 3301 set ref 1709* 1721 input_charcount 000547 automatic fixed bin(24,0) dcl 3302 set ref 1721* 1781 1788* input_ptr 000550 automatic pointer dcl 3307 set ref 1709* 1711 1788* 1947* interleave 120 based bit(1) level 3 packed unaligned dcl 4-19 set ref 6507* 6611* inv_Font_SELF_ref 012414 constant fixed bin(17,0) initial dcl 8-133 set ref 5748* inv_MediaChar_SELF_ref constant fixed bin(17,0) initial dcl 8-133 set ref 4995* inv_MediaChar_range 012413 constant fixed bin(17,0) initial dcl 8-133 set ref 4983* inv_Media_range constant fixed bin(17,0) initial dcl 8-133 set ref 5160* 5175* inv_Mul_char_spec 012412 constant fixed bin(17,0) initial dcl 8-133 set ref 5304* inv_Multics_char_range constant fixed bin(17,0) initial dcl 8-133 set ref 4984* 5334* inv_Units_keyword 012411 constant fixed bin(17,0) initial dcl 8-133 set ref 3113* inv_artwork_spec 012415 constant fixed bin(17,0) initial dcl 8-133 set ref 5316* inv_statement constant fixed bin(17,0) initial dcl 8-133 set ref 6188* ioa_ 000424 constant entry external dcl 7-70 ref 1743 1944 2105 2168 2180 2191 2687 4469 4866 4878 4887 4890 4910 5933 5990 5998 6011 6017 6025 6033 6041 6070 6085 6093 6108 6116 6124 6139 ioa_$ioa_switch 000372 constant entry external dcl 3440 ref 2676 ioa_$nnl 000426 constant entry external dcl 7-70 ref 1856 1857 1895 1927 1979 2048 2084 2163 2208 2252 2374 2393 2415 2463 2491 2515 2549 2589 2973 3021 3064 3087 3118 3142 3166 iox_$attach_name 000374 constant entry external dcl 3442 ref 1817 iox_$close 000376 constant entry external dcl 3444 ref 1821 1958 iox_$detach_iocb 000400 constant entry external dcl 3445 ref 1822 1959 iox_$error_output 000440 external static pointer dcl 12-43 set ref 12-63* iox_$open 000402 constant entry external dcl 3447 ref 1819 iox_$put_chars 000436 constant entry external dcl 12-43 ref 12-63 j 010361 automatic fixed bin(17,0) dcl 2668 in procedure "outputter" set ref 2856* 2857* 2862* 2863 2865* j 000553 automatic fixed bin(17,0) dcl 3309 in procedure "compdv" set ref 5338* 5339 5340* 5340 5342 5719* 5720 5722 5724 5725* 5725 5726 5727 5728* 5729* 5729 5739* 5740* 6777* 6778 6779 6780 6781 jj 000554 automatic fixed bin(17,0) dcl 3310 set ref 5734* 5744* 5745 5745* 5749* 5752* 5753 5756 jjj 010364 automatic fixed bin(17,0) dcl 2670 set ref 2869* 2870 2870 2870 2870 2870* justifying 120(01) based bit(1) level 3 packed unaligned dcl 4-19 set ref 6508* 6617* l 25 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 l 27 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 l_p parameter pointer array dcl 2430 set ref 2428 2435 2435* 2439 2440* laro 21(09) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 lcirc 23(09) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 ldt_sw 010244 automatic bit(1) unaligned dcl 2241 in procedure "ident" set ref 2225* 2231* 2239* 2252 ldt_sw 010257 automatic bit(1) unaligned dcl 2267 in procedure "input" set ref 2270* 2276* 2283* 2374 ldt_sw 010350 automatic bit(1) unaligned dcl 2572 in procedure "octal" set ref 2564* 2570* 2589 leng 4 based fixed bin(17,0) level 2 in structure "dcl_" dcl 3542 in procedure "compdv" set ref 1978 4906* 4907 4909 4910 4910 leng based fixed bin(17,0) level 2 in structure "bstr" dcl 3535 in procedure "compdv" set ref 2176 2176 2186* 2187 2190 2864 5545 6338 length builtin function dcl 3400 in procedure "compdv" ref 1647 1886 2165 2176 2176 2186 2698 2698 2709 2709 2734 2734 2736 2736 2743 2743 2745 2745 2782 2782 4906 5722 5726 5728 6550 6550 length builtin function dcl 12-40 in procedure "PUSH" ref 12-63 12-63 lettersp 44 based fixed bin(31,0) level 2 dcl 4-19 set ref 2727* 6495* 6623* lex_ctl_chars 000120 internal static varying char(128) dcl 3313 set ref 1614* 1788* lex_delims 000161 internal static varying char(128) dcl 3315 set ref 1614* 1788* lex_error_ 000430 constant entry external dcl 2004 in procedure "ERROR_" ref 2012 lex_error_ 000444 constant entry external dcl 15-150 in procedure "ERROR" ref 15-168 15-172 lex_error_ 000442 constant entry external dcl 12-43 in procedure "PUSH" ref 12-60 lex_string_$init_lex_delims 000404 constant entry external dcl 3448 ref 1614 lex_string_$lex 000406 constant entry external dcl 3452 ref 1788 lex_temp_ptr 000560 automatic pointer initial dcl 3317 set ref 1723* 1788* 1949 1949* 3317* like_table 000562 automatic fixed bin(17,0) dcl 3319 set ref 6368* 6413* 6425 6463 line 20(27) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2937 list_ndx 000563 automatic fixed bin(17,0) dcl 3320 set ref 1886 1888 1895* 1897* 1897 5519* list_opt 000564 automatic bit(1) unaligned dcl 3321 set ref 1683* 1699* 1827 long_error 000226 internal static varying char(234) initial dcl 12-48 set ref 12-60* loz 26(18) 000000 constant structure level 2 packed unaligned dcl 1-4 lquote constant char(1) initial unaligned dcl 2-6 ref 2341 lslnt 22(27) 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 2937 lslnt constant char(1) initial unaligned dcl 2-6 in procedure "compdv" ref 2345 lvert 22 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2937 max builtin function dcl 3400 in procedure "compdv" ref 2017 max builtin function dcl 15-148 in procedure "ERROR" ref 15-154 max builtin function dcl 9-92 in procedure "SEMANTIC_ANALYSIS" ref 12-27 4891 5757 max_files 46 based fixed bin(17,0) level 2 dcl 4-19 set ref 2729* 6497* 6630* max_pages 45 based fixed bin(17,0) level 2 dcl 4-19 set ref 2728* 6496* 6637* max_wsp 6 based fixed bin(17,0) level 2 dcl 6-68 set ref 2801* 5590* 5809* mbz 120(02) based bit(24) level 3 packed unaligned dcl 4-19 set ref 6509* med_sel 6 based pointer level 2 dcl 3753 set ref 2763 2763 6449* 6450 6451 6451 6451 6451 6452 6452 6466 6466 6466 6751 6779 6781 7142 med_sel_i 000643 automatic fixed bin(17,0) dcl 3340 set ref 2762* 2763 2763 2763* med_sel_tab based structure level 1 dcl 3768 set ref 6451 6451 6466* 6466 media based structure level 1 unaligned dcl 3576 in procedure "compdv" set ref 4608 4608 media 11 based fixed bin(17,0) array level 3 in structure "view" dcl 3596 in procedure "compdv" set ref 4679* 5214* 5547 5548 5606 5752 media1 000572 automatic char(32) unaligned dcl 3331 set ref 4922* 4927* 4982 4983 4984 4986 4988 4995 4996 4999 5002* 5002 5089* 5157 5733* 5738* 5745 media2 000602 automatic char(32) unaligned dcl 3332 set ref 1888* 1891 1901* 1901* 1917* 1919* 1923 4922* 4927* 4961* 4982 4983 4984 4986 5089 5160 5161 5164 5168 5176 5179 media_ 000615 automatic char(32) unaligned dcl 3336 set ref 5157* 5160 5161 5164* 5168 5169* 5169 5172 5176* 5179* media_i 000625 automatic fixed bin(17,0) dcl 3337 set ref 5058* 5066 5068 5074* 5074 5090* 5162 5167 5189* 5189 media_p 007756 automatic pointer dcl 3575 set ref 1752* 2458 2459 3158 3159 4532* 4534 4602 4603 4604 4605 4608* 4608 4608 4608 4608 5023 5028 5028 5029 5029 5030 5030 5031 5031 5068 5167 5547 5548 5606 5752 mediabase 000612 automatic fixed bin(17,0) dcl 3333 set ref 5023* 5068 5167 mediachars based structure level 1 unaligned dcl 3559 set ref 4524 4524 mediachars_p 007754 automatic pointer dcl 3558 set ref 1751* 1890 1891 1922 1923 2459 2459 3159 3159 4477* 4518* 4519 4520 4521 4524* 4524 4524 4524 4524 4603 4603 4604 4604 4605 4605 4608 4608 4987 4988 4990 4998 4998 4999 4999 5000 5000 5029 5029 5030 5030 5031 5031 5031 5068 5068 5167 5167 5171 5172 5543 5547 5547 5548 5548 5549 5549 5606 5606 5744 5745 5752 5752 5753 5753 mediact 000613 automatic fixed bin(17,0) dcl 3334 set ref 5021* 5026* 5026 5066 5162 mediawidth 000614 automatic fixed bin(17,0) dcl 3335 set ref 2810* 2813 2817 2817* 2819* 2823 2823* 5091* 5151* 5159 5167 5367* 5407* 5465* 5471* 5756 medsel_table_r 77 based bit(18) level 2 dcl 4-19 set ref 6504* mem based structure level 1 unaligned dcl 3790 set ref 7068 7068 mem_ct 010042 automatic fixed bin(17,0) initial dcl 3787 set ref 3787* 6849 6849* mem_i 000642 automatic fixed bin(17,0) dcl 3339 set ref 2775* 2776 2778 2780 2780 2782 2782 2782* mem_p 010044 automatic pointer dcl 3789 set ref 2754* 2755 2768* 2768* 2769 2769 2772 2773* 2786 6754* 6755 6846* 6847* 6848* 6849 6849 6850 6850 6855 7066* 7066* 7067 7067 7068 7069* 7073 member based structure level 1 unaligned dcl 6-56 set ref 6847 6847 member_hold 000626 automatic structure level 1 unaligned dcl 3338 set ref 7058* 7060 member_ptr 010050 automatic pointer dcl 6-55 set ref 1762* 2772* 2774 2775 2776 2778 2780 2780 2782 2782 2782 6755* 6756 6757 6763 6770 6846 6847 6847 6847 6847 6847 6850* 6851 6888 6898 6898 6900 6900 6901 6901 6902 6902 6985 6986 6987 6988 6989 7030 7032 7033 7034 7035 7036 7046 7051 7057 7057 7058 7059 7059 7060 member_r 124 based bit(18) array level 3 dcl 4-19 set ref 2754 6754 6855* meml_p 010036 automatic pointer array dcl 3786 set ref 1764* 2768 6848* 7064 7066 7066 message 1 000030 constant varying char(66) initial array level 2 dcl 8-10 ref 2012 15-168 15-172 middle 4 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2937 2937 2937 2937 2937 2937 2937 2937 min_WS 30 based fixed bin(31,0) level 2 dcl 4-19 set ref 2715* 6483* 6672* min_lead 31 based fixed bin(31,0) level 2 dcl 4-19 set ref 2716* 6484* 6665* min_wsp 4 based fixed bin(17,0) level 2 dcl 6-68 set ref 2799* 4849 5588* 5789* missing_Font constant fixed bin(17,0) initial dcl 8-133 set ref 4790* missing_Media 012410 constant fixed bin(17,0) initial dcl 8-133 set ref 4600* missing_MediaChars 012407 constant fixed bin(17,0) initial dcl 8-133 set ref 4517* missing_Size constant fixed bin(17,0) initial dcl 8-133 set ref 4836* missing_View constant fixed bin(17,0) initial dcl 8-133 set ref 4675* missing_font constant fixed bin(17,0) initial dcl 8-133 set ref 7001* missing_semicolon 012406 constant fixed bin(17,0) initial dcl 8-133 set ref 5875* 7024* missing_width constant fixed bin(17,0) initial dcl 8-133 set ref 5477* modmark constant char(1) initial unaligned dcl 2-6 ref 2353 multiply constant char(1) initial unaligned dcl 2-6 ref 2357 mw 000651 automatic fixed bin(17,0) dcl 3348 set ref 5548* 5549 5550 n parameter fixed bin(17,0) dcl 13-33 ref 13-31 13-38 13-39 13-42 13-45 nabla constant char(1) initial unaligned dcl 2-6 ref 2359 name 2 based char(32) array level 3 in structure "Def" packed unaligned dcl 3614 in procedure "compdv" set ref 2389 4742* 5239* name parameter char unaligned dcl 4885 in procedure "push" set ref 4884 4886 4887* name 5 based char(32) array level 3 in structure "member" packed unaligned dcl 6-56 in procedure "compdv" set ref 2782* 2782 2782 6757 6763 6902* 7036* 7057 7057 name 1 based char(32) array level 3 in structure "mediachars" packed unaligned dcl 3559 in procedure "compdv" set ref 1891 1923 4520* 4988 4999* 5172 5549* 5549* 5745 5753* 5753* name 1 based char(32) array level 3 in structure "view" packed unaligned dcl 3596 in procedure "compdv" set ref 2411 4678* 5213* 5549* 5753* 6780* name 2 based char(32) level 2 in structure "fnt" packed unaligned dcl 3671 in procedure "compdv" set ref 2120 2141* 2793* name 1 based char(32) array level 3 in structure "media" packed unaligned dcl 3576 in procedure "compdv" set ref 2459 3159 4603* 5029* name 4 based char(32) array level 3 in structure "size_list" packed unaligned dcl 3492 in procedure "compdv" set ref 3017 4839* 5895* name 125 based char(32) array level 3 in structure "comp_dvt" dcl 4-19 in procedure "compdv" set ref 2076 2756* 6757 6763 6856* 6857* name 010167 automatic char(32) unaligned dcl 2061 in procedure "fam_bach" set ref 2071* 2073* 2076 nargs 000652 automatic fixed bin(17,0) dcl 3349 set ref 1622* 1626 1685 ndx 2 based fixed bin(17,0) level 2 in structure "dvt" dcl 3753 in procedure "compdv" set ref 2708* 2742* 2760* 6448* 6463 ndx 2 based fixed bin(17,0) level 2 in structure "dvid" dcl 3719 in procedure "compdv" set ref 2696* 2702* 6376* new_family 000653 automatic bit(1) unaligned dcl 3350 set ref 6840* 6844 6852* new_member 000654 automatic fixed bin(17,0) dcl 3351 set ref 6888* 6985 7030* next based pointer level 2 in structure "dcl_" dcl 3542 in procedure "compdv" ref 1983 next based pointer dcl 2433 in procedure "link" set ref 2439* 2442* next based pointer level 2 in structure "dvt" dcl 3753 in procedure "compdv" ref 2766 6464 next based pointer level 2 in structure "mem" dcl 3790 in procedure "compdv" ref 2786 7073 next based pointer level 2 in structure "opu" dcl 3693 in procedure "compdv" ref 2850 5855 next based pointer level 2 in structure "dvid" dcl 3719 in procedure "compdv" ref 1841 2703 3091 3141 6426 6579 6741 next based pointer level 2 in structure "fnt" dcl 3671 in procedure "compdv" ref 2122 2802 4850 next based pointer level 2 in structure "uni" dcl 3683 in procedure "compdv" ref 2826 5845 next_str_p 000656 automatic pointer dcl 3353 set ref 1747* 2185 2190* 5543 no_Device constant fixed bin(17,0) initial dcl 8-133 set ref 4870* no_Size_name 012400 constant fixed bin(17,0) initial dcl 8-133 set ref 5902* no_devname 012405 constant fixed bin(17,0) initial dcl 8-133 set ref 6738* no_fontname 012404 constant fixed bin(17,0) initial dcl 8-133 set ref 6928* no_fonts_selected constant fixed bin(17,0) initial dcl 8-133 set ref 6743* no_init_font 012403 constant fixed bin(17,0) initial dcl 8-133 set ref 6744* no_init_ps constant fixed bin(17,0) initial dcl 8-133 set ref 7013* no_name_Def 012402 constant fixed bin(17,0) initial dcl 8-133 set ref 5246* no_prior_width 012401 constant fixed bin(17,0) initial dcl 8-133 set ref 5159* no_test_width 012376 constant fixed bin(17,0) initial dcl 8-133 set ref 5441* no_viewselect 012524 constant fixed bin(17,0) initial dcl 8-133 set ref 6780* no_width_specified 012522 constant fixed bin(17,0) initial dcl 8-133 set ref 5549* 5753* no_wordspace_val 012377 constant fixed bin(17,0) initial dcl 8-133 set ref 4849* node 14 based pointer level 2 dcl 3671 set ref 2143* 4848 non_restart_error 000322 internal static char(33) initial unaligned dcl 12-48 set ref 12-63 12-63 12-63 12-63 not_Defname 012374 constant fixed bin(17,0) initial dcl 8-133 set ref 5865* not_charname 012375 constant fixed bin(17,0) initial dcl 8-133 set ref 1901* 5393* 5423* not_valid_Font_name 012373 constant fixed bin(17,0) initial dcl 8-133 set ref 2130* 5598* not_viewname 012372 constant fixed bin(17,0) initial dcl 8-133 set ref 5611* null builtin function dcl 15-148 in procedure "ERROR" ref 15-161 15-161 15-166 15-168 null builtin function dcl 3400 in procedure "compdv" ref 1657 1657 1711 1746 1748 1751 1752 1753 1754 1757 1759 1762 1763 1764 1765 1766 1788 1788 1817 1817 1831 3212 3317 3385 3398 3470 3470 3470 3470 6-13 1949 1952 1955 1960 1974 2010 2012 2012 2117 2119 2124 2144 2205 2435 2442 2692 2705 2768 2789 2804 2828 3076 3134 13-37 13-39 13-42 13-45 14-23 14-25 14-28 14-37 14-42 14-42 14-42 14-50 14-53 14-58 14-62 14-62 14-65 14-65 14-68 14-70 null builtin function dcl 16-21 in procedure "NEXT_STMT" ref 16-27 16-35 null builtin function dcl 9-92 in procedure "SEMANTIC_ANALYSIS" ref 11-64 11-73 11-79 11-86 4743 4847 4870 5570 5625 6423 6460 6462 6462 6577 6736 6846 null builtin function dcl 12-40 in procedure "PUSH" ref 12-60 12-60 12-60 12-60 nulwidth 053052 constant fixed bin(17,0) initial dcl 3354 ref 2817 2823 2844 5031 5091 5159 5406 5456 5549 5753 5760 o777 053051 constant char(1) initial unaligned dcl 3355 ref 4993 5001 5507 5719 5727 6323 o_s 010365 automatic fixed bin(17,0) dcl 2674 set ref 2864* 2869 oct based structure level 1 unaligned dcl 2671 oct_p 010362 automatic pointer dcl 2669 set ref 2863* 2864 2865 2867 2867 2867 2867 2867 2870 2870 2870 2870 2870 one 14 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2937 2937 2937 2937 2937 2937 2937 2937 2937 2937 2937 2937 2937 open_mode 121 based fixed bin(35,0) level 2 dcl 4-19 set ref 2748 6511* 6693* opu based structure level 1 unaligned dcl 3693 set ref 5580 5580 opu_p 010010 automatic pointer dcl 3692 set ref 2792* 2794 2828* 2828* 2829 2829 2832 2833* 2850 5579* 5580 5580 5581* 5582 5582 5583 5585 5848* 5848* 5849 5849 5850 5851* 5855 6774* 6775 opul_p 010004 automatic pointer array dcl 3691 set ref 1766* 2828 5581* 5846 5848 5848 oput based structure level 1 unaligned dcl 6-92 set ref 2135 2135 4795 4795 5850 5850 oput_p 010056 automatic pointer dcl 6-91 set ref 2135* 2135 2135 2135 2135 2833* 2834 2836 2837 2844 2844 2844 4795* 4795 4795 4795 4795 5583* 5592 5757 5757 5758 5759 5850 5850 6775* 6776 6777 oput_r based bit(18) level 2 dcl 6-68 set ref 2792 5585* 6774 other_part 12 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2937 2937 2937 2937 2937 2937 2937 2937 out 010366 automatic entry variable dcl 2675 set ref 2676* 2690 2696 2697 2698 2700 2702 2708 2709 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2736 2738 2739 2740 2741 2742 2743 2745 2747 2748 2750 2751 2755 2756 2760 2761 2763 2773 2774 2777 2778 2780 2782 2788 2793 2794 2795 2796 2797 2798 2799 2800 2801 2808 2817 2823 2832 2834 2841 2844 2854 2855 2857 2861 2865 2867 2870 2876 out_r 11 based bit(18) array level 3 dcl 3559 set ref 4521* 5000* 5543 outproc based varying char(68) level 2 dcl 3762 set ref 2711* 6473* 6686* 6812* 6812 paren_equal_expected 012371 constant fixed bin(17,0) initial dcl 8-133 set ref 5460* parenct 000714 automatic fixed bin(17,0) dcl 3361 set ref 6301* 6331* 6331 6352* 6352 part_nest 002723 automatic fixed bin(17,0) dcl 3367 set ref 5397* 5446* 5491* 5491 5493 5494 5497 5507 5507 5523* 5523 5545 5545 5550 5550 5558 5558 5558 5558 5559 5559 5559 5559 5957* 6301* 6305* 6305 6307 6308 6311 6311 6317 6317 6323 6323 6338 6338 6350 6350 6350 6350 6351* 6351 part_repl 000715 automatic fixed bin(17,0) array dcl 3363 set ref 5497* 5558 5559 6307* 6350 part_str 000727 automatic varying char(400) array dcl 3364 set ref 4906 4907 4981 5404 5455 5493* 5507* 5507 5545* 5545 5558* 5558 5558 6308* 6311* 6311 6317* 6317 6323* 6323 6338* 6338 6350* 6350 6350 part_token 010625 automatic char(4) unaligned dcl 2963 set ref 2965* 2967 part_width 002711 automatic fixed bin(17,0) array dcl 3366 set ref 5407 5494* 5550* 5550 5559* 5559 5559 pathname_ 000410 constant entry external dcl 3457 ref 1799 1799 pdl_max 41 based fixed bin(31,0) level 2 dcl 4-19 set ref 2724* 6492* 6644* pdw_max 40 based fixed bin(31,0) level 2 dcl 4-19 set ref 2723* 6491* 6651* pi 24 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 pic 010422 automatic picture(5) unaligned dcl 2911 set ref 2919* 2920 pl_mi constant char(1) initial unaligned dcl 2-6 ref 2361 prent 4 based pointer level 2 in structure "dvt" dcl 3753 in procedure "compdv" set ref 2706 6453* 6467 prent based structure level 1 unaligned dcl 3762 in procedure "compdv" set ref 6467* 6467 prent_p 010034 automatic pointer dcl 3761 set ref 2706* 2711 2712 2713 6453* 6454 6467 6473 6475 6476 6526 6686 6798 6798 6799 6799 6806 6806 6806 6812 6812 7077 7101 7101 pt 14 based pointer array level 3 in structure "size_list" dcl 3492 in procedure "compdv" set ref 2853 4840* 5896* pt 12 based pointer array level 3 in structure "Def" dcl 3614 in procedure "compdv" set ref 4743* 5241* 5881 pt 16 based pointer level 2 in structure "fnt" dcl 3671 in procedure "compdv" set ref 2144* 2790 2791 2792 5570 5571* 6771 6772 6774 ptr 000422 external static pointer level 2 in structure "compstat$compconst" dcl 7-14 in procedure "compdv" set ref 1604* 1604 2075 2076 2707 2709 2709 2709 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2734 2734 2736 2736 2736 2738 2738 2739 2740 2740 2741 2741 2743 2743 2743 2745 2745 2745 2747 2747 2748 2750 2751 2753 2754 2756 4870 6455 6468 6469 6469 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6534 6549 6557 6559 6561 6563 6570 6586 6611 6617 6623 6630 6637 6644 6651 6658 6665 6672 6679 6693 6700 6743 6753 6754 6757 6758 6759 6760 6761 6763 6764 6765 6766 6767 6789 6790 6792 6792 6792 6792 6830 6854 6854 6855 6855 6856 6856 6857 6857 7007 ptr builtin function dcl 3400 in procedure "compdv" ref 1747 2754 2776 2791 2792 5543 6754 6770 6772 6774 ptrs 126 based structure level 2 dcl 7-23 quoted_string 11(01) based bit(1) level 4 packed unaligned dcl 10-68 ref 2026 2063 2109 2243 2363 11-92 11-104 11-113 11-118 11-124 r 27(09) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 r 25(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 rank builtin function dcl 3400 ref 2895 2895 2895 2895 5002 5169 5295 5312 5332 raro 21(18) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 rcirc 23(18) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 real 3 based bit(1) level 2 dcl 3719 set ref 2693 6377* recleng 122 based fixed bin(17,0) level 2 dcl 4-19 set ref 2750* 6512* 6700* ref 10 based pointer level 2 dcl 3753 set ref 2707 6455* 6468 6469 ref_p 2 based pointer level 2 in structure "opu" dcl 3693 in procedure "compdv" set ref 2833 5583* 5850 5850 6775 ref_p 2 based pointer level 2 in structure "uni" dcl 3683 in procedure "compdv" set ref 2809 5577* 5840 5840 6773 ref_p 2 based pointer level 2 in structure "mem" dcl 3790 in procedure "compdv" set ref 2772 6755 6850* 7068 7068 ref_r 1 based bit(18) array level 2 dcl 3768 set ref 2763* 2763* 6452* 6751 6779 6781* 7142* refname 4 based char(32) level 2 packed unaligned dcl 3719 set ref 1816 1833 1837* 2702* 3077 3135 6378* 6780* refno 12 based fixed bin(17,0) level 2 in structure "fnt" dcl 3671 in procedure "compdv" set ref 2142* 2777* 2793* refno 5 based fixed bin(17,0) level 2 in structure "uni" dcl 3683 in procedure "compdv" set ref 2795* 2805 5576* 5839 5841* refno 5 based fixed bin(17,0) level 2 in structure "opu" dcl 3693 in procedure "compdv" set ref 2794* 2829 5582* 5849 5851* refno 5 based fixed bin(17,0) level 2 in structure "mem" dcl 3790 in procedure "compdv" set ref 2755* 2769 6849* 7067 7069* rel builtin function dcl 3400 ref 1769 1771 2867 2867 2867 2867 2916 5000 5584 5585 5720 5742 5950 5970 6291 6534 6549 6830 6855 6983 6986 7142 rel_units 11 based fixed bin(17,0) array level 3 in structure "media" dcl 3576 in procedure "compdv" set ref 4604* 5030* 5068* 5547 5606 rel_units 2 based fixed bin(17,0) level 2 in structure "font" dcl 6-68 in procedure "compdv" set ref 2796* 5547 5586* 5606* release_temp_segments_ 000412 constant entry external dcl 3458 ref 1952 rquote constant char(1) initial unaligned dcl 2-6 ref 2339 rslnt 23 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 rtrim builtin function dcl 3400 ref 1650 1650 1657 1663 1675 1675 1709 1714 1714 1714 1714 1774 1816 1817 1833 1963 2043 5164 5176 5179 rvert 22(09) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2937 search builtin function dcl 9-92 in procedure "SEMANTIC_ANALYSIS" ref 11-92 search builtin function dcl 3400 in procedure "compdv" ref 1644 2035 2035 2067 search_paths_$find_dir 000414 constant entry external dcl 3460 ref 1657 self_ct 002726 automatic fixed bin(17,0) dcl 3373 set ref 5367* 5717* 5723* 5723 5724 5737 5739 5756 self_i 002727 automatic fixed bin(17,0) array dcl 3374 set ref 5724* 5740 seqno 4 based fixed bin(17,0) level 2 in structure "opu" dcl 3693 in procedure "compdv" set ref 2829 2832* 5582* 5849 5851 seqno 4 based fixed bin(17,0) level 2 in structure "uni" dcl 3683 in procedure "compdv" set ref 2805 2808* 5576* 5839 5841 seqno 4 based fixed bin(17,0) level 2 in structure "mem" dcl 3790 in procedure "compdv" set ref 2769 2773* 6849* 7067 7069 severity 000030 constant fixed bin(17,0) initial array level 2 packed unaligned dcl 8-10 ref 2012 2017 15-153 15-154 15-168 15-172 size builtin function dcl 3400 ref 2135 2135 4524 4524 4608 4608 4682 4682 4746 4746 4795 4795 5572 5572 5574 5574 5578 5578 5580 5580 5916 5916 6451 6451 6792 6792 6847 6847 size_list based structure level 1 unaligned dcl 3492 size_list_p 007742 automatic pointer dcl 3491 set ref 1748* 2852 2853 3016 3017 4803* 4805 4806 4838 4839 4840 4840 4844 5893 5893 5895 5895 5896 5896 size_r 2 based bit(18) array level 3 dcl 6-56 set ref 2778 6901* 6989 7033* sizel based structure level 1 unaligned dcl 6-103 set ref 5916 5916 sizel_p 010060 automatic pointer dcl 6-102 set ref 2853* 2855 2856 2857 4806* 5896 5897 5910 5910 5911 5911 5916* 5916 5916 5916 5916 5916* skip_ct 002750 automatic fixed bin(17,0) dcl 3376 set ref 2835* 2837* 2837 2841 2841* 2843* start 20(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 start 770 based pointer level 2 in structure "size_list" dcl 3492 in procedure "compdv" set ref 4806 4840 stmt based structure level 1 dcl 10-40 stmt_out_of_place constant fixed bin(17,0) initial dcl 8-133 set ref 6194* str parameter char unaligned dcl 3036 in procedure "show_name" ref 3033 3041 3041 3043 3043 3043 3045 str 010411 automatic char(4) dcl 2888 in procedure "fmt_str_cmt" set ref 2890* 2891* 2895 2895 2895 2895* 2901 str 1 based char level 2 in structure "bstr" packed unaligned dcl 3535 in procedure "compdv" set ref 2176 2176 2187* 5545 6338 str_p 007744 automatic pointer dcl 3534 set ref 1978* 2175* 2176 2176 2176 2176 2182 2185* 2186 2187 2187 2189 2190 2190 5543* 5545 5545 6338 6338 string builtin function dcl 3400 set ref 2585* 2747 2747 3045* string_area_p defined pointer dcl 3485 ref 1747 string_l 002752 automatic fixed bin(17,0) initial array dcl 3377 set ref 2165 2174 2188 2188* 2862 3377* 3377* strl_p based pointer array dcl 3483 set ref 2170 2175 2189* 2193 2863 2916 2919 substr builtin function dcl 3400 in procedure "compdv" set ref 1611 1611 1888 2250 2479 2486 2488 2504 2509 2891* 2895 2895 2895 2895* 2997 3041 3043 3043 3043 3045 3046 3046 3046 substr builtin function dcl 9-92 in procedure "SEMANTIC_ANALYSIS" set ref 11-92 11-126 4983 4983 4995 4996* 4996 5001* 5002* 5002 5169* 5169 5727 5738* 5740* sup0 constant char(1) initial unaligned dcl 2-6 ref 2319 sup1 constant char(1) initial unaligned dcl 2-6 ref 2321 sup2 constant char(1) initial unaligned dcl 2-6 ref 2323 sup3 constant char(1) initial unaligned dcl 2-6 ref 2325 sup4 constant char(1) initial unaligned dcl 2-6 ref 2327 sup5 constant char(1) initial unaligned dcl 2-6 ref 2329 sup6 constant char(1) initial unaligned dcl 2-6 ref 2331 sup7 constant char(1) initial unaligned dcl 2-6 ref 2333 sup8 constant char(1) initial unaligned dcl 2-6 ref 2335 sup9 constant char(1) initial unaligned dcl 2-6 ref 2337 sws 120 based structure level 2 packed unaligned dcl 4-19 set ref 2747 2747 syntax_Cleanup 012370 constant fixed bin(17,0) initial dcl 8-133 set ref 6295* syntax_Device constant fixed bin(17,0) initial dcl 8-133 set ref 6386* syntax_Font 012367 constant fixed bin(17,0) initial dcl 8-133 set ref 5621* syntax_Font_sec 012366 constant fixed bin(17,0) initial dcl 8-133 set ref 5649* syntax_Footproc 012365 constant fixed bin(17,0) initial dcl 8-133 set ref 6236* 6264* syntax_Footrefsep constant fixed bin(17,0) initial dcl 8-133 set ref 6219* syntax_MediaChars constant fixed bin(17,0) initial dcl 8-133 set ref 4933* syntax_Media_sec 012364 constant fixed bin(17,0) initial dcl 8-133 set ref 5036* syntax_Outproc 012363 constant fixed bin(17,0) initial dcl 8-133 set ref 6283* syntax_Scale 012362 constant fixed bin(17,0) initial dcl 8-133 set ref 6978* syntax_Size 012361 constant fixed bin(17,0) initial dcl 8-133 set ref 5925* syntax_View 012360 constant fixed bin(17,0) initial dcl 8-133 set ref 5205* syntax_Wordspace constant fixed bin(17,0) initial dcl 8-133 set ref 5643* syntax_after_colon 012357 constant fixed bin(17,0) initial dcl 8-133 set ref 5348* syntax_cleanup 012356 constant fixed bin(17,0) initial dcl 8-133 set ref 6834* syntax_dcl 012355 constant fixed bin(17,0) initial dcl 8-133 set ref 4916* syntax_family constant fixed bin(17,0) initial dcl 8-133 set ref 6882* syntax_footproc constant fixed bin(17,0) initial dcl 8-133 set ref 7093* 7121* syntax_member constant fixed bin(17,0) initial dcl 8-133 set ref 6907* 6937* syntax_outproc 012354 constant fixed bin(17,0) initial dcl 8-133 set ref 6822* syntax_viewselect constant fixed bin(17,0) initial dcl 8-133 set ref 7136* syntax_wordspace constant fixed bin(17,0) initial dcl 8-133 set ref 5782* t 24(18) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2937 temp_ptrs 007730 automatic pointer initial array dcl 3470 set ref 1732* 1747 1747 1750 1750 1952 1952* 2170 2175 2189 2193 2754 2754 2776 2776 2863 2916 2919 3470* 3470* 3470* 3470* 6754 6754 6770 6770 6846 6846 term 21 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2937 testwidth 002756 automatic fixed bin(17,0) dcl 3380 set ref 5406* 5429* 5435* 5456* 5760 5760 5760 5760 the_font 002760 automatic pointer dcl 3381 set ref 2204* 2205 2212* 6986 the_scale parameter fixed bin(31,0) dcl 2994 ref 2991 2997 2997 2997 the_string 002762 automatic varying char(8000) dcl 3382 set ref 1768* 2163* 2165 2176 2176 2186 2187 4981* 4993 4996* 5001* 5369* 5404* 5455* 5719 5722 5726 5727 5728 5740* 5949* 5969* 6533* 6548* 6550 the_string_r 006703 automatic bit(18) dcl 3383 set ref 5720* 5742* 5759 6983* this_view 006704 automatic fixed bin(17,0) dcl 3384 set ref 5271* 5362 5362* 5546 5547 5548 5549 5660* 5667* 5752 5753 5758 5819* 7129* tl 26(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 tl 24(09) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 tmark constant char(1) initial unaligned dcl 2-6 ref 2937 token based structure level 1 dcl 10-68 token_value based char unaligned dcl 10-68 set ref 1856* 1857 1857 1886 1888 1919 1975 2026 2030 2034 2040 2063 2067 2067 2071 2073 2108 2109 2120 2243 2243 2250 2285 2288 2291 2294 2297 2300 2303 2306 2309 2312 2315 2317 2319 2321 2323 2325 2327 2329 2331 2333 2335 2337 2339 2341 2343 2345 2347 2349 2351 2353 2355 2357 2359 2361 2370 2389 2411 2459 2479 2486 2488 2504 2507 2509 2512 2517 2530 2540 2542 2546 2551 2581 2585 2965 2997 2997 3004 3004 3017 3059 3061 3077 3106 3135 3159 11-92 11-92 11-106* 11-113 11-128 4866* 4896 4922 5029 5199 5239 5895 5933* 5942 5949 5969 5991 5999 6109 6202 6225 6244 6272 6317 6378 6526 6533 6548 6550 6570 6578 6686 6799 6812 6856 6857 6902 6952 6964 7077 7101 too_many_stroke_values 012353 constant fixed bin(17,0) initial dcl 8-133 set ref 5066* too_many_widths 012352 constant fixed bin(17,0) initial dcl 8-133 set ref 5163* top 000000 constant char(1) initial array level 2 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 2937 2937 2937 2937 2937 2937 2937 top 21(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 top_dcl_p 006706 automatic pointer initial dcl 3385 set ref 3385* tp 010206 automatic pointer dcl 2102 in procedure "find_font" set ref 2119* 2119* 2120 2120* 2122 2137* 2138 2140* 2141 2142 2143 2144 2146 tp 006710 automatic pointer dcl 3386 in procedure "compdv" set ref 4846* 4851 5835* 5840 5841 5846* 5850 5851 6460* 6462 6463* 6465 6732* 6791 7064* 7068 7069 tr 26(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 tr 24(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "compdv" ref 2937 tr_sw 000222 internal static bit(1) initial unaligned dcl 3387 set ref 3203* 3207* 4878 4887 4890 translate builtin function dcl 3400 ref 2044 2045 2071 6856 6902 translator_temp_$get_segment 000416 constant entry external dcl 3463 ref 1723 translator_temp_$release_all_segments 000420 constant entry external dcl 3465 ref 1949 unbal_parens 012351 constant fixed bin(17,0) initial dcl 8-133 set ref 5563* 6356* uni based structure level 1 unaligned dcl 3683 set ref 5574 5574 uni_ct 007774 automatic fixed bin(17,0) initial dcl 3680 set ref 3680* 5576 5576* 5582 uni_p 010002 automatic pointer dcl 3682 set ref 2791* 2795 2804* 2804* 2805 2805 2808 2809* 2826 5573* 5574 5574 5575* 5576 5576 5577 5584 5838* 5838* 5839 5839 5840 5841* 5845 6772* 6773 unil_p 007776 automatic pointer array dcl 3681 set ref 1765* 2804 5575* 5835 5838 5838 unit_key_list 006345 constant char(2) initial array unaligned dcl 3102 ref 3106 3106 3110 units based fixed bin(17,0) array dcl 6-81 set ref 2810 2813 2819 2844 2844* 5578 5578 5591* 5756* 5760 5760 5760 5840 5840 units_ptr 010054 automatic pointer dcl 6-80 set ref 2809* 2810 2813 2819 2844 2844 5577* 5578 5578 5591 5756 5760 5760 5760 6773* units_r 1 based bit(18) level 2 dcl 6-68 set ref 2791 5584* 6772 unspec builtin function dcl 3400 set ref 2585 2587* 2890* 2890 3045 5840 5840 5850 5850 6006 6586 7068 7068 uparo 20(09) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 upshift 42 based fixed bin(31,0) level 2 dcl 4-19 set ref 2725* 6493* val 1 based fixed bin(31,0) array level 2 dcl 6-103 set ref 2857* 5911* val_ct based fixed bin(17,0) level 2 dcl 6-103 set ref 2855* 2856 5897* 5910* 5910 5911 5916 5916 vals 006713 automatic fixed bin(17,0) array dcl 3389 set ref 5295* 5312* 5333 5338 5342* 5736 5822* vals_ct 006712 automatic fixed bin(17,0) dcl 3388 set ref 5242* 5288* 5294* 5294 5295 5311* 5311 5312 5333 5338 5341* 5341 5342 5735 5821* verify builtin function dcl 9-92 in procedure "SEMANTIC_ANALYSIS" ref 11-92 verify builtin function dcl 3400 in procedure "compdv" ref 2035 2035 2067 2243 2488 2509 2542 2581 version 012474 constant varying char(10) initial dcl 1600 set ref 1629* 1743* view based structure level 1 unaligned dcl 3596 set ref 4682 4682 view_p 007760 automatic pointer dcl 3595 set ref 1753* 2410 2411 2761 2762 4616* 4618 4677 4678 4679 4682* 4682 4682 4682 4682 5211 5211 5213 5213 5214 5214 5547 5548 5549 5606 5752 5753 6750 6769 6780 viewname 007714 automatic char(32) unaligned dcl 3391 set ref 5199* 5213 views_selected 007713 automatic fixed bin(17,0) dcl 3390 set ref 6749* 6751* 6751 6769 6782* 6782 vmb_min 33 based fixed bin(31,0) level 2 dcl 4-19 set ref 2718* 6486* 6658* vmt_min 32 based fixed bin(31,0) level 2 dcl 4-19 set ref 2717* 6485* 6679* vpart 17(27) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2937 vrule constant char(1) initial unaligned dcl 2-6 ref 2347 vscale 007725 automatic fixed bin(31,0) dcl 3393 set ref 6481* 6519* 6557* 6559* 6561* 6563* 6644* 6658* 6665* 6679* vscales 012435 constant fixed bin(31,0) initial array dcl 3394 ref 1778 5935 6519 what_r 1(18) based bit(18) array level 3 packed unaligned dcl 6-92 set ref 2837 2844 2844 5759* which 1 based fixed bin(17,0) array level 3 in structure "oput" packed unaligned dcl 6-92 in procedure "compdv" set ref 2844* 5758* 6777 which parameter fixed bin(17,0) dcl 2158 in procedure "find_str" set ref 2155 2165 2168* 2170 2174 2175 2180* 2188 2188 2189 2191* 2193 which 010254 automatic char(12) unaligned dcl 2266 in procedure "input" set ref 2269* 2282* 2374* width 12 based fixed bin(17,0) array level 3 dcl 3576 set ref 4605* 5031* 5167* 5548 5752 x 25(09) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2937 xxxx parameter char unaligned dcl 3181 ref 3177 3179 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 2-6 BEL internal static char(1) initial unaligned dcl 2-6 BRS internal static char(1) initial unaligned dcl 2-6 BSP internal static char(1) initial unaligned dcl 2-6 CAN internal static char(1) initial unaligned dcl 2-6 CR internal static char(1) initial unaligned dcl 2-6 DC1 internal static char(1) initial unaligned dcl 2-6 DC2 internal static char(1) initial unaligned dcl 2-6 DC3 internal static char(1) initial unaligned dcl 2-6 DC4 internal static char(1) initial unaligned dcl 2-6 DEL internal static char(1) initial unaligned dcl 2-6 DLE internal static char(1) initial unaligned dcl 2-6 ENQ internal static char(1) initial unaligned dcl 2-6 EOT internal static char(1) initial unaligned dcl 2-6 ESC internal static char(1) initial unaligned dcl 2-6 ETB internal static char(1) initial unaligned dcl 2-6 ETX internal static char(1) initial unaligned dcl 2-6 FF internal static char(1) initial unaligned dcl 2-6 FS internal static char(1) initial unaligned dcl 2-6 GS internal static char(1) initial unaligned dcl 2-6 HLF internal static char(1) initial unaligned dcl 2-6 HLR internal static char(1) initial unaligned dcl 2-6 HT internal static char(1) initial unaligned dcl 2-6 HUGE internal static char(1) initial unaligned dcl 2-6 LF internal static char(1) initial unaligned dcl 2-6 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 7-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 7-18 NAK internal static char(1) initial unaligned dcl 2-6 NL internal static char(1) initial unaligned dcl 2-6 NUL internal static char(1) initial unaligned dcl 2-6 PAD internal static char(1) initial unaligned dcl 2-6 PI internal static char(1) initial unaligned dcl 2-6 Pcomment automatic pointer dcl 10-20 RRS internal static char(1) initial unaligned dcl 2-6 RS internal static char(1) initial unaligned dcl 2-6 SI internal static char(1) initial unaligned dcl 2-6 SO internal static char(1) initial unaligned dcl 2-6 SOH internal static char(1) initial unaligned dcl 2-6 STX internal static char(1) initial unaligned dcl 2-6 SUB internal static char(1) initial unaligned dcl 2-6 SYN internal static char(1) initial unaligned dcl 2-6 US internal static char(1) initial unaligned dcl 2-6 VT internal static char(1) initial unaligned dcl 2-6 addname automatic bit(1) unaligned dcl 2603 approx internal static char(1) initial unaligned dcl 2-6 attach automatic varying char(256) dcl 3224 bit builtin function dcl 3400 bpptr based pointer dcl 3232 ch1 automatic char(1) unaligned dcl 3235 char_val automatic fixed bin(17,0) dcl 3236 comma_expected internal static fixed bin(17,0) initial dcl 8-133 comment based structure level 1 dcl 10-20 comment_value based char unaligned dcl 10-20 comp_dvid based structure level 1 dcl 3-17 const_version internal static fixed bin(35,0) initial dcl 7-17 dagger internal static char(1) initial unaligned dcl 2-6 dbldag internal static char(1) initial unaligned dcl 2-6 dec builtin function dcl 3400 delta internal static char(1) initial unaligned dcl 2-6 dvt_i automatic fixed bin(17,0) dcl 3262 erring_token_value based char unaligned dcl 1999 error_table_$namedup external static fixed bin(35,0) dcl 3409 fixed builtin function dcl 3400 fntstk_eptr automatic pointer dcl 5-5 fnttbl based structure level 1 dcl 6-14 fnttbldata based structure level 1 dcl 6-7 footentry automatic char(32) unaligned dcl 3275 i automatic fixed bin(17,0) dcl 3075 in procedure "table_name" i automatic fixed bin(17,0) dcl 2477 in procedure "membername" infin internal static char(1) initial unaligned dcl 2-6 input_file based char unaligned dcl 3304 iox_$error_output external static pointer dcl 7-74 iox_$user_input external static pointer dcl 7-74 iox_$user_output external static pointer dcl 7-74 loc_font based fixed bin(35,0) dcl 3323 med_sel based structure level 1 unaligned dcl 6-116 med_sel_p automatic pointer dcl 6-115 medchar based varying char dcl 6-113 medchar_sel based structure level 1 unaligned dcl 6-110 medchar_sel_p automatic pointer dcl 6-109 medsel based char(12) array unaligned dcl 6-36 medsel_table based structure level 1 unaligned dcl 6-86 medsel_table_ptr automatic pointer dcl 6-84 missing_family_name internal static fixed bin(17,0) initial dcl 8-133 missing_member_name internal static fixed bin(17,0) initial dcl 8-133 next_dcl_p automatic pointer dcl 3352 no_Sizes internal static fixed bin(17,0) initial dcl 8-133 no_init_fam internal static fixed bin(17,0) initial dcl 8-133 not_eq internal static char(1) initial unaligned dcl 2-6 not_fontname internal static fixed bin(17,0) initial dcl 8-133 oct031 internal static char(1) initial unaligned dcl 2-6 overbar internal static char(1) initial unaligned dcl 2-6 perpen internal static char(1) initial unaligned dcl 2-6 pi internal static char(1) initial unaligned dcl 2-6 in procedure "compdv" pi automatic char(10) unaligned dcl 2995 in procedure "scale_unit" prll internal static char(1) initial unaligned dcl 2-6 pt automatic char(10) unaligned dcl 2995 repl_str based structure level 1 unaligned dcl 6-30 repl_str_ptr automatic pointer dcl 6-29 replstr based varying char(256) dcl 6-33 self_sw automatic bit(1) unaligned dcl 3372 siztbl based structure level 1 unaligned dcl 6-38 slash internal static char(1) initial unaligned dcl 2-6 square internal static char(1) initial unaligned dcl 2-6 stmt_value based char unaligned dcl 10-40 syntax_use internal static fixed bin(17,0) initial dcl 8-133 sys_info$max_seg_size external static fixed bin(18,0) dcl 7-80 tfore internal static char(1) initial unaligned dcl 2-6 theta internal static char(1) initial unaligned dcl 2-6 NAMES DECLARED BY EXPLICIT CONTEXT. DELETE_STMT 047507 constant entry internal dcl 14-18 ref 5283 ERROR 047706 constant entry internal dcl 15-139 ref 2079 2130 3083 3113 3138 3162 4517 4600 4675 4790 4836 4849 4870 4916 4933 4983 4984 4989 4995 5036 5066 5159 5160 5163 5175 5205 5246 5304 5316 5334 5348 5393 5423 5441 5460 5477 5547 5563 5570 5598 5611 5621 5643 5649 5748 5782 5865 5875 5902 5925 6152 6188 6194 6219 6236 6264 6283 6295 6356 6386 6550 6738 6743 6744 6789 6790 6822 6834 6863 6882 6907 6928 6937 6978 7001 7013 7024 7093 7121 7136 ERROR_ 020714 constant entry internal dcl 1992 ref 1901 5549 5753 5760 6780 LEX 047422 constant entry internal dcl 13-31 ref 4470 4474 4566 4646 4716 4771 4822 4865 4898 4912 4929 4937 4946 4951 4956 4972 5007 5012 5032 5042 5047 5056 5069 5072 5078 5099 5104 5109 5126 5155 5184 5191 5201 5215 5223 5228 5240 5278 5292 5299 5309 5321 5330 5335 5357 5364 5376 5410 5425 5431 5437 5453 5467 5473 5482 5499 5505 5517 5528 5538 5552 5556 5594 5607 5678 5683 5690 5762 5771 5777 5785 5791 5801 5811 5826 5861 5898 5908 5912 5920 5931 5936 5940 5943 5947 5951 5955 5967 5971 5975 5978 5980 5982 5984 5988 5992 5996 6000 6004 6007 6013 6019 6023 6027 6031 6035 6039 6043 6047 6050 6054 6057 6061 6064 6068 6072 6076 6079 6083 6087 6091 6095 6099 6102 6106 6110 6114 6118 6122 6130 6133 6137 6141 6145 6148 6200 6203 6209 6215 6227 6231 6242 6245 6253 6259 6270 6273 6279 6289 6313 6319 6325 6332 6340 6348 6382 6392 6397 6402 6415 6516 6520 6524 6527 6531 6535 6539 6546 6551 6555 6558 6560 6562 6564 6568 6571 6575 6580 6584 6587 6593 6599 6604 6609 6615 6621 6624 6628 6631 6635 6638 6642 6645 6649 6652 6656 6659 6663 6666 6670 6673 6677 6680 6684 6687 6691 6694 6698 6701 6707 6713 6796 6800 6804 6810 6813 6817 6828 6859 6868 6877 6890 6903 6913 6923 6932 6943 6954 6962 6965 6973 6994 7009 7019 7079 7083 7088 7099 7102 7105 7116 7130 7146 7151 NEXT_STMT 050217 constant entry internal dcl 16-18 ref 4918 5038 5207 5248 5600 5613 5651 5766 5784 5867 5889 5904 5927 6126 6190 6196 6221 6238 6266 6285 6297 6388 6824 6836 6884 6909 6939 6980 7003 7015 7026 7095 7123 7138 PUSH 047105 constant entry internal dcl 12-36 ref 4462 4478 4561 4641 4711 4766 4817 4858 4899 4973 5273 5399 5448 5500 5511 5532 5629 5655 5662 5669 5685 5711 5882 5958 6333 6404 6438 6541 6594 6708 6726 6918 7037 7131 RD_ACTION 003720 constant label array(426) dcl 4462 ref 4457 RD_MATCH 033236 constant label dcl 4453 ref 11-90 11-92 11-101 11-109 11-113 11-118 11-128 4449 RD_MATCH_NO_TOKEN 033241 constant label dcl 4454 ref 11-73 11-79 11-86 RD_NEXT_REDUCTION 032627 constant label dcl 11-55 ref 11-68 11-84 11-88 11-99 11-104 11-111 11-116 11-120 11-124 11-130 4450 12-17 12-24 4465 4522 4526 4530 4535 4564 4606 4610 4614 4619 4644 4680 4684 4688 4693 4714 4744 4748 4752 4769 4797 4801 4807 4820 4852 4856 4861 4894 4935 5005 5024 5070 5153 5182 5249 5290 5365 5370 5395 5408 5495 5530 5623 5625 5658 5877 5918 6251 6257 6303 6309 6369 6514 6842 6921 6930 6981 7103 7144 RD_STACK 033250 constant label dcl 12-17 RD_STACK_POP 033255 constant label dcl 12-24 ref 4880 RD_TEST_REDUCTION 032630 constant label dcl 11-58 ref 11-53 12-19 12-28 4472 4481 4485 4489 4493 4497 4501 4505 4509 4513 4539 4543 4547 4551 4555 4559 4569 4574 4579 4584 4589 4594 4598 4623 4627 4631 4635 4639 4649 4654 4659 4664 4669 4673 4697 4701 4705 4709 4719 4724 4729 4734 4738 4756 4760 4764 4774 4779 4784 4788 4793 4811 4815 4825 4830 4834 4842 4868 4876 4902 4914 4920 4925 4931 4940 4944 4949 4954 4959 4964 4968 4976 5010 5015 5019 5034 5040 5045 5050 5054 5060 5064 5076 5081 5085 5093 5097 5102 5107 5112 5116 5120 5124 5129 5133 5137 5141 5145 5149 5187 5193 5197 5203 5209 5217 5221 5226 5231 5235 5244 5253 5257 5261 5265 5269 5276 5281 5286 5297 5302 5307 5314 5319 5324 5328 5346 5351 5355 5360 5374 5379 5383 5387 5391 5402 5413 5417 5421 5427 5433 5439 5444 5451 5458 5463 5469 5475 5480 5485 5489 5503 5509 5515 5521 5526 5536 5541 5554 5561 5566 5596 5602 5609 5615 5619 5632 5636 5641 5647 5653 5665 5672 5676 5681 5688 5693 5697 5701 5705 5709 5715 5764 5769 5775 5780 5787 5793 5797 5803 5807 5813 5817 5824 5829 5833 5857 5863 5869 5873 5885 5891 5900 5906 5914 5923 5929 5938 5945 5953 5961 5965 5973 5986 5994 6002 6009 6015 6021 6029 6037 6045 6052 6059 6066 6074 6081 6089 6097 6104 6112 6120 6128 6135 6143 6150 6158 6162 6166 6170 6174 6178 6182 6186 6192 6198 6205 6211 6217 6223 6229 6234 6240 6247 6262 6268 6275 6281 6287 6293 6299 6315 6321 6327 6336 6342 6346 6354 6359 6363 6384 6390 6395 6400 6407 6411 6417 6421 6428 6432 6436 6442 6458 6471 6522 6529 6537 6544 6553 6566 6573 6582 6589 6597 6602 6607 6613 6619 6626 6633 6640 6647 6654 6661 6668 6675 6682 6689 6696 6703 6711 6716 6720 6724 6730 6794 6802 6808 6815 6820 6826 6832 6838 6861 6866 6871 6875 6880 6886 6892 6896 6905 6911 6916 6926 6935 6941 6946 6950 6956 6960 6967 6971 6976 6992 6999 7005 7011 7017 7022 7028 7040 7075 7081 7086 7091 7097 7110 7114 7119 7125 7134 7140 7149 7154 7158 RD_TEST_RESULT 033232 constant label dcl 4449 ref 4397 4399 4401 4403 4405 4407 4409 4411 4413 4415 4417 4419 4421 4423 4425 4427 4429 4431 4433 4435 4437 4439 4441 4443 4445 4447 RD_TEST_TOKEN 003660 constant label array(6) dcl 11-73 ref 11-65 11-71 RD_TOKEN_FCN 003666 constant label array(26) dcl 4396 ref 4394 SEMANTIC_ANALYSIS 032616 constant entry internal dcl 9-30 ref 1809 a_debug 020036 constant entry internal dcl 1854 ref 3172 addr_inc 020114 constant entry internal dcl 1864 ref 2135 4524 4608 4682 4746 4795 5572 5574 5578 5580 5916 6451 6792 6847 all_input 022364 constant entry internal dcl 2279 ref 4414 bad_news 021651 constant label dcl 2130 ref 2115 charlist 020127 constant entry internal dcl 1881 ref 4420 charname 020262 constant entry internal dcl 1912 ref 4406 cleaner 020401 constant entry internal dcl 1941 ref 1719 1728 1737 1802 1845 compdv 015060 constant entry external dcl 1597 dbf 017754 constant entry external dcl 3187 dbn 017741 constant entry external dcl 3183 dbs 017714 constant entry external dcl 3177 dcl_ed 020637 constant entry internal dcl 1971 ref 4436 dtf 020000 constant entry external dcl 3196 dtn 017766 constant entry external dcl 3192 empty_seg 017137 constant label dcl 1794 ref 1785 fam_bach 021342 constant entry internal dcl 2057 ref 4442 fam_mem 021103 constant entry internal dcl 2023 ref 4432 find_font 021512 constant entry internal dcl 2093 ref 2204 5568 find_str 021712 constant entry internal dcl 2155 ref 1769 1771 5000 5720 5742 5950 5970 6291 6534 6549 6830 6983 7142 fmt_str_cmt 030420 constant entry internal dcl 2882 ref 2870 2870 fmt_str_r 030501 constant entry internal dcl 2907 ref 2738 2738 2740 2740 2741 2741 2763 2763 2844 2844 2867 2867 font_name 022170 constant entry internal dcl 2201 ref 4446 get_to_cl 047211 constant label dcl 12-62 ref 12-64 ident 022233 constant entry internal dcl 2222 ref 4396 ident2 022241 constant entry internal dcl 2228 ref 4398 ident_ 022256 constant entry internal dcl 2236 ref 1919 2127 2456 3132 3156 input 022347 constant entry internal dcl 2263 ref 4400 input_ 022360 constant entry internal dcl 2273 ref 1917 4408 is_Defname 023033 constant entry internal dcl 2385 ref 4422 is_viewname 023113 constant entry internal dcl 2407 ref 4418 limit 023562 constant entry internal dcl 2527 ref 4428 link 023175 constant entry internal dcl 2428 ref 2140 4911 5575 5581 6375 6447 6848 medianame 023237 constant entry internal dcl 2451 ref 4412 membername 023335 constant entry internal dcl 2474 ref 4444 memorder 047363 constant entry internal dcl 7056 ref 7047 7052 negnum 023436 constant entry internal dcl 2501 ref 4410 num 023602 constant entry internal dcl 2537 ref 2109 4404 octal 023721 constant entry internal dcl 2561 ref 4434 octal_ 023727 constant entry internal dcl 2567 ref 2109 2372 outputter 024026 constant entry internal dcl 2600 ref 1820 part 030563 constant entry internal dcl 2926 ref 4416 pop 047322 constant entry internal dcl 4889 ref 4476 4515 4571 4576 4581 4586 4591 4651 4656 4661 4666 4721 4726 4731 4776 4781 4827 push 047246 constant entry internal dcl 4884 ref 4464 4479 4563 4643 4713 4768 4819 4860 4900 4974 5274 5400 5449 5501 5513 5534 5630 5657 5663 5670 5686 5713 5883 5959 6334 6405 6440 6542 6595 6709 6728 6920 7038 7132 save_unref 017705 constant label dcl 3172 ref 3175 scale_unit 031624 constant entry internal dcl 2991 ref 5911 5977 5979 5981 5983 6063 6071 6078 6086 6094 6101 6557 6559 6561 6563 6644 6651 6658 6665 6672 6679 7007 show_name 032076 constant entry internal dcl 3033 ref 1901 1901 5549 5549 5753 5753 sizename 032015 constant entry internal dcl 3011 ref 4430 some 022757 constant label dcl 2363 ref 2271 2277 start 022261 constant label dcl 2243 in procedure "ident" ref 2226 2234 start 023732 constant label dcl 2577 in procedure "octal" ref 2565 switch 032212 constant entry internal dcl 3056 ref 4426 table_name 032263 constant entry internal dcl 3072 ref 4440 trf 020025 constant entry external dcl 3205 trn 020012 constant entry external dcl 3201 unitkey 032352 constant entry internal dcl 3098 ref 4424 valid_Device_name 032433 constant entry internal dcl 3129 ref 4438 valid_Media_name 032520 constant entry internal dcl 3153 ref 4402 NAMES DECLARED BY CONTEXT OR IMPLICATION. binary builtin function ref 2919 char builtin function ref 5760 5760 5760 5760 ltrim builtin function ref 5760 5760 5760 5760 min builtin function ref 2894 wordno builtin function ref 2919 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 53602 54250 53107 53612 Length 55300 53107 446 1013 473 324 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME compdv 6210 external procedure is an external procedure. on unit on line 1719 64 on unit a_debug internal procedure shares stack frame of external procedure compdv. addr_inc internal procedure shares stack frame of external procedure compdv. charlist internal procedure shares stack frame of external procedure compdv. charname internal procedure shares stack frame of external procedure compdv. cleaner 158 internal procedure is called by several nonquick procedures. dcl_ed internal procedure shares stack frame of external procedure compdv. ERROR_ 144 internal procedure is called during a stack extension. fam_mem internal procedure shares stack frame of external procedure compdv. fam_bach internal procedure shares stack frame of external procedure compdv. find_font internal procedure shares stack frame of external procedure compdv. find_str internal procedure shares stack frame of external procedure compdv. font_name internal procedure shares stack frame of external procedure compdv. ident internal procedure shares stack frame of external procedure compdv. input internal procedure shares stack frame of external procedure compdv. is_Defname internal procedure shares stack frame of external procedure compdv. is_viewname internal procedure shares stack frame of external procedure compdv. link internal procedure shares stack frame of external procedure compdv. medianame internal procedure shares stack frame of external procedure compdv. membername internal procedure shares stack frame of external procedure compdv. negnum internal procedure shares stack frame of external procedure compdv. limit internal procedure shares stack frame of external procedure compdv. octal internal procedure shares stack frame of external procedure compdv. outputter internal procedure shares stack frame of external procedure compdv. fmt_str_cmt internal procedure shares stack frame of external procedure compdv. fmt_str_r internal procedure shares stack frame of external procedure compdv. part internal procedure shares stack frame of external procedure compdv. scale_unit internal procedure shares stack frame of external procedure compdv. sizename internal procedure shares stack frame of external procedure compdv. show_name internal procedure shares stack frame of external procedure compdv. switch internal procedure shares stack frame of external procedure compdv. table_name internal procedure shares stack frame of external procedure compdv. unitkey internal procedure shares stack frame of external procedure compdv. valid_Device_name internal procedure shares stack frame of external procedure compdv. valid_Media_name internal procedure shares stack frame of external procedure compdv. SEMANTIC_ANALYSIS internal procedure shares stack frame of external procedure compdv. PUSH internal procedure shares stack frame of external procedure compdv. push internal procedure shares stack frame of external procedure compdv. pop internal procedure shares stack frame of external procedure compdv. memorder internal procedure shares stack frame of external procedure compdv. LEX internal procedure shares stack frame of external procedure compdv. DELETE_STMT internal procedure shares stack frame of external procedure compdv. ERROR internal procedure shares stack frame of external procedure compdv. NEXT_STMT internal procedure shares stack frame of external procedure compdv. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 breaks compdv 000051 check_opt compdv 000052 db_start compdv 000055 db_sw compdv 000056 first_time compdv 000057 ignored_breaks compdv 000120 lex_ctl_chars compdv 000161 lex_delims compdv 000222 tr_sw compdv 000223 TRACING compdv 000224 brief_error PUSH 000226 long_error PUSH 000322 non_restart_error PUSH STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERROR_ 000100 Pstmt ERROR_ 000102 Perring_token ERROR_ compdv 000100 Stack compdv 000220 ALM compdv 000222 argl compdv 000224 argp compdv 000226 ArtEntry compdv 000237 ArtProc compdv 000250 Atd_r compdv 000251 AvgWordsp compdv 000252 bach_sw compdv 000253 charid compdv 000254 charid_ compdv 000264 code compdv 000265 Com_r compdv 000266 Clean_r compdv 000270 dclname compdv 000272 default_view compdv 000273 DefVmt compdv 000274 DefVmh compdv 000275 DefVmf compdv 000276 DefVmb compdv 000277 DevClass compdv 000306 Device_Pthis_token compdv 000310 DevName compdv 000316 dname compdv 000370 done compdv 000371 dt_sw compdv 000372 dup_ct compdv 000373 ename compdv 000403 EndPage compdv 000404 ercd compdv 000405 family_i compdv 000406 first_token_p compdv 000410 font_fam compdv 000420 font_mem compdv 000430 FootEntry compdv 000441 FootFamily compdv 000451 footfamily compdv 000461 FootMember compdv 000471 footmember compdv 000501 FootProc compdv 000512 Footsep compdv 000514 held_Pthis_token compdv 000516 hold_Pthis_token compdv 000520 Hscale compdv 000521 hscale compdv 000522 i compdv 000523 ii compdv 000524 iii compdv 000525 initfamily compdv 000535 initmember compdv 000545 Input compdv 000546 input_bitcount compdv 000547 input_charcount compdv 000550 input_ptr compdv 000552 Interleave compdv 000553 j compdv 000554 jj compdv 000555 Justify compdv 000556 Letterspace compdv 000560 lex_temp_ptr compdv 000562 like_table compdv 000563 list_ndx compdv 000564 list_opt compdv 000565 MaxFiles compdv 000566 MaxWordsp compdv 000567 MaxPages compdv 000570 MaxPageLength compdv 000571 MaxPageWidth compdv 000572 media1 compdv 000602 media2 compdv 000612 mediabase compdv 000613 mediact compdv 000614 mediawidth compdv 000615 media_ compdv 000625 media_i compdv 000626 member_hold compdv 000642 mem_i compdv 000643 med_sel_i compdv 000644 MinLead compdv 000645 MinSpace compdv 000646 MinWordsp compdv 000647 MinVmb compdv 000650 MinVmt compdv 000651 mw compdv 000652 nargs compdv 000653 new_family compdv 000654 new_member compdv 000656 next_str_p compdv 000660 Openmode compdv 000661 OutEntry compdv 000672 OutProc compdv 000703 DisplayProc compdv 000714 parenct compdv 000715 part_repl compdv 000727 part_str compdv 002711 part_width compdv 002723 part_nest compdv 002724 Scale_x compdv 002725 Scale_y compdv 002726 self_ct compdv 002727 self_i compdv 002747 Sizes compdv 002750 skip_ct compdv 002752 string_l compdv 002754 Strokes compdv 002755 TapeRec compdv 002756 testwidth compdv 002760 the_font compdv 002762 the_string compdv 006703 the_string_r compdv 006704 this_view compdv 006706 top_dcl_p compdv 006710 tp compdv 006712 vals_ct compdv 006713 vals compdv 007713 views_selected compdv 007714 viewname compdv 007724 Vscale compdv 007725 vscale compdv 007726 Wordspace_p compdv 007730 temp_ptrs compdv 007740 area_free_p compdv 007742 size_list_p compdv 007744 str_p compdv 007746 dcl_l_p compdv 007752 dcl_p compdv 007754 mediachars_p compdv 007756 media_p compdv 007760 view_p compdv 007762 Def_p compdv 007764 font_count compdv 007766 fntl_p compdv 007772 fnt_p compdv 007774 uni_ct compdv 007776 unil_p compdv 010002 uni_p compdv 010004 opul_p compdv 010010 opu_p compdv 010012 comp_dvid_new compdv 010013 comp_dvid_ct compdv 010014 dvid_ct compdv 010016 dvidl_p compdv 010022 dvid_p compdv 010024 dvt_ct compdv 010026 dvtl_p compdv 010032 dvt_p compdv 010034 prent_p compdv 010036 meml_p compdv 010042 mem_ct compdv 010044 mem_p compdv 010046 fnttbl_ptr compdv 010050 member_ptr compdv 010052 font_ptr compdv 010054 units_ptr compdv 010056 oput_p compdv 010060 sizel_p compdv 010062 Pthis_token compdv 010064 Pstmt compdv 010066 Ptoken compdv 010070 SPDL compdv 010071 MERROR_SEVERITY compdv 010072 SERROR_CONTROL compdv 010073 SERROR_PRINTED compdv 010073 MIN_PRINT_SEVERITY compdv 010074 PRINT_SEVERITY_CONTROL compdv 010132 i charlist 010142 i charname 010166 i fam_bach 010167 name fam_bach 010206 tp find_font 010210 fname find_font 010226 i find_str 010244 ldt_sw ident 010254 which input 010257 ldt_sw input 010316 i medianame 010350 ldt_sw octal 010351 bits octal 010360 i outputter 010361 j outputter 010362 oct_p outputter 010364 jjj outputter 010365 o_s outputter 010366 out outputter 010410 idx fmt_str_cmt 010411 str fmt_str_cmt 010422 pic fmt_str_r 010432 art_tokens part 010573 art_codes part 010624 i part 010625 part_token part 010644 i sizename 010654 bits show_name 010700 i unitkey 010726 LTOKEN_REQD_VALUE SEMANTIC_ANALYSIS 010727 NRED SEMANTIC_ANALYSIS 010730 PRED SEMANTIC_ANALYSIS 010732 PTOKEN_REQD SEMANTIC_ANALYSIS 010734 PTOKEN_REQD_VALUE SEMANTIC_ANALYSIS 010736 STOKEN_FCN SEMANTIC_ANALYSIS 010737 CODE SEMANTIC_ANALYSIS 010740 I SEMANTIC_ANALYSIS 010741 NUMBER SEMANTIC_ANALYSIS 010742 DIRECTION SEMANTIC_ANALYSIS 010743 STACK SEMANTIC_ANALYSIS 010755 STACK_DEPTH SEMANTIC_ANALYSIS 011054 i LEX 011066 Plast DELETE_STMT 011070 Pnext DELETE_STMT 011072 Ssearching DELETE_STMT 011102 Pstmt ERROR 011104 Perring_token ERROR 011114 Ssearching NEXT_STMT THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as alloc_cs unpk_to_pk cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return alloc_auto_adj mpfx2 enable shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc trunc_fx2 repeat set_cs_eis index_cs_eis search_eis real_to_real_tr any_to_any_tr divide_fx3 index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. alm com_err_ cu_$arg_count cu_$arg_ptr cu_$cl cv_dec_check_ delete_$path expand_pathname_$add_suffix get_temp_segments_ get_wdir_ hcs_$chname_file hcs_$initiate_count hcs_$terminate_noname ioa_ ioa_$ioa_switch ioa_$nnl iox_$attach_name iox_$close iox_$detach_iocb iox_$open iox_$put_chars lex_error_ lex_error_ lex_error_ lex_string_$init_lex_delims lex_string_$lex pathname_ release_temp_segments_ search_paths_$find_dir translator_temp_$get_segment translator_temp_$release_all_segments THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compdv_severity_ compstat$compconst error_table_$badopt error_table_$segnamedup error_table_$zero_length_seg iox_$error_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 3212 014660 3218 014662 3222 014667 3225 014670 3248 014672 3249 014674 3250 014676 3251 014677 3252 014701 3256 014704 3264 014707 3273 014710 3282 014715 3308 014717 3311 014720 3312 014721 3317 014722 3324 014724 3330 014731 3341 014733 3343 014735 3344 014736 3346 014740 3347 014741 3356 014742 3375 014744 3377 014745 3378 014754 3379 014756 3385 014760 3398 014762 3470 014763 3680 015014 3714 015015 3787 015016 6 13 015017 7165 015020 15 3 015021 2012 015053 1597 015057 1604 015066 1605 015071 1608 015072 1611 015074 1613 015113 1614 015125 1617 015206 1622 015210 1624 015216 1626 015221 1629 015223 1633 015255 1636 015256 1637 015274 1640 015276 1641 015327 1644 015330 1647 015336 1650 015347 1652 015424 1655 015426 1657 015432 1660 015521 1663 015524 1665 015604 1667 015606 1671 015607 1672 015645 1675 015647 1677 015726 1680 015730 1683 015741 1685 015744 1688 015747 1689 015765 1692 015767 1693 016015 1696 016016 1699 016034 1704 016047 1705 016103 1709 016104 1711 016174 1714 016201 1716 016302 1719 016304 1721 016326 1723 016331 1724 016354 1727 016356 1728 016404 1729 016410 1732 016411 1733 016434 1736 016436 1737 016467 1738 016473 1743 016474 1745 016521 1746 016523 1747 016537 1748 016542 1750 016544 1751 016546 1752 016547 1753 016550 1754 016551 1756 016552 1757 016553 1758 016567 1759 016570 1761 016603 1762 016604 1763 016606 1764 016621 1765 016635 1766 016651 1768 016665 1769 016666 1771 016674 1774 016702 1776 016775 1777 017004 1778 017006 1779 017010 1781 017012 1784 017014 1785 017017 1788 017020 1791 017135 1794 017137 1799 017201 1802 017252 1803 017256 1806 017257 1809 017262 1810 017263 1812 017266 1815 017270 1816 017272 1817 017320 1819 017414 1820 017436 1821 017437 1822 017450 1824 017461 1827 017464 1829 017505 1831 017515 1833 017524 1835 017614 1837 017622 1841 017674 1845 017700 1846 017704 3172 017705 3175 017710 3177 017711 3179 017730 3180 017737 3183 017740 3185 017747 3186 017752 3187 017753 3189 017762 3190 017764 3192 017765 3194 017774 3195 017776 3196 017777 3198 020006 3199 020010 3201 020011 3203 020020 3204 020023 3205 020024 3207 020033 3208 020035 1854 020036 1856 020037 1857 020063 1859 020113 1864 020114 1870 020116 1881 020127 1886 020131 1888 020137 1890 020155 1891 020165 1894 020174 1895 020177 1897 020225 1898 020226 1900 020232 1901 020234 1902 020257 1912 020262 1917 020264 1919 020305 1921 020322 1922 020325 1923 020335 1926 020344 1927 020347 1929 020367 1931 020373 1932 020375 1941 020400 1944 020406 1947 020425 1949 020437 1952 020455 1955 020505 1958 020512 1959 020523 1960 020535 1963 020540 1967 020635 1971 020637 1974 020641 1975 020650 1978 020661 1979 020663 1981 020701 1983 020705 1984 020710 1992 020713 2006 020734 2008 020737 2010 020752 2012 020754 2017 021067 2019 021102 2023 021103 2026 021105 2030 021123 2031 021133 2034 021141 2035 021157 2040 021232 2043 021243 2044 021271 2045 021303 2046 021314 2048 021315 2051 021336 2057 021342 2063 021344 2067 021362 2071 021411 2073 021425 2075 021431 2076 021445 2079 021457 2080 021461 2082 021464 2084 021466 2087 021506 2093 021512 2105 021514 2108 021534 2109 021543 2115 021575 2117 021603 2119 021606 2120 021614 2122 021630 2124 021633 2127 021644 2130 021651 2132 021653 2135 021656 2137 021665 2138 021667 2139 021672 2140 021673 2141 021675 2142 021701 2143 021703 2144 021705 2146 021707 2155 021712 2163 021714 2165 021736 2168 021744 2170 021770 2174 021777 2175 022007 2176 022021 2180 022031 2182 022062 2184 022066 2185 022070 2186 022072 2187 022074 2188 022101 2189 022107 2190 022117 2191 022125 2193 022155 2201 022170 2204 022172 2205 022176 2208 022202 2210 022222 2212 022226 2214 022230 2222 022233 2225 022235 2226 022240 2228 022241 2231 022243 2232 022246 2234 022255 2236 022256 2239 022260 2243 022261 2250 022312 2252 022326 2254 022343 2263 022347 2269 022351 2270 022354 2271 022357 2273 022360 2276 022362 2277 022363 2279 022364 2282 022366 2283 022371 2285 022374 2288 022410 2291 022417 2294 022426 2297 022435 2300 022444 2303 022453 2306 022462 2309 022471 2312 022500 2315 022507 2317 022516 2319 022525 2321 022534 2323 022543 2325 022552 2327 022561 2329 022570 2331 022577 2333 022606 2335 022615 2337 022624 2339 022633 2341 022642 2343 022651 2345 022660 2347 022667 2349 022676 2351 022705 2353 022714 2355 022723 2357 022732 2359 022741 2361 022750 2363 022757 2368 022763 2370 022771 2371 022775 2372 022776 2374 023006 2376 023027 2385 023033 2388 023035 2389 023045 2392 023060 2393 023062 2395 023102 2397 023106 2398 023110 2407 023113 2410 023115 2411 023125 2414 023140 2415 023142 2417 023164 2419 023170 2420 023172 2428 023175 2435 023177 2439 023223 2440 023227 2442 023232 2444 023236 2451 023237 2456 023241 2458 023251 2459 023261 2462 023301 2463 023303 2465 023324 2467 023330 2468 023332 2474 023335 2479 023337 2481 023350 2483 023356 2486 023360 2488 023373 2491 023411 2493 023432 2501 023436 2504 023440 2507 023451 2509 023461 2512 023477 2515 023525 2517 023543 2518 023556 2527 023562 2530 023564 2533 023574 2534 023576 2537 023601 2540 023604 2542 023620 2546 023635 2549 023664 2551 023702 2552 023715 2561 023721 2564 023723 2565 023726 2567 023727 2570 023731 2577 023732 2581 023741 2585 023760 2587 023765 2589 024005 2591 024022 2600 024026 2676 024027 2687 024034 2690 024052 2692 024074 2693 024102 2696 024105 2697 024132 2698 024155 2700 024212 2702 024241 2703 024274 2705 024300 2706 024306 2707 024311 2708 024317 2709 024346 2711 024405 2712 024431 2713 024460 2714 024504 2715 024550 2716 024603 2717 024635 2718 024664 2719 024716 2720 024745 2721 024777 2722 025026 2723 025060 2724 025107 2725 025141 2726 025170 2727 025222 2728 025251 2729 025303 2730 025332 2731 025364 2732 025413 2733 025445 2734 025474 2736 025534 2738 025574 2739 025636 2740 025670 2741 025732 2742 025771 2743 026015 2745 026055 2747 026115 2748 026152 2750 026205 2751 026237 2753 026266 2754 026301 2755 026312 2756 026341 2758 026406 2760 026410 2761 026437 2762 026465 2763 026475 2765 026535 2766 026537 2768 026543 2769 026552 2772 026556 2773 026560 2774 026602 2775 026625 2776 026635 2777 026644 2778 026673 2780 026722 2782 026762 2784 027024 2786 027026 2788 027032 2789 027050 2790 027056 2791 027061 2792 027065 2793 027072 2794 027123 2795 027152 2796 027201 2797 027230 2798 027257 2799 027301 2800 027325 2801 027354 2802 027400 2804 027404 2805 027412 2808 027416 2809 027440 2810 027443 2811 027445 2812 027447 2813 027453 2817 027461 2819 027522 2820 027525 2822 027527 2823 027531 2826 027572 2828 027576 2829 027604 2832 027610 2833 027632 2834 027635 2835 027663 2836 027664 2837 027673 2841 027701 2843 027730 2844 027731 2848 030015 2850 030017 2852 030023 2853 030033 2854 030037 2855 030063 2856 030106 2857 030115 2858 030146 2859 030150 2861 030152 2862 030174 2863 030203 2864 030207 2865 030213 2867 030245 2869 030303 2870 030313 2873 030375 2874 030377 2876 030401 2878 030417 2882 030420 2890 030422 2891 030424 2894 030435 2895 030447 2899 030473 2901 030475 2907 030501 2913 030503 2916 030514 2919 030525 2920 030544 2926 030563 2930 030565 2937 030603 2965 031552 2967 031561 2968 031570 2971 031571 2972 031574 2973 031577 2975 031615 2978 031621 2991 031624 2997 031626 3004 031733 3011 032015 3016 032017 3017 032027 3020 032042 3021 032044 3023 032065 3025 032071 3027 032073 3033 032076 3041 032107 3043 032122 3045 032147 3046 032152 3056 032212 3059 032214 3061 032230 3063 032237 3064 032241 3066 032257 3072 032263 3076 032265 3077 032274 3080 032305 3083 032311 3084 032313 3086 032316 3087 032320 3089 032340 3091 032344 3092 032347 3098 032352 3106 032354 3108 032372 3110 032374 3113 032377 3114 032401 3117 032404 3118 032406 3120 032427 3129 032433 3132 032435 3134 032445 3135 032454 3138 032465 3139 032467 3141 032472 3142 032475 3144 032514 3153 032520 3156 032522 3158 032532 3159 032541 3162 032561 3163 032563 3165 032566 3166 032570 3168 032612 9 30 032616 3870 032617 3871 032621 11 50 032622 11 52 032625 11 53 032626 11 55 032627 11 58 032630 11 60 032633 11 62 032635 11 63 032660 11 64 032663 11 65 032667 11 68 032677 11 70 032700 11 71 032704 11 73 032706 11 79 032725 11 84 032736 11 86 032737 11 88 032743 11 90 032744 11 92 032745 11 99 033001 11 101 033002 11 104 033005 11 106 033010 11 107 033034 11 108 033036 11 109 033041 11 111 033042 11 113 033043 11 116 033057 11 118 033060 11 120 033064 11 123 033065 11 124 033066 11 126 033072 11 127 033077 11 128 033103 11 130 033111 4394 033112 4396 033114 4397 033116 4398 033117 4399 033121 4400 033122 4401 033124 4402 033125 4403 033127 4404 033130 4405 033132 4406 033133 4407 033135 4408 033136 4409 033140 4410 033141 4411 033143 4412 033144 4413 033146 4414 033147 4415 033151 4416 033152 4417 033154 4418 033155 4419 033157 4420 033160 4421 033162 4422 033163 4423 033165 4424 033166 4425 033170 4426 033171 4427 033173 4428 033174 4429 033176 4430 033177 4431 033201 4432 033202 4433 033204 4434 033205 4435 033207 4436 033210 4437 033212 4438 033213 4439 033215 4440 033216 4441 033220 4442 033221 4443 033223 4444 033224 4445 033226 4446 033227 4447 033231 4449 033232 4450 033235 4453 033236 4454 033241 4456 033244 4457 033246 12 17 033250 12 18 033252 12 19 033254 12 24 033255 12 26 033257 12 27 033261 12 28 033267 4462 033270 4464 033274 4465 033301 4467 033302 4469 033313 4470 033337 4471 033343 4472 033345 4474 033346 4476 033352 4477 033353 4478 033355 4479 033361 4480 033372 4481 033374 4483 033375 4485 033377 4487 033400 4489 033402 4491 033403 4493 033405 4495 033406 4497 033410 4499 033411 4501 033413 4503 033414 4505 033416 4507 033417 4509 033421 4511 033422 4513 033424 4515 033425 4517 033426 4518 033430 4519 033432 4520 033434 4521 033440 4522 033441 4524 033442 4526 033450 4528 033451 4530 033462 4532 033463 4534 033465 4535 033466 4537 033467 4539 033471 4541 033472 4543 033474 4545 033475 4547 033477 4549 033500 4551 033502 4553 033503 4555 033505 4557 033506 4559 033510 4561 033511 4563 033515 4564 033522 4566 033523 4568 033527 4569 033531 4571 033532 4573 033533 4574 033535 4576 033536 4578 033537 4579 033541 4581 033542 4583 033543 4584 033545 4586 033546 4588 033547 4589 033551 4591 033552 4593 033553 4594 033555 4596 033556 4598 033560 4600 033561 4602 033563 4603 033565 4604 033571 4605 033572 4606 033573 4608 033574 4610 033603 4612 033604 4614 033615 4616 033616 4618 033620 4619 033621 4621 033622 4623 033624 4625 033625 4627 033627 4629 033630 4631 033632 4633 033633 4635 033635 4637 033636 4639 033640 4641 033641 4643 033645 4644 033652 4646 033653 4648 033657 4649 033661 4651 033662 4653 033663 4654 033665 4656 033666 4658 033667 4659 033671 4661 033672 4663 033673 4664 033675 4666 033676 4668 033677 4669 033701 4671 033702 4673 033704 4675 033705 4677 033707 4678 033711 4679 033715 4680 033716 4682 033717 4684 033725 4686 033726 4688 033737 4690 033740 4692 033742 4693 033743 4695 033744 4697 033746 4699 033747 4701 033751 4703 033752 4705 033754 4707 033755 4709 033757 4711 033760 4713 033764 4714 033771 4716 033772 4718 033776 4719 034000 4721 034001 4723 034002 4724 034004 4726 034005 4728 034006 4729 034010 4731 034011 4733 034012 4734 034014 4736 034015 4738 034017 4740 034020 4742 034022 4743 034026 4744 034030 4746 034031 4748 034037 4750 034040 4752 034051 4754 034052 4756 034054 4758 034055 4760 034057 4762 034060 4764 034062 4766 034063 4768 034067 4769 034074 4771 034075 4773 034101 4774 034103 4776 034104 4778 034105 4779 034107 4781 034110 4783 034111 4784 034113 4786 034114 4788 034116 4790 034117 4792 034121 4793 034123 4795 034124 4797 034131 4799 034132 4801 034143 4803 034144 4805 034146 4806 034147 4807 034154 4809 034155 4811 034157 4813 034160 4815 034162 4817 034163 4819 034167 4820 034174 4822 034175 4824 034201 4825 034203 4827 034204 4829 034205 4830 034207 4832 034210 4834 034212 4836 034213 4838 034215 4839 034217 4840 034223 4841 034225 4842 034227 4844 034230 4846 034236 4847 034240 4848 034246 4849 034252 4850 034260 4851 034264 4852 034267 4854 034270 4856 034301 4858 034302 4860 034306 4861 034313 4863 034314 4865 034315 4866 034321 4867 034352 4868 034354 4870 034355 4872 034366 4874 034367 4876 034371 4878 034372 4880 034422 4882 034423 4894 034424 4896 034425 4898 034434 4899 034440 4900 034444 4901 034451 4902 034453 4904 034454 4906 034456 4907 034461 4908 034465 4909 034470 4910 034500 4911 034542 4912 034544 4913 034550 4914 034552 4916 034553 4918 034555 4919 034556 4920 034560 4922 034561 4924 034577 4925 034602 4927 034603 4929 034621 4930 034625 4931 034627 4933 034630 4935 034632 4937 034633 4939 034637 4940 034641 4942 034642 4944 034644 4946 034645 4948 034651 4949 034653 4951 034654 4953 034660 4954 034662 4956 034663 4958 034667 4959 034671 4961 034672 4963 034705 4964 034707 4966 034710 4968 034712 4970 034713 4972 034714 4973 034720 4974 034724 4975 034731 4976 034733 4978 034734 4980 034735 4981 034740 4982 034745 4983 034751 4984 034764 4986 034773 4987 035001 4988 035011 4989 035020 4990 035022 4992 035024 4993 035026 4994 035040 4995 035041 4996 035047 4998 035053 4999 035054 5000 035063 5001 035073 5002 035100 5003 035107 5004 035110 5005 035113 5007 035114 5009 035120 5010 035122 5012 035123 5014 035127 5015 035131 5017 035132 5019 035134 5021 035135 5023 035136 5024 035140 5026 035141 5028 035142 5029 035143 5030 035162 5031 035166 5032 035210 5033 035214 5034 035216 5036 035217 5038 035221 5039 035222 5040 035224 5042 035225 5044 035231 5045 035233 5047 035234 5049 035240 5050 035242 5052 035243 5054 035245 5056 035246 5058 035252 5059 035254 5060 035256 5062 035257 5064 035261 5066 035262 5068 035267 5069 035303 5070 035307 5072 035310 5074 035314 5075 035315 5076 035317 5078 035320 5080 035324 5081 035326 5083 035327 5085 035331 5087 035332 5089 035335 5090 035340 5091 035342 5092 035344 5093 035346 5095 035347 5097 035351 5099 035352 5101 035356 5102 035360 5104 035361 5106 035365 5107 035367 5109 035370 5111 035374 5112 035376 5114 035377 5116 035401 5118 035402 5120 035404 5122 035405 5124 035407 5126 035410 5128 035414 5129 035416 5131 035417 5133 035421 5135 035422 5137 035424 5139 035425 5141 035427 5143 035430 5145 035432 5147 035433 5149 035435 5151 035436 5153 035441 5155 035442 5157 035446 5158 035451 5159 035453 5160 035461 5161 035471 5162 035477 5163 035502 5164 035504 5165 035532 5167 035534 5168 035550 5169 035554 5170 035563 5171 035564 5172 035575 5173 035607 5174 035611 5175 035613 5176 035615 5177 035643 5178 035644 5179 035645 5180 035673 5181 035674 5182 035675 5184 035676 5186 035702 5187 035704 5189 035705 5191 035706 5192 035712 5193 035714 5195 035715 5197 035717 5199 035720 5201 035727 5202 035733 5203 035735 5205 035736 5207 035740 5208 035741 5209 035743 5211 035744 5213 035745 5214 035754 5215 035760 5216 035764 5217 035766 5219 035767 5221 035771 5223 035772 5225 035776 5226 036000 5228 036001 5230 036005 5231 036007 5233 036010 5235 036012 5237 036013 5239 036014 5240 036027 5241 036033 5242 036037 5243 036040 5244 036042 5246 036043 5248 036045 5249 036046 5251 036047 5253 036051 5255 036052 5257 036054 5259 036055 5261 036057 5263 036060 5265 036062 5267 036063 5269 036065 5271 036066 5273 036070 5274 036074 5275 036101 5276 036103 5278 036104 5280 036110 5281 036112 5283 036113 5285 036114 5286 036116 5288 036117 5290 036120 5292 036121 5294 036125 5295 036126 5296 036132 5297 036134 5299 036135 5301 036141 5302 036143 5304 036144 5306 036146 5307 036150 5309 036151 5311 036155 5312 036156 5313 036162 5314 036164 5316 036165 5318 036167 5319 036171 5321 036172 5323 036176 5324 036200 5326 036201 5328 036203 5330 036204 5332 036210 5333 036213 5334 036216 5335 036220 5336 036224 5338 036225 5339 036227 5340 036233 5341 036234 5342 036235 5343 036240 5345 036241 5346 036243 5348 036244 5350 036246 5351 036250 5353 036251 5355 036253 5357 036254 5359 036260 5360 036262 5362 036263 5364 036271 5365 036275 5367 036276 5369 036300 5370 036301 5372 036302 5374 036304 5376 036305 5378 036311 5379 036313 5381 036314 5383 036316 5385 036317 5387 036321 5389 036322 5391 036324 5393 036325 5395 036327 5397 036330 5399 036331 5400 036335 5401 036342 5402 036344 5404 036345 5406 036352 5407 036354 5408 036356 5410 036357 5412 036363 5413 036365 5415 036366 5417 036370 5419 036371 5421 036373 5423 036374 5425 036376 5426 036402 5427 036404 5429 036405 5431 036410 5432 036414 5433 036416 5435 036417 5437 036422 5438 036426 5439 036430 5441 036431 5443 036433 5444 036435 5446 036436 5448 036437 5449 036443 5450 036450 5451 036452 5453 036453 5455 036457 5456 036464 5457 036466 5458 036470 5460 036471 5462 036473 5463 036475 5465 036476 5467 036501 5468 036505 5469 036507 5471 036510 5473 036513 5474 036517 5475 036521 5477 036522 5479 036524 5480 036526 5482 036527 5484 036533 5485 036535 5487 036536 5489 036540 5491 036541 5493 036542 5494 036545 5495 036547 5497 036550 5499 036554 5500 036560 5501 036564 5502 036571 5503 036573 5505 036574 5507 036600 5508 036613 5509 036615 5511 036616 5513 036622 5514 036627 5515 036631 5517 036632 5519 036636 5520 036640 5521 036642 5523 036643 5525 036645 5526 036647 5528 036650 5530 036654 5532 036655 5534 036661 5535 036666 5536 036670 5538 036671 5540 036675 5541 036677 5543 036700 5545 036707 5546 036725 5547 036727 5548 036746 5549 036767 5550 037036 5552 037041 5553 037045 5554 037047 5556 037050 5558 037054 5559 037102 5560 037111 5561 037113 5563 037114 5565 037116 5566 037120 5568 037121 5570 037125 5571 037134 5572 037140 5573 037144 5574 037146 5575 037152 5576 037154 5577 037162 5578 037165 5579 037171 5580 037173 5581 037177 5582 037201 5583 037205 5584 037211 5585 037214 5586 037216 5587 037220 5588 037222 5589 037224 5590 037226 5591 037230 5592 037241 5593 037242 5594 037244 5595 037247 5596 037251 5598 037252 5600 037254 5601 037255 5602 037257 5604 037260 5606 037263 5607 037277 5608 037303 5609 037305 5611 037306 5613 037310 5614 037311 5615 037313 5617 037314 5619 037316 5621 037317 5623 037321 5625 037322 5627 037326 5628 037327 5629 037332 5630 037336 5631 037343 5632 037345 5634 037346 5636 037350 5638 037351 5640 037354 5641 037356 5643 037357 5645 037361 5646 037364 5647 037366 5649 037367 5651 037371 5652 037372 5653 037374 5655 037375 5657 037401 5658 037406 5660 037407 5662 037411 5663 037415 5664 037422 5665 037424 5667 037425 5669 037427 5670 037433 5671 037440 5672 037442 5674 037443 5676 037445 5678 037446 5680 037452 5681 037454 5683 037455 5685 037461 5686 037465 5687 037472 5688 037474 5690 037475 5692 037501 5693 037503 5695 037504 5697 037506 5699 037507 5701 037511 5703 037512 5705 037514 5707 037515 5709 037517 5711 037520 5713 037524 5714 037531 5715 037533 5717 037534 5719 037535 5720 037547 5722 037557 5723 037563 5724 037564 5725 037566 5726 037567 5727 037572 5728 037610 5729 037615 5731 037620 5733 037621 5734 037624 5735 037625 5736 037635 5737 037637 5738 037641 5739 037645 5740 037655 5741 037665 5742 037667 5743 037675 5744 037676 5745 037707 5746 037721 5747 037723 5748 037725 5749 037727 5750 037730 5752 037731 5753 037746 5756 040015 5757 040024 5758 040031 5759 040036 5760 040042 5761 040150 5762 040153 5763 040157 5764 040161 5766 040162 5768 040163 5769 040165 5771 040166 5773 040172 5774 040175 5775 040177 5777 040200 5779 040204 5780 040206 5782 040207 5784 040211 5785 040212 5786 040216 5787 040220 5789 040221 5791 040225 5792 040231 5793 040233 5795 040234 5797 040236 5799 040237 5801 040243 5802 040247 5803 040251 5805 040252 5807 040254 5809 040255 5811 040261 5812 040265 5813 040267 5815 040270 5817 040272 5819 040273 5821 040275 5822 040277 5823 040301 5824 040303 5826 040304 5828 040310 5829 040312 5831 040313 5833 040315 5835 040316 5837 040320 5838 040321 5839 040332 5840 040336 5841 040346 5842 040350 5845 040352 5846 040355 5847 040357 5848 040360 5849 040370 5850 040374 5851 040406 5852 040410 5855 040412 5856 040415 5857 040417 5859 040420 5861 040423 5862 040427 5863 040431 5865 040432 5867 040434 5868 040435 5869 040437 5871 040440 5873 040442 5875 040443 5877 040445 5879 040446 5881 040447 5882 040455 5883 040461 5884 040466 5885 040470 5887 040471 5889 040474 5890 040475 5891 040477 5893 040500 5895 040501 5896 040514 5897 040517 5898 040520 5899 040524 5900 040526 5902 040527 5904 040531 5905 040532 5906 040534 5908 040535 5910 040541 5911 040542 5912 040555 5913 040561 5914 040563 5916 040564 5918 040574 5920 040575 5922 040601 5923 040603 5925 040604 5927 040606 5928 040607 5929 040611 5931 040612 5933 040616 5934 040654 5935 040660 5936 040662 5937 040666 5938 040670 5940 040671 5942 040675 5943 040710 5944 040714 5945 040716 5947 040717 5949 040723 5950 040736 5951 040744 5952 040750 5953 040752 5955 040753 5957 040757 5958 040760 5959 040764 5960 040771 5961 040773 5963 040774 5965 040776 5967 040777 5969 041003 5970 041016 5971 041024 5972 041030 5973 041032 5975 041033 5977 041037 5978 041041 5979 041045 5980 041047 5981 041053 5982 041055 5983 041061 5984 041063 5985 041067 5986 041071 5988 041072 5990 041076 5991 041120 5992 041127 5993 041133 5994 041135 5996 041136 5998 041142 5999 041167 6000 041176 6001 041202 6002 041204 6004 041205 6006 041211 6007 041214 6008 041220 6009 041222 6011 041223 6013 041250 6014 041254 6015 041256 6017 041257 6019 041301 6020 041305 6021 041307 6023 041310 6025 041314 6026 041341 6027 041345 6028 041351 6029 041353 6031 041354 6033 041360 6034 041402 6035 041406 6036 041412 6037 041414 6039 041415 6041 041421 6042 041446 6043 041451 6044 041455 6045 041457 6047 041460 6049 041464 6050 041467 6051 041473 6052 041475 6054 041476 6056 041502 6057 041505 6058 041511 6059 041513 6061 041514 6063 041520 6064 041522 6065 041526 6066 041530 6068 041531 6070 041535 6071 041562 6072 041564 6073 041570 6074 041572 6076 041573 6078 041577 6079 041601 6080 041605 6081 041607 6083 041610 6085 041614 6086 041641 6087 041643 6088 041647 6089 041651 6091 041652 6093 041656 6094 041700 6095 041702 6096 041706 6097 041710 6099 041711 6101 041715 6102 041717 6103 041723 6104 041725 6106 041726 6108 041732 6109 041757 6110 042006 6111 042013 6112 042015 6114 042016 6116 042022 6117 042047 6118 042052 6119 042056 6120 042060 6122 042061 6124 042065 6125 042104 6126 042106 6127 042107 6128 042111 6130 042112 6132 042116 6133 042121 6134 042125 6135 042127 6137 042130 6139 042134 6140 042161 6141 042167 6142 042173 6143 042175 6145 042176 6147 042202 6148 042205 6149 042211 6150 042213 6152 042214 6154 042216 6156 042217 6158 042221 6160 042222 6162 042224 6164 042225 6166 042227 6168 042230 6170 042232 6172 042233 6174 042235 6176 042236 6178 042240 6180 042241 6182 042243 6184 042244 6186 042246 6188 042247 6190 042251 6191 042252 6192 042254 6194 042255 6196 042257 6197 042260 6198 042262 6200 042263 6202 042267 6203 042302 6204 042306 6205 042310 6207 042311 6209 042316 6210 042322 6211 042324 6213 042325 6215 042330 6216 042334 6217 042336 6219 042337 6221 042341 6222 042342 6223 042344 6225 042345 6227 042360 6228 042364 6229 042366 6231 042367 6233 042373 6234 042375 6236 042376 6238 042400 6239 042401 6240 042403 6242 042404 6244 042410 6245 042423 6246 042427 6247 042431 6249 042432 6251 042437 6253 042440 6255 042444 6256 042447 6257 042452 6259 042453 6261 042457 6262 042461 6264 042462 6266 042464 6267 042465 6268 042467 6270 042470 6272 042474 6273 042507 6274 042513 6275 042515 6277 042516 6279 042523 6280 042527 6281 042531 6283 042532 6285 042534 6286 042535 6287 042537 6289 042540 6291 042544 6292 042552 6293 042554 6295 042555 6297 042557 6298 042560 6299 042562 6301 042563 6303 042566 6305 042567 6307 042570 6308 042573 6309 042576 6311 042577 6313 042612 6314 042616 6315 042620 6317 042621 6319 042642 6320 042646 6321 042650 6323 042651 6325 042664 6326 042670 6327 042672 6329 042673 6331 042676 6332 042677 6333 042703 6334 042707 6335 042714 6336 042716 6338 042717 6340 042736 6341 042742 6342 042744 6344 042745 6346 042747 6348 042750 6350 042754 6351 043002 6352 043005 6353 043007 6354 043011 6356 043012 6358 043014 6359 043016 6361 043017 6363 043021 6365 043022 6367 043023 6368 043025 6369 043027 6371 043030 6373 043033 6374 043035 6375 043040 6376 043042 6377 043045 6378 043047 6379 043056 6380 043061 6381 043064 6382 043065 6383 043071 6384 043073 6386 043074 6388 043076 6389 043077 6390 043101 6392 043102 6394 043106 6395 043110 6397 043111 6399 043115 6400 043117 6402 043120 6404 043124 6405 043130 6406 043140 6407 043142 6409 043143 6411 043145 6413 043146 6415 043151 6416 043155 6417 043157 6419 043160 6421 043162 6423 043163 6425 043172 6426 043201 6427 043204 6428 043206 6430 043207 6432 043211 6434 043212 6436 043214 6438 043215 6440 043221 6441 043230 6442 043232 6444 043233 6446 043235 6447 043240 6448 043242 6449 043247 6450 043251 6451 043254 6452 043260 6453 043271 6454 043274 6455 043276 6456 043304 6457 043305 6458 043307 6460 043310 6462 043312 6463 043324 6464 043331 6465 043334 6466 043336 6467 043346 6468 043353 6469 043363 6470 043371 6471 043373 6473 043374 6475 043431 6476 043466 6477 043523 6478 043532 6479 043535 6480 043540 6481 043542 6482 043544 6483 043553 6484 043555 6485 043557 6486 043561 6487 043563 6488 043565 6489 043567 6490 043571 6491 043573 6492 043575 6493 043577 6494 043600 6495 043601 6496 043603 6497 043605 6498 043607 6499 043612 6500 043615 6501 043617 6502 043620 6503 043622 6504 043624 6505 043625 6506 043630 6507 043633 6508 043637 6509 043644 6510 043646 6511 043653 6512 043655 6513 043657 6514 043660 6516 043661 6518 043665 6519 043671 6520 043673 6521 043677 6522 043701 6524 043702 6526 043706 6527 043722 6528 043726 6529 043730 6531 043731 6533 043735 6534 043750 6535 043762 6536 043766 6537 043770 6539 043771 6541 043775 6542 044001 6543 044006 6544 044010 6546 044011 6548 044015 6549 044030 6550 044042 6551 044050 6552 044054 6553 044056 6555 044057 6557 044063 6558 044077 6559 044103 6560 044117 6561 044123 6562 044137 6563 044143 6564 044157 6565 044163 6566 044165 6568 044166 6570 044172 6571 044205 6572 044211 6573 044213 6575 044214 6577 044220 6578 044226 6579 044241 6580 044244 6581 044250 6582 044252 6584 044253 6586 044257 6587 044270 6588 044274 6589 044276 6591 044277 6593 044300 6594 044304 6595 044310 6596 044315 6597 044317 6599 044320 6601 044324 6602 044326 6604 044327 6606 044333 6607 044335 6609 044336 6611 044342 6612 044354 6613 044356 6615 044357 6617 044363 6618 044376 6619 044400 6621 044401 6623 044405 6624 044414 6625 044420 6626 044422 6628 044423 6630 044427 6631 044436 6632 044442 6633 044444 6635 044445 6637 044451 6638 044460 6639 044464 6640 044466 6642 044467 6644 044473 6645 044507 6646 044513 6647 044515 6649 044516 6651 044522 6652 044536 6653 044542 6654 044544 6656 044545 6658 044551 6659 044565 6660 044571 6661 044573 6663 044574 6665 044600 6666 044614 6667 044620 6668 044622 6670 044623 6672 044627 6673 044643 6674 044647 6675 044651 6677 044652 6679 044656 6680 044672 6681 044676 6682 044700 6684 044701 6686 044705 6687 044721 6688 044725 6689 044727 6691 044730 6693 044734 6694 044746 6695 044752 6696 044754 6698 044755 6700 044761 6701 044770 6702 044774 6703 044776 6705 044777 6707 045001 6708 045005 6709 045011 6710 045016 6711 045020 6713 045021 6715 045025 6716 045027 6718 045030 6720 045032 6722 045033 6724 045035 6726 045036 6728 045042 6729 045047 6730 045051 6732 045052 6734 045053 6735 045056 6736 045057 6737 045070 6738 045100 6739 045102 6741 045104 6742 045110 6743 045112 6744 045122 6745 045130 6746 045134 6747 045137 6749 045142 6750 045143 6751 045153 6752 045160 6753 045162 6754 045175 6755 045206 6756 045210 6757 045217 6758 045244 6759 045246 6760 045251 6761 045253 6763 045256 6764 045273 6765 045275 6766 045300 6767 045302 6769 045305 6770 045310 6771 045317 6772 045321 6773 045325 6774 045327 6775 045334 6776 045336 6777 045345 6778 045351 6779 045352 6780 045356 6781 045404 6782 045410 6785 045411 6787 045413 6788 045415 6789 045417 6790 045431 6791 045443 6792 045446 6793 045460 6794 045462 6796 045463 6798 045467 6799 045477 6800 045514 6801 045520 6802 045522 6804 045523 6806 045527 6807 045564 6808 045567 6810 045570 6812 045574 6813 045634 6814 045641 6815 045643 6817 045644 6819 045650 6820 045652 6822 045653 6824 045655 6825 045656 6826 045660 6828 045661 6830 045665 6831 045677 6832 045701 6834 045702 6836 045704 6837 045705 6838 045707 6840 045710 6842 045712 6844 045713 6846 045715 6847 045724 6848 045734 6849 045736 6850 045744 6851 045750 6852 045751 6854 045752 6855 045757 6856 045763 6857 046005 6858 046016 6859 046021 6860 046025 6861 046027 6863 046030 6865 046032 6866 046034 6868 046035 6870 046041 6871 046043 6873 046044 6875 046046 6877 046047 6879 046053 6880 046055 6882 046056 6884 046060 6885 046061 6886 046063 6888 046064 6890 046067 6891 046073 6892 046075 6894 046076 6896 046100 6898 046101 6900 046102 6901 046107 6902 046110 6903 046126 6904 046133 6905 046135 6907 046136 6909 046140 6910 046141 6911 046143 6913 046144 6915 046150 6916 046152 6918 046153 6920 046157 6921 046164 6923 046165 6925 046171 6926 046173 6928 046174 6930 046176 6932 046177 6934 046203 6935 046205 6937 046206 6939 046210 6940 046211 6941 046213 6943 046214 6945 046220 6946 046222 6948 046223 6950 046225 6952 046226 6954 046263 6955 046267 6956 046271 6958 046272 6960 046274 6962 046275 6964 046301 6965 046332 6966 046336 6967 046340 6969 046341 6971 046343 6973 046344 6975 046350 6976 046352 6978 046353 6980 046355 6981 046356 6983 046357 6985 046365 6986 046375 6987 046402 6988 046405 6989 046407 6990 046411 6991 046413 6992 046415 6994 046416 6996 046422 6997 046425 6998 046430 6999 046432 7001 046433 7003 046435 7004 046436 7005 046440 7007 046441 7009 046457 7010 046463 7011 046465 7013 046466 7015 046470 7016 046471 7017 046473 7019 046474 7021 046500 7022 046502 7024 046503 7026 046505 7027 046506 7028 046510 7030 046511 7032 046514 7033 046517 7034 046520 7035 046522 7036 046524 7037 046527 7038 046533 7039 046540 7040 046542 7042 046543 7044 046544 7045 046546 7046 046550 7047 046561 7048 046562 7049 046564 7050 046566 7051 046570 7052 046577 7053 046600 7055 046603 7064 046604 7065 046606 7066 046607 7067 046616 7068 046622 7069 046631 7070 046632 7073 046634 7074 046637 7075 046641 7077 046642 7079 046656 7080 046662 7081 046664 7083 046665 7085 046671 7086 046673 7088 046674 7090 046700 7091 046702 7093 046703 7095 046705 7096 046706 7097 046710 7099 046711 7101 046715 7102 046755 7103 046762 7105 046763 7107 046767 7108 046772 7109 046775 7110 046777 7112 047000 7114 047002 7116 047003 7118 047007 7119 047011 7121 047012 7123 047014 7124 047015 7125 047017 7127 047020 7129 047023 7130 047025 7131 047031 7132 047035 7133 047042 7134 047044 7136 047045 7138 047047 7139 047050 7140 047052 7142 047053 7144 047063 7146 047064 7148 047070 7149 047072 7151 047073 7153 047077 7154 047101 7156 047102 7158 047104 12 36 047105 12 59 047107 12 60 047112 12 62 047211 12 63 047216 12 64 047240 12 66 047241 12 68 047242 12 70 047245 4884 047246 4886 047257 4887 047270 4888 047321 4889 047322 4890 047323 4891 047354 4892 047362 7056 047363 7057 047364 7058 047400 7059 047405 7060 047414 7061 047420 7063 047421 13 31 047422 13 36 047424 13 37 047426 13 38 047433 13 39 047435 13 40 047447 13 41 047451 13 42 047453 13 44 047463 13 45 047464 13 47 047477 13 48 047501 13 49 047504 13 51 047506 14 18 047507 14 23 047510 14 24 047515 14 25 047520 14 26 047525 14 27 047527 14 28 047531 14 29 047540 14 31 047550 14 32 047551 14 35 047552 14 36 047554 14 37 047556 14 38 047564 14 40 047574 14 41 047575 14 42 047576 14 47 047614 14 50 047617 14 52 047622 14 53 047623 14 55 047627 14 57 047632 14 58 047636 14 62 047643 14 64 047652 14 65 047655 14 67 047664 14 68 047667 14 70 047676 14 73 047705 15 139 047706 15 153 047710 15 154 047720 15 156 047727 15 158 047736 15 160 047737 15 161 047741 15 164 047754 15 166 047760 15 168 047762 15 172 050066 15 177 050215 16 18 050217 16 24 050220 16 25 050222 16 26 050225 16 27 050227 16 28 050236 16 29 050240 16 30 050245 16 31 050246 16 32 050247 16 35 050260 16 36 050264 16 39 050265 ----------------------------------------------------------- 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