COMPILATION LISTING OF SEGMENT mrpg_parse_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/14/84 0844.7 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 12 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 13 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 14 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 15 16 mrpg_parse_: proc (aifp, aife, atreeptr, acode); 17 dcl aifp ptr, /* pointer to input segment */ 18 aife fixed bin (24), /* length of input segment */ 19 atreeptr ptr, /* pointer to tree area */ 20 acode fixed bin (35); /* return code */ 21 22 ifp = aifp; 23 ife = aife; 24 area_ptr = atreeptr; 25 ifi = 1; 26 allocate tree in (space); 27 table.b, table.e = null (); 28 parm_pos.b, parm_pos.e = null (); 29 parm_key.b, parm_key.e = null (); 30 input.b, input.e = null (); 31 from = null (); 32 local.b, local.e = null (); 33 tree.report.b, tree.report.e = null (); 34 tree.input_check.b, tree.input_check.e = null (); 35 tree.parm_check.b, tree.parm_check.e = null (); 36 tree.rec_str = -2; 37 tree.res_siz = 500; 38 tree.phase0.b, tree.phase0.e = null (); 39 exec.b, exec.e = null (); 40 acode = 0; 41 linenumber = 0; 42 parenct = 0; 43 ifl = 0; 44 if (lino (1) ^= 0) 45 then db_sw = "0"b; 46 47 call mrpg_parse_; 48 atreeptr = tree_ptr; 49 return; 50 51 dbn: entry; db_sw = "1"b; return; 52 prn: entry; pr_sw = "1"b; return; 53 dmpn: entry; dmp_sw = "1"b; return; 54 dmpf: entry; dmp_sw = "0"b; return; 55 prf: entry; pr_sw = "0"b; return; 56 dbf: entry; db_sw = "0"b; return; 57 58 line: entry (line1, line2); 59 dcl (line1, line2) char (*); 60 dcl lino (2) fixed bin int static init (0, 0); 61 lino (1) = fixed (line1); 62 lino (2) = fixed (line2); 63 return; 64 65 66 dcl (pr_sw, dmp_sw) bit (1) int static init ("0"b); 67 dcl tptr ptr; 68 dcl parenct fixed bin; 69 dcl BOOL fixed bin int static init (1); 70 dcl CHAR fixed bin int static init (2); 71 dcl DEC fixed bin int static init (3); 72 dcl SET fixed bin int static init (4); 73 dcl TABLE fixed bin int static init (5); 74 dcl REP fixed bin int static init (6); 75 dcl DET fixed bin int static init (7); 76 dcl dt_s (0:7) char (12) int static init ( 77 "undefined", 78 "BOOLEAN", 79 "CHARACTER", 80 "DECIMAL", 81 "SET", 82 "TABLE", 83 "REPORT", 84 "DETAIL"); 85 dcl (hbound, index, lbound, max, min, null, string, substr, translate, unspec, verify) builtin; 86 87 dcl ifp ptr; 88 dcl ifile char (2000) based (ifp); 89 dcl ifilea (2000) char (1) based (ifp); 90 dcl ifi fixed bin (24); 91 dcl ifl fixed bin (24); 92 dcl ife fixed bin (24); 93 dcl linenumber fixed bin (24); 94 95 dcl mrpg_error_ entry options (variable); 96 dcl (mrpg_dump_, mrpg_dump_$list, mrpg_dump_$all) entry (ptr unal, fixed bin); 97 1 1 1 2 1 3 1 4 dcl fail_ct fixed bin init(0); 1 5 dcl db_sw bit (1) internal static init ("0"b); 1 6 1 7 mrpg_parse_: proc(); 1 8 1 9 /* Parser for tables created by LRK. */ 1 10 1 11 1 12 ps_max = 0; 1 13 dcl ps_max fixed bin int static; 1 14 report_sw = "0"b; 1 15 begin_ct = 0; 1 16 beginptr = null(); 1 17 sort_list.b, sort_list.e = null(); 1 18 hold_list.b, hold_list.e = null(); 1 19 depth = 0; 1 20 stmtlistptr = addr(tree.exec); 1 21 if_nest = 0; 1 22 hold_ct = 0; 1 23 1 24 current_state = 1; 1 25 1 26 nil_sym = -1; /* set nil_sym non-existant */ 1 27 1 28 ls_top, ps_top = 0; 1 29 la_put, la_get = 1; 1 30 1 31 err_ct = 0; 1 32 1 33 la_ct = 0; 1 34 1 35 /* The parsing loop. */ 1 36 NEXT: 1 37 if (current_state = 0) 1 38 then do; 1 39 done_parse: 1 40 /* call ioa_("ps_max = ^i",ps_max);*/ 1 41 return; 1 42 end; 1 43 current_table = current_state; 1 44 1 45 string(db_data) = ""; 1 46 db_data.state = current_state; 1 47 1 48 (subscriptrange): 1 49 TRY_AGAIN: 1 50 goto CASE (DPDA.v1(current_table)); 1 51 1 52 CASE (3): /* Shared look */ /* . . . */ 1 53 current_table = DPDA.v2(current_table); 1 54 CASE (1): /* Look. */ /* . . . */ 1 55 db_data.type = "LOOK"; 1 56 la_use = mod(la_get+la_need-1,-lbound(lstk,1))+1; 1 57 if (la_need = -lbound(lstk,1)) 1 58 then signal condition(lastk_ovflo); 1 59 dcl lastk_ovflo condition; 1 60 la_need = la_need + 1; 1 61 goto read_look; 1 62 1 63 CASE (10): /* Shared read */ /* . . . */ 1 64 current_table = DPDA.v2(current_table); 1 65 1 66 CASE (9): /* Read. */ /* . . . */ 1 67 1 68 db_data.type = "READ"; 1 69 db_data.sl = ls_top+1; 1 70 1 71 la_need = 1; 1 72 la_use = la_get; 1 73 goto read_look; 1 74 1 75 CASE (2): /* Stack and Shared read */ /* . . . */ 1 76 current_table = DPDA.v2(current_table); 1 77 1 78 CASE (0): /* Stack and Read. */ /* . . . */ 1 79 1 80 db_data.type = "READ"; 1 81 db_data.sl = ls_top+1; 1 82 db_data.flag = "*"; 1 83 1 84 la_need = 1; 1 85 la_use = la_get; 1 86 if (ps_top = hbound(parse_stack,1)) 1 87 then signal condition(pstk_ovflo); 1 88 dcl pstk_ovflo condition; 1 89 ps_top = ps_top+1; /* Top of parsing stack. */ 1 90 ps_max = max(ps_max,ps_top); 1 91 parse_stack (ps_top) = current_state; /* Stack the current state. */ 1 92 cur_lex_top (ps_top) = ls_top; /* save current lex top (for recovery) */ 1 93 read_look: 1 94 do while(la_ct < la_need); /* make sure enough symbols are available */ 1 95 call scanner (); 1 96 la_put = mod(la_put,-lbound(lstk,1))+1; 1 97 la_ct = la_ct + 1; 1 98 end; 1 99 test_symbol = lstk.symbol(-la_use); 1 100 1 101 m = 0; 1 102 do i = current_table+1 to current_table+DPDA.v2(current_table); 1 103 n = DPDA.v1(i); 1 104 if (n < 0) 1 105 then n,m = -n; 1 106 if (n = test_symbol) 1 107 then do; 1 108 next_state = DPDA.v2(i); 1 109 goto got_symbol; 1 110 end; 1 111 end; 1 112 1 113 1 114 if (test_symbol = nil_sym) /* if bad symbol was a generated one */ 1 115 then do; 1 116 la_get = mod(la_get,-lbound(lstk,1))+1; /* ...drop it and try again */ 1 117 la_ct = la_ct - 1; 1 118 goto read_look; 1 119 end; 1 120 1 121 1 122 if (m > 0) /* if marked symbol was in table, use it */ 1 123 then do; 1 124 next_state = DPDA.v2(m); 1 125 goto got_symbol; 1 126 end; 1 127 1 128 1 129 1 130 if (err_ct <= 4) /* max_recover * 2 */ 1 131 then do; 1 132 if local_recovered() 1 133 then do; 1 134 if (db_data.flag = "*") 1 135 then ps_top = ps_top - 1; 1 136 goto TRY_AGAIN; 1 137 end; 1 138 1 139 1 140 1 141 if skip_recovered() 1 142 then do; 1 143 call mrpg_error_(2,0,"^a",recov_msg); 1 144 goto NEXT; 1 145 end; 1 146 1 147 1 148 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output," ^4i ",current_state); 1 149 1 150 call mrpg_error_(2,(lstk(-la_use).line),"Parse failed, symbol ^a", geterm(test_symbol,(la_use))); 1 151 fail_ct = fail_ct + 1; 1 152 if (fail_ct > 5) 1 153 then call mrpg_error_(3,0,"Parse recovery terminated."); 1 154 call mrpg_error_(0,0,"Symbol being dropped."); 1 155 goto retry; 1 156 1 157 end; 1 158 1 159 1 160 got_symbol: 1 161 1 162 err_ct = max(err_ct-1,0); 1 163 1 164 1 165 if db_sw 1 166 then do; 1 167 if (next_state < 0) /* is this a look-ahead state? */ 1 168 then do; 1 169 db_data.type = "LK01"; 1 170 db_data.sl = 0; 1 171 db_look = la_need; 1 172 db_data.data = geterm(test_symbol,0);/* display only terminal "name" on look-ahead */ 1 173 db_data.flag = " "; 1 174 end; 1 175 else do; 1 176 db_data.data = getermc(test_symbol,la_get); /* display terminal "name" and data, if available */ 1 177 end; 1 178 call ioa_$ioa_switch_nnl(iox_$user_output,"^a^/",string(db_data)); 1 179 end; 1 180 1 181 current_state = next_state; 1 182 if (current_state < 0) then do; /* Transition is a look-ahead state. */ 1 183 current_state = -current_state; 1 184 end; 1 185 else do; 1 186 retry: 1 187 if (ls_top = hbound(lstk,1)) 1 188 then signal condition(lstk_ovflo); 1 189 dcl lstk_ovflo condition; 1 190 ls_top = ls_top + 1; 1 191 lstk(ls_top) = lstk(-la_get); 1 192 la_get = mod(la_get,-lbound(lstk,1)) + 1; 1 193 la_ct = la_ct - 1; 1 194 end; 1 195 goto NEXT; 1 196 1 197 CASE (4): /* Apply state. */ /* . . . */ 1 198 CASE (5): /* Apply single */ /* . . . */ 1 199 CASE (6): /* Apply Shared */ /* . . . */ 1 200 la_need = 1; 1 201 rulen = DPDA.v1(current_table+2); 1 202 altn = DPDA.v2(current_table+2); 1 203 1 204 if db_sw 1 205 then do; 1 206 db_data.type = "APLY"; 1 207 db_data.data = "("; 1 208 call ioa_$ioa_switch_nnl(iox_$user_output,"^a^i ^i)",string(db_data),rulen,altn); 1 209 end; 1 210 1 211 if (rulen ^= 0) 1 212 then substr(used,abs(rulen),1) = "1"b; 1 213 if (rulen > 0) then do; 1 214 call semantics (rulen,altn); 1 215 end; 1 216 1 217 if db_sw 1 218 then do; 1 219 t = ls_top - DPDA.v2(current_table+1); 1 220 call ioa_$ioa_switch_nnl(iox_$user_output," ^2i-^2a",t,substr(dt_s(lstk.datype(t)),1,2)); 1 221 call ioa_$ioa_switch_nnl(iox_$user_output,"^-pd=^i ld=^i(" 1 222 ,DPDA.v1(current_table+1),DPDA.v2(current_table+1)); 1 223 do t = ps_top to ps_top-DPDA.v1(current_table+1)+1 by -1; 1 224 call ioa_$ioa_switch_nnl(iox_$user_output," ^d",parse_stack (t)); 1 225 end; 1 226 call ioa_$ioa_switch_nnl(iox_$user_output,")^/"); 1 227 end; 1 228 /** Check for an apply of an empty production. 1 229* In this case the apply state number must be 1 230* pushed on the parse stack. (Reference 1 231* LaLonde, W. R.: An Efficient LALR Parser Generator. 1 232* Tech. Report CSRG-2, 1971, pp. 34-35.) **/ 1 233 if DPDA.v1 (current_state+1) = -1 then do; 1 234 if (ps_top = hbound (parse_stack, 1)) 1 235 then signal condition (pstk_ovflo); 1 236 parse_stack (ps_top+1) = current_state; 1 237 end; 1 238 1 239 ps_top = ps_top - DPDA.v1(current_table+1); /* Delete parse stack states. */ 1 240 ls_top = ls_top - DPDA.v2(current_table+1); /* delete lex stack states */ 1 241 if (DPDA.v1(current_state) = 5) 1 242 then do; 1 243 current_state = DPDA.v2(current_table+3); 1 244 goto NEXT; 1 245 end; 1 246 if (DPDA.v1(current_state) = 6) 1 247 then do; 1 248 current_table = DPDA.v2(current_table+3); 1 249 end; 1 250 do i = current_table+4 to current_table+DPDA.v2(current_table); 1 251 if (DPDA.v1 (i) = parse_stack(ps_top)) 1 252 then do; 1 253 current_state = DPDA.v2(i); 1 254 goto NEXT; 1 255 end; 1 256 end; 1 257 current_state = DPDA.v2(current_table+3); 1 258 goto NEXT; 1 259 1 260 1 261 1 262 skip_recovered: proc returns (bit (1)); 1 263 1 264 dcl (i,ii) fixed bin (24); 1 265 dcl (j,jj) fixed bin (24); 1 266 dcl c fixed bin (24); 1 267 dcl dec4 pic "---9"; 1 268 1 269 if (DPDA.v1 (DPDAsize+1) ^= 1) /* no skip table */ 1 270 then return ("0"b); 1 271 current_table = DPDAsize + 2; 1 272 dec4 = lstk (-la_get).line; 1 273 recov_msg = "LINE "; 1 274 recov_msg = recov_msg || dec4; 1 275 recov_msg = recov_msg || ". Unuseable token "; 1 276 recov_msg = recov_msg || geterm (test_symbol,la_get); 1 277 recov_msg = recov_msg || ". 1 278 Skipped to "; 1 279 nil_sym = DPDA.v1(current_table+1); 1 280 c = 1; 1 281 do while (c ^= 0); 1 282 if (la_ct = 0) then do; /* if look-ahead stack is empty, get a symbol */ 1 283 call scanner (); 1 284 la_put = mod(la_put,-lbound(lstk,1))+1; 1 285 la_ct = 1; 1 286 end; 1 287 c = lstk.symbol (-la_get); 1 288 do i = current_table+2 to current_table+DPDA.v2(current_table); 1 289 if (DPDA.v1 (i) = c) 1 290 then do; 1 291 jj = DPDA.v2(i); 1 292 do j = ps_top to 1 by -1; 1 293 do ii = jj+1 to jj + DPDA.v2(jj); 1 294 if (DPDA.v1(ii) = parse_stack (j)) 1 295 then do; 1 296 ps_top = j-1; 1 297 ls_top = cur_lex_top (j); 1 298 current_state = DPDA.v1(ii); 1 299 recov_msg = recov_msg || geterm (c,0); 1 300 recov_msg = recov_msg || " on line "; 1 301 dec4 = lstk (-la_get).line; 1 302 recov_msg = recov_msg || dec4; 1 303 /* generate a nil symbol into the look-ahead stack */ 1 304 lstk(-la_get).symlen = 0; 1 305 lstk(-la_get).symbol = nil_sym; 1 306 return ("1"b); 1 307 end; 1 308 end; 1 309 end; 1 310 end; 1 311 end; 1 312 la_get = mod(la_get,-lbound(lstk,1))+1; 1 313 la_ct = la_ct - 1; 1 314 end; 1 315 recov_msg = recov_msg || " EOI."; 1 316 current_state = 0; 1 317 return ("1"b); 1 318 end; 1 319 1 320 1 321 1 322 dcl (addr, mod, fixed) builtin; 1 323 dcl db_look pic "99" defined(db_data.type ) pos(3); 1 324 dcl 1 db_data, 1 325 2 flag char(1), /* * means stacked */ 1 326 2 state pic "zzz9", 1 327 2 fil1 char(1), 1 328 2 sl pic "zz", 1 329 2 fil2 char(1), 1 330 2 type char(6), 1 331 2 data char(100); 1 332 dcl DDop(-1:2) char(4)int static init("LOOK","FINI","READ","ERR"); 1 333 dcl ioa_$ioa_switch_nnl entry options(variable); 1 334 dcl iox_$user_output ptr ext static; 1 335 1 336 dcl 1 lstk(-8:200) 1 337 /* -8:-1 is the look-ahead stack (FIFO) */ 1 338 /* 1:200 is the lexical stack (LIFO) */ 1 339 , 2 symptr ptr /* pointer to symbol (must be valid) */ 1 340 ,2 symlen fixed bin (24) /* length of symbol (may be 0) */ 1 341 ,2 line fixed bin (24) /* line where symbol begins */ 1 342 ,2 symbol fixed bin (24) /* encoding of symbol */ 1 343 ,2 datype fixed bin /* 1-BOOL, 2-CHAR, 3-ARITH */ 1 344 ,2 node_ptr ptr 1 345 ,2 val fixed bin (24) 1 346 ,2 bchar fixed bin (24) 1 347 ,2 echar fixed bin (24); 1 348 dcl ls_top fixed bin(24); /* location of top of lexical stack */ 1 349 dcl cur_lex_top (200) fixed bin (24) aligned; /* current lex top stack (with parse_stack) */ 1 350 dcl parse_stack (200) fixed bin (24) aligned; /* parse stack */ 1 351 dcl altn fixed bin(24); /* APPLY alternative number */ 1 352 dcl current_state fixed bin (24); /* number of current state */ 1 353 dcl test_symbol fixed bin (24); /* encoding of current symbol */ 1 354 dcl current_table fixed bin (24); /* number of current table */ 1 355 dcl i fixed bin(24); /* temp */ 1 356 dcl la_ct fixed bin(24); /* number of terminals in look-ahead stack */ 1 357 dcl la_get fixed bin(24); /* location in look_ahead stack to get next symbol */ 1 358 dcl la_need fixed bin(24); /* number of look-ahead symbols needed */ 1 359 dcl la_put fixed bin(24); /* location in look_ahead stack to put next symbol */ 1 360 dcl la_use fixed bin(22); /* location in look-ahead stack to test with */ 1 361 1 362 dcl (m,n) fixed bin(24); 1 363 1 364 dcl next_state fixed bin(24); /* number of next state */ 1 365 dcl nil_sym fixed bin(24); 1 366 dcl ps_top fixed bin (24); /* location of top of parse stack */ 1 367 dcl recov_msg char(150)var; 1 368 dcl rulen fixed bin(24); /* APPLY rule number */ 1 369 dcl t fixed bin (24); 1 370 dcl ioa_ entry options(variable); 1 371 1 372 geterm: proc(idx,ids) returns(char(100)var); 1 373 1 374 dcl (idx,ids) fixed bin(24); 1 375 dcl temp char(100)var; 1 376 dcl i fixed bin; 1 377 dcl c_str char(20000)based; 1 378 1 379 temp = ""; 1 380 get_rest: 1 381 if (ids > 0) 1 382 then if (lstk(-ids).symlen > 0) 1 383 then do; 1 384 temp = temp || """"; 1 385 temp = temp || substr(lstk(-ids).symptr->c_str,1,min(50,lstk(-ids).symlen)); 1 386 temp = temp || """"; 1 387 i = lstk(-ids).symbol; 1 388 if (i < 24) | (i > 116) | ((i > 102) & (i < 109)) 1 389 then return (temp); 1 390 temp = temp || " (RESERVED WORD)"; 1 391 return(temp); 1 392 end; 1 393 if (idx = 0) 1 394 then temp = "--EOI--"; 1 395 else temp = substr(TC,TL.pt(idx),TL.ln(idx)); 1 396 return(temp); 1 397 1 398 getermc: entry(idx,ids)returns(char(100)var); 1 399 1 400 if (idx = 0) 1 401 then temp = "--EOI--"; 1 402 else temp = substr(TC,TL.pt(idx),TL.ln(idx)); 1 403 temp = temp || " "; 1 404 goto get_rest; 1 405 end; 1 406 1 407 dcl err_ct fixed bin(24); 1 408 1 409 1 410 1 411 local_recovered: proc returns(bit(1)); 1 412 1 413 /* 1 414*" this procedure implements the LRK local error recovery (using 1 415*" the DPDA table). This is done by using the current (bad) 1 416*" symbol and the next input symbol. All possible parses from 1 417*" this state are examined. These trial parses proceed until the 1 418*" next read state is encountered. The trial parses are true 1 419*" simulations of what can happen, apply states are chosen 1 420*" according to the simulated top of parse stack. 1 421* 1 422*" Given: 1 423*" B is the current symbol (bad) 1 424*" N is the next input symbol 1 425*" C is the current state 1 426*" R is a "next" read state 1 427*" These are the conditions which can exist. 1 428*" C( N ) R( B N ) -kind- 1 429*" 0 1 0 symbol leading to R is missing 1 430*" 0 0 1 B is a wrong symbol 1 431*" 1 1 0 B and N reversed in input 1 432*" 1 0 x B is an extra symbol in the input 1 433*" 0 0 0 recovery fails 1 434* 1 435*" The recovery tries to find a useable combination. If one 1 436*" exists, the search does not stop. If a second one is 1 437*" encountered, the search stops, a message is generated which 1 438*" says the choice is not unique, and then the first combination 1 439*" is used. 1 440**/ 1 441 1 442 dcl 1 sws, 1 443 2 CNf bit(1)unal, /* current state contains next symbol */ 1 444 2 RBNf bit(2)unal; /* next read matches bad or next symbol */ 1 445 dcl dupl bit(1); /* duplicate choice indicator */ 1 446 dcl transit fixed bin(24); /* found alternate symbol to use from current state */ 1 447 dcl la_next fixed bin(24); /* temporary "next" look-ahead position */ 1 448 dcl alt_symbol fixed bin(24); /* current alternate symbol */ 1 449 dcl cycle(4000) bit(1)unal; 1 450 dcl default_symbol char(14)int static init(""); 1 451 dcl next_symbol fixed bin(24); 1 452 dcl depth fixed bin(24); 1 453 dcl which fixed bin; 1 454 1 455 if (test_symbol < 0) 1 456 then do; 1 457 call mrpg_error_(3,(lstk(-la_get).line),"Negative terminal; cannot recover."); 1 458 return("0"b); 1 459 end; 1 460 do while(la_ct < 2); 1 461 call scanner (); 1 462 la_put = mod(la_put,-lbound(lstk,1)) + 1; 1 463 la_ct = la_ct + 1; 1 464 end; 1 465 la_next = mod(la_get,-lbound(lstk,1))+1; 1 466 next_symbol = lstk(-la_next).symbol; 1 467 dcl string builtin; 1 468 string(sws) = "0"b; 1 469 transit = 0; 1 470 dupl = "0"b; 1 471 depth = 0; 1 472 if db_sw then call dump_la; 1 473 do i = current_table+1 to current_table+DPDA.v2(current_table) while(^dupl); 1 474 alt_symbol = abs(DPDA.v1(i)); 1 475 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output,"#^4i ^4a ^i ^a^/", 1 476 current_state,DDop(sign(DPDA.v2(i))),alt_symbol,geterm(alt_symbol,0)); 1 477 if (next_symbol = alt_symbol) 1 478 then CNf = "1"b; 1 479 else CNf = "0"b; 1 480 string(cycle) = "0"b; 1 481 call next_term((ps_top),(DPDA.v2(i))); 1 482 end; 1 483 recov_msg = ""; 1 484 if (transit = 0) 1 485 then return("0"b); 1 486 which = -la_get; 1 487 goto case(fixed(string(sws))); 1 488 1 489 case(0): /* can't resolve it */ 1 490 return("0"b); 1 491 1 492 case(3): 1 493 case(7): /* cannot occur */ 1 494 signal condition(logic_error); 1 495 dcl logic_error condition; 1 496 1 497 case(1): /* B is wrong symbol */ 1 498 recov_msg = recov_msg || geterm(transit,0); 1 499 recov_msg = recov_msg || " used in place of erroneous "; 1 500 recov_msg = recov_msg || geterm(test_symbol,la_get); 1 501 la_next = la_get; 1 502 err_ct = err_ct + 2; 1 503 goto set_symbol; 1 504 1 505 case(2): /* symbol leading to R is missing */ 1 506 recov_msg = recov_msg || "Missing "; 1 507 recov_msg = recov_msg || geterm(transit,0); 1 508 recov_msg = recov_msg || " is assumed before "; 1 509 recov_msg = recov_msg || geterm(test_symbol,la_get); 1 510 la_next = mod(la_get-2,-lbound(lstk,1)) + 1; /* back up one in look-ahead stack */ 1 511 la_ct = la_ct + 1; 1 512 err_ct = err_ct + 2; 1 513 set_symbol: 1 514 lstk(-la_next).symptr = addr(default_symbol); 1 515 lstk(-la_next).symlen = length(default_symbol); 1 516 lstk(-la_next).line = lstk(-(mod(la_put-2,-lbound(lstk,1))+1)).line; 1 517 lstk(-la_next).symbol = transit; 1 518 la_get = la_next; 1 519 if (transit = 15) 1 520 then parenct = parenct - 1; 1 521 if (transit = 14) 1 522 then parenct = parenct + 1; 1 523 goto done; 1 524 1 525 case(4): 1 526 case(5): /* B is an extra symbol */ 1 527 recov_msg = recov_msg || "Extraneous "; 1 528 recov_msg = recov_msg || geterm(test_symbol,la_get); 1 529 recov_msg = recov_msg || " ignored before "; 1 530 recov_msg = recov_msg || geterm(next_symbol,la_next); 1 531 la_get = la_next; 1 532 la_ct = la_ct - 1; 1 533 err_ct = err_ct + 1; 1 534 goto done; 1 535 1 536 case(6): /* B and N reversed */ 1 537 recov_msg = recov_msg || geterm(test_symbol,la_get); 1 538 recov_msg = recov_msg || " and "; 1 539 recov_msg = recov_msg || geterm(next_symbol,la_next); 1 540 recov_msg = recov_msg || " are reversed."; 1 541 lstk(ls_top+1) = lstk(-la_get); 1 542 lstk(-la_get) = lstk(-la_next); 1 543 lstk(-la_next) = lstk(ls_top+1); 1 544 err_ct = err_ct + 2; 1 545 done: 1 546 call mrpg_error_(2,(lstk(which).line),"^a",recov_msg); 1 547 if db_sw then call dump_la; 1 548 return("1"b); /* recovery completed */ 1 549 1 550 1 551 dump_la: proc; 1 552 1 553 dcl ii fixed bin(24); 1 554 if db_sw then do; 1 555 ii = la_get; 1 556 do while (ii ^= la_put); 1 557 call ioa_$ioa_switch_nnl(iox_$user_output,"#la(-^i) ^3i""^a""^/", 1 558 ii, 1 559 lstk(-ii).symbol, 1 560 geterm(lstk(-ii).symbol,0)); 1 561 ii = mod(ii,-lbound(lstk,1))+1; 1 562 end; 1 563 end; 1 564 end; 1 565 1 566 next_term: proc(top,ns); 1 567 dcl top fixed bin(24), /* top of parse stack for this invocation */ 1 568 ns fixed bin(24); /* branch to follow */ 1 569 1 570 dcl ect fixed bin(24); 1 571 dcl cur_st fixed bin(24); /* current state for this recursion */ 1 572 dcl rep fixed bin(24); 1 573 dcl s fixed bin(24); 1 574 dcl look_ahead bit(1); 1 575 dcl i fixed bin(24); 1 576 1 577 if (ns = 0) 1 578 then return; 1 579 depth = depth + 5; 1 580 if (ns < 0) 1 581 then look_ahead = "1"b; 1 582 else look_ahead = "0"b; 1 583 NEXT: 1 584 ns = abs(ns); 1 585 cur_st = ns; 1 586 goto CASE(DPDA.v1(cur_st)); 1 587 1 588 CASE (2): /* Stack and Shared read */ /* . . . */ 1 589 CASE (3): /* Shared look */ /* . . . */ 1 590 CASE (10): /* Shared read */ /* . . . */ 1 591 cur_st = DPDA.v2(cur_st); 1 592 CASE (0): /* Stack and Read. */ /* . . . */ 1 593 CASE (1): /* Look. */ /* . . . */ 1 594 CASE (9): /* Read. */ /* . . . */ 1 595 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output,"#^vx^4i READ^/",depth,ns); 1 596 rep = 0; 1 597 do s = test_symbol, next_symbol while(^CNf); 1 598 rep = rep + 1; 1 599 do i = cur_st+1 to cur_st + DPDA.v2(cur_st) while(^dupl); 1 600 if look_ahead 1 601 then do; 1 602 if (DPDA.v1(i) = alt_symbol) 1 603 then call next_term((top),(DPDA.v2(i))); 1 604 end; 1 605 1 606 else if (DPDA.v1(i) < 0) 1 607 | (DPDA.v1(i) = s) 1 608 1 609 then do; 1 610 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output,"#^vx(^i)^i^/",depth,rep,s); 1 611 if (RBNf = "00"b) 1 612 then do; 1 613 transit = alt_symbol; 1 614 if (rep = 1) 1 615 then RBNf = "10"b; 1 616 else RBNf = "01"b; 1 617 end; 1 618 else dupl = "1"b; 1 619 end; 1 620 end; 1 621 end; 1 622 if CNf 1 623 then do; 1 624 if (RBNf = "00"b) 1 625 then do; 1 626 transit = alt_symbol; 1 627 RBNf = "01"b; 1 628 end; 1 629 else dupl = "1"b; 1 630 end; 1 631 depth = depth - 5; 1 632 return; 1 633 1 634 1 635 CASE (4): /* Apply state. */ /* . . . */ 1 636 CASE (5): /* Apply single */ /* . . . */ 1 637 CASE (6): /* Apply Shared */ /* . . . */ 1 638 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output,"#^vx^4i APLY^/",depth,ns); 1 639 top = top - DPDA.v1(cur_st+1); 1 640 if (DPDA.v1(cur_st) = 5) 1 641 then do; 1 642 ns = DPDA.v2(cur_st+3); 1 643 goto NEXT; 1 644 end; 1 645 else do; 1 646 if (DPDA.v1(cur_st) = 6) 1 647 then do; 1 648 cur_st = DPDA.v2(cur_st+3); 1 649 end; 1 650 do i = cur_st+4 to cur_st+DPDA.v2(cur_st); 1 651 if (DPDA.v1(i) = parse_stack(top)) 1 652 then do; 1 653 ns = DPDA.v2(i); 1 654 goto NEXT; 1 655 end; 1 656 end; 1 657 ns = DPDA.v2(cur_st+3); 1 658 goto NEXT; 1 659 end; 1 660 end; 1 661 end; 1 662 1 663 2 1 /* BEGIN INCLUDE FILE . . . mrpg_scan */ 2 2 2 3 dcl not_flag fixed bin init(0); 2 4 dcl min_paren fixed bin init(0); 2 5 2 6 scanner: proc; 2 7 2 8 dcl NL char(1)int static init(" 2 9 "); 2 10 dcl AN char(63)int static init("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_"); 2 11 dcl AZ char(26)int static init("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 2 12 dcl az char(26)int static init("abcdefghijklmnopqrstuvwxyz"); 2 13 dcl symt char(32); 2 14 dcl hold_symt char(32); 2 15 dcl hold_ifi fixed bin(24); 2 16 dcl hold_line fixed bin(24); 2 17 dcl (sym_len, hold_sym_len) fixed bin(24); 2 18 dcl ctype fixed bin(24); 2 19 dcl jj fixed bin(24); 2 20 2 21 if (not_flag > 0) 2 22 then not_flag = not_flag - 1; 2 23 get_more: 2 24 if (ifi>ifl) 2 25 then do; 2 26 if (ifi > ife) 2 27 then do; 2 28 lstk (-la_put).symbol = 0; 2 29 return; 2 30 end; 2 31 call get_line; 2 32 goto get_more; 2 33 end; 2 34 sym_len = verify(substr(ifile,ifi,ifl-ifi+1),AN) -1; 2 35 if (sym_len > 0) 2 36 then do; 2 37 symt = translate (substr(ifile,ifi,sym_len),AZ,az); 2 38 ctype = classify(fixed(unspec(substr(symt,1,1)))); 2 39 end; 2 40 else do; 2 41 symt = ""; 2 42 ctype = classify(fixed(unspec(substr(ifile,ifi,1)))); 2 43 sym_len = 1; 2 44 end; 2 45 lstk (-la_put).symptr = addr(ifilea(ifi)); 2 46 lstk (-la_put).symlen = sym_len; 2 47 lstk (-la_put).line = linenumber; 2 48 lstk (-la_put).node_ptr = null(); 2 49 lstk (-la_put).bchar = ifi; 2 50 lstk (-la_put).datype = 0; 2 51 call typer; 2 52 lstk (-la_put).echar = ifi - 1; 2 53 return; 2 54 2 55 typer: proc; 2 56 2 57 goto type(ctype); 2 58 2 59 type( 0): /* invalid character */ 2 60 call mrpg_error_ (1, linenumber, "Invalid character ""^a"" ignored", substr(ifile, ifi, 1)); 2 61 2 62 type( 1): /* control characters */ 2 63 ifi=ifi+1; 2 64 goto get_more; 2 65 2 66 type( 2): /* symbol */ 2 67 symbol: 2 68 if (sym_len > 1) 2 69 then do; 2 70 Ch2 = substr (ifile, lstk (-la_put).bchar, 2); 2 71 if (substr (Ch2, 2, 1) = "_") 2 72 then if (index (AZ, substr (Ch2, 1, 1)) ^= 0) 2 73 then call mrpg_error_ (3, lstk.line (-la_put), "Symbol may not begin with ""^a""", Ch2); 2 74 dcl Ch2 char(2); 2 75 end; 2 76 lstk (-la_put).symlen = sym_len; 2 77 ifi = ifi + sym_len; 2 78 lstk (-la_put).echar = ifi - 1; 2 79 lstk (-la_put).symbol = 103 ; 2 80 call st_search (substr (ifile, lstk (-la_put).bchar, lstk (-la_put).symlen), tptr, "ID", 0, 0); 2 81 lstk (-la_put).node_ptr = tptr; 2 82 tptr = tptr->symref.sym->symtab.use.b; 2 83 if (tptr = null()) /* Neither defined nor referenced. */ 2 84 then lstk (-la_put).datype = 0; 2 85 else if (tptr->datum.type = "RP") 2 86 then lstk.datype(-la_put) = REP; 2 87 else if (tptr->datum.type = "DT") 2 88 then lstk.datype(-la_put) = DET; 2 89 else if (index("*PM*IN*DC*",tptr->datum.type) = 0) 2 90 then lstk (-la_put).datype = 0; /* Referenced, but not defined. */ 2 91 else do; 2 92 jj = tptr->datum.kind; 2 93 if (jj = DecSpec) 2 94 then jj = Decimal; 2 95 if (jj = Bool) 2 96 then lstk (-la_put).datype=BOOL; 2 97 else if (jj = Decimal) 2 98 then lstk (-la_put).datype = DEC; 2 99 else if (jj = Table) 2 100 then do; 2 101 lstk.datype(-la_put) = TABLE; 2 102 jj = Char; 2 103 end; 2 104 else if (jj = Tablev) 2 105 then do; 2 106 lstk.datype(-la_put) = TABLE; 2 107 jj = Chard; 2 108 end; 2 109 else if (jj = Tabled) 2 110 then do; 2 111 lstk.datype(-la_put) = TABLE; 2 112 jj = Decimal; 2 113 end; 2 114 else if (jj = Set) 2 115 then do; 2 116 lstk.datype(-la_put) = SET; 2 117 jj = Bool; 2 118 end; 2 119 else do; 2 120 lstk.datype(-la_put) = CHAR; 2 121 if (jj ^= Char) 2 122 then jj = Chard; 2 123 end; 2 124 lstk.node_ptr(-la_put)->symref.kind = jj; 2 125 if db_sw then call ioa_("^a ^a ^a ^a", 2 126 tptr->datum.type, 2 127 kind_char(tptr->datum.kind), 2 128 dt_s(lstk.datype(-la_put)), 2 129 tptr->datum.sym->symref.sym->symtab.data); 2 130 end; 2 131 return; 2 132 type( 3): /* number */ 2 133 number: 2 134 lstk (-la_put).symlen, jj = verify (substr (ifile, ifi, 32), "0123456789.") - 1; 2 135 if (jj < sym_len) 2 136 then do; 2 137 call mrpg_error_ (2, lstk.line(-la_put), "Invalid number ""^a"". Initial digits will be assumed as a number.", 2 138 substr(ifile,ifi,sym_len)); 2 139 end; 2 140 else if (index (after (substr (ifile, ifi, jj), "."), ".") ^= 0) 2 141 then do; 2 142 call mrpg_error_ (2, lstk.line (-la_put), "Invalid number ""^a""", substr (ifile, ifi, jj)); 2 143 end; 2 144 ifi = ifi + jj; 2 145 lstk (-la_put).echar = ifi - 1; 2 146 lstk (-la_put).symbol = 104 ; 2 147 lstk (-la_put).datype = DEC; 2 148 call st_search(substr(ifile,lstk (-la_put).bchar,lstk (-la_put).symlen),tptr,"NU",0,0); 2 149 tptr->symref.kind = Decimal; 2 150 lstk (-la_put).node_ptr = tptr; 2 151 lstk.val(-la_put) = fixed(symtab.data,24); 2 152 return; 2 153 type( 4): /* string */ 2 154 dcl sbl fixed bin(24); 2 155 sbl=ifi; 2 156 ifi=ifi+1; 2 157 try_again: 2 158 jj = index(substr(ifile,ifi,ifl-ifi+1),""""); 2 159 if (jj = 0) 2 160 then do; 2 161 ifi = ifl+1; 2 162 if (ifi > ife) 2 163 then do; 2 164 call mrpg_error_(3,lstk.line(-la_put),"Unterminated quoted string."); 2 165 end; 2 166 call get_line; 2 167 goto try_again; 2 168 end; 2 169 ifi=ifi+jj; 2 170 if(substr(ifile,ifi,1)="""") 2 171 then do; 2 172 ifi=ifi+1; 2 173 goto try_again; 2 174 end; 2 175 lstk (-la_put).symlen=ifi-sbl; 2 176 lstk (-la_put).echar = ifi - 1; 2 177 lstk (-la_put).symbol = 105 ; 2 178 lstk (-la_put).datype = CHAR; 2 179 call st_search(substr(ifile,lstk (-la_put).bchar,lstk (-la_put).symlen),tptr,"ST",0,0); 2 180 tptr->symref.kind = Char; 2 181 lstk (-la_put).node_ptr = tptr; 2 182 return; 2 183 2 184 type( 5): /* % */ 2 185 /* if (translate(substr(ifile,ifi,7),AZ,az)="%ABSENT") then do; 2 186* ifi = ifi + 7; 2 187* lstk (-la_put).symlen = 7; 2 188* lstk (-la_put).symbol = 1 ; 2 189* return; 2 190* end; 2 191* else*/ if (translate(substr(ifile,ifi,4),AZ,az)="%DAY") then do; 2 192 ifi = ifi + 4; 2 193 lstk (-la_put).symlen = 4; 2 194 lstk (-la_put).symbol = 2 ; 2 195 call st_search("I_DAY",tptr,"ID",Chard,12); 2 196 tree.day = "1"b; 2 197 lstk (-la_put).node_ptr = tptr; 2 198 lstk (-la_put).datype = 2; 2 199 return; 2 200 end; 2 201 /* else if (translate(substr(ifile,ifi,4),AZ,az)="%FIT") then do; 2 202* ifi = ifi + 4; 2 203* lstk (-la_put).symlen = 4; 2 204* lstk (-la_put).symbol = 3 ; 2 205* return; 2 206* end;*/ 2 207 else if (translate(substr(ifile,ifi,7),AZ,az)="%HHMMSS") then do; 2 208 ifi = ifi + 7; 2 209 lstk (-la_put).symlen = 7; 2 210 lstk (-la_put).symbol = 4 ; 2 211 call st_search("I_HHMMSS",tptr,"ID",Char,8); 2 212 tree.hhmmss = "1"b; 2 213 lstk (-la_put).node_ptr = tptr; 2 214 lstk (-la_put).datype = 2; 2 215 return; 2 216 end; 2 217 else if (translate(substr(ifile,ifi,6),AZ,az)="%LEVEL") then do; 2 218 ifi = ifi + 6; 2 219 lstk (-la_put).symlen = 6; 2 220 lstk (-la_put).symbol = 5 ; 2 221 return; 2 222 end; 2 223 else if (translate(substr(ifile,ifi,7),AZ,az)="%MMDDYY") then do; 2 224 ifi = ifi + 7; 2 225 lstk (-la_put).symlen = 7; 2 226 lstk (-la_put).symbol = 6 ; 2 227 call st_search("I_MMDDYY",tptr,"ID",Char,8); 2 228 tree.mmddyy = "1"b; 2 229 lstk (-la_put).node_ptr = tptr; 2 230 lstk (-la_put).datype = 2; 2 231 return; 2 232 end; 2 233 else if (translate(substr(ifile,ifi,6),AZ,az)="%MONTH") then do; 2 234 ifi = ifi + 6; 2 235 lstk (-la_put).symlen = 6; 2 236 lstk (-la_put).symbol = 7 ; 2 237 call st_search("I_MONTH",tptr,"ID",Chard,12); 2 238 tree.month = "1"b; 2 239 lstk (-la_put).node_ptr = tptr; 2 240 lstk (-la_put).datype = 2; 2 241 return; 2 242 end; 2 243 else if (translate(substr(ifile,ifi,11),AZ,az)="%PAGENUMBER") then do; 2 244 ifi = ifi + 11; 2 245 lstk (-la_put).symlen = 11; 2 246 lstk (-la_put).symbol = 8 ; 2 247 return; 2 248 end; 2 249 /* else if (translate(substr(ifile,ifi,8),AZ,az)="%PRESENT") then do; 2 250* ifi = ifi + 8; 2 251* lstk (-la_put).symlen = 8; 2 252* lstk (-la_put).symbol = 9 ; 2 253* return; 2 254* end;*/ 2 255 else if (translate(substr(ifile,ifi,7),AZ,az)="%REPEAT") then do; 2 256 ifi = ifi + 7; 2 257 lstk (-la_put).symlen = 7; 2 258 lstk (-la_put).symbol = 10 ; 2 259 return; 2 260 end; 2 261 else if (translate(substr(ifile,ifi,6),AZ,az)="%ROMAN") then do; 2 262 ifi = ifi + 6; 2 263 lstk (-la_put).symlen = 6; 2 264 lstk (-la_put).symbol = 11 ; 2 265 return; 2 266 end; 2 267 else if (translate(substr(ifile,ifi,7),AZ,az)="%SUBSTR") then do; 2 268 ifi = ifi + 7; 2 269 lstk (-la_put).symlen = 7; 2 270 lstk (-la_put).symbol = 12 ; 2 271 return; 2 272 end; 2 273 else if (translate(substr(ifile,ifi,6),AZ,az)="%YYDDD") then do; 2 274 ifi = ifi + 6; 2 275 lstk (-la_put).symlen = 6; 2 276 lstk (-la_put).symbol = 13 ; 2 277 call st_search("I_YYDDD",tptr,"ID",Char,5); 2 278 tree.yyddd = "1"b; 2 279 lstk (-la_put).node_ptr = tptr; 2 280 lstk (-la_put).datype = 2; 2 281 return; 2 282 end; 2 283 goto error; 2 284 2 285 type( 6): /* & */ 2 286 do; 2 287 ifi = ifi + 1; 2 288 lstk (-la_put).symbol = 25 ; 2 289 return; 2 290 end; 2 291 goto error; 2 292 2 293 type( 7): /* ( */ 2 294 do; 2 295 parenct = parenct + 1; 2 296 ifi = ifi + 1; 2 297 lstk (-la_put).symbol = 14 ; 2 298 return; 2 299 end; 2 300 goto error; 2 301 2 302 type( 8): /* ) */ 2 303 do; 2 304 parenct = parenct - 1; 2 305 ifi = ifi + 1; 2 306 lstk (-la_put).symbol = 15 ; 2 307 return; 2 308 end; 2 309 goto error; 2 310 2 311 type( 9): /* * */ 2 312 do; 2 313 ifi = ifi + 1; 2 314 lstk (-la_put).symbol = 16 ; 2 315 return; 2 316 end; 2 317 goto error; 2 318 2 319 type( 10): /* + */ 2 320 do; 2 321 ifi = ifi + 1; 2 322 lstk (-la_put).symbol = 17 ; 2 323 return; 2 324 end; 2 325 goto error; 2 326 2 327 type( 11): /* , */ 2 328 hold_ifi = ifi; 2 329 hold_line = linenumber; 2 330 ifi = ifi + 1; 2 331 if (parenct = 0) 2 332 then if skip() 2 333 then do; 2 334 call digit_test; 2 335 if (substr(symt,1,1)="2") then do; 2 336 ifi = ifi + 1; 2 337 lstk (-la_put).symbol = 106 ; 2 338 lstk (-la_put).symlen = ifi - hold_ifi; 2 339 return; 2 340 end; 2 341 else if (substr(symt,1,1)="3") then do; 2 342 ifi = ifi + 1; 2 343 lstk (-la_put).symbol = 107 ; 2 344 lstk (-la_put).symlen = ifi - hold_ifi; 2 345 return; 2 346 end; 2 347 else if (substr(symt,1,1)="4") then do; 2 348 ifi = ifi + 1; 2 349 lstk (-la_put).symbol = 108 ; 2 350 lstk (-la_put).symlen = ifi - hold_ifi; 2 351 return; 2 352 end; 2 353 end; 2 354 ifi = hold_ifi; 2 355 linenumber = hold_line; 2 356 ifi = ifi + 1; 2 357 lstk (-la_put).symbol = 18 ; 2 358 return; 2 359 2 360 type( 12): /* - */ 2 361 if (substr(ifile,ifi,2)="->") then do; 2 362 ifi = ifi + 2; 2 363 lstk (-la_put).symlen = 2; 2 364 lstk (-la_put).symbol = 20 ; 2 365 return; 2 366 end; 2 367 else do; 2 368 ifi = ifi + 1; 2 369 lstk (-la_put).symbol = 19 ; 2 370 return; 2 371 end; 2 372 goto error; 2 373 2 374 type( 13): /* / */ 2 375 if (substr(ifile,ifi,2) = "/*") then do; 2 376 call comment; 2 377 goto get_more; 2 378 end; 2 379 do; 2 380 ifi = ifi + 1; 2 381 lstk (-la_put).symbol = 21 ; 2 382 return; 2 383 end; 2 384 goto error; 2 385 2 386 type( 14): /* : */ 2 387 if (substr(ifile,ifi,2)=":=") then do; 2 388 ifi = ifi + 2; 2 389 lstk (-la_put).symlen = 2; 2 390 lstk (-la_put).symbol = 22 ; 2 391 return; 2 392 end; 2 393 goto error; 2 394 2 395 type( 15): /* ; */ 2 396 if (parenct > min_paren) 2 397 then do; 2 398 parenct = parenct - 1; 2 399 lstk(-la_put).symbol = 15; 2 400 call mrpg_error_(2, lstk.line(-la_put), "Missing "")"" supplied before "";""."); 2 401 return; 2 402 end; 2 403 do; 2 404 ifi = ifi + 1; 2 405 lstk (-la_put).symbol = 23 ; 2 406 return; 2 407 end; 2 408 goto error; 2 409 2 410 type( 16): /* < */ 2 411 if (substr(ifile,ifi,2)="<=") then do; 2 412 ifi = ifi + 2; 2 413 lstk (-la_put).symlen = 2; 2 414 lstk (-la_put).symbol = 67 ; 2 415 return; 2 416 end; 2 417 else do; 2 418 ifi = ifi + 1; 2 419 lstk (-la_put).symbol = 71 ; 2 420 return; 2 421 end; 2 422 goto error; 2 423 2 424 type( 17): /* = */ 2 425 do; 2 426 ifi = ifi + 1; 2 427 lstk (-la_put).symbol = 51 ; 2 428 return; 2 429 end; 2 430 goto error; 2 431 2 432 type( 18): /* > */ 2 433 if (substr(ifile,ifi,2)=">=") then do; 2 434 ifi = ifi + 2; 2 435 lstk (-la_put).symlen = 2; 2 436 lstk (-la_put).symbol = 59 ; 2 437 return; 2 438 end; 2 439 else do; 2 440 ifi = ifi + 1; 2 441 lstk (-la_put).symbol = 60 ; 2 442 return; 2 443 end; 2 444 goto error; 2 445 2 446 type( 19): /* A */ 2 447 if (symt="ASCENDING") then do; 2 448 ifi = ifi + sym_len; 2 449 lstk (-la_put).symbol = 26 ; 2 450 lstk (-la_put).symlen = sym_len; 2 451 return; 2 452 end; 2 453 else if (symt="ASC") then do; 2 454 ifi = ifi + sym_len; 2 455 lstk (-la_put).symbol = 26 ; 2 456 lstk (-la_put).symlen = sym_len; 2 457 return; 2 458 end; 2 459 else if (symt="ALIGN") then do; 2 460 ifi = ifi + sym_len; 2 461 lstk (-la_put).symbol = 24 ; 2 462 lstk (-la_put).symlen = sym_len; 2 463 return; 2 464 end; 2 465 else if (symt="AND") then do; 2 466 ifi = ifi + sym_len; 2 467 lstk (-la_put).symbol = 25 ; 2 468 lstk (-la_put).symlen = sym_len; 2 469 return; 2 470 end; 2 471 else if (symt="ATTACH") then do; 2 472 ifi = ifi + sym_len; 2 473 lstk (-la_put).symbol = 27 ; 2 474 lstk (-la_put).symlen = sym_len; 2 475 return; 2 476 end; 2 477 goto symbol; 2 478 2 479 type( 20): /* B */ 2 480 if (symt="BEGINS") then do; 2 481 ifi = ifi + sym_len; 2 482 lstk (-la_put).symbol = 29 ; 2 483 lstk (-la_put).symlen = sym_len; 2 484 return; 2 485 end; 2 486 else if (symt="BEGIN") then do; 2 487 if (not_flag = 0) 2 488 then do; 2 489 if (parenct > 0) 2 490 then do; 2 491 parenct = parenct - 1; 2 492 lstk(-la_put).symbol = 15; 2 493 call mrpg_error_(2, lstk.line(-la_put), "Missing "")"" supplied before ""BEGIN""."); 2 494 return; 2 495 end; 2 496 if (if_nest > 0) 2 497 then do; 2 498 lstk.symbol(-la_put) = 117; /* FI; */ 2 499 call mrpg_error_(2, lstk.line(-la_put), "Missing ""FI;"" supplied before ""BEGIN""."); 2 500 return; 2 501 end; 2 502 end; 2 503 ifi = ifi + sym_len; 2 504 lstk (-la_put).symbol = 28 ; 2 505 lstk (-la_put).symlen = sym_len; 2 506 return; 2 507 end; 2 508 else if (symt="BOOLEAN") then do; 2 509 ifi = ifi + sym_len; 2 510 lstk (-la_put).symbol = 56 ; 2 511 lstk (-la_put).symlen = sym_len; 2 512 return; 2 513 end; 2 514 else if (symt="BOOL") then do; 2 515 ifi = ifi + sym_len; 2 516 lstk (-la_put).symbol = 56 ; 2 517 lstk (-la_put).symlen = sym_len; 2 518 return; 2 519 end; 2 520 else if (symt="BREAK") then do; 2 521 ifi = ifi + sym_len; 2 522 lstk (-la_put).symbol = 31 ; 2 523 lstk (-la_put).symlen = sym_len; 2 524 return; 2 525 end; 2 526 else if (symt="BSP") then do; 2 527 ifi = ifi + sym_len; 2 528 lstk (-la_put).symbol = 109; 2 529 lstk (-la_put).symlen = sym_len; 2 530 return; 2 531 end; 2 532 goto symbol; 2 533 2 534 type( 21): /* C */ 2 535 if (symt="CENTER") then do; 2 536 ifi = ifi + sym_len; 2 537 lstk (-la_put).symbol = 32 ; 2 538 lstk (-la_put).symlen = sym_len; 2 539 return; 2 540 end; 2 541 else if (symt="CHARACTER") then do; 2 542 ifi = ifi + sym_len; 2 543 lstk (-la_put).symbol = 33 ; 2 544 lstk (-la_put).symlen = sym_len; 2 545 return; 2 546 end; 2 547 else if (symt="CHAR") then do; 2 548 ifi = ifi + sym_len; 2 549 lstk (-la_put).symbol = 33 ; 2 550 lstk (-la_put).symlen = sym_len; 2 551 return; 2 552 end; 2 553 else if (symt="COLUMN") then do; 2 554 ifi = ifi + sym_len; 2 555 lstk (-la_put).symbol = 34 ; 2 556 lstk (-la_put).symlen = sym_len; 2 557 return; 2 558 end; 2 559 else if (symt="COL") then do; 2 560 ifi = ifi + sym_len; 2 561 lstk (-la_put).symbol = 34 ; 2 562 lstk (-la_put).symlen = sym_len; 2 563 return; 2 564 end; 2 565 else if (symt="CONCATENATE") then do; 2 566 ifi = ifi + sym_len; 2 567 lstk (-la_put).symbol = 35 ; 2 568 lstk (-la_put).symlen = sym_len; 2 569 return; 2 570 end; 2 571 else if (symt="CONTAINS") then do; 2 572 ifi = ifi + sym_len; 2 573 lstk (-la_put).symbol = 37 ; 2 574 lstk (-la_put).symlen = sym_len; 2 575 return; 2 576 end; 2 577 else if (symt="CONTAIN") then do; 2 578 ifi = ifi + sym_len; 2 579 lstk (-la_put).symbol = 36 ; 2 580 lstk (-la_put).symlen = sym_len; 2 581 return; 2 582 end; 2 583 goto symbol; 2 584 2 585 type( 22): /* D */ 2 586 if (symt="DCL") 2 587 | (symt="DECLARE") then do; 2 588 hold_ifi = ifi; 2 589 hold_line = linenumber; 2 590 hold_symt = symt; 2 591 hold_sym_len = sym_len; 2 592 ifi = ifi + sym_len; 2 593 if skip() 2 594 then do; 2 595 call digit_test; 2 596 if (substr(symt,1,1) = "1") 2 597 then do; 2 598 ifi = ifi + 1; 2 599 lstk (-la_put).symbol = 39 ; 2 600 lstk (-la_put).symlen = ifi-hold_ifi; 2 601 return; 2 602 end; 2 603 end; 2 604 ifi = hold_ifi; 2 605 linenumber = hold_line; 2 606 symt = hold_symt; 2 607 sym_len = hold_sym_len; 2 608 ifi = ifi + sym_len; 2 609 lstk (-la_put).symbol = 38 ; 2 610 lstk (-la_put).symlen = sym_len; 2 611 return; 2 612 end; 2 613 else if (symt="DECIMAL") 2 614 | (symt = "DEC") then do; 2 615 ifi = ifi + sym_len; 2 616 lstk (-la_put).symbol = 30 ; 2 617 lstk (-la_put).symlen = sym_len; 2 618 return; 2 619 end; 2 620 else if (symt="DEFAULT") then do; 2 621 ifi = ifi + sym_len; 2 622 lstk (-la_put).symbol = 40 ; 2 623 lstk (-la_put).symlen = sym_len; 2 624 return; 2 625 end; 2 626 else if (symt="DEFINE") then do; 2 627 hold_ifi = ifi; 2 628 hold_line = linenumber; 2 629 hold_symt = symt; 2 630 hold_sym_len = sym_len; 2 631 ifi = ifi + sym_len; 2 632 if skip() 2 633 then do; 2 634 call digit_test; 2 635 if (substr(symt,1,1) = "1") 2 636 then do; 2 637 ifi = ifi + 1; 2 638 lstk (-la_put).symbol = 41 ; 2 639 lstk (-la_put).symlen = ifi-hold_ifi; 2 640 return; 2 641 end; 2 642 end; 2 643 ifi = hold_ifi; 2 644 linenumber = hold_line; 2 645 symt = hold_symt; 2 646 sym_len = hold_sym_len; 2 647 goto symbol; 2 648 end; 2 649 else if (symt="DELIMITED") then do; 2 650 ifi = ifi + sym_len; 2 651 lstk (-la_put).symbol = 42 ; 2 652 lstk (-la_put).symlen = sym_len; 2 653 return; 2 654 end; 2 655 else if (symt="DESCENDING") then do; 2 656 ifi = ifi + sym_len; 2 657 lstk (-la_put).symbol = 43 ; 2 658 lstk (-la_put).symlen = sym_len; 2 659 return; 2 660 end; 2 661 else if (symt="DESC") then do; 2 662 ifi = ifi + sym_len; 2 663 lstk (-la_put).symbol = 43 ; 2 664 lstk (-la_put).symlen = sym_len; 2 665 return; 2 666 end; 2 667 else if (symt="DETAILFOOT") then do; 2 668 ifi = ifi + sym_len; 2 669 lstk (-la_put).symbol = 45 ; 2 670 lstk (-la_put).symlen = sym_len; 2 671 return; 2 672 end; 2 673 else if (symt="DETAILHEAD") then do; 2 674 ifi = ifi + sym_len; 2 675 lstk (-la_put).symbol = 46 ; 2 676 lstk (-la_put).symlen = sym_len; 2 677 return; 2 678 end; 2 679 else if (symt="DETAIL") then do; 2 680 ifi = ifi + sym_len; 2 681 lstk (-la_put).symbol = 44 ; 2 682 lstk (-la_put).symlen = sym_len; 2 683 return; 2 684 end; 2 685 else if (symt="DUPLICATE") then do; 2 686 ifi = ifi + sym_len; 2 687 lstk (-la_put).symbol = 47 ; 2 688 lstk (-la_put).symlen = sym_len; 2 689 return; 2 690 end; 2 691 else if (symt="DUPL") then do; 2 692 ifi = ifi + sym_len; 2 693 lstk (-la_put).symbol = 47 ; 2 694 lstk (-la_put).symlen = sym_len; 2 695 return; 2 696 end; 2 697 goto symbol; 2 698 2 699 type( 23): /* E */ 2 700 if (symt="EDIT") then do; 2 701 ifi = ifi + sym_len; 2 702 lstk (-la_put).symbol = 48 ; 2 703 lstk (-la_put).symlen = sym_len; 2 704 return; 2 705 end; 2 706 else if (symt="ENDS") then do; 2 707 ifi = ifi + sym_len; 2 708 lstk (-la_put).symbol = 50 ; 2 709 lstk (-la_put).symlen = sym_len; 2 710 return; 2 711 end; 2 712 else if (symt="END") then do; 2 713 if (not_flag = 0) 2 714 then do; 2 715 if (parenct > 0) 2 716 then do; 2 717 parenct = parenct - 1; 2 718 lstk(-la_put).symbol = 15; 2 719 call mrpg_error_(2, lstk.line(-la_put), "Missing "")"" supplied before ""END""."); 2 720 return; 2 721 end; 2 722 if (if_nest > 0) 2 723 then do; 2 724 lstk.symbol(-la_put) = 117; /* FI; */ 2 725 call mrpg_error_(2, lstk.line(-la_put), "Missing ""FI;"" supplied before ""END""."); 2 726 return; 2 727 end; 2 728 end; 2 729 ifi = ifi + sym_len; 2 730 lstk (-la_put).symbol = 49 ; 2 731 lstk (-la_put).symlen = sym_len; 2 732 return; 2 733 end; 2 734 else if (symt="ELSE") then do; 2 735 if (parenct > 0) 2 736 then do; 2 737 parenct = parenct - 1; 2 738 lstk(-la_put).symbol = 15; 2 739 call mrpg_error_(2, lstk.line(-la_put), "Missing "")"" supplied before ""ELSE""."); 2 740 return; 2 741 end; 2 742 ifi = ifi + sym_len; 2 743 lstk (-la_put).symbol = 115 ; 2 744 lstk (-la_put).symlen = sym_len; 2 745 return; 2 746 end; 2 747 else if (symt="EQ") then do; 2 748 ifi = ifi + sym_len; 2 749 lstk (-la_put).symbol = 51 ; 2 750 lstk (-la_put).symlen = sym_len; 2 751 return; 2 752 end; 2 753 goto symbol; 2 754 2 755 type( 24): /* F */ 2 756 if (symt="FALSE") then do; 2 757 ifi = ifi + sym_len; 2 758 call st_search("""0""b",tptr,"ST",0,0); 2 759 lstk (-la_put).node_ptr = tptr; 2 760 lstk (-la_put).symbol = 52 ; 2 761 lstk (-la_put).symlen = sym_len; 2 762 return; 2 763 end; 2 764 else if (symt="FILE") then do; 2 765 ifi = ifi + sym_len; 2 766 lstk (-la_put).symbol = 53 ; 2 767 lstk (-la_put).symlen = sym_len; 2 768 return; 2 769 end; 2 770 /**/ else if (symt="FILL") then do; 2 771 ifi = ifi + sym_len; 2 772 lstk (-la_put).symbol = 54 ; 2 773 lstk (-la_put).symlen = sym_len; 2 774 return; 2 775 end;/**/ 2 776 /* else if (symt="FIT") then do; 2 777* ifi = ifi + sym_len; 2 778* lstk (-la_put).symbol = 55 ; 2 779* lstk (-la_put).symlen = sym_len; 2 780* return; 2 781* end;*/ 2 782 else if (symt="FI") then do; 2 783 if (parenct > 0) 2 784 then do; 2 785 parenct = parenct - 1; 2 786 lstk(-la_put).symbol = 15; 2 787 call mrpg_error_(2, lstk.line(-la_put), "Missing "")"" supplied before ""FI""."); 2 788 return; 2 789 end; 2 790 ifi = ifi + sym_len; 2 791 lstk (-la_put).symbol = 116 ; 2 792 lstk (-la_put).symlen = sym_len; 2 793 return; 2 794 end; 2 795 /* else if (symt="FOLD") then do; 2 796* ifi = ifi + sym_len; 2 797* lstk (-la_put).symbol = 58 ; 2 798* lstk (-la_put).symlen = sym_len; 2 799* return; 2 800* end;*/ 2 801 goto symbol; 2 802 2 803 type( 25): /* G */ 2 804 if (symt="GE") then do; 2 805 ifi = ifi + sym_len; 2 806 lstk (-la_put).symbol = 59 ; 2 807 lstk (-la_put).symlen = sym_len; 2 808 return; 2 809 end; 2 810 else if (symt="GT") then do; 2 811 ifi = ifi + sym_len; 2 812 lstk (-la_put).symbol = 60 ; 2 813 lstk (-la_put).symlen = sym_len; 2 814 return; 2 815 end; 2 816 goto symbol; 2 817 2 818 type( 26): /* H */ 2 819 if (symt="HOLD") then do; 2 820 ifi = ifi + sym_len; 2 821 lstk (-la_put).symbol = 61 ; 2 822 lstk (-la_put).symlen = sym_len; 2 823 return; 2 824 end; 2 825 goto symbol; 2 826 2 827 type( 27): /* I */ 2 828 if (symt="IF") then do; 2 829 ifi = ifi + sym_len; 2 830 lstk (-la_put).symbol = 62 ; 2 831 lstk (-la_put).symlen = sym_len; 2 832 return; 2 833 end; 2 834 else if (symt="INPUT") then do; 2 835 ifi = ifi + sym_len; 2 836 lstk (-la_put).symbol = 64 ; 2 837 lstk (-la_put).symlen = sym_len; 2 838 return; 2 839 end; 2 840 else if (symt="IN") then do; 2 841 ifi = ifi + sym_len; 2 842 lstk (-la_put).symbol = 63 ; 2 843 lstk (-la_put).symlen = sym_len; 2 844 return; 2 845 end; 2 846 goto symbol; 2 847 2 848 type( 28): /* J */ 2 849 2 850 type( 29): /* K */ 2 851 if (symt="KEY") then do; 2 852 ifi = ifi + sym_len; 2 853 lstk (-la_put).symbol = 66 ; 2 854 lstk (-la_put).symlen = sym_len; 2 855 return; 2 856 end; 2 857 goto symbol; 2 858 2 859 type( 30): /* L */ 2 860 if (symt="LEFT") then do; 2 861 ifi = ifi + sym_len; 2 862 lstk (-la_put).symbol = 68 ; 2 863 lstk (-la_put).symlen = sym_len; 2 864 return; 2 865 end; 2 866 else if (symt="LET") then do; 2 867 ifi = ifi + sym_len; 2 868 lstk (-la_put).symbol = 69 ; 2 869 lstk (-la_put).symlen = sym_len; 2 870 return; 2 871 end; 2 872 else if (symt="LE") then do; 2 873 ifi = ifi + sym_len; 2 874 lstk (-la_put).symbol = 67 ; 2 875 lstk (-la_put).symlen = sym_len; 2 876 return; 2 877 end; 2 878 else if (symt="LINE") then do; 2 879 ifi = ifi + sym_len; 2 880 lstk (-la_put).symbol = 70 ; 2 881 lstk (-la_put).symlen = sym_len; 2 882 return; 2 883 end; 2 884 else if (symt="LT") then do; 2 885 ifi = ifi + sym_len; 2 886 lstk (-la_put).symbol = 71 ; 2 887 lstk (-la_put).symlen = sym_len; 2 888 return; 2 889 end; 2 890 goto symbol; 2 891 2 892 type( 31): /* M */ 2 893 if (symt="MAXLINE") then do; 2 894 ifi = ifi + sym_len; 2 895 lstk (-la_put).symbol = 72 ; 2 896 lstk (-la_put).symlen = sym_len; 2 897 return; 2 898 end; 2 899 else if (symt="MAXL") then do; 2 900 ifi = ifi + sym_len; 2 901 lstk (-la_put).symbol = 72 ; 2 902 lstk (-la_put).symlen = sym_len; 2 903 return; 2 904 end; 2 905 else if (symt="MINLINE") then do; 2 906 ifi = ifi + sym_len; 2 907 lstk (-la_put).symbol = 73 ; 2 908 lstk (-la_put).symlen = sym_len; 2 909 return; 2 910 end; 2 911 else if (symt="MINL") then do; 2 912 ifi = ifi + sym_len; 2 913 lstk (-la_put).symbol = 73 ; 2 914 lstk (-la_put).symlen = sym_len; 2 915 return; 2 916 end; 2 917 goto symbol; 2 918 2 919 type( 32): /* N */ 2 920 if (symt="NE") then do; 2 921 ifi = ifi + sym_len; 2 922 lstk (-la_put).symbol = 74 ; 2 923 lstk (-la_put).symlen = sym_len; 2 924 return; 2 925 end; 2 926 else if (symt="NOT") then do; 2 927 not_flag = 2; 2 928 ifi = ifi + sym_len; 2 929 lstk (-la_put).symbol = 76 ; 2 930 lstk (-la_put).symlen = sym_len; 2 931 return; 2 932 end; 2 933 else if (symt="NO") then do; 2 934 ifi = ifi + sym_len; 2 935 lstk (-la_put).symbol = 75 ; 2 936 lstk (-la_put).symlen = sym_len; 2 937 return; 2 938 end; 2 939 else if (symt="NUMBER") then do; 2 940 ifi = ifi + sym_len; 2 941 lstk (-la_put).symbol = 77 ; 2 942 lstk (-la_put).symlen = sym_len; 2 943 return; 2 944 end; 2 945 goto symbol; 2 946 2 947 type( 33): /* O */ 2 948 if (symt="ON") then do; 2 949 ifi = ifi + sym_len; 2 950 lstk (-la_put).symbol = 78 ; 2 951 lstk (-la_put).symlen = sym_len; 2 952 return; 2 953 end; 2 954 else if (symt="OPTIONAL") then do; 2 955 ifi = ifi + sym_len; 2 956 lstk (-la_put).symbol = 79 ; 2 957 lstk (-la_put).symlen = sym_len; 2 958 return; 2 959 end; 2 960 else if (symt="OR") then do; 2 961 ifi = ifi + sym_len; 2 962 lstk (-la_put).symbol = 80 ; 2 963 lstk (-la_put).symlen = sym_len; 2 964 return; 2 965 end; 2 966 goto symbol; 2 967 2 968 type( 34): /* P */ 2 969 if (symt="PAGEFOOT") then do; 2 970 ifi = ifi + sym_len; 2 971 lstk (-la_put).symbol = 81 ; 2 972 lstk (-la_put).symlen = sym_len; 2 973 return; 2 974 end; 2 975 else if (symt="PAGEHEAD") then do; 2 976 ifi = ifi + sym_len; 2 977 lstk (-la_put).symbol = 82 ; 2 978 lstk (-la_put).symlen = sym_len; 2 979 return; 2 980 end; 2 981 else if (symt="PAGELENGTH") then do; 2 982 ifi = ifi + sym_len; 2 983 lstk (-la_put).symbol = 83 ; 2 984 lstk (-la_put).symlen = sym_len; 2 985 return; 2 986 end; 2 987 else if (symt="PAGEWIDTH") then do; 2 988 ifi = ifi + sym_len; 2 989 lstk (-la_put).symbol = 84 ; 2 990 lstk (-la_put).symlen = sym_len; 2 991 return; 2 992 end; 2 993 else if (symt="PARAMETER") then do; 2 994 ifi = ifi + sym_len; 2 995 lstk (-la_put).symbol = 85 ; 2 996 lstk (-la_put).symlen = sym_len; 2 997 return; 2 998 end; 2 999 else if (symt="PARM") then do; 2 1000 ifi = ifi + sym_len; 2 1001 lstk (-la_put).symbol = 85 ; 2 1002 lstk (-la_put).symlen = sym_len; 2 1003 return; 2 1004 end; 2 1005 else if (symt="PAUSE") then do; 2 1006 ifi = ifi + sym_len; 2 1007 lstk (-la_put).symbol = 65 ; 2 1008 lstk (-la_put).symlen = sym_len; 2 1009 return; 2 1010 end; 2 1011 else if (symt="PGL") then do; 2 1012 ifi = ifi + sym_len; 2 1013 lstk (-la_put).symbol = 83 ; 2 1014 lstk (-la_put).symlen = sym_len; 2 1015 return; 2 1016 end; 2 1017 else if (symt="PGW") then do; 2 1018 ifi = ifi + sym_len; 2 1019 lstk (-la_put).symbol = 84 ; 2 1020 lstk (-la_put).symlen = sym_len; 2 1021 return; 2 1022 end; 2 1023 else if (symt="PICTURE") then do; 2 1024 ifi = ifi + sym_len; 2 1025 lstk (-la_put).symbol = 86 ; 2 1026 lstk (-la_put).symlen = sym_len; 2 1027 return; 2 1028 end; 2 1029 else if (symt="PIC") then do; 2 1030 ifi = ifi + sym_len; 2 1031 lstk (-la_put).symbol = 86 ; 2 1032 lstk (-la_put).symlen = sym_len; 2 1033 return; 2 1034 end; 2 1035 else if (symt="POSITION") then do; 2 1036 ifi = ifi + sym_len; 2 1037 lstk (-la_put).symbol = 87 ; 2 1038 lstk (-la_put).symlen = sym_len; 2 1039 return; 2 1040 end; 2 1041 else if (symt="PRINT") then do; 2 1042 ifi = ifi + sym_len; 2 1043 lstk (-la_put).symbol = 88 ; 2 1044 lstk (-la_put).symlen = sym_len; 2 1045 return; 2 1046 end; 2 1047 goto symbol; 2 1048 2 1049 type( 35): /* R */ 2 1050 if (symt="RECORD") then do; 2 1051 ifi = ifi + sym_len; 2 1052 lstk (-la_put).symbol = 89 ; 2 1053 lstk (-la_put).symlen = sym_len; 2 1054 return; 2 1055 end; 2 1056 else if (symt="REPORTFOOT") then do; 2 1057 ifi = ifi + sym_len; 2 1058 lstk (-la_put).symbol = 91 ; 2 1059 lstk (-la_put).symlen = sym_len; 2 1060 return; 2 1061 end; 2 1062 else if (symt="REPORTHEAD") then do; 2 1063 ifi = ifi + sym_len; 2 1064 lstk (-la_put).symbol = 92 ; 2 1065 lstk (-la_put).symlen = sym_len; 2 1066 return; 2 1067 end; 2 1068 else if (symt="REPORT") then do; 2 1069 ifi = ifi + sym_len; 2 1070 lstk (-la_put).symbol = 90 ; 2 1071 lstk (-la_put).symlen = sym_len; 2 1072 return; 2 1073 end; 2 1074 else if (symt="RETURNS") then do; 2 1075 ifi = ifi + sym_len; 2 1076 lstk (-la_put).symbol = 93 ; 2 1077 lstk (-la_put).symlen = sym_len; 2 1078 return; 2 1079 end; 2 1080 else if (symt="RIGHT") then do; 2 1081 ifi = ifi + sym_len; 2 1082 lstk (-la_put).symbol = 94 ; 2 1083 lstk (-la_put).symlen = sym_len; 2 1084 return; 2 1085 end; 2 1086 goto symbol; 2 1087 2 1088 type( 36): /* S */ 2 1089 if (symt="SORT") then do; 2 1090 ifi = ifi + sym_len; 2 1091 lstk (-la_put).symbol = 95 ; 2 1092 lstk (-la_put).symlen = sym_len; 2 1093 return; 2 1094 end; 2 1095 /* else if (symt="SKIP") then do; 2 1096* ifi = ifi + sym_len; 2 1097* lstk (-la_put).symbol = 112; 2 1098* lstk (-la_put).symlen =sym_len; 2 1099* return; 2 1100* end;*/ 2 1101 /* else if (symt="STOP") then do; 2 1102* ifi = ifi + sym_len; 2 1103* lstk (-la_put).symbol = 111; 2 1104* lstk (-la_put).symlen =sym_len; 2 1105* return; 2 1106* end;*/ 2 1107 else if (symt="SET") then do; 2 1108 ifi = ifi + sym_len; 2 1109 lstk (-la_put).symbol = 113; 2 1110 lstk (-la_put).symlen =sym_len; 2 1111 return; 2 1112 end; 2 1113 else if (symt="SPECIAL") 2 1114 | (symt="SPEC") then do; 2 1115 ifi = ifi + sym_len; 2 1116 lstk (-la_put).symbol = 110 ; 2 1117 lstk (-la_put).symlen = sym_len; 2 1118 return; 2 1119 end; 2 1120 else if (symt="STREAM") then do; 2 1121 ifi = ifi + sym_len; 2 1122 lstk (-la_put).symbol = 96 ; 2 1123 lstk (-la_put).symlen = sym_len; 2 1124 return; 2 1125 end; 2 1126 else if (symt="SWITCH") then do; 2 1127 ifi = ifi + sym_len; 2 1128 lstk (-la_put).symbol = 97 ; 2 1129 lstk (-la_put).symlen = sym_len; 2 1130 return; 2 1131 end; 2 1132 goto symbol; 2 1133 2 1134 type( 37): /* T */ 2 1135 if (symt="TABLE") then do; 2 1136 ifi = ifi + sym_len; 2 1137 lstk (-la_put).symbol = 98 ; 2 1138 lstk (-la_put).symlen = sym_len; 2 1139 return; 2 1140 end; 2 1141 else if (symt="TRANSFORM") then do; 2 1142 ifi = ifi + sym_len; 2 1143 lstk (-la_put).symbol = 99 ; 2 1144 lstk (-la_put).symlen = sym_len; 2 1145 return; 2 1146 end; 2 1147 else if (symt="TRAN") then do; 2 1148 ifi = ifi + sym_len; 2 1149 lstk (-la_put).symbol = 99 ; 2 1150 lstk (-la_put).symlen = sym_len; 2 1151 return; 2 1152 end; 2 1153 else if (symt="TRUE") then do; 2 1154 ifi = ifi + sym_len; 2 1155 call st_search("""1""b",tptr,"ST",0,0); 2 1156 lstk (-la_put).node_ptr = tptr; 2 1157 lstk (-la_put).symbol = 100 ; 2 1158 lstk (-la_put).symlen = sym_len; 2 1159 return; 2 1160 end; 2 1161 else if (symt="THEN") then do; 2 1162 if (parenct > 0) 2 1163 then do; 2 1164 parenct = parenct - 1; 2 1165 lstk(-la_put).symbol = 15; 2 1166 call mrpg_error_(2, lstk.line(-la_put), "Missing "")"" supplied before ""THEN""."); 2 1167 return; 2 1168 end; 2 1169 ifi = ifi + sym_len; 2 1170 lstk (-la_put).symbol = 114 ; 2 1171 lstk (-la_put).symlen = sym_len; 2 1172 return; 2 1173 end; 2 1174 goto symbol; 2 1175 2 1176 type( 38): /* V */ 2 1177 if (symt="VARYING") then do; 2 1178 ifi = ifi + sym_len; 2 1179 lstk (-la_put).symbol = 101 ; 2 1180 lstk (-la_put).symlen = sym_len; 2 1181 return; 2 1182 end; 2 1183 else if (symt="VAR") then do; 2 1184 ifi = ifi + sym_len; 2 1185 lstk (-la_put).symbol = 101 ; 2 1186 lstk (-la_put).symlen = sym_len; 2 1187 return; 2 1188 end; 2 1189 goto symbol; 2 1190 2 1191 type( 39): /* W */ 2 1192 if (symt="WORD") then do; 2 1193 ifi = ifi + sym_len; 2 1194 lstk (-la_put).symbol = 102 ; 2 1195 lstk (-la_put).symlen = sym_len; 2 1196 return; 2 1197 end; 2 1198 goto symbol; 2 1199 2 1200 type( 40): /* ^ */ 2 1201 if (substr(ifile,ifi,2)="^=") then do; 2 1202 ifi = ifi + 2; 2 1203 lstk (-la_put).symlen = 2; 2 1204 lstk (-la_put).symbol = 74 ; 2 1205 return; 2 1206 end; 2 1207 else do; 2 1208 ifi = ifi + 1; 2 1209 lstk (-la_put).symbol = 76 ; 2 1210 return; 2 1211 end; 2 1212 goto error; 2 1213 2 1214 type( 41): /* | */ 2 1215 if (substr(ifile,ifi,2)="||") then do; 2 1216 ifi = ifi + 2; 2 1217 lstk (-la_put).symlen = 2; 2 1218 lstk (-la_put).symbol = 35 ; 2 1219 return; 2 1220 end; 2 1221 else do; 2 1222 ifi = ifi + 1; 2 1223 lstk (-la_put).symbol = 80 ; 2 1224 return; 2 1225 end; 2 1226 2 1227 error: 2 1228 call mrpg_error_(2,linenumber,"Unrecognized token ""^a"".",substr(ifile,ifi,max(1,sym_len))); 2 1229 ifi = ifi + max(1,sym_len); 2 1230 goto get_more; 2 1231 end; 2 1232 2 1233 2 1234 digit_test: proc; 2 1235 2 1236 if (index("1234",substr(symt,1,1))^=0) 2 1237 then do; 2 1238 if (substr(symt,2) ^= "") 2 1239 then call mrpg_error_(2,linenumber,"Invalid number ""^a"". Initial digit will be assumed as a number.", 2 1240 symt); 2 1241 end; 2 1242 end; 2 1243 2 1244 get_line: proc; 2 1245 2 1246 linenumber=linenumber+1; 2 1247 if (lino(1) ^= 0) 2 1248 then do; 2 1249 if (linenumber > lino(2)) 2 1250 then db_sw = "0"b; 2 1251 else if (linenumber >= lino(1)) 2 1252 then db_sw = "1"b; 2 1253 end; 2 1254 i = index(substr(ifile,ifi,ife-ifi+1),NL); 2 1255 if (i=0) 2 1256 then i=ife-ifi+1; 2 1257 else i=i-1; 2 1258 ifl=ifi+i; 2 1259 if pr_sw then call ioa_("^4i^-^a",linenumber,substr(ifile,ifi,i)); 2 1260 2 1261 end; 2 1262 2 1263 comment: proc; 2 1264 2 1265 dcl sbl fixed bin(24); 2 1266 dcl bln fixed bin; 2 1267 2 1268 bln = linenumber; 2 1269 sbl, ifi = ifi + 2; 2 1270 loop: 2 1271 jj = index(substr(ifile,ifi,ifl-ifi+1),"*/"); 2 1272 if (jj = 0) 2 1273 then do; 2 1274 ifi = ifl + 1; 2 1275 if (ifi > ife) 2 1276 then call mrpg_error_(3,lstk.line(-la_put),"Unterminated comment."); 2 1277 call get_line; 2 1278 goto loop; 2 1279 end; 2 1280 ifi = ifi + jj+1; 2 1281 if (index(substr(ifile,sbl,ifi-sbl+1),"/*") ^= 0) 2 1282 then call mrpg_error_(1,bln,"-^5i. This comment contains an imbedded ""/*"".",linenumber); 2 1283 2 1284 end; 2 1285 2 1286 skip: proc () returns (bit (1)); 2 1287 2 1288 dcl (i, j) fixed bin (24); 2 1289 dcl found bit (1); 2 1290 2 1291 found = "0"b; 2 1292 try_again: 2 1293 do ifi = ifi to ifl; 2 1294 j = classify (fixed (unspec (ifilea (ifi)))); 2 1295 if (j ^= 1) 2 1296 then do; 2 1297 if (substr(ifile,ifi,2) = "/*") 2 1298 then do; 2 1299 call comment; 2 1300 goto try_again; 2 1301 end; 2 1302 found = "1"b; 2 1303 goto finished; 2 1304 end; 2 1305 end; 2 1306 if (ifi <= ife) 2 1307 then do; 2 1308 call get_line; 2 1309 goto try_again; 2 1310 end; 2 1311 finished: 2 1312 if found 2 1313 then do; 2 1314 sym_len = verify (substr (ifile, ifi, 32), AN) - 1; 2 1315 if (sym_len > 0) 2 1316 then symt = translate (substr (ifile, ifi, sym_len), AZ, az); 2 1317 else symt = ""; 2 1318 end; 2 1319 return (found); 2 1320 2 1321 end; 2 1322 dcl classify(0:127) fixed bin(8)unal int static init( 2 1323 2 1324 /* 000 001 002 003 004 005 006 007 */ 2 1325 1, 1, 1, 1, 1, 1, 1, 1, 2 1326 2 1327 /* 010 011 012 013 014 015 016 017 */ 2 1328 1, 1, 1, 1, 1, 1, 1, 1, 2 1329 2 1330 /* 020 021 022 023 024 025 026 027 */ 2 1331 1, 1, 1, 1, 1, 1, 1, 1, 2 1332 2 1333 /* 030 031 032 033 034 035 036 037 */ 2 1334 1, 1, 1, 1, 1, 1, 1, 1, 2 1335 2 1336 /* 040 "!" """ "#" "$" "%" "&" "'" */ 2 1337 1, 0, 4, 0, 0, 5, 6, 0, 2 1338 2 1339 /* "(" ")" "*" "+" "," "-" "." "/" */ 2 1340 7, 8, 9, 10, 11, 12, 3, 13, 2 1341 2 1342 /* "0" "1" "2" "3" "4" "5" "6" "7" */ 2 1343 3, 3, 3, 3, 3, 3, 3, 3, 2 1344 2 1345 /* "8" "9" ":" ";" "<" "=" ">" "?" */ 2 1346 3, 3, 14, 15, 16, 17, 18, 0, 2 1347 2 1348 /* "@" "A" "B" "C" "D" "E" "F" "G" */ 2 1349 0, 19, 20, 21, 22, 23, 24, 25, 2 1350 2 1351 /* "H" "I" "J" "K" "L" "M" "N" "O" */ 2 1352 26, 27, 2, 29, 30, 31, 32, 33, 2 1353 2 1354 /* "P" "Q" "R" "S" "T" "U" "V" "W" */ 2 1355 34, 2, 35, 36, 37, 2, 38, 39, 2 1356 2 1357 /* "X" "Y" "Z" "[" "\" "]" "^" "_" */ 2 1358 2, 2, 2, 0, 0, 0, 40, 0, 2 1359 2 1360 /* "`" "a" "b" "c" "d" "e" "f" "g" */ 2 1361 0, 2, 2, 2, 2, 2, 2, 2, 2 1362 2 1363 /* "h" "i" "j" "k" "l" "m" "n" "o" */ 2 1364 2, 2, 2, 2, 2, 2, 2, 2, 2 1365 2 1366 /* "p" "q" "r" "s" "t" "u" "v" "w" */ 2 1367 2, 2, 2, 2, 2, 2, 2, 2, 2 1368 2 1369 /* "x" "y" "z" "{" "|" "}" "~" "" */ 2 1370 2, 2, 2, 0, 41, 0, 0, 1); 2 1371 end; 2 1372 st_search: proc(c, p, id, t, l); 2 1373 2 1374 dcl c char(*), /* string to enter into symbol table */ 2 1375 p ptr, /* pointer to symref (OUT) */ 2 1376 id char(2), /* type of symbol table entry */ 2 1377 t fixed bin, /* type of datum */ 2 1378 l fixed bin; /* length of datum */ 2 1379 2 1380 dcl tptr ptr; 2 1381 2 1382 symbol_leng = length(c); 2 1383 do symtabptr = table.b 2 1384 repeat (symtab.next) 2 1385 while(symtabptr ^= null()); 2 1386 if (symtab.data = c) 2 1387 then goto found; 2 1388 end; 2 1389 allocate symtab in (space); 2 1390 symtab.type = id; 2 1391 symtab.use.b, symtab.use.e = null(); 2 1392 symtab.data = c; 2 1393 call link(tree.table,symtabptr); 2 1394 found: 2 1395 allocate symref in (space); 2 1396 symref.type = "SY"; 2 1397 symref.line = lstk (-la_put).line; 2 1398 symref.bchar = lstk (-la_put).bchar; 2 1399 symref.echar = lstk (-la_put).echar; 2 1400 symref.next = null(); 2 1401 symref.usage = null(); 2 1402 symref.sym = symtabptr; 2 1403 p = srefptr; 2 1404 if (t = 0) 2 1405 then return; 2 1406 tptr = p->symref.sym->symtab.use.b; 2 1407 if (tptr = null()) 2 1408 then goto doit; 2 1409 if (tptr->symref.type ^= "DC") 2 1410 then do; 2 1411 doit: 2 1412 allocate datum in (space) set (tptr); 2 1413 tptr->datum.type = "DC"; 2 1414 tptr->datum.sym = p; 2 1415 tptr->datum.kind = t; 2 1416 tptr->datum.leng = l; 2 1417 tptr->datum.datal.b, tptr->datum.datal.e = null(); 2 1418 tptr->datum.check.b, tptr->datum.check.e = null(); 2 1419 call use_def(tptr); 2 1420 call link(tree.local,tptr); 2 1421 end; 2 1422 p->symref.kind = tptr->datum.kind; 2 1423 2 1424 end; 2 1425 /* END INCLUDE FILE . . . mrpg_scan */ 1 664 1 665 1 666 3 1 /* -order %ABSENT 3 2* %DAY 3 3* %FIT 3 4* %HHMMSS 3 5* %LEVEL 3 6* %MMDDYY 3 7* %MONTH 3 8* %PAGENUMBER 3 9* %PRESENT 3 10* %REPEAT 3 11* %ROMAN 3 12* %SUBSTR 3 13* %YYDDD 3 14* ( 3 15* ) 3 16* * 3 17* + 3 18* , 3 19* - 3 20* -> 3 21* / 3 22* := 3 23* ; 3 24* ALIGN 3 25* AND 3 26* ASCENDING 3 27* ATTACH 3 28* BEGIN 3 29* BEGINS 3 30* DECIMAL 3 31* BREAK 3 32* CENTER 3 33* CHARACTER 3 34* COLUMN 3 35* CONCATENATE 3 36* CONTAIN 3 37* CONTAINS 3 38* DECLARE 3 39* DECLARE_1 3 40* DEFAULT 3 41* DEFINE_1 3 42* DELIMITED 3 43* DESCENDING 3 44* DETAIL 3 45* DETAILFOOT 3 46* DETAILHEAD 3 47* DUPLICATE 3 48* EDIT 3 49* END 3 50* ENDS 3 51* EQ 3 52* FALSE 3 53* FILE 3 54* FILL 3 55* FIT 3 56* BOOLEAN 3 57* FLOAT_unused 3 58* FOLD 3 59* GE 3 60* GT 3 61* HOLD 3 62* IF 3 63* IN 3 64* INPUT 3 65* PAUSE 3 66* KEY 3 67* LE 3 68* LEFT 3 69* LET 3 70* LINE 3 71* LT 3 72* MAXLINE 3 73* MINLINE 3 74* NE 3 75* NO 3 76* NOT 3 77* NUMBER 3 78* ON 3 79* OPTIONAL 3 80* OR 3 81* PAGEFOOT 3 82* PAGEHEAD 3 83* PAGELENGTH 3 84* PAGEWIDTH 3 85* PARAMETER 3 86* PICTURE 3 87* POSITION 3 88* PRINT 3 89* RECORD 3 90* REPORT 3 91* REPORTFOOT 3 92* REPORTHEAD 3 93* RETURNS 3 94* RIGHT 3 95* SORT 3 96* STREAM 3 97* SWITCH 3 98* TABLE 3 99* TRANSFORM 3 100* TRUE 3 101* VARYING 3 102* WORD 3 103* 3 104* 3 105* 3 106* ,2 3 107* ,3 3 108* ,4 3 109* BSP 3 110* SPECIAL 3 111* STOP 3 112* SKIP 3 113* SET 3 114* THEN 3 115* ELSE 3 116* FI 3 117* FI; 3 118*-sem mrpg_sem_.incl.pl1 3 119*-table mrpg_tables_ 3 120*-recover RECOVERY_TOKEN ; 3 121*-tl 3 122*-parse */ 3 123 dcl partl(7) fixed bin; 3 124 dcl partno fixed bin; 3 125 dcl report_sw bit(1); 3 126 dcl (T_01ptr,T_02ptr) ptr; 3 127 dcl beginptr ptr; 3 128 dcl depth fixed bin; 3 129 dcl hold_ct fixed bin; 3 130 dcl stmtlistptr ptr; 3 131 dcl elselistptr (10)ptr; 3 132 dcl if_nest fixed bin; 3 133 dcl begin_ct fixed bin; 3 134 dcl set_type fixed bin; 3 135 dcl 1 hold_list like tree.table; 3 136 dcl 1 sort_list like tree.table; 3 137 dcl 1 stmt_list like tree.table; 3 138 semantics: proc(rulen,altn); 3 139 3 140 dcl rulen fixed bin(24), /* rule number being applied */ 3 141 altn fixed bin(24); /* alternate number */ 3 142 3 143 goto rule(rulen); 3 144 3 145 dcl bch fixed bin(24); 3 146 dcl tptr ptr; 3 147 dcl ki fixed bin(17); 3 148 dcl li fixed bin(24); 3 149 dcl ch2 char(2); 3 150 3 151 dcl 1 param_list like tree.table; 3 152 dcl class fixed bin; 3 153 dcl keyword bit(1); 3 154 dcl lstop_line fixed bin; 3 155 dcl dflt_ptr ptr; 3 156 3 157 3 158 /* ::= END ; ! */ 3 159 rule(0001): 3 160 if (if_nest > 0) 3 161 then call mrpg_error_(2,(lstk.line(ls_top)),"END reached with ^i unterminated IFs.",if_nest); 3 162 if (ifi < ife) 3 163 then do; 3 164 call mrpg_error_ (1,(linenumber), "Text follows END statment."); 3 165 ifi = ife+1; 3 166 end; 3 167 if (exec.b = exec.e) 3 168 then do; 3 169 stmtptr = exec.b; 3 170 stmtptr = stmt.ref3.e; 3 171 if (stmt.type = "HD") 3 172 | (stmt.type = "SR") 3 173 | (stmt.type = "SU") 3 174 then stmt.type = "NT"; 3 175 end; 3 176 return; 3 177 3 178 /* ::= | ! */ 3 179 /* ::= 3 180* | 3 181* | 3 182* | 3 183* | ! */ 3 184 3 185 3 186 3 187 3 188 3 189 3 190 3 191 3 192 3 193 /* ::= DECLARE_1 PARAMETER ! */ 3 194 rule(0004): 3 195 paptr, dflt_ptr = null(); 3 196 keyword = "0"b; 3 197 if (pkey_ct ^= 0) 3 198 | (ppos_ct ^= 0) 3 199 then call mrpg_error_ (2,(lstk.line(ls_top-1)),"Only 1 PARAMETER declaration allowed."); 3 200 return; 3 201 3 202 /* ::= , ; ! */ 3 203 rule(0005): 3 204 call link_list(parm_check,lstk.node_ptr(ls_top-1)->a_list); 3 205 return; 3 206 3 207 /* ::= ; ! */ 3 208 3 209 /* ::= ! */; 3 210 rule(0007): 3 211 3 212 /* ::= ! */ 3 213 rule(0008): 3 214 paptr, dflt_ptr = null(); 3 215 keyword = "0"b; 3 216 return; 3 217 3 218 3 219 /* ::= ,2 ! */ 3 220 rule(0009): 3 221 if (paptr = null()) 3 222 then do; 3 223 call mrpg_error_ (2,(lstk.line(ls_top -1)),"Missing data-type"); 3 224 return; 3 225 end; 3 226 if (param.kind = Bool) & ^keyword 3 227 then do; 3 228 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Missing keyword specification on Boolean parameter"); 3 229 end; 3 230 if (dflt_ptr ^= null) & (param.leng = 0) 3 231 then do; 3 232 if (dflt_ptr->symref.type ^= "SY") 3 233 then do; 3 234 call mrpg_error_ (2,(lstk.line(ls_top-2)),"Default cannot be an expression on CHAR(*) parameter"); 3 235 end; 3 236 end; 3 237 param.line = lstk.line(ls_top-1); 3 238 param.sym = lstk.node_ptr(ls_top-1); 3 239 call use_def(paptr); 3 240 if keyword 3 241 then do; 3 242 call link(parm_key,paptr); 3 243 pkey_ct = pkey_ct + 1; 3 244 end; 3 245 else do; 3 246 call link(parm_pos,paptr); 3 247 ppos_ct = ppos_ct + 1; 3 248 end; 3 249 if dmp_sw then call mrpg_dump_$all((paptr),0); 3 250 return; 3 251 3 252 3 253 /* ::= ! */; 3 254 /* ::= ! */ 3 255 3 256 /* ::= CHARACTER ( * ) ! */ 3 257 rule(0012): 3 258 bch = ls_top-3; 3 259 ki = Char; 3 260 li = 0; 3 261 goto parm_spec; 3 262 3 263 /* ::= CHARACTER ( ) ! */ 3 264 rule(0013): 3 265 bch = ls_top-3; 3 266 ki = Char; 3 267 li = lstk.val(ls_top-1); 3 268 goto parm_spec; 3 269 3 270 /* ::= BOOLEAN ! */ 3 271 rule(0014): 3 272 bch = ls_top; 3 273 ki = Bool; 3 274 li = -1; 3 275 parm_spec: 3 276 call aloc_param(bch); 3 277 if (param.kind ^= 0) 3 278 then do; 3 279 call mrpg_error_ (2,(lstk.line(ls_top)),"Multiple data-type"); 3 280 goto end_parm; 3 281 end; 3 282 param.kind = ki; 3 283 param.leng = li; 3 284 param.echar = lstk(ls_top).echar; 3 285 lstk.node_ptr(bch) = paptr; 3 286 if (ki = Bool) 3 287 then do; 3 288 call st_search("""0""b",tptr,"ST",0,0); 3 289 call aloc_attr(ls_top-1); 3 290 attr.type = "DV"; 3 291 attr.sym = tptr; 3 292 call link(param.attr,atptr); 3 293 param.echar = lstk.echar(ls_top); 3 294 dflt_ptr = attr.sym; 3 295 end; 3 296 goto end_parm; 3 297 3 298 3 299 /* ::= DEFAULT ! */; 3 300 rule(0015): 3 301 call aloc_param(ls_top-1); 3 302 call aloc_attr(ls_top-1); 3 303 attr.type = "DV"; 3 304 attr.sym = lstk.node_ptr(ls_top); 3 305 call link(param.attr,atptr); 3 306 param.echar = lstk.echar(ls_top); 3 307 dflt_ptr = attr.sym; 3 308 goto end_parm; 3 309 3 310 /* ::= KEY ( ) ! */ 3 311 3 312 /* ::= ! */; 3 313 /* ::= , ! */ 3 314 3 315 /* ::= ! */ 3 316 rule(0019): 3 317 srefptr = lstk.node_ptr(ls_top); 3 318 if (substr(symref.sym->symtab.data,2,1) ^= "-") 3 319 then do; 3 320 call mrpg_error_ (2,(lstk.line(ls_top)),"Keyword ^a does not begin with ""-""",symref.sym->symtab.data); 3 321 goto end_parm; 3 322 end; 3 323 call aloc_param(ls_top); 3 324 call aloc_attr(ls_top); 3 325 attr.type = "KY"; 3 326 attr.sym = srefptr; 3 327 call link(param.attr,atptr); 3 328 param.echar = lstk.echar(ls_top); 3 329 keyword = "1"b; 3 330 end_parm: 3 331 return; 3 332 3 333 /* ::= ! */ 3 334 rule(0020): 3 335 if (paptr = null()) 3 336 then do; 3 337 call mrpg_error_ (2,(lstk.line(ls_top)),"No data-type specified."); 3 338 return; 3 339 end; 3 340 call link_list(param.check,lstk.node_ptr(ls_top)->a_list); 3 341 return; 3 342 3 343 3 344 /* ::= DECLARE_1 INPUT ! */ 3 345 rule(0021): 3 346 daptr = null(); 3 347 if (tree.input.b ^= null()) 3 348 then call mrpg_error_ (2,(lstk.line(ls_top-1)),"Only 1 INPUT declaration allowed."); 3 349 return; 3 350 3 351 /* ::= <[input_ctl...]> 3 352* <[skip_stop...]> ; ! */ 3 353 3 354 /* <[skip_stop...]> ::= | ! */ 3 355 /* ::= ! */; 3 356 /* ::= ! */ 3 357 /* ::= , ! */; 3 358 /* ::= , ! */ 3 359 3 360 /* <[input_ctl...]> ::= ! */;; 3 361 /* <[input_ctl...]> ::= ! */ 3 362 3 363 /* ::= ! */; 3 364 /* ::= ! */ 3 365 3 366 /* ::= ! */; 3 367 /* ::= ! */ 3 368 /* ::= RECORD ! */; 3 369 rule(0034): 3 370 tree.res_siz = lstk.val(ls_top); 3 371 tree.rec_str = -1; 3 372 return; 3 373 3 374 /* ::= STREAM ! */; 3 375 rule(0035): 3 376 tree.res_siz = lstk.val(ls_top); 3 377 tree.rec_str = -2; 3 378 return; 3 379 3 380 /* ::= RECORD ! */; 3 381 rule(0036): 3 382 tree.rec_str = -1; 3 383 return; 3 384 3 385 /* ::= STREAM ! */ 3 386 rule(0037): 3 387 tree.rec_str = -2; 3 388 return; 3 389 3 390 3 391 /* ::= FILE ! */; 3 392 rule(0038): 3 393 symbol_leng = 9; 3 394 allocate symtab in (space); 3 395 symtab.type = "ST"; 3 396 symtab.use.b, symtab.use.e = null(); 3 397 symtab.data = """vfile_ """; 3 398 call aloc_opn(Cat,ls_top-1); 3 399 opn.kind = Char; 3 400 opn.op1 = symtabptr; 3 401 opn.op2 = lstk.node_ptr(ls_top); 3 402 call aloc_value("VL",ls_top-1); 3 403 value.sym = opptr; 3 404 value.numb = 0; 3 405 tree.from = valptr; 3 406 return; 3 407 3 408 /* ::= ATTACH ! */ 3 409 rule(0039): 3 410 call aloc_value("VL",ls_top-1); 3 411 value.sym = lstk.node_ptr(ls_top); 3 412 tree.from = valptr; 3 413 return; 3 414 3 415 /* ::= ! */; 3 416 /* ::= ! */; 3 417 /* ::= ! */ 3 418 rule(0042): 3 419 /* ::= ! */ 3 420 rule(0043): 3 421 call link_list(lstk.node_ptr(ls_top-1)->a_list,lstk.node_ptr(ls_top)->a_list); 3 422 return; 3 423 3 424 dcl 1 a_list based like tree.table; 3 425 3 426 /* ::= IF ( ) SKIP ( ) ! */ 3 427 rule(0044): 3 428 call mrpg_error_(2,(lstk.line(ls_top-3)),"SKIP not implemented."); 3 429 call make_bool(ls_top-5); 3 430 call make_char(ls_top-1); 3 431 call aloc_opn(Skip,ls_top-7); 3 432 opn.op1 = lstk.node_ptr(ls_top-5); 3 433 opn.op2 = lstk.node_ptr(ls_top-1); 3 434 call aloc_head; 3 435 call link(head.list,opptr); 3 436 lstk.node_ptr(ls_top-7) = headptr; 3 437 return; 3 438 3 439 /* ::= IF ( ) STOP ( ) ! */ 3 440 rule(0045): 3 441 call mrpg_error_(2,(lstk.line(ls_top-3)),"STOP not implemented."); 3 442 call make_bool(ls_top-5); 3 443 call make_char(ls_top-1); 3 444 call aloc_opn(Stop,ls_top-7); 3 445 opn.op1 = lstk.node_ptr(ls_top-5); 3 446 opn.op2 = lstk.node_ptr(ls_top-1); 3 447 call aloc_head; 3 448 call link(head.list,opptr); 3 449 lstk.node_ptr(ls_top-7) = headptr; 3 450 return; 3 451 3 452 3 453 /* ::= ,2 ! */; 3 454 rule(0046): 3 455 /* ::= ,2 ! */; 3 456 rule(0047): 3 457 call link_list(datum.check,lstk.node_ptr(ls_top)->a_list); 3 458 lstop_line = ls_top - 2; 3 459 goto ifld_com; 3 460 3 461 /* ::= ,2 ! */; 3 462 rule(0048): 3 463 call link_list(lstk.node_ptr(ls_top-1)->a_list,lstk.node_ptr(ls_top)->a_list); 3 464 call link_list(datum.check,lstk.node_ptr(ls_top-1)->a_list); 3 465 lstop_line = ls_top - 3; 3 466 goto ifld_com; 3 467 3 468 /* ::= ,2 ! */ 3 469 rule(0049): 3 470 lstop_line = ls_top - 1; 3 471 ifld_com: 3 472 if (daptr = null()) 3 473 then do; 3 474 call mrpg_error_ (2,(lstk.line(lstop_line)),"Missing data-type"); 3 475 return; 3 476 end; 3 477 datum.sym = lstk.node_ptr(lstop_line); 3 478 indcl: 3 479 datum.type = "IN"; 3 480 datum.line = lstk.line(lstop_line); 3 481 if (datum.sym ^= null()) 3 482 then call use_def(daptr); 3 483 call link(tree.input,daptr); 3 484 daptr = null(); 3 485 return; 3 486 3 487 /* ::= CHARACTER ( ) POSITION ! */; 3 488 rule(0050): 3 489 call aloc_datum; 3 490 datum.pos = lstk.val(ls_top); 3 491 datum.kind = Char; 3 492 datum.leng = lstk.val(ls_top-3); 3 493 return; 3 494 3 495 /* ::= CHARACTER ( ) ! */; 3 496 rule(0051): 3 497 call aloc_datum; 3 498 datum.kind = Char; 3 499 datum.leng = lstk.val(ls_top-1); 3 500 return; 3 501 3 502 /* ::= CHARACTER ( ) OPTIONAL ! */ 3 503 rule(0052): 3 504 call aloc_datum; 3 505 datum.kind = Char; 3 506 datum.leng = -lstk.val(ls_top-2); 3 507 return; 3 508 3 509 /* ::= CHARACTER ( ) DELIMITED ! */; 3 510 rule(0053): 3 511 call aloc_datum; 3 512 datum.kind = Chard; 3 513 datum.leng = lstk.val(ls_top-3); 3 514 call link(datum.datal, lstk.node_ptr(ls_top)); 3 515 return; 3 516 3 517 /* ::= CHARACTER ( ) DELIMITED OPTIONAL ! */ 3 518 rule(0054): 3 519 call aloc_datum; 3 520 datum.kind = Chard; 3 521 datum.leng = -lstk.val(ls_top-4); 3 522 call link(datum.datal, lstk.node_ptr(ls_top-1)); 3 523 return; 3 524 3 525 /* ::= CHARACTER ( ) SPECIAL ! */; 3 526 rule(0055): 3 527 call aloc_datum; 3 528 datum.kind = Charn; 3 529 datum.leng = lstk.val(ls_top-2); 3 530 return; 3 531 3 532 /* ::= CHARACTER ( ) SPECIAL OPTIONAL ! */ 3 533 rule(0056): 3 534 call aloc_datum; 3 535 datum.kind = Charn; 3 536 datum.leng = -lstk.val(ls_top-3); 3 537 return; 3 538 3 539 /* ::= CHARACTER ( ) OPTIONAL POSITION ! */ 3 540 rule(0057): 3 541 call aloc_datum; 3 542 datum.kind = Char; 3 543 datum.leng = -lstk.val(ls_top-4); 3 544 datum.pos = lstk.val(ls_top); 3 545 return; 3 546 3 547 /* ::= CHARACTER ( ) DELIMITED POSITION ! */; 3 548 rule(0058): 3 549 call aloc_datum; 3 550 datum.kind = Chard; 3 551 datum.leng = lstk.val(ls_top-5); 3 552 call link(datum.datal, lstk.node_ptr(ls_top-2)); 3 553 datum.pos = lstk.val(ls_top); 3 554 return; 3 555 3 556 /* ::= CHARACTER ( ) DELIMITED OPTIONAL POSITION ! */ 3 557 rule(0059): 3 558 call aloc_datum; 3 559 datum.kind = Chard; 3 560 datum.leng = -lstk.val(ls_top-6); 3 561 call link(datum.datal, lstk.node_ptr(ls_top-3)); 3 562 datum.pos = lstk.val(ls_top); 3 563 return; 3 564 3 565 /* ::= CHARACTER ( ) SPECIAL POSITION ! */; 3 566 rule(0060): 3 567 call aloc_datum; 3 568 datum.kind = Charn; 3 569 datum.leng = lstk.val(ls_top-4); 3 570 datum.pos = lstk.val(ls_top); 3 571 return; 3 572 3 573 /* ::= CHARACTER ( ) SPECIAL OPTIONAL POSITION ! */ 3 574 rule(0061): 3 575 call aloc_datum; 3 576 datum.kind = Charn; 3 577 datum.leng = -lstk.val(ls_top-5); 3 578 datum.pos = lstk.val(ls_top); 3 579 return; 3 580 3 581 /* ::= DECIMAL ( ) POSITION ! */; 3 582 rule(0062): 3 583 call aloc_datum; 3 584 datum.pos = lstk.val(ls_top); 3 585 datum.kind = Decimal; 3 586 datum.leng = lstk.val(ls_top-3); 3 587 return; 3 588 3 589 /* ::= DECIMAL ( ) ! */; 3 590 rule(0063): 3 591 call aloc_datum; 3 592 datum.kind = Decimal; 3 593 datum.leng = lstk.val(ls_top-1); 3 594 return; 3 595 3 596 /* ::= DECIMAL ( ) OPTIONAL ! */ 3 597 rule(0064): 3 598 call aloc_datum; 3 599 datum.kind = Decimal; 3 600 datum.leng = -lstk.val(ls_top-2); 3 601 return; 3 602 3 603 /* ::= DECIMAL SPECIAL ! */; 3 604 rule(0065): 3 605 call aloc_datum; 3 606 datum.kind = DecSpec; 3 607 datum.leng = 0; 3 608 return; 3 609 3 610 /* ::= DECIMAL SPECIAL OPTIONAL ! */ 3 611 rule(0066): 3 612 call aloc_datum; 3 613 datum.kind = DecSpec; 3 614 datum.leng = -1; 3 615 return; 3 616 3 617 /* ::= DECIMAL ( ) OPTIONAL POSITION ! */ 3 618 rule(0067): 3 619 call aloc_datum; 3 620 datum.kind = Decimal; 3 621 datum.leng = -lstk.val(ls_top-4); 3 622 datum.pos = lstk.val(ls_top); 3 623 return; 3 624 3 625 /* ::= DECIMAL SPECIAL POSITION ! */; 3 626 rule(0068): 3 627 call aloc_datum; 3 628 datum.kind = DecSpec; 3 629 datum.leng = 0; 3 630 datum.pos = lstk.val(ls_top); 3 631 return; 3 632 3 633 /* ::= DECIMAL SPECIAL OPTIONAL POSITION ! */ 3 634 rule(0069): 3 635 call aloc_datum; 3 636 datum.kind = DecSpec; 3 637 datum.leng = -1; 3 638 datum.pos = lstk.val(ls_top); 3 639 return; 3 640 3 641 /* ::= DECIMAL DELIMITED ! */; 3 642 rule(0070): 3 643 call aloc_datum; 3 644 datum.kind = Decimal; 3 645 call link(datum.datal, lstk.node_ptr(ls_top)); 3 646 return; 3 647 3 648 /* ::= DECIMAL DELIMITED OPTIONAL ! */ 3 649 rule(0071): 3 650 call aloc_datum; 3 651 datum.kind = Decimal; 3 652 datum.leng = -1; 3 653 call link(datum.datal, lstk.node_ptr(ls_top-1)); 3 654 return; 3 655 3 656 /* ::= DECIMAL DELIMITED POSITION ! */; 3 657 rule(0072): 3 658 call aloc_datum; 3 659 datum.kind = Decimal; 3 660 call link(datum.datal, lstk.node_ptr(ls_top-2)); 3 661 datum.pos = lstk.val(ls_top); 3 662 return; 3 663 3 664 /* ::= DECIMAL DELIMITED OPTIONAL POSITION ! */ 3 665 rule(0073): 3 666 call aloc_datum; 3 667 datum.kind = Decimal; 3 668 datum.leng = -1; 3 669 call link(datum.datal, lstk.node_ptr(ls_top-3)); 3 670 datum.pos = lstk.val(ls_top); 3 671 return; 3 672 3 673 /* ::= ,2 FILL ( ) ! */; 3 674 rule(0074): 3 675 call aloc_datum; 3 676 datum.kind = Fill; 3 677 datum.leng = lstk.val(ls_top-1); 3 678 datum.sym = null(); 3 679 lstop_line = ls_top - 3; 3 680 goto indcl; 3 681 3 682 3 683 /* ::= DECLARE ! */ 3 684 rule(0075): 3 685 call aloc_datum; 3 686 datum.type = "DC"; 3 687 return; 3 688 3 689 /* ::= ; ! */ 3 690 rule(0076): 3 691 datum.sym = lstk.node_ptr(ls_top-2); 3 692 datum.line = lstk.line(ls_top-2); 3 693 call use_def(daptr); 3 694 call link(tree.local,daptr); 3 695 daptr = null(); 3 696 return; 3 697 3 698 3 699 /* ::= DECIMAL ! */; 3 700 rule(0077): 3 701 datum.kind = Decimal; 3 702 datum.echar = lstk.echar(ls_top); 3 703 return; 3 704 3 705 /* ::= CHARACTER ( ) ! */ 3 706 rule(0078): 3 707 datum.kind = Char; 3 708 datum.leng = lstk.val(ls_top-1); 3 709 datum.echar = lstk.echar(ls_top); 3 710 return; 3 711 3 712 /* ::= CHARACTER ( ) VARYING ! */; 3 713 rule(0079): 3 714 datum.kind = Charn; 3 715 datum.leng = lstk.val(ls_top-2); 3 716 datum.echar = lstk.echar(ls_top); 3 717 return; 3 718 3 719 /* ::= BOOLEAN ! */; 3 720 rule(0080): 3 721 datum.kind = Bool; 3 722 datum.echar = lstk.echar(ls_top); 3 723 return; 3 724 3 725 /* ::= SET ( ) ! */; 3 726 rule(0081): 3 727 datum.kind = Set; 3 728 return; 3 729 3 730 /* ::= TABLE ( ) ! */; 3 731 rule(0082): 3 732 if (datum.kind = 0) 3 733 then datum.kind = Table; 3 734 return; 3 735 3 736 /* ::= TABLE ( ) VARYING ! */ 3 737 rule(0083): 3 738 if (datum.kind = 0) 3 739 then datum.kind = Tablev; 3 740 return; 3 741 3 742 /* ::= ! */ 3 743 3 744 /* ::= ! */; 3 745 /* ::= ! */ 3 746 3 747 /* ::= -> ! */ 3 748 rule(0087): 3 749 opptr = datum.datal.b; 3 750 if (opptr ^= null()) 3 751 then if (opn.op ^= n_n) 3 752 then do; 3 753 call mrpg_error_ (2,(lstk.line(ls_top-2)),"Table cannot have mixed conversions."); 3 754 return; 3 755 end; 3 756 3 757 call aloc_opn(n_n,ls_top-2); 3 758 opn.kind = Decimal; 3 759 opn.op1 = lstk.node_ptr(ls_top-2); 3 760 opn.op2 = lstk.node_ptr(ls_top); 3 761 call link(datum.datal,opptr); 3 762 return; 3 763 3 764 3 765 /* ::= ! */ 3 766 3 767 /* ::= ! */; 3 768 /* ::= ! */ 3 769 3 770 /* ::= -> ! */ 3 771 rule(0091): 3 772 opptr = datum.datal.b; 3 773 if (opptr ^= null()) 3 774 then if (opn.op ^= n_s) 3 775 then do; 3 776 call mrpg_error_ (2,(lstk.line(ls_top-2)),"Table cannot have mixed conversions."); 3 777 return; 3 778 end; 3 779 call aloc_opn(n_s,ls_top-2); 3 780 opn.kind = Char; 3 781 opn.op1 = lstk.node_ptr(ls_top-2); 3 782 opn.op2 = lstk.node_ptr(ls_top); 3 783 call link(datum.datal,opptr); 3 784 return; 3 785 3 786 /* ::= ! */ 3 787 3 788 /* ::= ! */; 3 789 /* ::= ! */ 3 790 3 791 /* ::= -> ! */ 3 792 rule(0095): 3 793 opptr = datum.datal.b; 3 794 if (opptr ^= null()) 3 795 then if (opn.op ^= s_n) 3 796 then do; 3 797 call mrpg_error_ (2,(lstk.line(ls_top-2)),"Table cannot have mixed conversions."); 3 798 return; 3 799 end; 3 800 call aloc_opn(s_n,ls_top-2); 3 801 opn.kind = Decimal; 3 802 opn.op1 = lstk.node_ptr(ls_top-2); 3 803 opn.op2 = lstk.node_ptr(ls_top); 3 804 call link(datum.datal,opptr); 3 805 return; 3 806 3 807 3 808 /* ::= ! */ 3 809 3 810 /* ::= ! */; 3 811 /* ::= ! */ 3 812 3 813 /* ::= -> ! */ 3 814 rule(0099): 3 815 opptr = datum.datal.b; 3 816 if (opptr ^= null()) 3 817 then if (opn.op ^= s_s) 3 818 then do; 3 819 call mrpg_error_ (2,(lstk.line(ls_top-2)),"Table cannot have mixed conversions."); 3 820 return; 3 821 end; 3 822 call aloc_opn(s_s,ls_top-2); 3 823 opn.kind = Char; 3 824 opn.op1 = lstk.node_ptr(ls_top-2); 3 825 opn.op2 = lstk.node_ptr(ls_top); 3 826 call link(datum.datal,opptr); 3 827 return; 3 828 3 829 /* ::= DEFINE_1 REPORT ! */ 3 830 rule(0100): 3 831 allocate report in (space); 3 832 report.type = "RP"; 3 833 report.onlist.b, report.onlist.e = null(); 3 834 report.brlist.b, report.brlist.e = null(); 3 835 report.part.b, report.part.e = null(); 3 836 report.line = lstk.line(ls_top-1); 3 837 report.sym = lstk.node_ptr(ls_top); 3 838 report.minl = -1; 3 839 report.maxl = -1; 3 840 partl = 0; 3 841 report.pw = 65; 3 842 report.pl = 66; 3 843 hold_list.b, hold_list.e = null(); 3 844 call use_def(repptr); 3 845 return; 3 846 3 847 3 848 3 849 /* ::= 3 850* <[report_ctl...]> 3 851* <[heading...]> 3 852* 3 853* <[footing...]> 3 854* ; ! */ 3 855 rule(0101): 3 856 if (report.maxl = -1) 3 857 then report.maxl = report.pl; 3 858 if (report.minl = -1) 3 859 then report.minl = min(1,report.pl); 3 860 if (report.minl > report.maxl) 3 861 then call mrpg_error_ (2,(lstk.line (ls_top-5)), "Effective MINLINE > effective MAXLINE."); 3 862 report.echar = lstk.echar(ls_top); 3 863 call link(tree.report,repptr); 3 864 if (report.onlist.b = null()) 3 865 then do; 3 866 call st_search("""user_output""",tptr,"ST",0,0); 3 867 call aloc_value("SW",ls_top-5); 3 868 value.sym = tptr; 3 869 call linkr(report.onlist,valptr); 3 870 end; 3 871 repptr = null(); 3 872 return; 3 873 3 874 3 875 /* <[report_ctl...]> ::= ! */; 3 876 /* <[report_ctl...]> ::= ! */ 3 877 3 878 /* ::= ! */; 3 879 /* ::= ! */ 3 880 3 881 /* ::= PAGEWIDTH ! */; 3 882 rule(0106): 3 883 report.pw = lstk.val(ls_top); 3 884 return; 3 885 3 886 /* ::= PAGELENGTH ! */; 3 887 rule(0107): 3 888 report.pl = lstk.val(ls_top); /* pagelength 0 means unpaged report */ 3 889 return; 3 890 3 891 /* ::= MINLINE ! */; 3 892 rule(0108): 3 893 report.minl = lstk.val(ls_top); 3 894 return; 3 895 3 896 /* ::= MAXLINE ! */; 3 897 rule(0109): 3 898 report.maxl = lstk.val(ls_top); 3 899 return; 3 900 3 901 /* ::= BREAK ( ) ! */; 3 902 rule(0110): 3 903 report.brlist = hold_list; 3 904 hold_list.b, hold_list.e = null(); 3 905 return; 3 906 3 907 /* ::= ON ! */; 3 908 rule(0111): 3 909 call linkr(report.onlist,lstk.node_ptr(ls_top)); 3 910 return; 3 911 3 912 /* ::= ON ( ) ! */ 3 913 3 914 /* ::= ! */; 3 915 rule(0113): 3 916 call linkr(report.onlist,lstk.node_ptr(ls_top)); 3 917 return; 3 918 3 919 /* ::= IF ( ) OR ! */ 3 920 rule(0114): 3 921 call make_bool(ls_top-3); 3 922 valptr = lstk.node_ptr(ls_top - 6); 3 923 value.ctl = lstk.node_ptr (ls_top-3); 3 924 call linkr(report.onlist,valptr); 3 925 lstk.node_ptr (ls_top-6) = lstk.node_ptr(ls_top); 3 926 return; 3 927 3 928 /* ::= FILE ! */; 3 929 rule(0115): 3 930 call aloc_value("FL",ls_top-1); 3 931 value.sym = lstk.node_ptr(ls_top); 3 932 lstk.node_ptr (ls_top - 1) = valptr; 3 933 return; 3 934 3 935 /* ::= FILE NUMBER ! */; 3 936 rule(0116): 3 937 call mrpg_error_(2,(lstk.line(ls_top-1)),"FILE...NUMBER not implemented."); 3 938 call aloc_value("FL",ls_top-3); 3 939 value.sym = lstk.node_ptr(ls_top-2); 3 940 value.numb = lstk.val(ls_top); 3 941 lstk.node_ptr (ls_top - 3) = valptr; 3 942 return; 3 943 3 944 /* ::= SWITCH ! */ 3 945 rule(0117): 3 946 call aloc_value("SW",ls_top-1); 3 947 value.sym = lstk.node_ptr(ls_top); 3 948 lstk.node_ptr (ls_top - 1) = valptr; 3 949 return; 3 950 3 951 3 952 /* <[heading...]> ::= ! */; 3 953 /* <[heading...]> ::= ! */ 3 954 3 955 /* ::= ! */; 3 956 /* ::= ! */ 3 957 3 958 /* ::= ,2 ! */; 3 959 /* ::= ,2 ! */; 3 960 /* ::= REPORTHEAD ! */ 3 961 rule(0124): 3 962 ch2 = "RH"; 3 963 partno = 1; 3 964 goto part_common; 3 965 3 966 /* ::= PAGEHEAD ! */ 3 967 rule(0125): 3 968 ch2 = "PH"; 3 969 partno = 2; 3 970 goto part_common; 3 971 3 972 /* ::= DETAILHEAD ! */ 3 973 rule(0126): 3 974 if (report.brlist.b = null()) 3 975 then do; 3 976 call mrpg_error_ (2,(lstk(ls_top).line), "No break fields specified in this report."); 3 977 return; 3 978 end; 3 979 ch2 = "DH"; 3 980 partno = 3; 3 981 goto part_common; 3 982 3 983 /* ::= DETAIL ! */ 3 984 rule(0127): 3 985 ch2 = "DT"; 3 986 partno = 4; 3 987 goto part_common; 3 988 3 989 /* ::= DETAILFOOT ! */ 3 990 rule(0128): 3 991 if (report.brlist.b = null()) 3 992 then do; 3 993 call mrpg_error_ (2,(lstk(ls_top).line), "No break fields specified in this report."); 3 994 return; 3 995 end; 3 996 ch2 = "DF"; 3 997 partno = 5; 3 998 goto part_common; 3 999 3 1000 /* ::= PAGEFOOT ! */ 3 1001 rule(0129): 3 1002 ch2 = "PF"; 3 1003 partno = 6; 3 1004 goto part_common; 3 1005 3 1006 /* ::= REPORTFOOT ! */ 3 1007 rule(0130): 3 1008 ch2 = "RF"; 3 1009 partno = 7; 3 1010 part_common: 3 1011 allocate part in (space); 3 1012 part.type = ch2; 3 1013 part.ctl = null(); 3 1014 part.maxl = 0; 3 1015 part.lines.b, part.lines.e = null(); 3 1016 part.sym = null(); 3 1017 call link(report.part,partptr); 3 1018 return; 3 1019 3 1020 /* ::= ,2 ! */ 3 1021 rule(0131): 3 1022 /* ::= ,2 ! */; 3 1023 rule(0132): 3 1024 part.sym = lstk.node_ptr(ls_top-1); 3 1025 call use_ref((part.sym)); 3 1026 if (break_number (lstk.node_ptr (ls_top-1)) = 0) 3 1027 then call mrpg_error_ (2,(lstk.line (ls_top-1)), "Identifier ""^a"" is not a break field in this report",pull_name(ls_top-1)); 3 1028 return; 3 1029 3 1030 3 1031 /* ::= ! */; 3 1032 /* ::= ! */ 3 1033 3 1034 /* ::= ,2 ! */ 3 1035 rule(0135): 3 1036 part.sym = lstk.node_ptr(ls_top-1); 3 1037 part.line = lstk.line(ls_top-1); 3 1038 call use_def(partptr); 3 1039 return; 3 1040 3 1041 /* ::= ,2 ! */ 3 1042 rule(0136): 3 1043 part.sym = lstk.node_ptr(ls_top); 3 1044 part.line = lstk.line(ls_top); 3 1045 call use_def(partptr); 3 1046 return; 3 1047 3 1048 3 1049 /* ::= 3 1050* | ! */ 3 1051 3 1052 3 1053 3 1054 /* ::= ! */; 3 1055 /* ::= ! */ 3 1056 3 1057 /* ::= ! */ 3 1058 /* ::= IF ( ) ! */ 3 1059 rule(0141): 3 1060 part.ctl = lstk(ls_top-1).node_ptr; 3 1061 return; 3 1062 3 1063 /* ::= MAXLINE ! */; 3 1064 rule(0142): 3 1065 part.maxl = lstk(ls_top).val; 3 1066 return; 3 1067 3 1068 /* ::= FIT ! */ 3 1069 rule(0143): 3 1070 call mrpg_error_(2,(lstk.line(ls_top)),"FIT not implemented."); 3 1071 return; 3 1072 3 1073 3 1074 /* <[footing...]> ::= ! */; 3 1075 /* <[footing...]> ::= ! */ 3 1076 3 1077 /* ::= ! */; 3 1078 /* ::= ! */ 3 1079 3 1080 /* ::= ,2 ! */; 3 1081 /* ::= ,2 ! */ 3 1082 3 1083 /* ::= ! */; 3 1084 /* ::= ! */ 3 1085 3 1086 /* ::= LINE ! */ 3 1087 rule(0152): 3 1088 allocate lines in (space); 3 1089 lines.type = "LN"; 3 1090 lines.ctl = null(); 3 1091 lines.field.b, lines.field.e = null(); 3 1092 lines.number = 1; 3 1093 call link(part.lines,linptr); 3 1094 return; 3 1095 3 1096 /* ::= ,3 <[line_ctl]> <[field...]> ! */ 3 1097 rule(0153): 3 1098 partl (partno) = partl (partno) + 1; 3 1099 if (partno = 2) 3 1100 then do; 3 1101 if (partl(2) = 1) 3 1102 then do; 3 1103 if (lines.number > 0) 3 1104 then do; 3 1105 call mrpg_error_ (2,(lstk.line(ls_top-2)), "First PAGEHEAD must have absolute line number."); 3 1106 return; 3 1107 end; 3 1108 end; 3 1109 return; 3 1110 end; 3 1111 if (partno = 6) 3 1112 then do; 3 1113 if (partl(6) = 1) 3 1114 then do; 3 1115 if (lines.number > 0) 3 1116 then do; 3 1117 call mrpg_error_ (2,(lstk.line(ls_top-2)), "First PAGEFOOT must have absolute line number."); 3 1118 return; 3 1119 end; 3 1120 if (report.maxl = -1) 3 1121 then report.maxl = -lines.number - 1; 3 1122 else if (-lines.number < report.maxl) 3 1123 then call mrpg_error_(2,(lstk.line(ls_top-2)),"Page footing starts above MAXLINE."); 3 1124 end; 3 1125 return; 3 1126 end; 3 1127 return; 3 1128 3 1129 3 1130 /* <[line_ctl]> ::= ! */; 3 1131 /* <[line_ctl]> ::= ! */ 3 1132 3 1133 /* ::= IF ( ) ! */ 3 1134 rule(0156): 3 1135 call make_bool(ls_top-1); 3 1136 lines.number = -lstk.val(ls_top-4); 3 1137 lines.ctl = lstk.node_ptr(ls_top-1); 3 1138 goto check_absolute; 3 1139 3 1140 /* ::= + IF ( ) ! */ 3 1141 rule(0157): 3 1142 call make_bool(ls_top-1); 3 1143 lines.number = lstk.val(ls_top-4); 3 1144 lines.ctl = lstk.node_ptr(ls_top-1); 3 1145 return; 3 1146 3 1147 /* ::= ! */; 3 1148 rule(0158): 3 1149 lines.number = -lstk.val(ls_top); 3 1150 check_absolute: 3 1151 if (-lines.number > report.pl) 3 1152 then do; 3 1153 call mrpg_error_ (2,(lstk.line(ls_top)), "Absolute line number beyond end-of-page."); 3 1154 end; 3 1155 return; 3 1156 3 1157 /* ::= + ! */; 3 1158 rule(0159): 3 1159 lines.number = lstk.val(ls_top); 3 1160 return; 3 1161 3 1162 /* ::= IF ( ) ! */ 3 1163 rule(0160): 3 1164 call make_bool(ls_top-1); 3 1165 lines.ctl = lstk.node_ptr(ls_top-1); 3 1166 return; 3 1167 3 1168 /* ::= PAUSE IF ( ) ! */; 3 1169 rule(0161): 3 1170 call make_bool(ls_top-1); 3 1171 lines.ctl = lstk.node_ptr(ls_top-1); 3 1172 /* ::= PAUSE ! */ 3 1173 rule(0162): 3 1174 lines.number = 0; 3 1175 /* lines.pause = "1"b; */ 3 1176 return; 3 1177 3 1178 3 1179 /* <[field...]> ::= ! */; 3 1180 /* <[field...]> ::= ! */ 3 1181 3 1182 /* ::= ! */; 3 1183 /* ::= ! */ 3 1184 3 1185 /* <,4> ::= ,4 ! */ 3 1186 rule(0167): 3 1187 if (lines.number = 0) 3 1188 then do; 3 1189 call mrpg_error_ (2,(lstk.line(ls_top)),"LINE 0 and LINE PAUSE cannot have any fields specified."); 3 1190 lines.number = 1; 3 1191 end; 3 1192 allocate field in (space); 3 1193 field.type = "FD"; 3 1194 field.alch = ""; 3 1195 field.value.b, field.value.e = null(); 3 1196 field.let.b, field.let.e = null(); 3 1197 field.data = null(); 3 1198 field.bsp = "0"b; 3 1199 call link(lines.field,fldptr); 3 1200 report_sw = "1"b; 3 1201 return; 3 1202 3 1203 /* ::= <,4> 3 1204* ! */; 3 1205 rule(0168): 3 1206 li = ls_top-1; 3 1207 goto field_1; 3 1208 3 1209 3 1210 /* ::= <,4> ! */; 3 1211 rule(0169): 3 1212 li = ls_top; 3 1213 field_1: 3 1214 field.line = lstk.line(li); 3 1215 if (lstk.datype(li) = BOOL) 3 1216 then call make_char(li); 3 1217 tptr = lstk.node_ptr(li); 3 1218 if (tptr = null()) 3 1219 then return; /* cant do anything */ 3 1220 if (tptr->symref.type = "OP") 3 1221 then do; 3 1222 if (lstk.datype(li) = DEC) 3 1223 then call st_search("D_01",T_01ptr,"ID",Decimal,0); 3 1224 else call st_search("T_01",T_01ptr,"ID",Chard,256); 3 1225 call aloc_stmt(":=",ls_top); 3 1226 call link (stmt.ref1,T_01ptr); 3 1227 call link (stmt.ref2,lstk.node_ptr(li)); 3 1228 call link (field.value,stmtptr); 3 1229 end; 3 1230 else do; 3 1231 call aloc_value("VL",ls_top); 3 1232 value.sym = tptr; 3 1233 call link (field.value,valptr); 3 1234 end; 3 1235 if dmp_sw then call mrpg_dump_$all((fldptr),0); 3 1236 report_sw = "0"b; 3 1237 if (field.value.b->stmt.type = ":=") 3 1238 then do; 3 1239 tptr = field.value.b->stmt.ref1.b; 3 1240 call link_list(field.let,field.value); 3 1241 call aloc_value("VL",ls_top-1); 3 1242 value.sym = tptr; 3 1243 field.value.b, field.value.e = null(); 3 1244 call link (field.value, valptr); 3 1245 if (field.kind = 0) 3 1246 then field.kind = Chard; 3 1247 end; 3 1248 if (field.kind = Pic) 3 1249 then do; 3 1250 ch2 = "cP"; 3 1251 goto pe_field; 3 1252 end; 3 1253 if (field.kind = Edit) 3 1254 then do; 3 1255 ch2 = "cE"; 3 1256 pe_field: 3 1257 call st_search("T_02",T_02ptr,"ID",Chard,256); 3 1258 call aloc_stmt(ch2,ls_top); 3 1259 call link(stmt.ref1,T_02ptr); 3 1260 call link(stmt.ref2,(field.value.b)); 3 1261 call link(stmt.ref2,(field.data)); 3 1262 call link(field.let,stmtptr); 3 1263 call aloc_value("VL",ls_top-1); 3 1264 value.sym = T_02ptr; 3 1265 field.value.b, field.value.e = null(); 3 1266 call link (field.value, valptr); 3 1267 field.kind = Chard; 3 1268 end; 3 1269 valptr = field.value.b; 3 1270 if (value.type = "VL") 3 1271 then do; 3 1272 srefptr = value.sym; 3 1273 if (symref.type = "SY") 3 1274 then do; 3 1275 symtabptr = symref.sym; 3 1276 if (symtab.type = "ST") 3 1277 then if (index(symtab.data,BSP) ^= 0) 3 1278 then field.bsp = "1"b; 3 1279 end; 3 1280 end; 3 1281 fldptr = null(); 3 1282 return; 3 1283 dcl BSP char(1) int static init(""); 3 1284 3 1285 3 1286 /* ::= ! */; 3 1287 /* ::= ! */ 3 1288 3 1289 /* ::= PICTURE ! */ 3 1290 rule(0172): 3 1291 if (field.kind ^= 0) 3 1292 then do; 3 1293 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple data-type"); 3 1294 return; 3 1295 end; 3 1296 symtabptr = lstk.node_ptr(ls_top)->symref.sym; 3 1297 call check_picture; 3 1298 field.kind = Pic; 3 1299 field.data = lstk.node_ptr(ls_top); 3 1300 return; 3 1301 3 1302 check_picture: proc; 3 1303 3 1304 dcl info char(100); 3 1305 dcl pic char(symtab.leng-2); 3 1306 dcl picture_info_ entry (char(*),ptr,fixed bin); 3 1307 3 1308 pic = substr(symtab.data,2); 3 1309 call picture_info_(pic,addr(info),ki); 3 1310 if (ki = 0) 3 1311 then return; 3 1312 if (ki = 414) 3 1313 then call mrpg_error_(2,(lstk.line(ls_top)),"Normalized picture > 64 characters. ""^a""",pic); 3 1314 else if (ki = 434) 3 1315 then call mrpg_error_(2,(lstk.line(ls_top)),"Picture scale factor outside range -128:+127 ""^a""",pic); 3 1316 else call mrpg_error_(2,(lstk.line(ls_top)),"Syntax error in picture. ""^a""",pic); 3 1317 return; 3 1318 3 1319 end check_picture; 3 1320 3 1321 /* ::= EDIT ! */ 3 1322 rule(0173): 3 1323 call mrpg_error_(2,(lstk.line(ls_top-1)),"EDIT not implemented"); 3 1324 if (field.kind ^= 0) 3 1325 then do; 3 1326 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple data-type"); 3 1327 return; 3 1328 end; 3 1329 field.kind = Edit; 3 1330 field.data = lstk.node_ptr(ls_top); 3 1331 return; 3 1332 3 1333 /* ::= CHARACTER ( ) ! */ 3 1334 rule(0174): 3 1335 if (field.kind ^= 0) 3 1336 then do; 3 1337 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple data-type"); 3 1338 return; 3 1339 end; 3 1340 field.kind = Char; 3 1341 field.leng = lstk.val(ls_top-1); 3 1342 return; 3 1343 3 1344 3 1345 /* ::= LET ! */ 3 1346 rule(0175): 3 1347 min_paren = 1; 3 1348 report_sw = "0"b; 3 1349 return; 3 1350 3 1351 3 1352 /* ::= ( ) ! */; 3 1353 rule(0176): 3 1354 min_paren = 0; 3 1355 report_sw = "1"b; 3 1356 return; 3 1357 3 1358 /* ::= COLUMN ! */; 3 1359 rule(0177): 3 1360 field.col = lstk.val(ls_top); 3 1361 return; 3 1362 3 1363 3 1364 /* ::= BSP ! */; 3 1365 rule(0178): 3 1366 field.bsp = "1"b; 3 1367 return; 3 1368 3 1369 /* ::= LEFT ! */; 3 1370 rule(0179): 3 1371 if (field.align ^= 0) 3 1372 then do; 3 1373 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1374 return; 3 1375 end; 3 1376 field.align = Left; 3 1377 return; 3 1378 3 1379 /* ::= CENTER ! */; 3 1380 rule(0180): 3 1381 if (field.align ^= 0) 3 1382 then do; 3 1383 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1384 return; 3 1385 end; 3 1386 field.align = Center; 3 1387 return; 3 1388 3 1389 /* ::= RIGHT ! */; 3 1390 rule(0181): 3 1391 if (field.align ^= 0) 3 1392 then do; 3 1393 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1394 return; 3 1395 end; 3 1396 field.align = Right; 3 1397 return; 3 1398 3 1399 /* ::= FILL ! */; 3 1400 rule(0182): 3 1401 call mrpg_error_(2,(lstk.line(ls_top)),"FILL not implemented."); 3 1402 if (field.align ^= 0) 3 1403 then do; 3 1404 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1405 return; 3 1406 end; 3 1407 field.align = Fill; 3 1408 return; 3 1409 3 1410 /* ::= FILL ( , ) ! */; 3 1411 rule(0183): 3 1412 call mrpg_error_(2,(lstk.line(ls_top-5)),"FILL not implemented."); 3 1413 if (field.align ^= 0) 3 1414 then do; 3 1415 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1416 return; 3 1417 end; 3 1418 field.align = Fill; 3 1419 field.fill(1) = lstk.val(ls_top-3); 3 1420 field.fill(2) = lstk.val(ls_top-1); 3 1421 return; 3 1422 3 1423 /* ::= ALIGN ! */; 3 1424 rule(0184): 3 1425 if (field.align ^= 0) 3 1426 then do; 3 1427 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1428 return; 3 1429 end; 3 1430 field.align = Align; 3 1431 tptr = lstk.node_ptr(ls_top); 3 1432 if (tptr ^= null()) 3 1433 then do; 3 1434 if (tptr->symref.sym->symtab.leng ^= 3) 3 1435 then call mrpg_error_ (2,(lstk.line(ls_top-1)),"Align string more than 1 character"); 3 1436 field.alch = substr(tptr->symref.sym->symtab.data,2,1); 3 1437 end; 3 1438 return; 3 1439 3 1440 /* ::= FOLD ! */ 3 1441 rule(0185): 3 1442 call mrpg_error_(2,(lstk.line(ls_top)),"FOLD not implemented."); 3 1443 if (field.align ^= 0) 3 1444 then do; 3 1445 call mrpg_error_ (2,(lstk.line(ls_top-1)),"Multiple aligning"); 3 1446 return; 3 1447 end; 3 1448 field.align = Fold; 3 1449 return; 3 1450 3 1451 3 1452 /* ::= BEGIN ! */ 3 1453 rule(0186): 3 1454 if (if_nest > 0) 3 1455 then do; 3 1456 call mrpg_error_(2,(lstk.line(ls_top)),"BEGIN preceded by ^i unterminated IFs.",if_nest); 3 1457 end; 3 1458 call aloc_stmt("BG",ls_top); 3 1459 beginptr = stmtptr; 3 1460 begin_ct = begin_ct + 1; 3 1461 stmtlistptr = addr(stmt.ref3); 3 1462 stmt_list.b, stmt_list.e = null(); 3 1463 min_paren = 1; 3 1464 return; 3 1465 3 1466 /* ::= ( <[assign...]> ) ! */ 3 1467 rule(0187): 3 1468 min_paren = 0; 3 1469 return; 3 1470 3 1471 /* ::= 3 1472* <[sort]> 3 1473* <[stmt...]> 3 1474* <[hold]> ! */ 3 1475 rule(0188): 3 1476 call link(exec,beginptr); 3 1477 beginptr = null(); 3 1478 return; 3 1479 3 1480 /* <[stmt...]> ::= ! */; 3 1481 rule(0189): 3 1482 if (begin_ct > 1) 3 1483 then call mrpg_error_ (2,(lstk.line(ls_top-4)),"No useful statements in this phase."); 3 1484 return; 3 1485 3 1486 /* <[stmt...]> ::= ! */ 3 1487 3 1488 /* ::= ! */; 3 1489 /* ::= ! */ 3 1490 /* ::= THEN ! */ 3 1491 rule(0193): 3 1492 if_nest = if_nest + 1; 3 1493 call aloc_stmt("IF",ls_top-2); 3 1494 call link(stmtlistptr->a_list,stmtptr); 3 1495 call link(stmt.ref1,lstk.node_ptr(ls_top-1)); 3 1496 lstk.node_ptr(ls_top-2) = stmtlistptr; 3 1497 stmtlistptr = addr(stmt.ref2); 3 1498 elselistptr (if_nest) = addr(stmt.ref3); 3 1499 return; 3 1500 3 1501 /* ::= ELSE ! */ 3 1502 rule(0194): 3 1503 stmtlistptr = elselistptr (if_nest); 3 1504 return; 3 1505 3 1506 /* ::= IF FI ; ! */; 3 1507 rule(0195): 3 1508 call make_bool(ls_top-4); 3 1509 if_nest = if_nest - 1; 3 1510 stmtlistptr = lstk.node_ptr(ls_top-5); 3 1511 return; 3 1512 3 1513 /* ::= IF FI; ! */; 3 1514 rule(0196): 3 1515 if_nest = if_nest - 1; 3 1516 stmtlistptr = lstk.node_ptr(ls_top-4); 3 1517 call mrpg_error_(0,(lstk.line(ls_top-4)),"Is the ""IF"" terminated."); 3 1518 return; 3 1519 3 1520 /* ::= IF FI ; ! */ 3 1521 rule(0197): 3 1522 call make_bool(ls_top-6); 3 1523 if_nest = if_nest - 1; 3 1524 stmtlistptr = lstk.node_ptr(ls_top-7); 3 1525 return; 3 1526 3 1527 /* ::= IF FI; ! */ 3 1528 rule(0198): 3 1529 if_nest = if_nest - 1; 3 1530 stmtlistptr = lstk.node_ptr(ls_top-6); 3 1531 call mrpg_error_(0,(lstk.line(ls_top-6)),"Is the ""IF"" terminated."); 3 1532 return; 3 1533 3 1534 /* ::= ! */; 3 1535 rule(0199): 3 1536 call link(stmtlistptr->a_list,lstk.node_ptr(ls_top)); 3 1537 return; 3 1538 3 1539 /* ::= PRINT ; ! */; 3 1540 rule(0200): 3 1541 call aloc_stmt("PR",ls_top-2); 3 1542 call link(stmt.ref1, lstk.node_ptr(ls_top-1)); 3 1543 tptr = lstk.node_ptr(ls_top-1); 3 1544 call use_ref((tptr)); 3 1545 ch2 = tptr->symref.sym->symtab.use.b->datum.type; 3 1546 if (ch2 ^= "RP") & (ch2 ^= "DT") 3 1547 then do; 3 1548 call mrpg_error_ (2,(tptr->symref.line),"The ^a name ""^a"" cannot be the object of a PRINT statement." 3 1549 ,dt_s(lstk.datype(ls_top)),pull_name(ls_top-1)); 3 1550 end; 3 1551 call link(stmtlistptr->a_list,stmtptr); 3 1552 return; 3 1553 3 1554 /* ::= ; ! */ 3 1555 /* ::= THEN ! */ 3 1556 rule(0202): 3 1557 call mrpg_error_(2,(lstk.line(ls_top)),"Extra THEN present."); 3 1558 return; 3 1559 3 1560 /* ::= HOLD ! */ 3 1561 rule(0203): 3 1562 hold_list.b, hold_list.e = null(); 3 1563 return; 3 1564 3 1565 /* <[hold]> ::= ! */; 3 1566 rule(0204): 3 1567 if (begin_ct = 1) 3 1568 then do; 3 1569 call hold_input; 3 1570 goto hold_common; 3 1571 end; 3 1572 return; 3 1573 3 1574 /* <[hold]> ::= ; ! */ 3 1575 rule(0205): 3 1576 if (begin_ct = 1) 3 1577 then call hold_input; 3 1578 goto hold_common; 3 1579 3 1580 /* <[hold]> ::= ; ! */ 3 1581 rule(0206): 3 1582 if (begin_ct ^= 1) 3 1583 then do; 3 1584 call mrpg_error_ (2,(lstk.line(ls_top-2)),"HOLD values allowed only in first phase."); 3 1585 hold_list.b, hold_list.e = null(); 3 1586 end; 3 1587 hold_common: 3 1588 call aloc_stmt("HD",ls_top); 3 1589 stmt.ref1 = hold_list; 3 1590 call link(stmtlistptr->a_list,stmtptr); 3 1591 hold_list.b, hold_list.e = null(); 3 1592 return; 3 1593 3 1594 /* <[sort]> ::= ! */; 3 1595 rule(0207): 3 1596 ch2 = "SR"; 3 1597 li = -1; 3 1598 goto sort_common; 3 1599 3 1600 /* ::= SORT ! */ 3 1601 rule(0208): 3 1602 if (begin_ct = 1) 3 1603 then call mrpg_error_ (2,(lstk.line(ls_top)),"SORT not allowed in first phase."); 3 1604 return; 3 1605 3 1606 /* <[sort]> ::= ; ! */; 3 1607 rule(0209): 3 1608 ch2 = "SR"; 3 1609 li = 2; 3 1610 goto sort_common; 3 1611 3 1612 /* <[sort]> ::= NO DUPLICATE ; ! */; 3 1613 rule(0210): 3 1614 ch2 = "SU"; 3 1615 li = 4; 3 1616 sort_common: 3 1617 call aloc_stmt(ch2,ls_top-li); 3 1618 stmt.ref2 = sort_list; 3 1619 call link (stmtlistptr->a_list,stmtptr); 3 1620 sort_list.b, sort_list.e = null(); 3 1621 return; 3 1622 3 1623 /* ::= ! */; 3 1624 /* ::= , ! */ 3 1625 3 1626 /* ::= ! */; 3 1627 rule(0213): 3 1628 allocate attr in (space); 3 1629 attr.type = "KY"; 3 1630 attr.asc = "1"b; 3 1631 ki = ls_top; 3 1632 sortkey: 3 1633 attr.sym = lstk.node_ptr(ki); 3 1634 if (lstk.datype(ki) = 0) 3 1635 | (lstk.datype(ki) > DEC) 3 1636 then do; 3 1637 call mrpg_error_(2,lstk.line(ki),"The ^a name ""^a"" cannot be a sort key." 3 1638 ,dt_s(lstk.datype(ki)),pull_name(ki)); 3 1639 return; 3 1640 end; 3 1641 call use_ref((attr.sym)); 3 1642 call link(sort_list,atptr); 3 1643 return; 3 1644 3 1645 /* ::= ASCENDING ! */; 3 1646 rule(0214): 3 1647 allocate attr in (space); 3 1648 attr.type = "KY"; 3 1649 attr.asc = "1"b; 3 1650 ki = ls_top-1; 3 1651 goto sortkey; 3 1652 3 1653 /* ::= DESCENDING ! */ 3 1654 rule(0215): 3 1655 allocate attr in (space); 3 1656 attr.type = "KY"; 3 1657 attr.des = "1"b; 3 1658 ki = ls_top-1; 3 1659 goto sortkey; 3 1660 3 1661 /* <[assign...]> ::= ! */; 3 1662 /* <[assign...]> ::= ! */ 3 1663 /* ::= ! */; 3 1664 rule(0218): 3 1665 /* ::= ! */ 3 1666 rule(0219): 3 1667 tptr = lstk.node_ptr(ls_top); 3 1668 if (fldptr ^= null()) 3 1669 then do; 3 1670 call link(field.let,tptr); 3 1671 end; 3 1672 else do; 3 1673 call link(beginptr->stmt.ref1,tptr); 3 1674 end; 3 1675 return; 3 1676 3 1677 /* ::= := ; ! */; 3 1678 rule(0220): 3 1679 goto cv_assign(lstk.datype(ls_top-3)); 3 1680 cv_assign(0): 3 1681 cv_assign(4): 3 1682 cv_assign(5): 3 1683 cv_assign(6): 3 1684 cv_assign(7): 3 1685 call mrpg_error_(2,(lstk.line(ls_top-3)),"The ^a name ""^a"" cannot be the object of an assignment." 3 1686 ,dt_s(lstk.datype(ls_top-3)),pull_name(ls_top-3)); 3 1687 return; 3 1688 3 1689 cv_assign(1): /* BOOLEAN receiver */ 3 1690 call make_bool(ls_top-1); 3 1691 goto cvassign; 3 1692 3 1693 cv_assign(2): /* CHAR receiver */ 3 1694 if (lstk.node_ptr(ls_top-3)->symref.sym->symtab.use.b->datum.kind = Pic) 3 1695 then goto cvassign; 3 1696 if (lstk.datype(ls_top-1) = DEC) 3 1697 then do; 3 1698 call aloc_stmt("=:",ls_top-3); 3 1699 goto cvassign1; 3 1700 end; 3 1701 call make_char(ls_top-1); 3 1702 goto cvassign; 3 1703 3 1704 cv_assign(3): /* DECIMAL receiver */ 3 1705 call make_dec(ls_top-1); 3 1706 3 1707 cvassign: 3 1708 3 1709 call aloc_stmt(":=",ls_top-3); 3 1710 cvassign1: 3 1711 call link(stmt.ref1, lstk.node_ptr(ls_top-3)); 3 1712 call use_ref((lstk.node_ptr(ls_top-3))); 3 1713 call link(stmt.ref2, lstk.node_ptr(ls_top-1)); 3 1714 lstk.node_ptr(ls_top-3) = stmtptr; 3 1715 return; 3 1716 3 1717 3 1718 /* ::= %SUBSTR ! */ 3 1719 rule(0221): 3 1720 /* ::= %ROMAN ! */ 3 1721 rule(0222): 3 1722 /* ::= %REPEAT ! */ 3 1723 rule(0223): 3 1724 /* ::= TRANSFORM ! */ 3 1725 rule(0224): 3 1726 depth = depth + 1; 3 1727 return; 3 1728 3 1729 /* ::= ( , )! */; 3 1730 rule(0225): 3 1731 depth = depth - 1; 3 1732 if (lstk.datype(ls_top-1) ^= TABLE) 3 1733 then do; 3 1734 call mrpg_error_(2,(lstk.line(ls_top-1)),"TRANSFORM must reference a table."); 3 1735 return; 3 1736 end; 3 1737 call use_ref ((lstk.node_ptr(ls_top-1))); 3 1738 ki = lstk.node_ptr(ls_top-1)->symref.sym->symtab.use.b->datum.datal.b->opn.op; 3 1739 if (ki = n_n) 3 1740 then do; 3 1741 call make_dec(ls_top-3); 3 1742 lstk.datype(ls_top-5) = DEC; 3 1743 end; 3 1744 else if (ki = n_s) 3 1745 then do; 3 1746 call make_dec(ls_top-3); 3 1747 lstk.datype(ls_top-5) = CHAR; 3 1748 end; 3 1749 else if (ki = s_n) 3 1750 then do; 3 1751 call make_char(ls_top-3); 3 1752 lstk.datype(ls_top-5) = DEC; 3 1753 end; 3 1754 else if (ki = s_s) 3 1755 then do; 3 1756 call make_char(ls_top-3); 3 1757 lstk.datype(ls_top-5) = CHAR; 3 1758 end; 3 1759 else do; 3 1760 call mrpg_error_(3,(lstk.line(ls_top-5)),"Bad table type."); 3 1761 return; 3 1762 end; 3 1763 call aloc_opn(Tran,ls_top-5); 3 1764 opn.kind = lstk.node_ptr(ls_top-1)->symref.kind; 3 1765 opn.op1 = lstk.node_ptr(ls_top-1); 3 1766 opn.op2 = lstk.node_ptr(ls_top-3); 3 1767 lstk.node_ptr(ls_top-5) = opptr; 3 1768 return; 3 1769 3 1770 /* ::= ! */; 3 1771 rule(0226): 3 1772 /* ::= , ! */ 3 1773 rule(0227): 3 1774 call link(hold_list,lstk.node_ptr(ls_top)); 3 1775 call use_ref((lstk.node_ptr(ls_top))); 3 1776 return; 3 1777 3 1778 /* ::= INPUT ! */ 3 1779 rule(0228): 3 1780 call hold_input; 3 1781 return; 3 1782 3 1783 hold_input: proc; 3 1784 do daptr = tree.input.b 3 1785 repeat (datum.next) 3 1786 while (daptr ^= null()); 3 1787 if (datum.sym ^= null()) 3 1788 then do; 3 1789 allocate symref in (space); 3 1790 symref = datum.sym->symref; 3 1791 symref.next = null(); 3 1792 call link(hold_list,srefptr); 3 1793 call use_ref(srefptr); 3 1794 end; 3 1795 end; 3 1796 end hold_input; 3 1797 3 1798 /* ::= OR ! */; 3 1799 rule(0229): 3 1800 call make_bool (ls_top-2); 3 1801 call make_bool (ls_top); 3 1802 call aloc_opn(Or,ls_top-2); 3 1803 opn.kind = Bool; 3 1804 opn.op1 = lstk.node_ptr(ls_top-2); 3 1805 opn.op2 = lstk.node_ptr(ls_top); 3 1806 lstk.node_ptr(ls_top-2) = opptr; 3 1807 lstk.datype(ls_top-2) = BOOL; 3 1808 lstk.datype(ls_top-2) = BOOL; 3 1809 return; 3 1810 3 1811 /* ::= ! */ 3 1812 3 1813 /* ::= AND ! */; 3 1814 rule(0231): 3 1815 call make_bool (ls_top-2); 3 1816 call make_bool (ls_top); 3 1817 call aloc_opn(And,ls_top-2); 3 1818 opn.kind = Bool; 3 1819 opn.op1 = lstk.node_ptr(ls_top-2); 3 1820 opn.op2 = lstk.node_ptr(ls_top); 3 1821 lstk.node_ptr(ls_top-2) = opptr; 3 1822 return; 3 1823 3 1824 /* ::= ! */ 3 1825 3 1826 /* ::= ! */; 3 1827 /* ::= NOT ! */; 3 1828 rule(0234): 3 1829 call make_bool(ls_top); 3 1830 call aloc_opn(Not,ls_top-1); 3 1831 opn.kind = Bool; 3 1832 opn.op2 = lstk.node_ptr(ls_top); 3 1833 lstk.node_ptr(ls_top-1) = opptr; 3 1834 lstk.datype(ls_top-1) = BOOL; 3 1835 return; 3 1836 3 1837 /* ::= ! */; 3 1838 /* ::= ! */ 3 1839 /* ::= EQ ! */; 3 1840 rule(0237): 3 1841 lstk.val(ls_top) = EQ; 3 1842 return; 3 1843 3 1844 /* ::= NE ! */; 3 1845 rule(0238): 3 1846 lstk.val(ls_top) = NE; 3 1847 return; 3 1848 3 1849 /* ::= LE ! */; 3 1850 rule(0239): 3 1851 lstk.val(ls_top) = LE; 3 1852 return; 3 1853 3 1854 /* ::= GE ! */; 3 1855 rule(0240): 3 1856 lstk.val(ls_top) = GE; 3 1857 return; 3 1858 3 1859 /* ::= LT ! */; 3 1860 rule(0241): 3 1861 lstk.val(ls_top) = LT; 3 1862 return; 3 1863 3 1864 /* ::= GT ! */ 3 1865 rule(0242): 3 1866 lstk.val(ls_top) = GT; 3 1867 return; 3 1868 3 1869 /* ::= ! */ 3 1870 rule(0243): 3 1871 if (lstk.datype(ls_top-2) ^= lstk.datype(ls_top)) 3 1872 then do; 3 1873 if (lstk.datype(ls_top) = CHAR) 3 1874 then call make_char(ls_top-2); 3 1875 else if (lstk.datype(ls_top-2) = CHAR) 3 1876 then call make_char(ls_top); 3 1877 else do; 3 1878 call make_dec(ls_top); 3 1879 call make_dec(ls_top-2); 3 1880 end; 3 1881 end; 3 1882 goto rels; 3 1883 3 1884 /* ::= ! */ 3 1885 rule(0244): 3 1886 /* ::= ! */ 3 1887 rule(0245): 3 1888 call make_char (ls_top-2); 3 1889 call make_char (ls_top); 3 1890 rels: 3 1891 call aloc_opn((lstk.val(ls_top-1)),ls_top-2); 3 1892 opn.kind = Bool; 3 1893 opn.op1 = lstk.node_ptr(ls_top-2); 3 1894 opn.op2 = lstk.node_ptr(ls_top); 3 1895 lstk.node_ptr(ls_top-2) = opptr; 3 1896 lstk.val(ls_top-2) = 1; 3 1897 lstk.datype(ls_top-2) = BOOL; 3 1898 return; 3 1899 3 1900 /* ::= BEGINS ! */; 3 1901 rule(0246): 3 1902 lstk.val (ls_top) = Beg; 3 1903 return; 3 1904 3 1905 /* ::= NOT BEGIN ! */; 3 1906 rule(0247): 3 1907 lstk.val (ls_top - 1) = Nbeg; 3 1908 return; 3 1909 3 1910 /* ::= ENDS ! */; 3 1911 rule(0248): 3 1912 lstk.val (ls_top) = End; 3 1913 return; 3 1914 3 1915 /* ::= NOT END ! */; 3 1916 rule(0249): 3 1917 lstk.val (ls_top - 1) = Nend; 3 1918 return; 3 1919 3 1920 /* ::= CONTAINS ! */; 3 1921 rule(0250): 3 1922 lstk.val (ls_top) = Cont; 3 1923 return; 3 1924 3 1925 /* ::= NOT CONTAIN ! */ 3 1926 rule(0251): 3 1927 lstk.val (ls_top - 1) = Ncont; 3 1928 return; 3 1929 3 1930 /* ::= BEGINS WORD ! */; 3 1931 rule(0252): 3 1932 lstk.val (ls_top - 1) = Begw; 3 1933 return; 3 1934 3 1935 /* ::= NOT BEGIN WORD ! */; 3 1936 rule(0253): 3 1937 lstk.val (ls_top - 2) = Nbegw; 3 1938 return; 3 1939 3 1940 /* ::= ENDS WORD ! */; 3 1941 rule(0254): 3 1942 lstk.val (ls_top - 1) = Endw; 3 1943 return; 3 1944 3 1945 /* ::= NOT END WORD ! */; 3 1946 rule(0255): 3 1947 lstk.val (ls_top - 2) = Nendw; 3 1948 return; 3 1949 3 1950 /* ::= CONTAINS WORD ! */; 3 1951 rule(0256): 3 1952 lstk.val (ls_top - 1) = Contw; 3 1953 return; 3 1954 3 1955 /* ::= NOT CONTAIN WORD ! */ 3 1956 rule(0257): 3 1957 lstk.val (ls_top - 2) = Ncontw; 3 1958 return; 3 1959 3 1960 /* ::= IN ! */; 3 1961 rule(0258): 3 1962 class = ls_top-2; 3 1963 call aloc_opn(In,(class)); 3 1964 IN_rtn: 3 1965 if (lstk.datype(ls_top) ^= SET) 3 1966 then do; 3 1967 call mrpg_error_(2,(lstk.line(ls_top)),"The ^a name ""^a"" cannot be the object of an IN." 3 1968 ,dt_s(lstk.datype(ls_top)),pull_name((ls_top))); 3 1969 return; 3 1970 end; 3 1971 ki = lstk.node_ptr(ls_top)->symref.sym->symtab.use.b->datum.datal.b->opn.op; 3 1972 if (ki = n_n) & (lstk.datype (class) ^= DEC) 3 1973 | (ki = s_s) & (lstk.datype (class) ^= CHAR) 3 1974 then do; 3 1975 call mrpg_error_ (2, (lstk.line (class)), """^a"" has the wrong data type for SET ""^a"".", 3 1976 pull_name ((class)), pull_name ((ls_top))); 3 1977 return; 3 1978 end; 3 1979 call use_ref ((lstk.node_ptr(ls_top))); 3 1980 opn.kind = Bool; 3 1981 opn.op1 = lstk.node_ptr(ls_top); 3 1982 opn.op2 = lstk.node_ptr(class); 3 1983 lstk.node_ptr(class) = opptr; 3 1984 lstk.datype(class) = BOOL; 3 1985 return; 3 1986 3 1987 /* ::= NOT IN ! */ 3 1988 rule(0259): 3 1989 class = ls_top-3; 3 1990 call aloc_opn(Nin,(class)); 3 1991 goto IN_rtn; 3 1992 3 1993 /* ::= ! */; 3 1994 3 1995 /* ::= ! */ 3 1996 3 1997 /* ::= ! */; 3 1998 rule(0262): 3 1999 set_type = n_n; 3 2000 goto set_comm; 3 2001 3 2002 /* ::= ! */; 3 2003 rule(0263): 3 2004 set_type = s_s; 3 2005 goto set_comm; 3 2006 3 2007 /* ::= , ! */ 3 2008 rule(0264): 3 2009 /* ::= , ! */ 3 2010 rule(0265): 3 2011 set_comm: 3 2012 call aloc_opn(set_type,ls_top); 3 2013 opn.kind = Bool; 3 2014 opn.op1 = lstk.node_ptr(ls_top); 3 2015 call link (datum.datal,opptr); 3 2016 return; 3 2017 3 2018 3 2019 /* ::= ! */; 3 2020 3 2021 /* ::= TRUE ! */; 3 2022 rule(0267): 3 2023 /* ::= FALSE ! */; 3 2024 rule(0268): 3 2025 lstk.node_ptr(ls_top)->symref.kind = Bool; 3 2026 lstk.datype(ls_top) = BOOL; 3 2027 return; 3 2028 3 2029 /* ::= ! */ 3 2030 3 2031 /* ::= %LEVEL ( ) ! */; 3 2032 rule(0270): 3 2033 if (repptr ^= null()) 3 2034 then do; 3 2035 li = break_number(lstk.node_ptr(ls_top-1)); 3 2036 if (li = 0) 3 2037 then do; 3 2038 call mrpg_error_(2,(lstk.line(ls_top-1)),"Identifier ""^a"" is not a break field in this report.", 3 2039 pull_name(ls_top-1)); 3 2040 return; 3 2041 end; 3 2042 lstk.val(ls_top-1) = li; 3 2043 call use_ref ((lstk.node_ptr(ls_top-1))); 3 2044 end; 3 2045 3 2046 /* ::= %LEVEL ( ) ! */; 3 2047 rule(0271): 3 2048 if (repptr = null) 3 2049 then do; 3 2050 call mrpg_error_(2,(lstk.line(ls_top-3)),"%LEVEL is only allowed within a REPORT definition."); 3 2051 return; 3 2052 end; 3 2053 call aloc_opn (Level, ls_top-3); 3 2054 opn.kind = Bool; 3 2055 opn.op1 = report.sym; 3 2056 dcl pic2 pic"99"; 3 2057 pic2 = lstk.val(ls_top-1); 3 2058 call st_search((pic2),tptr,"NU",0,0); 3 2059 opn.op2 = tptr; 3 2060 lstk.node_ptr(ls_top-3) = opptr; 3 2061 lstk.datype(ls_top-3) = BOOL; 3 2062 return; 3 2063 3 2064 /* ::= %ABSENT ( ) ! */; 3 2065 rule(0272): 3 2066 call mrpg_error_(2,(lstk.line(ls_top-3)),"%ABSENT not implemented."); 3 2067 return; 3 2068 3 2069 /* ::= %PRESENT ( ) ! */; 3 2070 rule(0273): 3 2071 call mrpg_error_(2,(lstk.line(ls_top-3)),"%PRESENT not implemented."); 3 2072 return; 3 2073 3 2074 /* ::= %FIT ! */ 3 2075 rule(0274): 3 2076 call mrpg_error_(2,(lstk.line(ls_top-3)),"%FIT not implemented."); 3 2077 return; 3 2078 3 2079 /* ::= IF ( ) ! */; 3 2080 rule(0275): 3 2081 call make_bool(ls_top-2); 3 2082 call make_char(ls_top); 3 2083 tptr = lstk.node_ptr(ls_top); 3 2084 call aloc_opn(If,ls_top-4); 3 2085 opn.kind = tptr->symref.kind; 3 2086 opn.op1 = lstk.node_ptr(ls_top-2); 3 2087 opn.op2 = tptr; 3 2088 lstk.node_ptr(ls_top-4) = opptr; 3 2089 lstk(ls_top-4).datype = tptr->symref.kind; 3 2090 return; 3 2091 3 2092 /* ::= ! */ 3 2093 /* ::= CONCATENATE ! */; 3 2094 rule(0277): 3 2095 call make_char (ls_top-2); 3 2096 call make_char (ls_top); 3 2097 call aloc_opn(Cat,ls_top-2); 3 2098 opn.kind = Char; 3 2099 opn.op1 = lstk.node_ptr(ls_top-2); 3 2100 opn.op2 = lstk.node_ptr(ls_top); 3 2101 lstk.node_ptr(ls_top-2) = opptr; 3 2102 lstk.datype(ls_top-2) = CHAR; 3 2103 return; 3 2104 3 2105 /* ::= ! */ 3 2106 3 2107 /* ::= ! */; 3 2108 /* ::= ! */; 3 2109 /* ::= ! */ 3 2110 3 2111 /* ::= ( , , ) ! */; 3 2112 rule(0282): 3 2113 call make_char (ls_top-5); 3 2114 call make_dec (ls_top-3); 3 2115 call make_dec (ls_top-1); 3 2116 call aloc_opn(Substr,ls_top-7); 3 2117 opn.kind = Char; 3 2118 opn.op1 = lstk.node_ptr(ls_top-5); 3 2119 opn.op2 = lstk.node_ptr(ls_top-3); 3 2120 opn.op3 = lstk.node_ptr(ls_top-1); 3 2121 lstk.node_ptr(ls_top-7) = opptr; 3 2122 lstk.datype(ls_top-7) = CHAR; 3 2123 depth = depth - 1; 3 2124 return; 3 2125 3 2126 /* ::= ( , ) ! */; 3 2127 rule(0283): 3 2128 call make_dec (ls_top-1); 3 2129 call make_char (ls_top-3); 3 2130 call aloc_opn(Substr,ls_top-5); 3 2131 opn.kind = Char; 3 2132 opn.op1 = lstk.node_ptr(ls_top-3); 3 2133 opn.op2 = lstk.node_ptr(ls_top-1); 3 2134 lstk.node_ptr(ls_top-5) = opptr; 3 2135 lstk.datype(ls_top-5) = CHAR; 3 2136 depth = depth - 1; 3 2137 return; 3 2138 3 2139 /* ::= ( ) ! */; 3 2140 rule(0284): 3 2141 call mrpg_error_(2,(lstk.line(ls_top-3)),"%ROMAN not implemented."); 3 2142 depth = depth - 1; 3 2143 return; 3 2144 3 2145 /* ::= %MMDDYY ! */; 3 2146 /* ::= %YYDDD ! */; 3 2147 /* ::= %MONTH ! */; 3 2148 /* ::= %DAY ! */; 3 2149 /* ::= %HHMMSS ! */; 3 2150 /* ::= ( , ) ! */ 3 2151 rule(0290): 3 2152 call make_dec(ls_top-1); 3 2153 call make_char(ls_top-3); 3 2154 call aloc_opn(Rpt,ls_top-5); 3 2155 opn.kind = Char; 3 2156 opn.op1 = lstk.node_ptr(ls_top-3); 3 2157 opn.op2 = lstk.node_ptr(ls_top-1); 3 2158 lstk.node_ptr(ls_top-5) = opptr; 3 2159 lstk.datype(ls_top-5) = CHAR; 3 2160 depth = depth - 1; 3 2161 return; 3 2162 3 2163 3 2164 /* ::= + ! */; 3 2165 rule(0291): 3 2166 call make_dec (ls_top-2); 3 2167 call make_dec(ls_top); 3 2168 call aloc_opn(Add,ls_top-2); 3 2169 opn.kind = Decimal; 3 2170 opn.op1 = lstk.node_ptr(ls_top-2); 3 2171 opn.op2 = lstk.node_ptr(ls_top); 3 2172 lstk.node_ptr(ls_top-2) = opptr; 3 2173 lstk.datype(ls_top-2) = DEC; 3 2174 return; 3 2175 3 2176 /* ::= - ! */; 3 2177 rule(0292): 3 2178 call make_dec (ls_top-2); 3 2179 call make_dec(ls_top); 3 2180 call aloc_opn(Sub,ls_top-2); 3 2181 opn.kind = Decimal; 3 2182 opn.op1 = lstk.node_ptr(ls_top-2); 3 2183 opn.op2 = lstk.node_ptr(ls_top); 3 2184 lstk.node_ptr(ls_top-2) = opptr; 3 2185 lstk.datype(ls_top-2) = DEC; 3 2186 return; 3 2187 3 2188 /* ::= ! */ 3 2189 3 2190 /* ::= * ! */; 3 2191 rule(0294): 3 2192 call make_dec (ls_top-2); 3 2193 call make_dec(ls_top); 3 2194 call aloc_opn(Mul,ls_top-2); 3 2195 opn.kind = Decimal; 3 2196 opn.op1 = lstk.node_ptr(ls_top-2); 3 2197 opn.op2 = lstk.node_ptr(ls_top); 3 2198 lstk.node_ptr(ls_top-2) = opptr; 3 2199 lstk.datype(ls_top-2) = DEC; 3 2200 return; 3 2201 3 2202 /* ::= / ! */; 3 2203 rule(0295): 3 2204 call make_dec (ls_top-2); 3 2205 call make_dec(ls_top); 3 2206 call aloc_opn(Div,ls_top-2); 3 2207 opn.kind = Decimal; 3 2208 opn.op1 = lstk.node_ptr(ls_top-2); 3 2209 opn.op2 = lstk.node_ptr(ls_top); 3 2210 lstk.node_ptr(ls_top-2) = opptr; 3 2211 lstk.datype(ls_top-2) = DEC; 3 2212 return; 3 2213 3 2214 /* ::= ! */ 3 2215 3 2216 /* ::= ! */; 3 2217 /* ::= - ! */; 3 2218 rule(0298): 3 2219 call make_dec(ls_top); 3 2220 call aloc_opn(Sub,ls_top-2); 3 2221 opn.kind = Decimal; 3 2222 opn.op2 = lstk.node_ptr(ls_top); 3 2223 lstk.node_ptr(ls_top-1) = opptr; 3 2224 lstk.datype(ls_top-1) = DEC; 3 2225 return; 3 2226 3 2227 /* ::= + ! */; 3 2228 rule(0299): 3 2229 call make_dec(ls_top); 3 2230 call aloc_opn(Add,ls_top-1); 3 2231 opn.kind = Decimal; 3 2232 opn.op2 = lstk.node_ptr(ls_top); 3 2233 lstk.node_ptr(ls_top-1) = opptr; 3 2234 lstk.datype(ls_top-1) = DEC; 3 2235 return; 3 2236 3 2237 /* ::= - ( ) ! */; 3 2238 rule(0300): 3 2239 call make_dec(ls_top-1); 3 2240 call aloc_opn(Paren,ls_top-2); 3 2241 opn.kind = Decimal; 3 2242 opn.op1 = lstk.node_ptr(ls_top-1); 3 2243 lstk.node_ptr(ls_top) = opptr; 3 2244 lstk.datype(ls_top-3) = DEC; 3 2245 call aloc_opn(Sub,ls_top-3); 3 2246 opn.kind = Decimal; 3 2247 opn.op2 = lstk.node_ptr(ls_top); 3 2248 lstk.node_ptr(ls_top-3) = opptr; 3 2249 return; 3 2250 3 2251 /* ::= + ( ) ! */; 3 2252 rule(0301): 3 2253 call make_dec(ls_top-1); 3 2254 call aloc_opn(Paren,ls_top-2); 3 2255 opn.kind = Decimal; 3 2256 opn.op1 = lstk.node_ptr(ls_top-1); 3 2257 lstk.node_ptr(ls_top) = opptr; 3 2258 lstk.datype(ls_top-3) = DEC; 3 2259 call aloc_opn(Add,ls_top-3); 3 2260 opn.kind = Decimal; 3 2261 opn.op2 = lstk.node_ptr(ls_top); 3 2262 lstk.node_ptr(ls_top-3) = opptr; 3 2263 return; 3 2264 3 2265 /* ::= ( ) ! */ 3 2266 rule(0302): 3 2267 call aloc_opn(Paren,ls_top-2); 3 2268 opn.kind = lstk.node_ptr(ls_top-1)->datum.kind; 3 2269 opn.op1 = lstk.node_ptr(ls_top-1); 3 2270 lstk.node_ptr(ls_top-2) = opptr; 3 2271 lstk.datype(ls_top-2) = lstk.datype(ls_top-1); 3 2272 return; 3 2273 3 2274 3 2275 /* ::= ! */; 3 2276 /* ::= ! */; 3 2277 rule(0304): 3 2278 lstk.datype(ls_top) = DEC; 3 2279 return; 3 2280 3 2281 /* ::= ! */; 3 2282 rule(0305): 3 2283 if (lstk.datype (ls_top) = 0) 3 2284 then do; 3 2285 call mrpg_error_ (2,((lstk.line(ls_top))),"Variable ""^a"" not defined before reference.",symtab.data); 3 2286 return; 3 2287 end; 3 2288 return; 3 2289 3 2290 /* ::= ! */ 3 2291 3 2292 /* ::= %PAGENUMBER ( ) ! */; 3 2293 rule(0307): 3 2294 tptr = lstk.node_ptr(ls_top-1); 3 2295 call use_ref((tptr)); 3 2296 ch2 = tptr->symref.sym->symtab.use.b->datum.type; 3 2297 if (ch2 ^= "RP") 3 2298 then do; 3 2299 call mrpg_error_ (2,(tptr->symref.line),"The ^a name ""^a"" cannot be in a %PAGENUMBER function." 3 2300 ,dt_s(lstk.datype(ls_top)),pull_name(ls_top-1)); 3 2301 end; 3 2302 call use_ref ((lstk.node_ptr(ls_top))); 3 2303 srefptr = lstk.node_ptr(ls_top-1); 3 2304 ki = ls_top - 3; 3 2305 goto pgno; 3 2306 3 2307 /* ::= %PAGENUMBER ( ) ! */ 3 2308 rule(0308): 3 2309 srefptr = report.sym; 3 2310 ki = ls_top-2; 3 2311 pgno: 3 2312 symtabptr = symref.sym; 3 2313 call st_search (symtab.data || ".I_page",tptr,"ID",Integer,0); 3 2314 lstk(ki).node_ptr = tptr; 3 2315 lstk.datype(ki) = DEC; 3 2316 return; 3 2317 3 2318 end semantics; 3 2319 3 2320 make_dec: proc(e); 3 2321 3 2322 dcl e fixed bin(24); 3 2323 3 2324 if (lstk.datype(e) = DEC) 3 2325 then return; 3 2326 call aloc_opn(c_d,e); 3 2327 opn.kind = Decimal; 3 2328 if (lstk.datype(e) = BOOL) 3 2329 then opn.op = b_d; 3 2330 opn.op1 = lstk.node_ptr(e); 3 2331 lstk.node_ptr(e) = opptr; 3 2332 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output," ^2i^a",e,op_char(opn.op)); 3 2333 return; 3 2334 3 2335 end make_dec; 3 2336 3 2337 make_char: proc(e); 3 2338 3 2339 dcl e fixed bin(24); 3 2340 3 2341 if (lstk.datype(e) = CHAR) 3 2342 then return; 3 2343 call aloc_opn(d_c,e); 3 2344 opn.kind = Char; 3 2345 if (lstk.datype(e) = BOOL) 3 2346 then opn.op = b_c; 3 2347 opn.op1 = lstk.node_ptr(e); 3 2348 lstk.node_ptr(e) = opptr; 3 2349 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output," ^2i^a",e,op_char(opn.op)); 3 2350 return; 3 2351 3 2352 end make_char; 3 2353 3 2354 make_bool: proc(e); 3 2355 3 2356 dcl e fixed bin(24); 3 2357 3 2358 if (lstk.datype(e) = BOOL) 3 2359 then return; 3 2360 call aloc_opn(c_b,e); 3 2361 opn.kind = Bool; 3 2362 if (lstk.datype(e) = DEC) 3 2363 then opn.op = d_b; 3 2364 opn.op1 = lstk.node_ptr(e); 3 2365 lstk.node_ptr(e) = opptr; 3 2366 if db_sw then call ioa_$ioa_switch_nnl(iox_$user_output," ^2i^a",e,op_char(opn.op)); 3 2367 return; 3 2368 3 2369 end make_bool; 3 2370 3 2371 break_number: proc(p)returns(fixed bin); 3 2372 3 2373 dcl p ptr; 3 2374 dcl i fixed bin; 3 2375 3 2376 i = 0; 3 2377 do srefptr = report.brlist.b 3 2378 repeat (symref.next) 3 2379 while (srefptr ^= null()); 3 2380 i = i + 1; 3 2381 if (symref.sym = p->symref.sym) 3 2382 then return(i); 3 2383 end; 3 2384 return (0); 3 2385 3 2386 end break_number; 3 2387 3 2388 aloc_datum: proc; 3 2389 3 2390 allocate datum in (space); 3 2391 datum.check.b, datum.check.e = null(); 3 2392 datum.datal.b, datum.datal.e = null(); 3 2393 datum.echar = lstk.echar(ls_top); 3 2394 3 2395 end aloc_datum; 3 2396 3 2397 aloc_attr: proc(first); 3 2398 dcl first fixed bin(24); 3 2399 3 2400 dcl tptr ptr; 3 2401 3 2402 allocate attr in (space); 3 2403 tptr = lstk.node_ptr(first); 3 2404 if (tptr ^= null()) 3 2405 then do; 3 2406 attr.line = tptr->symref.line; 3 2407 end; 3 2408 tptr = lstk.node_ptr(ls_top); 3 2409 attr.echar = tptr->symref.echar; 3 2410 3 2411 end aloc_attr; 3 2412 3 2413 aloc_param: proc(first); 3 2414 dcl first fixed bin(24); 3 2415 3 2416 if (paptr ^= null()) 3 2417 then return; 3 2418 allocate param in (space); 3 2419 param.type = "PM"; 3 2420 param.attr.b, param.attr.e = null(); 3 2421 param.check.b, param.check.e = null(); 3 2422 call fill_hdr(paptr,first); 3 2423 3 2424 end aloc_param; 3 2425 3 2426 aloc_opn: proc(operand,first); 3 2427 dcl operand fixed bin, 3 2428 first fixed bin(24); 3 2429 3 2430 dcl tptr ptr; 3 2431 3 2432 allocate opn in (space); 3 2433 opn.type = "OP"; 3 2434 opn.op = operand; 3 2435 opn.op1, opn.op2, opn.op3 = null(); 3 2436 call fill_hdr(opptr,first); 3 2437 3 2438 end aloc_opn; 3 2439 3 2440 aloc_value: proc(id,first); 3 2441 dcl id char(2), 3 2442 first fixed bin(24); 3 2443 3 2444 dcl tptr ptr; 3 2445 3 2446 allocate value in (space); 3 2447 value.type = id; 3 2448 value.ctl = null(); 3 2449 call fill_hdr(valptr,first); 3 2450 3 2451 end aloc_value; 3 2452 3 2453 aloc_stmt: proc(id,first); 3 2454 dcl id char(2), 3 2455 first fixed bin(24); 3 2456 3 2457 dcl tptr ptr; 3 2458 3 2459 allocate stmt in (space); 3 2460 stmt.type = id; 3 2461 stmt.ref1.b, stmt.ref1.e = null(); 3 2462 stmt.ref2.b, stmt.ref2.e = null(); 3 2463 stmt.ref3.b, stmt.ref3.e = null(); 3 2464 call fill_hdr(stmtptr,first); 3 2465 3 2466 end aloc_stmt; 3 2467 3 2468 fill_hdr: proc(refp,first); 3 2469 3 2470 dcl refp ptr, 3 2471 first fixed bin(24); 3 2472 3 2473 tptr = lstk.node_ptr(first); 3 2474 if (tptr = null()) 3 2475 then do; 3 2476 refp->stmt.line = lstk.line(first); 3 2477 end; 3 2478 else do; 3 2479 refp->stmt.line = tptr->symref.line; 3 2480 end; 3 2481 tptr = lstk.node_ptr(ls_top); 3 2482 if (tptr = null()) 3 2483 then do; 3 2484 refp->stmt.echar = lstk.echar(ls_top); 3 2485 end; 3 2486 else do; 3 2487 refp->stmt.echar = tptr->symref.echar; 3 2488 end; 3 2489 refp->stmt.usage = null(); 3 2490 refp->stmt.sym = null(); 3 2491 refp->stmt.next = null(); 3 2492 3 2493 end fill_hdr; 3 2494 3 2495 aloc_head: proc; 3 2496 3 2497 allocate head in (space); 3 2498 head.type = "HD"; 3 2499 3 2500 end aloc_head; 3 2501 3 2502 link_list: proc(lista,listb); 3 2503 3 2504 /* splice listb onto end of lista */ 3 2505 3 2506 dcl 1 (lista,listb) like tree.table; 3 2507 3 2508 if (listb.b = null()) 3 2509 then return; 3 2510 3 2511 if (lista.b = null()) 3 2512 then do; 3 2513 lista.b = listb.b; 3 2514 lista.e = listb.e; 3 2515 end; 3 2516 else do; 3 2517 lista.e-> symref.next = listb.b; 3 2518 lista.e = listb.e; 3 2519 end; 3 2520 listb.b, listb.e = null(); 3 2521 3 2522 end link_list; 3 2523 3 2524 link: proc(list,ref); 3 2525 3 2526 /* add new element to end of list */ 3 2527 dcl 1 list like tree.table, 3 2528 ref ptr; 3 2529 3 2530 if (ref = null()) 3 2531 then return; 3 2532 if (list.b = null()) 3 2533 then do; 3 2534 list.b, list.e = ref; 3 2535 ref->symref.next = null(); 3 2536 end; 3 2537 else do; 3 2538 list.e-> symref.next = ref; 3 2539 list.e = ref; 3 2540 end; 3 2541 ref-> symref.next = null(); 3 2542 3 2543 end link; 3 2544 3 2545 linkr: proc(list,ref); 3 2546 3 2547 /* add new element to beginning of list */ 3 2548 dcl 1 list like tree.table, 3 2549 ref ptr; 3 2550 3 2551 if (list.b = null()) 3 2552 then do; 3 2553 list.b, list.e = ref; 3 2554 ref-> symref.next = null(); 3 2555 end; 3 2556 else do; 3 2557 ref-> symref.next = list.b; 3 2558 list.b = ref; 3 2559 end; 3 2560 3 2561 end linkr; 3 2562 use_def: proc(ref); 3 2563 dcl ref ptr; 3 2564 3 2565 dcl tptr ptr; 3 2566 3 2567 if (ref = null()) 3 2568 then return; 3 2569 tptr = ref->datum.sym; 3 2570 if (tptr = null()) 3 2571 then return; 3 2572 tptr = tptr->symref.sym; 3 2573 if (tptr = null()) 3 2574 then return; 3 2575 if (tptr->symtab.use.b = null()) 3 2576 then do; 3 2577 tptr->symtab.use.b, tptr->symtab.use.e = ref; 3 2578 ref-> datum.usage = null(); 3 2579 end; 3 2580 else do; 3 2581 dcl ch2 char(2); 3 2582 ch2 = tptr->symtab.use.b->symref.type; 3 2583 if (index("*IN*DC*PM*RP*RH*PH*DH*DT*DF*PF*RF*",ch2)^=0) 3 2584 then do; 3 2585 call mrpg_error_ (2,(ref->symref.line),"Symbol ""^a"" already defined.",tptr->symtab.data); 3 2586 return; 3 2587 end; 3 2588 ref-> datum.usage = tptr->symtab.use.b; 3 2589 tptr->symtab.use.b = ref; 3 2590 end; 3 2591 3 2592 end use_def; 3 2593 3 2594 use_ref: proc(ref); 3 2595 dcl ref ptr; 3 2596 3 2597 dcl tptr ptr; 3 2598 3 2599 if (ref = null()) 3 2600 then return; 3 2601 tptr = ref->symref.sym; 3 2602 if (tptr = null()) 3 2603 then return; 3 2604 if (tptr->symtab.use.b = null()) 3 2605 then tptr->symtab.use.b, tptr->symtab.use.e = ref; 3 2606 else do; 3 2607 tptr->symtab.use.e-> datum.usage = ref; 3 2608 tptr->symtab.use.e = ref; 3 2609 end; 3 2610 ref-> datum.usage = null(); 3 2611 3 2612 end use_ref; 3 2613 3 2614 pull_name: proc(ii)returns(char(64)var); 3 2615 3 2616 dcl ii fixed bin; 3 2617 3 2618 tptr = lstk.node_ptr(ii); 3 2619 if (tptr = null()) 3 2620 then return("** NULL NODEPTR **"); 3 2621 tptr = tptr->symref.sym; 3 2622 if (tptr = null()) 3 2623 then return("** NULL SYMREF **"); 3 2624 return (tptr -> symtab.data); 3 2625 end pull_name; 3 2626 1 667 1 668 1 669 end; 1 670 98 4 1 /* BEGIN INCLUDE FILE ..... mrpg_tables_.incl.pl1 ..... 4 2* 7/29/81 1740.9 mst We. From >udd>m>Falksenj>rgl>mrpg.lrk */ 4 3 4 4 dcl 1 mrpg_tables_$TL ext static, 4 5 2 TLsize fixed bin, 4 6 2 TL(118), 4 7 3(pt,ln) fixed bin(17)unal; 4 8 4 9 dcl 1 mrpg_tables_$TC ext static, 4 10 2 TCsize fixed bin, 4 11 2 TC char(646); 4 12 4 13 dcl 1 mrpg_tables_$DPDA ext static, 4 14 2 DPDAsize fixed bin, 4 15 2 DPDA(3025), 4 16 3(v1,v2) fixed bin(17)unal; 4 17 dcl DPDAp ptr; 4 18 4 19 /* END INCLUDE FILE ..... mrpg_tables_.incl.pl1 ..... */ 99 5 1 /* BEGIN INCLUDE FILE ..... rgl_tree.incl.pl1 ..... 12/14/76 J Falksen */ 5 2 5 3 dcl space area based(area_ptr); 5 4 dcl area_ptr ptr; 5 5 5 6 dcl tree_ptr ptr; 5 7 dcl 1 tree based(tree_ptr), 5 8 2 table, /* symbol table */ 5 9 3 (b,e) ptr unal, 5 10 2 parm_pos like tree.table, /* positional parameter dcl */ 5 11 2 ppos_ct fixed bin, 5 12 2 parm_key like tree.table, /* keyword parameter dcl */ 5 13 2 pkey_ct fixed bin, 5 14 2 parm_check like tree.table, /* STOP list, after all parms processed */ 5 15 2 input like tree.table, /* input declaration */ 5 16 2 input_check like tree.table,/* STOP/SKIP list, record level */ 5 17 2 rec_str fixed bin(17)unal, /* -2 STREAM, -1 RECORD, >0 RECORD n */ 5 18 2 res_siz fixed bin(17)unal, /* size of record area to set aside */ 5 19 2 from ptr unal, /* FILE | ATTACH */ 5 20 2 local like tree.table, /* local declaration list */ 5 21 2 report like tree.table, /* report description list */ 5 22 2 phase0 like tree.table, 5 23 2 hold like tree.table, /* hold list */ 5 24 2 exec like tree.table, /* executable list */ 5 25 2 sourcep ptr unal, /* pointer to source segment */ 5 26 2 bits, 5 27 3 mmddyy bit(1)unal, 5 28 3 yyddd bit(1)unal, 5 29 3 month bit(1)unal, 5 30 3 day bit(1)unal, 5 31 3 hhmmss bit(1)unal, 5 32 3 filler bit(31)unal; 5 33 5 34 dcl symtabptr ptr; 5 35 dcl 1 symtab based(symtabptr), 5 36 2 hdr, /* "ID" | "NU" | "ST" */ 5 37 3 type char(2)unal, 5 38 3 fill bit(90)unal, 5 39 3 next ptr unal, 5 40 2 use like tree.table, /* list of usage of this symbol */ 5 41 2 leng fixed bin(24), /* length of data */ 5 42 2 data char(symbol_leng refer(symtab.leng)); /* symbol data */ 5 43 dcl symbol_leng fixed bin(24); 5 44 5 45 dcl daptr ptr; 5 46 dcl 1 datum based(daptr), 5 47 2 hdr like stmt.hdr, /* "DC", "IN" */ 5 48 2 kind fixed bin(17)unal, /* kind of field */ 5 49 2 leng fixed bin(17)unal, 5 50 2 pos fixed bin, /* IN position */ 5 51 2 check like tree.table, /* SKIP/STOP list, field level */ 5 52 2 datal like tree.table; 5 53 5 54 dcl srefptr ptr; 5 55 dcl 1 symref based(srefptr), 5 56 2 hdr like stmt.hdr, /* "SY" */ 5 57 2 kind fixed bin(17)unal; 5 58 5 59 dcl opptr ptr; 5 60 dcl 1 opn based(opptr), 5 61 2 hdr like stmt.hdr, /* "OP" */ 5 62 2 op fixed bin(17)unal, /* operation */ 5 63 2 kind fixed bin(17)unal, 5 64 2 op1 ptr unal, /* first operand */ 5 65 2 op2 ptr unal, /* second operand, if any */ 5 66 2 op3 ptr unal; /* third operand, if any */ 5 67 5 68 dcl headptr ptr; 5 69 dcl 1 head based(headptr), 5 70 2 hdr like stmt.hdr, /* "HD" */ 5 71 2 list like tree.table; 5 72 5 73 dcl repptr ptr; 5 74 dcl 1 report based(repptr), 5 75 2 hdr like stmt.hdr, /* "RP" */ 5 76 2 pw fixed bin(24), /* PAGEWIDTH */ 5 77 2 pl fixed bin(24), /* PAGELENGTH */ 5 78 2 minl fixed bin(24), /* MINLINE */ 5 79 2 maxl fixed bin(24), /* MAXLINE */ 5 80 2 onlist like tree.table, /* ON list */ 5 81 2 brlist like tree.table, /* BREAK list */ 5 82 2 part like tree.table; /* part list */ 5 83 5 84 dcl partptr ptr; 5 85 dcl 1 part based(partptr), 5 86 2 hdr like stmt.hdr, /* "RH", "PH", "DH", "DT", "DF", "PF", "RF" */ 5 87 2 maxl fixed bin, 5 88 2 ctl ptr unal, /* IF */ 5 89 2 lines like tree.table; /* line list */ 5 90 5 91 dcl linptr ptr; 5 92 dcl 1 lines based(linptr), 5 93 2 hdr like stmt.hdr, /* "LN" */ 5 94 2 number fixed bin(17)unal, /* <0 absolute line, >0 relative line */ 5 95 2 ctl ptr unal, /* IF */ 5 96 2 field like tree.table; /* field list */ 5 97 5 98 dcl fldptr ptr; 5 99 dcl 1 field based(fldptr), 5 100 2 hdr like stmt.hdr, /* "FD" */ 5 101 2 value like tree.table, /* value list */ 5 102 2 let like tree.table, /* LET list */ 5 103 2 kind fixed bin(17)unal, /* kind of field */ 5 104 2 align fixed bin(17)unal, /* alignment of field */ 5 105 2 alch char(1)unal, /* align character */ 5 106 2 bsp bit(1)unal, 5 107 2 XXX bit(26)unal, 5 108 2 fill(2) fixed bin(17)unal, /* fill indents */ 5 109 2 col fixed bin(24), /* COLUMN */ 5 110 2 leng fixed bin(24), /* length of field or mask */ 5 111 2 data ptr unal; /* mask */ 5 112 5 113 dcl valptr ptr; 5 114 dcl 1 value based(valptr), 5 115 2 hdr like stmt.hdr, /* "VL", "FL", "SW", "AT" */ 5 116 2 numb fixed bin(24), 5 117 2 ctl ptr unal; /* if control */ 5 118 5 119 dcl atptr ptr; 5 120 dcl 1 attr based(atptr), 5 121 2 hdr like stmt.hdr, /* "DV" | "KY" */ 5 122 2 attr, 5 123 3 asc bit(1)unal, /* ASCending key */ 5 124 3 des bit(1)unal, /* DEScending key */ 5 125 3 fill bit(16)unal; 5 126 5 127 dcl paptr ptr; 5 128 dcl 1 param based(paptr), 5 129 2 hdr like stmt.hdr, /* "PM" */ 5 130 2 kind fixed bin(17)unal, 5 131 2 attr like tree.table, /* attribute (default and keyword) list */ 5 132 2 check like tree.table, /* STOP list, parameter level */ 5 133 2 leng fixed bin(24); 5 134 5 135 dcl stmtptr ptr; 5 136 dcl 1 stmt based(stmtptr), 5 137 2 hdr, /* "IF", ":=" "=:", "PR", "HD", "SR", "SU" */ 5 138 3 type char(2)unal, 5 139 3 line fixed bin(17)unal, /* beginning line number */ 5 140 3 bchar fixed bin(24), /* beginning character in file */ 5 141 3 echar fixed bin(24), /* ending character in file */ 5 142 3 next ptr unal, /* link to next element */ 5 143 3 sym ptr unal, /* pointer to symbol table entry (if any) */ 5 144 3 usage ptr unal, /* pointer to next symbol usage */ 5 145 2 ref1 like tree.table, 5 146 2 ref2 like tree.table, 5 147 2 ref3 like tree.table; 5 148 5 149 dcl Bool fixed bin int static init( 1); 5 150 dcl Char fixed bin int static init( 2); 5 151 dcl Chard fixed bin int static init( 3); 5 152 dcl Integer fixed bin int static init( 4); 5 153 dcl Decimal fixed bin int static init( 5); 5 154 dcl Pic fixed bin int static init( 6); 5 155 dcl Charn fixed bin int static init( 7); 5 156 dcl Edit fixed bin int static init( 14); 5 157 dcl Left fixed bin int static init( 8); 5 158 dcl Center fixed bin int static init( 9); 5 159 dcl Right fixed bin int static init( 10); 5 160 dcl Fill fixed bin int static init( 12); 5 161 dcl Align fixed bin int static init( 11); 5 162 dcl Fold fixed bin int static init( 13); 5 163 dcl Table fixed bin int static init( 15); 5 164 dcl Tablev fixed bin int static init( 16); 5 165 dcl Set fixed bin int static init( 17); 5 166 dcl DecSpec fixed bin int static init( 18); 5 167 dcl Tabled fixed bin int static init( 19); 5 168 5 169 dcl kind_char(0:19) char(16)var int static init( 5 170 "-default-", 5 171 "bit", 5 172 "char", 5 173 "var char", 5 174 "fixed bin", 5 175 "float dec(20)", 5 176 "picture", 5 177 "varying char", 5 178 " LEFT", 5 179 " CENTER", 5 180 " RIGHT", 5 181 " ALIGN", 5 182 " FILL", 5 183 " FOLD", 5 184 " EDIT", 5 185 "TABLE", 5 186 "TABLEV", 5 187 "SET", 5 188 "dec(20)float", 5 189 "TABLED" ); 5 190 5 191 /* operation codes */ 5 192 dcl Add fixed bin int static init(1); 5 193 dcl And fixed bin int static init(2); 5 194 dcl Cat fixed bin int static init(3); 5 195 dcl Div fixed bin int static init(4); 5 196 dcl EQ fixed bin int static init(5); 5 197 dcl GE fixed bin int static init(6); 5 198 dcl GT fixed bin int static init(7); 5 199 dcl LE fixed bin int static init(8); 5 200 dcl LT fixed bin int static init(9); 5 201 dcl Mul fixed bin int static init(10); 5 202 dcl NE fixed bin int static init(11); 5 203 dcl Not fixed bin int static init(12); 5 204 dcl Or fixed bin int static init(13); 5 205 dcl Paren fixed bin int static init(14); 5 206 dcl Rpt fixed bin int static init(15); 5 207 dcl Sub fixed bin int static init(16); 5 208 dcl Func fixed bin int static init(17); 5 209 dcl Pnum fixed bin int static init(18); 5 210 dcl Level fixed bin int static init(19); 5 211 dcl Beg fixed bin int static init(20); 5 212 dcl End fixed bin int static init(21); 5 213 dcl Cont fixed bin int static init(22); 5 214 dcl Nbeg fixed bin int static init(23); 5 215 dcl Nend fixed bin int static init(24); 5 216 dcl Ncont fixed bin int static init(25); 5 217 dcl Begw fixed bin int static init(26); 5 218 dcl Endw fixed bin int static init(27); 5 219 dcl Contw fixed bin int static init(28); 5 220 dcl Nbegw fixed bin int static init(29); 5 221 dcl Nendw fixed bin int static init(30); 5 222 dcl Ncontw fixed bin int static init(31); 5 223 dcl In fixed bin int static init(32); 5 224 dcl Nin fixed bin int static init(33); 5 225 dcl Skip fixed bin int static init(34); 5 226 dcl Stop fixed bin int static init(35); 5 227 dcl n_n fixed bin int static init(36); 5 228 dcl n_s fixed bin int static init(37); 5 229 dcl s_n fixed bin int static init(38); 5 230 dcl s_s fixed bin int static init(39); 5 231 dcl b_c fixed bin int static init(40); 5 232 dcl b_d fixed bin int static init(41); 5 233 dcl c_b fixed bin int static init(42); 5 234 dcl c_d fixed bin int static init(43); 5 235 dcl d_b fixed bin int static init(44); 5 236 dcl d_c fixed bin int static init(45); 5 237 dcl Tran fixed bin int static init(46); 5 238 dcl Substr fixed bin int static init(47); 5 239 dcl If fixed bin int static init(48); 5 240 5 241 dcl op_char(0:48) char(8)var int static init( 5 242 "-BAD-", 5 243 "Add", 5 244 "And", 5 245 "Cat", 5 246 "Div", 5 247 "EQ", 5 248 "GE", 5 249 "GT", 5 250 "LE", 5 251 "LT", 5 252 "Mul", 5 253 "NE", 5 254 "Not", 5 255 "Or", 5 256 "Paren", 5 257 "Rpt", 5 258 "Sub", 5 259 "Func", 5 260 "Pnum", 5 261 "Level", 5 262 "Beg", 5 263 "End", 5 264 "Cont", 5 265 "Nbeg", 5 266 "Nend", 5 267 "Ncont", 5 268 "Begw", 5 269 "Endw", 5 270 "Contw", 5 271 "Nbegw", 5 272 "Nendw", 5 273 "Ncontw", 5 274 "In", 5 275 "Nin", 5 276 "Skip", 5 277 "Stop", 5 278 "n_n", 5 279 "n_s", 5 280 "s_n", 5 281 "s_s", 5 282 "b_c", 5 283 "b_d", 5 284 "c_b", 5 285 "c_d", 5 286 "d_b", 5 287 "d_c", 5 288 "Tran", 5 289 "Substr", 5 290 "If" ); 5 291 5 292 /* END INCLUDE FILE ..... rgl_tree.incl.pl1 ..... */ 100 101 dcl used bit (302) int static init ("0"b); 102 usage: entry; 103 104 dcl numbe (10) pic "zzz9"; 105 dcl (i, j) fixed bin; 106 dcl ioa_$nnl entry options (variable); 107 108 call ioa_$nnl ("Unused productions:^/"); 109 j = 0; 110 goto us_1; 111 us_2: 112 if ^substr (used, j, 1) 113 then do; 114 numbe (i) = j; 115 i = i + 1; 116 if (i > 10) 117 then do; 118 call ioa_$nnl ("^a^/", string (numbe)); 119 us_1: 120 string (numbe) = " "; 121 i = 1; 122 end; 123 end; 124 j = j + 1; 125 if (j <= 302) 126 then goto us_2; 127 if (i > 1) 128 then call ioa_$nnl ("^a", string (numbe)); 129 return; 130 end mrpg_parse_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/14/84 0844.1 mrpg_parse_.pl1 >special_ldd>on>6591>mrpg_parse_.pl1 98 1 11/08/83 0855.9 mrpg_parse_.incl.pl1 >ldd>include>mrpg_parse_.incl.pl1 1-664 2 02/14/84 0755.4 mrpg_scan.incl.pl1 >special_ldd>on>6591>mrpg_scan.incl.pl1 1-667 3 02/14/84 0755.4 mrpg_sem_.incl.pl1 >special_ldd>on>6591>mrpg_sem_.incl.pl1 99 4 11/08/83 0855.9 mrpg_tables_.incl.pl1 >ldd>include>mrpg_tables_.incl.pl1 100 5 11/08/83 0855.9 mrpg_tree.incl.pl1 >ldd>include>mrpg_tree.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. AN 000662 constant char(63) initial unaligned dcl 2-10 ref 2-34 2-1314 AZ 000653 constant char(26) initial unaligned dcl 2-11 ref 2-37 2-71 2-184 2-207 2-217 2-223 2-233 2-243 2-255 2-261 2-267 2-273 2-1315 Add 000215 internal static fixed bin(17,0) initial dcl 5-192 set ref 3-2168* 3-2230* 3-2259* Align constant fixed bin(17,0) initial dcl 5-161 ref 3-1430 And 000216 internal static fixed bin(17,0) initial dcl 5-193 set ref 3-1817* BOOL constant fixed bin(17,0) initial dcl 69 ref 2-95 3-1215 3-1807 3-1808 3-1834 3-1897 3-1984 3-2026 3-2061 3-2328 3-2345 3-2358 BSP constant char(1) initial unaligned dcl 3-1283 ref 3-1276 Beg constant fixed bin(17,0) initial dcl 5-211 ref 3-1901 Begw constant fixed bin(17,0) initial dcl 5-217 ref 3-1931 Bool constant fixed bin(17,0) initial dcl 5-149 ref 2-95 2-117 3-226 3-273 3-286 3-720 3-1803 3-1818 3-1831 3-1892 3-1980 3-2013 3-2024 3-2054 3-2361 CHAR constant fixed bin(17,0) initial dcl 70 ref 2-120 2-178 3-1747 3-1757 3-1873 3-1875 3-1972 3-2102 3-2122 3-2135 3-2159 3-2341 CNf 006262 automatic bit(1) level 2 packed unaligned dcl 1-442 set ref 1-477* 1-479* 1-621 1-622 Cat 000217 internal static fixed bin(17,0) initial dcl 5-194 set ref 3-398* 3-2097* Center constant fixed bin(17,0) initial dcl 5-158 ref 3-1386 Ch2 006534 automatic char(2) unaligned dcl 2-74 set ref 2-70* 2-71 2-71 2-71* Char 000045 internal static fixed bin(17,0) initial dcl 5-150 set ref 2-102 2-121 2-180 2-211* 2-227* 2-277* 3-259 3-266 3-399 3-491 3-498 3-505 3-542 3-706 3-780 3-823 3-1340 3-2098 3-2117 3-2131 3-2155 3-2344 Chard 000046 internal static fixed bin(17,0) initial dcl 5-151 set ref 2-107 2-121 2-195* 2-237* 3-512 3-520 3-550 3-559 3-1224* 3-1245 3-1256* 3-1267 Charn constant fixed bin(17,0) initial dcl 5-155 ref 3-528 3-535 3-568 3-576 3-713 Cont constant fixed bin(17,0) initial dcl 5-213 ref 3-1921 Contw constant fixed bin(17,0) initial dcl 5-219 ref 3-1951 DDop 000503 internal static char(4) initial array unaligned dcl 1-332 set ref 1-475* DEC constant fixed bin(17,0) initial dcl 71 ref 2-97 2-147 3-1222 3-1634 3-1696 3-1742 3-1752 3-1972 3-2173 3-2185 3-2199 3-2211 3-2224 3-2234 3-2244 3-2258 3-2277 3-2315 3-2324 3-2362 DET constant fixed bin(17,0) initial dcl 75 ref 2-87 DPDA 1 000524 external static structure array level 2 packed unaligned dcl 4-13 DPDAsize 000524 external static fixed bin(17,0) level 2 dcl 4-13 ref 1-269 1-271 DecSpec constant fixed bin(17,0) initial dcl 5-166 ref 2-93 3-606 3-613 3-628 3-636 Decimal 000050 internal static fixed bin(17,0) initial dcl 5-153 set ref 2-93 2-97 2-112 2-149 3-585 3-592 3-599 3-620 3-644 3-651 3-659 3-667 3-700 3-758 3-801 3-1222* 3-2169 3-2181 3-2195 3-2207 3-2221 3-2231 3-2241 3-2246 3-2255 3-2260 3-2327 Div 000220 internal static fixed bin(17,0) initial dcl 5-195 set ref 3-2206* EQ constant fixed bin(17,0) initial dcl 5-196 ref 3-1840 Edit constant fixed bin(17,0) initial dcl 5-156 ref 3-1253 3-1329 End constant fixed bin(17,0) initial dcl 5-212 ref 3-1911 Endw constant fixed bin(17,0) initial dcl 5-218 ref 3-1941 Fill constant fixed bin(17,0) initial dcl 5-160 ref 3-676 3-1407 3-1418 Fold constant fixed bin(17,0) initial dcl 5-162 ref 3-1448 GE constant fixed bin(17,0) initial dcl 5-197 ref 3-1855 GT constant fixed bin(17,0) initial dcl 5-198 ref 3-1865 If 000245 internal static fixed bin(17,0) initial dcl 5-239 set ref 3-2084* In 000230 internal static fixed bin(17,0) initial dcl 5-223 set ref 3-1963* Integer 000047 internal static fixed bin(17,0) initial dcl 5-152 set ref 3-2313* LE constant fixed bin(17,0) initial dcl 5-199 ref 3-1850 LT constant fixed bin(17,0) initial dcl 5-200 ref 3-1860 Left constant fixed bin(17,0) initial dcl 5-157 ref 3-1376 Level 000227 internal static fixed bin(17,0) initial dcl 5-210 set ref 3-2053* Mul 000221 internal static fixed bin(17,0) initial dcl 5-201 set ref 3-2194* NE constant fixed bin(17,0) initial dcl 5-202 ref 3-1845 NL constant char(1) initial unaligned dcl 2-8 ref 2-1254 Nbeg constant fixed bin(17,0) initial dcl 5-214 ref 3-1906 Nbegw constant fixed bin(17,0) initial dcl 5-220 ref 3-1936 Ncont constant fixed bin(17,0) initial dcl 5-216 ref 3-1926 Ncontw constant fixed bin(17,0) initial dcl 5-222 ref 3-1956 Nend constant fixed bin(17,0) initial dcl 5-215 ref 3-1916 Nendw constant fixed bin(17,0) initial dcl 5-221 ref 3-1946 Nin 000231 internal static fixed bin(17,0) initial dcl 5-224 set ref 3-1990* Not 000222 internal static fixed bin(17,0) initial dcl 5-203 set ref 3-1830* Or 000223 internal static fixed bin(17,0) initial dcl 5-204 set ref 3-1802* Paren 000224 internal static fixed bin(17,0) initial dcl 5-205 set ref 3-2240* 3-2254* 3-2266* Pic constant fixed bin(17,0) initial dcl 5-154 ref 3-1248 3-1298 3-1693 RBNf 0(01) 006262 automatic bit(2) level 2 packed unaligned dcl 1-442 set ref 1-611 1-614* 1-616* 1-624 1-627* REP constant fixed bin(17,0) initial dcl 74 ref 2-85 Right constant fixed bin(17,0) initial dcl 5-159 ref 3-1396 Rpt 000225 internal static fixed bin(17,0) initial dcl 5-206 set ref 3-2154* SET constant fixed bin(17,0) initial dcl 72 ref 2-116 3-1964 Set constant fixed bin(17,0) initial dcl 5-165 ref 2-114 3-726 Skip 000232 internal static fixed bin(17,0) initial dcl 5-225 set ref 3-431* Stop 000233 internal static fixed bin(17,0) initial dcl 5-226 set ref 3-444* Sub 000226 internal static fixed bin(17,0) initial dcl 5-207 set ref 3-2180* 3-2220* 3-2245* Substr 000244 internal static fixed bin(17,0) initial dcl 5-238 set ref 3-2116* 3-2130* TABLE constant fixed bin(17,0) initial dcl 73 ref 2-101 2-106 2-111 3-1732 TC 1 000522 external static char(646) level 2 packed unaligned dcl 4-9 ref 1-395 1-402 TL 1 000520 external static structure array level 2 packed unaligned dcl 4-4 T_01ptr 006120 automatic pointer dcl 3-126 set ref 3-1222* 3-1224* 3-1226* T_02ptr 006122 automatic pointer dcl 3-126 set ref 3-1256* 3-1259* 3-1264 Table constant fixed bin(17,0) initial dcl 5-163 ref 2-99 3-731 Tabled constant fixed bin(17,0) initial dcl 5-167 ref 2-109 Tablev constant fixed bin(17,0) initial dcl 5-164 ref 2-104 3-737 Tran 000243 internal static fixed bin(17,0) initial dcl 5-237 set ref 3-1763* a_list based structure level 1 packed unaligned dcl 3-424 set ref 3-203* 3-340* 3-418* 3-418* 3-456* 3-462* 3-462* 3-464* 3-1494* 3-1535* 3-1551* 3-1590* 3-1619* acode parameter fixed bin(35,0) dcl 17 set ref 16 40* addr builtin function dcl 1-322 ref 1-20 1-513 2-45 3-1309 3-1309 3-1461 3-1497 3-1498 aife parameter fixed bin(24,0) dcl 17 ref 16 23 aifp parameter pointer dcl 17 ref 16 22 alch 13 based char(1) level 2 packed unaligned dcl 5-99 set ref 3-1194* 3-1436* align 12(18) based fixed bin(17,0) level 2 packed unaligned dcl 5-99 set ref 3-1370 3-1376* 3-1380 3-1386* 3-1390 3-1396* 3-1402 3-1407* 3-1413 3-1418* 3-1424 3-1430* 3-1443 3-1448* alt_symbol 006266 automatic fixed bin(24,0) dcl 1-448 set ref 1-474* 1-475* 1-475* 1-477 1-602 1-613 1-626 altn parameter fixed bin(24,0) dcl 3-140 in procedure "semantics" ref 3-138 altn 006013 automatic fixed bin(24,0) dcl 1-351 in procedure "mrpg_parse_" set ref 1-202* 1-208* 1-214* area_ptr 000114 automatic pointer dcl 5-4 set ref 24* 26 2-1389 2-1394 2-1411 3-394 3-830 3-1010 3-1087 3-1192 3-1627 3-1646 3-1654 3-1789 3-2390 3-2402 3-2418 3-2432 3-2446 3-2459 3-2497 asc 6 based bit(1) level 3 packed unaligned dcl 5-120 set ref 3-1630* 3-1649* atptr 000146 automatic pointer dcl 5-119 set ref 3-290 3-291 3-292* 3-294 3-303 3-304 3-305* 3-307 3-325 3-326 3-327* 3-1627* 3-1629 3-1630 3-1632 3-1641 3-1642* 3-1646* 3-1648 3-1649 3-1654* 3-1656 3-1657 3-2402* 3-2406 3-2409 atreeptr parameter pointer dcl 17 set ref 16 24 48* attr based structure level 1 unaligned dcl 5-120 in procedure "mrpg_parse_" set ref 3-1627 3-1646 3-1654 3-2402 attr 6 based structure level 2 in structure "attr" packed unaligned dcl 5-120 in procedure "mrpg_parse_" attr 6(18) based structure level 2 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-292* 3-305* 3-327* az 000644 constant char(26) initial unaligned dcl 2-12 ref 2-37 2-184 2-207 2-217 2-223 2-233 2-243 2-255 2-261 2-267 2-273 2-1315 b based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 27* 2-1383 b 4 based pointer level 3 in structure "symtab" packed unaligned dcl 5-35 in procedure "mrpg_parse_" set ref 2-82 2-1391* 2-1406 3-396* 3-1545 3-1693 3-1738 3-1971 3-2296 3-2575 3-2577* 3-2582 3-2588 3-2589* 3-2604 3-2604* b 12 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2463* b 20 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 32* b 006164 automatic pointer level 2 in structure "sort_list" packed unaligned dcl 3-136 in procedure "mrpg_parse_" set ref 1-17* 3-1620* b 006166 automatic pointer level 2 in structure "stmt_list" packed unaligned dcl 3-137 in procedure "mrpg_parse_" set ref 3-1462* b 5 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 29* b 14 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 34* b 12 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 30* 3-347 3-1784 b 22 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 33* b 10 based pointer level 3 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1015* b 14 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-834* 3-973 3-990 3-2377 b parameter pointer level 2 in structure "list" packed unaligned dcl 3-2527 in procedure "link" set ref 3-2532 3-2534* b 30 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 39* 3-167 3-169 b 16 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-835* b 6(18) based pointer level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-2420* b 7(18) based pointer level 3 in structure "lines" packed unaligned dcl 5-92 in procedure "mrpg_parse_" set ref 3-1091* b 10 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2462* b 10 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 35* b 2 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 28* b parameter pointer level 2 in structure "listb" packed unaligned dcl 3-2506 in procedure "link_list" set ref 3-2508 3-2513 3-2517 3-2520* b 10 based pointer level 3 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1196* b 6 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-1239 3-2461* b 6 based pointer level 3 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1195* 3-1237 3-1239 3-1243* 3-1260 3-1265* 3-1269 b 12 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-833* 3-864 b 24 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 38* b 10(18) based pointer level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-2421* b 006162 automatic pointer level 2 in structure "hold_list" packed unaligned dcl 3-135 in procedure "mrpg_parse_" set ref 1-18* 3-843* 3-904* 3-1561* 3-1585* 3-1591* b parameter pointer level 2 in structure "lista" packed unaligned dcl 3-2506 in procedure "link_list" set ref 3-2511 3-2513* b 10 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-1418* 3-2391* b parameter pointer level 2 in structure "list" packed unaligned dcl 3-2548 in procedure "linkr" set ref 3-2551 3-2553* 3-2557 3-2558* b 12 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-1417* 3-748 3-771 3-792 3-814 3-1738 3-1971 3-2392* b_c constant fixed bin(17,0) initial dcl 5-231 ref 3-2345 b_d constant fixed bin(17,0) initial dcl 5-232 ref 3-2328 bch 006602 automatic fixed bin(24,0) dcl 3-145 set ref 3-257* 3-264* 3-271* 3-275* 3-285 bchar 1 based fixed bin(24,0) level 3 in structure "symref" dcl 5-55 in procedure "mrpg_parse_" set ref 2-1398* bchar 11 000256 automatic fixed bin(24,0) array level 2 in structure "lstk" dcl 1-336 in procedure "mrpg_parse_" set ref 2-49* 2-70 2-80 2-80 2-148 2-148 2-179 2-179 2-1398 begin_ct 006157 automatic fixed bin(17,0) dcl 3-133 set ref 1-15* 3-1460* 3-1460 3-1481 3-1566 3-1575 3-1581 3-1601 beginptr 006124 automatic pointer dcl 3-127 set ref 1-16* 3-1459* 3-1475* 3-1477* 3-1673 bits 33 based structure level 2 packed unaligned dcl 5-7 bln 006561 automatic fixed bin(17,0) dcl 2-1266 set ref 2-1268* 2-1281* brlist 14 based structure level 2 packed unaligned dcl 5-74 set ref 3-902* bsp 13(09) based bit(1) level 2 packed unaligned dcl 5-99 set ref 3-1198* 3-1276* 3-1365* c 006206 automatic fixed bin(24,0) dcl 1-266 in procedure "skip_recovered" set ref 1-280* 1-281 1-287* 1-289 1-299* c parameter char unaligned dcl 2-1374 in procedure "st_search" ref 2-1372 2-1382 2-1386 2-1392 c_b 000240 internal static fixed bin(17,0) initial dcl 5-233 set ref 3-2360* c_d 000241 internal static fixed bin(17,0) initial dcl 5-234 set ref 3-2326* c_str based char(20000) unaligned dcl 1-377 ref 1-385 ch2 006610 automatic char(2) unaligned dcl 3-149 in procedure "semantics" set ref 3-961* 3-967* 3-979* 3-984* 3-996* 3-1001* 3-1007* 3-1012 3-1250* 3-1255* 3-1258* 3-1545* 3-1546 3-1546 3-1595* 3-1607* 3-1613* 3-1616* 3-2296* 3-2297 ch2 000102 automatic char(2) unaligned dcl 3-2581 in procedure "use_def" set ref 3-2582* 3-2583 check 10 based structure level 2 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 3-456* 3-464* check 10(18) based structure level 2 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-340* class 006611 automatic fixed bin(17,0) dcl 3-152 set ref 3-1961* 3-1963 3-1972 3-1972 3-1975 3-1975 3-1982 3-1983 3-1984 3-1988* 3-1990 classify 000604 constant fixed bin(8,0) initial array unaligned dcl 2-1322 ref 2-38 2-42 2-1294 col 15 based fixed bin(24,0) level 2 dcl 5-99 set ref 3-1359* ctl 7 based pointer level 2 in structure "value" packed unaligned dcl 5-114 in procedure "mrpg_parse_" set ref 3-923* 3-2448* ctl 6(18) based pointer level 2 in structure "lines" packed unaligned dcl 5-92 in procedure "mrpg_parse_" set ref 3-1090* 3-1137* 3-1144* 3-1165* 3-1171* ctl 7 based pointer level 2 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1013* 3-1059* ctype 006524 automatic fixed bin(24,0) dcl 2-18 set ref 2-38* 2-42* 2-57 cur_lex_top 005173 automatic fixed bin(24,0) array dcl 1-349 set ref 1-92* 1-297 cur_st 000100 automatic fixed bin(24,0) dcl 1-571 set ref 1-585* 1-586 1-588* 1-588 1-599 1-599 1-599 1-639 1-640 1-642 1-646 1-648* 1-648 1-650 1-650 1-650 1-657 current_state 006014 automatic fixed bin(24,0) dcl 1-352 set ref 1-24* 1-36 1-43 1-46 1-91 1-148* 1-181* 1-182 1-183* 1-183 1-233 1-236 1-241 1-243* 1-246 1-253* 1-257* 1-298* 1-316* 1-475* current_table 006016 automatic fixed bin(24,0) dcl 1-354 set ref 1-43* 1-48 1-52* 1-52 1-63* 1-63 1-75* 1-75 1-102 1-102 1-102 1-201 1-202 1-219 1-221 1-221 1-223 1-239 1-240 1-243 1-248* 1-248 1-250 1-250 1-250 1-257 1-271* 1-279 1-288 1-288 1-288 1-473 1-473 1-473 cycle 006267 automatic bit(1) array unaligned dcl 1-449 set ref 1-480* d_b constant fixed bin(17,0) initial dcl 5-235 ref 3-2362 d_c 000242 internal static fixed bin(17,0) initial dcl 5-236 set ref 3-2343* daptr 000124 automatic pointer dcl 5-45 set ref 3-345* 3-456 3-464 3-471 3-477 3-478 3-480 3-481 3-481* 3-483* 3-484* 3-490 3-491 3-492 3-498 3-499 3-505 3-506 3-512 3-513 3-514 3-520 3-521 3-522 3-528 3-529 3-535 3-536 3-542 3-543 3-544 3-550 3-551 3-552 3-553 3-559 3-560 3-561 3-562 3-568 3-569 3-570 3-576 3-577 3-578 3-584 3-585 3-586 3-592 3-593 3-599 3-600 3-606 3-607 3-613 3-614 3-620 3-621 3-622 3-628 3-629 3-630 3-636 3-637 3-638 3-644 3-645 3-651 3-652 3-653 3-659 3-660 3-661 3-667 3-668 3-669 3-670 3-676 3-677 3-678 3-686 3-690 3-692 3-693* 3-694* 3-695* 3-700 3-702 3-706 3-708 3-709 3-713 3-715 3-716 3-720 3-722 3-726 3-731 3-731 3-737 3-737 3-748 3-761 3-771 3-783 3-792 3-804 3-814 3-826 3-1784* 3-1784* 3-1787 3-1790* 3-1795 3-2015 3-2390* 3-2391 3-2391 3-2392 3-2392 3-2393 data 3(27) 000220 automatic char(100) level 2 in structure "db_data" packed unaligned dcl 1-324 in procedure "mrpg_parse_" set ref 1-172* 1-176* 1-207* data 7 based char level 2 in structure "symtab" packed unaligned dcl 5-35 in procedure "mrpg_parse_" set ref 2-125* 2-151 2-1386 2-1392* 3-318 3-320* 3-397* 3-1276 3-1308 3-1436 3-2285* 3-2313 3-2585* 3-2624 data 17 based pointer level 2 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1197* 3-1261 3-1299* 3-1330* datal 12 based structure level 2 packed unaligned dcl 5-46 set ref 3-514* 3-522* 3-552* 3-561* 3-645* 3-653* 3-660* 3-669* 3-761* 3-783* 3-804* 3-826* 3-2015* datum based structure level 1 unaligned dcl 5-46 set ref 2-1411 3-2390 datype 5 000256 automatic fixed bin(17,0) array level 2 dcl 1-336 set ref 1-220 1-220 2-50* 2-83* 2-85* 2-87* 2-89* 2-95* 2-97* 2-101* 2-106* 2-111* 2-116* 2-120* 2-125 2-147* 2-178* 2-198* 2-214* 2-230* 2-240* 2-280* 3-1215 3-1222 3-1548 3-1634 3-1634 3-1637 3-1678 3-1680 3-1696 3-1732 3-1742* 3-1747* 3-1752* 3-1757* 3-1807* 3-1808* 3-1834* 3-1870 3-1870 3-1873 3-1875 3-1897* 3-1964 3-1967 3-1972 3-1972 3-1984* 3-2026* 3-2061* 3-2089* 3-2102* 3-2122* 3-2135* 3-2159* 3-2173* 3-2185* 3-2199* 3-2211* 3-2224* 3-2234* 3-2244* 3-2258* 3-2271* 3-2271 3-2277* 3-2282 3-2299 3-2315* 3-2324 3-2328 3-2341 3-2345 3-2358 3-2362 day 33(03) based bit(1) level 3 packed unaligned dcl 5-7 set ref 2-196* db_data 000220 automatic structure level 1 packed unaligned dcl 1-324 set ref 1-45* 1-178 1-178 1-208 1-208 db_look defined picture(2) unaligned dcl 1-323 set ref 1-171* db_sw 000044 internal static bit(1) initial unaligned dcl 1-5 set ref 44* 51* 56* 1-148 1-165 1-204 1-217 1-472 1-475 1-547 1-554 1-592 1-610 1-635 2-125 2-1249* 2-1251* 3-2332 3-2349 3-2366 dec4 006207 automatic picture(4) unaligned dcl 1-267 set ref 1-272* 1-274 1-301* 1-302 default_symbol 000507 internal static char(14) initial unaligned dcl 1-450 set ref 1-513 1-515 depth 006126 automatic fixed bin(17,0) dcl 3-128 in procedure "mrpg_parse_" set ref 1-19* 3-1719* 3-1719 3-1730* 3-1730 3-2123* 3-2123 3-2136* 3-2136 3-2142* 3-2142 3-2160* 3-2160 depth 006450 automatic fixed bin(24,0) dcl 1-452 in procedure "local_recovered" set ref 1-471* 1-579* 1-579 1-592* 1-610* 1-631* 1-631 1-635* des 6(01) based bit(1) level 3 packed unaligned dcl 5-120 set ref 3-1657* dflt_ptr 006614 automatic pointer dcl 3-155 set ref 3-194* 3-210* 3-230 3-232 3-294* 3-307* dmp_sw 000013 internal static bit(1) initial unaligned dcl 66 set ref 53* 54* 3-249 3-1235 dt_s 000014 internal static char(12) initial array unaligned dcl 76 set ref 1-220 1-220 2-125* 3-1548* 3-1637* 3-1680* 3-1967* 3-2299* dupl 006263 automatic bit(1) unaligned dcl 1-445 set ref 1-470* 1-473 1-599 1-618* 1-629* e parameter fixed bin(24,0) dcl 3-2322 in procedure "make_dec" set ref 3-2320 3-2324 3-2326* 3-2328 3-2330 3-2331 3-2332* e 1 006164 automatic pointer level 2 in structure "sort_list" packed unaligned dcl 3-136 in procedure "mrpg_parse_" set ref 1-17* 3-1620* e 13 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-833* e 1 006166 automatic pointer level 2 in structure "stmt_list" packed unaligned dcl 3-137 in procedure "mrpg_parse_" set ref 3-1462* e 5 based pointer level 3 in structure "symtab" packed unaligned dcl 5-35 in procedure "mrpg_parse_" set ref 2-1391* 3-396* 3-2577* 3-2604* 3-2607 3-2608* e 11(18) based pointer level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-2421* e 11 based pointer level 3 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1196* e 3 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 28* e 10(18) based pointer level 3 in structure "lines" packed unaligned dcl 5-92 in procedure "mrpg_parse_" set ref 3-1091* e 15 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 34* e parameter fixed bin(24,0) dcl 3-2356 in procedure "make_bool" set ref 3-2354 3-2358 3-2360* 3-2362 3-2364 3-2365 3-2366* e 1 parameter pointer level 2 in structure "lista" packed unaligned dcl 3-2506 in procedure "link_list" set ref 3-2514* 3-2517 3-2518* e 1 parameter pointer level 2 in structure "list" packed unaligned dcl 3-2548 in procedure "linkr" set ref 3-2553* e 21 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 32* e 17 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-835* e 15 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-834* e 6 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 29* e 7 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2461* e parameter fixed bin(24,0) dcl 3-2339 in procedure "make_char" set ref 3-2337 3-2341 3-2343* 3-2345 3-2347 3-2348 3-2349* e 7(18) based pointer level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-2420* e 11 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 35* e 1 006162 automatic pointer level 2 in structure "hold_list" packed unaligned dcl 3-135 in procedure "mrpg_parse_" set ref 1-18* 3-843* 3-904* 3-1561* 3-1585* 3-1591* e 11 based pointer level 3 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1015* e 13 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-170 3-2463* e 31 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 39* 3-167 e 1 parameter pointer level 2 in structure "list" packed unaligned dcl 3-2527 in procedure "link" set ref 3-2534* 3-2538 3-2539* e 23 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 33* e 13 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-1417* 3-2392* e 13 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 30* e 11 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2462* e 25 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 38* e 11 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-1418* 3-2391* e 7 based pointer level 3 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1195* 3-1243* 3-1265* e 1 parameter pointer level 2 in structure "listb" packed unaligned dcl 3-2506 in procedure "link_list" set ref 3-2514 3-2518 3-2520* e 1 based pointer level 3 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 27* echar 2 based fixed bin(24,0) level 3 in structure "symref" dcl 5-55 in procedure "mrpg_parse_" set ref 2-1399* 3-2409 3-2487 echar 12 000256 automatic fixed bin(24,0) array level 2 in structure "lstk" dcl 1-336 in procedure "mrpg_parse_" set ref 2-52* 2-78* 2-145* 2-176* 2-1399 3-284 3-293 3-306 3-328 3-702 3-709 3-716 3-722 3-862 3-2393 3-2484 echar 2 based fixed bin(24,0) level 3 in structure "attr" dcl 5-120 in procedure "mrpg_parse_" set ref 3-2409* echar 2 based fixed bin(24,0) level 3 in structure "stmt" dcl 5-136 in procedure "mrpg_parse_" set ref 3-2484* 3-2487* echar 2 based fixed bin(24,0) level 3 in structure "datum" dcl 5-46 in procedure "mrpg_parse_" set ref 3-702* 3-709* 3-716* 3-722* 3-2393* echar 2 based fixed bin(24,0) level 3 in structure "param" dcl 5-128 in procedure "mrpg_parse_" set ref 3-284* 3-293* 3-306* 3-328* echar 2 based fixed bin(24,0) level 3 in structure "report" dcl 5-74 in procedure "mrpg_parse_" set ref 3-862* elselistptr 006132 automatic pointer array dcl 3-131 set ref 3-1498* 3-1502 err_ct 006103 automatic fixed bin(24,0) dcl 1-407 set ref 1-31* 1-130 1-160* 1-160 1-502* 1-502 1-512* 1-512 1-533* 1-533 1-544* 1-544 exec 30 based structure level 2 packed unaligned dcl 5-7 set ref 1-20 3-1475* fail_ct 000112 automatic fixed bin(17,0) initial dcl 1-4 set ref 1-4* 1-151* 1-151 1-152 field 7(18) based structure level 2 in structure "lines" packed unaligned dcl 5-92 in procedure "mrpg_parse_" set ref 3-1199* field based structure level 1 unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1192 fill 14 based fixed bin(17,0) array level 2 packed unaligned dcl 5-99 set ref 3-1419* 3-1420* first parameter fixed bin(24,0) dcl 3-2470 in procedure "fill_hdr" ref 3-2468 3-2473 3-2476 first parameter fixed bin(24,0) dcl 3-2454 in procedure "aloc_stmt" set ref 3-2453 3-2464* first parameter fixed bin(24,0) dcl 3-2427 in procedure "aloc_opn" set ref 3-2426 3-2436* first parameter fixed bin(24,0) dcl 3-2441 in procedure "aloc_value" set ref 3-2440 3-2449* first parameter fixed bin(24,0) dcl 3-2414 in procedure "aloc_param" set ref 3-2413 3-2422* first parameter fixed bin(24,0) dcl 3-2398 in procedure "aloc_attr" ref 3-2397 3-2403 fixed builtin function dcl 1-322 ref 1-487 2-38 2-42 2-151 2-1294 flag 000220 automatic char(1) level 2 packed unaligned dcl 1-324 set ref 1-82* 1-134 1-173* fldptr 000142 automatic pointer dcl 5-98 set ref 3-1192* 3-1193 3-1194 3-1195 3-1195 3-1196 3-1196 3-1197 3-1198 3-1199* 3-1213 3-1228 3-1233 3-1235 3-1237 3-1239 3-1240 3-1240 3-1243 3-1243 3-1244 3-1245 3-1245 3-1248 3-1253 3-1260 3-1261 3-1262 3-1265 3-1265 3-1266 3-1267 3-1269 3-1276 3-1281* 3-1290 3-1298 3-1299 3-1324 3-1329 3-1330 3-1334 3-1340 3-1341 3-1359 3-1365 3-1370 3-1376 3-1380 3-1386 3-1390 3-1396 3-1402 3-1407 3-1413 3-1418 3-1419 3-1420 3-1424 3-1430 3-1436 3-1443 3-1448 3-1668 3-1670 found 006571 automatic bit(1) unaligned dcl 2-1289 set ref 2-1291* 2-1302* 2-1311 2-1319 from 17 based pointer level 2 packed unaligned dcl 5-7 set ref 31* 3-405* 3-412* hbound builtin function dcl 85 ref 1-86 1-186 1-234 hdr based structure level 2 in structure "stmt" unaligned dcl 5-136 in procedure "mrpg_parse_" hdr based structure level 2 in structure "param" unaligned dcl 5-128 in procedure "mrpg_parse_" hdr based structure level 2 in structure "symref" unaligned dcl 5-55 in procedure "mrpg_parse_" hdr based structure level 2 in structure "part" unaligned dcl 5-85 in procedure "mrpg_parse_" hdr based structure level 2 in structure "field" unaligned dcl 5-99 in procedure "mrpg_parse_" hdr based structure level 2 in structure "lines" unaligned dcl 5-92 in procedure "mrpg_parse_" hdr based structure level 2 in structure "datum" unaligned dcl 5-46 in procedure "mrpg_parse_" hdr based structure level 2 in structure "attr" unaligned dcl 5-120 in procedure "mrpg_parse_" hdr based structure level 2 in structure "head" unaligned dcl 5-69 in procedure "mrpg_parse_" hdr based structure level 2 in structure "value" unaligned dcl 5-114 in procedure "mrpg_parse_" hdr based structure level 2 in structure "report" unaligned dcl 5-74 in procedure "mrpg_parse_" hdr based structure level 2 in structure "opn" unaligned dcl 5-60 in procedure "mrpg_parse_" hdr based structure level 2 in structure "symtab" packed unaligned dcl 5-35 in procedure "mrpg_parse_" head based structure level 1 unaligned dcl 5-69 set ref 3-2497 headptr 000132 automatic pointer dcl 5-68 set ref 3-435 3-436 3-448 3-449 3-2497* 3-2498 hhmmss 33(04) based bit(1) level 3 packed unaligned dcl 5-7 set ref 2-212* hold_ct 006127 automatic fixed bin(17,0) dcl 3-129 set ref 1-22* hold_ifi 006520 automatic fixed bin(24,0) dcl 2-15 set ref 2-327* 2-338 2-344 2-350 2-354 2-588* 2-600 2-604 2-627* 2-639 2-643 hold_line 006521 automatic fixed bin(24,0) dcl 2-16 set ref 2-329* 2-355 2-589* 2-605 2-628* 2-644 hold_list 006162 automatic structure level 1 packed unaligned dcl 3-135 set ref 3-902 3-1589 3-1771* 3-1792* hold_sym_len 006523 automatic fixed bin(24,0) dcl 2-17 set ref 2-591* 2-607 2-630* 2-646 hold_symt 006510 automatic char(32) unaligned dcl 2-14 set ref 2-590* 2-606 2-629* 2-645 i 006017 automatic fixed bin(24,0) dcl 1-355 in procedure "mrpg_parse_" set ref 1-102* 1-103 1-108* 1-250* 1-251 1-253* 1-473* 1-474 1-475 1-481* 2-1254* 2-1255 2-1255* 2-1257* 2-1257 2-1258 2-1259 2-1259 i 006252 automatic fixed bin(17,0) dcl 1-376 in procedure "geterm" set ref 1-387* 1-388 1-388 1-388 1-388 i 000166 automatic fixed bin(17,0) dcl 105 in procedure "mrpg_parse_" set ref 114 115* 115 116 121* 127 i 006202 automatic fixed bin(24,0) dcl 1-264 in procedure "skip_recovered" set ref 1-288* 1-289 1-291* i 000104 automatic fixed bin(24,0) dcl 1-575 in procedure "next_term" set ref 1-599* 1-602 1-602 1-606 1-606* 1-650* 1-651 1-653* i 006656 automatic fixed bin(17,0) dcl 3-2374 in procedure "break_number" set ref 3-2376* 3-2380* 3-2380 3-2381 id parameter char(2) unaligned dcl 3-2441 in procedure "aloc_value" ref 3-2440 3-2447 id parameter char(2) unaligned dcl 2-1374 in procedure "st_search" ref 2-1372 2-1390 id parameter char(2) unaligned dcl 3-2454 in procedure "aloc_stmt" ref 3-2453 3-2460 ids parameter fixed bin(24,0) dcl 1-374 ref 1-372 1-380 1-380 1-385 1-385 1-387 1-398 idx parameter fixed bin(24,0) dcl 1-374 ref 1-372 1-393 1-395 1-395 1-398 1-400 1-402 1-402 if_nest 006156 automatic fixed bin(17,0) dcl 3-132 set ref 1-21* 2-496 2-722 3-159 3-159* 3-1453 3-1456* 3-1491* 3-1491 3-1498 3-1502 3-1509* 3-1509 3-1514* 3-1514 3-1523* 3-1523 3-1528* 3-1528 ife 000110 automatic fixed bin(24,0) dcl 92 set ref 23* 2-26 2-162 2-1254 2-1255 2-1275 2-1306 3-162 3-165 ifi 000106 automatic fixed bin(24,0) dcl 90 set ref 25* 2-23 2-26 2-34 2-34 2-37 2-42 2-45 2-49 2-52 2-59 2-59 2-62* 2-62 2-77* 2-77 2-78 2-132 2-137 2-137 2-140 2-142 2-142 2-144* 2-144 2-145 2-155 2-156* 2-156 2-157 2-157 2-161* 2-162 2-169* 2-169 2-170 2-172* 2-172 2-175 2-176 2-184 2-192* 2-192 2-207 2-208* 2-208 2-217 2-218* 2-218 2-223 2-224* 2-224 2-233 2-234* 2-234 2-243 2-244* 2-244 2-255 2-256* 2-256 2-261 2-262* 2-262 2-267 2-268* 2-268 2-273 2-274* 2-274 2-287* 2-287 2-296* 2-296 2-305* 2-305 2-313* 2-313 2-321* 2-321 2-327 2-330* 2-330 2-336* 2-336 2-338 2-342* 2-342 2-344 2-348* 2-348 2-350 2-354* 2-356* 2-356 2-360 2-362* 2-362 2-368* 2-368 2-374 2-380* 2-380 2-386 2-388* 2-388 2-404* 2-404 2-410 2-412* 2-412 2-418* 2-418 2-426* 2-426 2-432 2-434* 2-434 2-440* 2-440 2-448* 2-448 2-454* 2-454 2-460* 2-460 2-466* 2-466 2-472* 2-472 2-481* 2-481 2-503* 2-503 2-509* 2-509 2-515* 2-515 2-521* 2-521 2-527* 2-527 2-536* 2-536 2-542* 2-542 2-548* 2-548 2-554* 2-554 2-560* 2-560 2-566* 2-566 2-572* 2-572 2-578* 2-578 2-588 2-592* 2-592 2-598* 2-598 2-600 2-604* 2-608* 2-608 2-615* 2-615 2-621* 2-621 2-627 2-631* 2-631 2-637* 2-637 2-639 2-643* 2-650* 2-650 2-656* 2-656 2-662* 2-662 2-668* 2-668 2-674* 2-674 2-680* 2-680 2-686* 2-686 2-692* 2-692 2-701* 2-701 2-707* 2-707 2-729* 2-729 2-742* 2-742 2-748* 2-748 2-757* 2-757 2-765* 2-765 2-771* 2-771 2-790* 2-790 2-805* 2-805 2-811* 2-811 2-820* 2-820 2-829* 2-829 2-835* 2-835 2-841* 2-841 2-852* 2-852 2-861* 2-861 2-867* 2-867 2-873* 2-873 2-879* 2-879 2-885* 2-885 2-894* 2-894 2-900* 2-900 2-906* 2-906 2-912* 2-912 2-921* 2-921 2-928* 2-928 2-934* 2-934 2-940* 2-940 2-949* 2-949 2-955* 2-955 2-961* 2-961 2-970* 2-970 2-976* 2-976 2-982* 2-982 2-988* 2-988 2-994* 2-994 2-1000* 2-1000 2-1006* 2-1006 2-1012* 2-1012 2-1018* 2-1018 2-1024* 2-1024 2-1030* 2-1030 2-1036* 2-1036 2-1042* 2-1042 2-1051* 2-1051 2-1057* 2-1057 2-1063* 2-1063 2-1069* 2-1069 2-1075* 2-1075 2-1081* 2-1081 2-1090* 2-1090 2-1108* 2-1108 2-1115* 2-1115 2-1121* 2-1121 2-1127* 2-1127 2-1136* 2-1136 2-1142* 2-1142 2-1148* 2-1148 2-1154* 2-1154 2-1169* 2-1169 2-1178* 2-1178 2-1184* 2-1184 2-1193* 2-1193 2-1200 2-1202* 2-1202 2-1208* 2-1208 2-1214 2-1216* 2-1216 2-1222* 2-1222 2-1227 2-1227 2-1229* 2-1229 2-1254 2-1254 2-1255 2-1258 2-1259 2-1259 2-1269 2-1269* 2-1270 2-1270 2-1274* 2-1275 2-1280* 2-1280 2-1281 2-1292* 2-1292* 2-1294 2-1297* 2-1306 2-1314 2-1315 3-162 3-165* ifile based char(2000) unaligned dcl 88 ref 2-34 2-37 2-42 2-59 2-59 2-70 2-80 2-80 2-132 2-137 2-137 2-140 2-142 2-142 2-148 2-148 2-157 2-170 2-179 2-179 2-184 2-207 2-217 2-223 2-233 2-243 2-255 2-261 2-267 2-273 2-360 2-374 2-386 2-410 2-432 2-1200 2-1214 2-1227 2-1227 2-1254 2-1259 2-1259 2-1270 2-1281 2-1297 2-1314 2-1315 ifilea based char(1) array unaligned dcl 89 set ref 2-45 2-1294 ifl 000107 automatic fixed bin(24,0) dcl 91 set ref 43* 2-23 2-34 2-157 2-161 2-1258* 2-1270 2-1274 2-1292 ifp 000104 automatic pointer dcl 87 set ref 22* 2-34 2-37 2-42 2-45 2-59 2-59 2-70 2-80 2-80 2-132 2-137 2-137 2-140 2-142 2-142 2-148 2-148 2-157 2-170 2-179 2-179 2-184 2-207 2-217 2-223 2-233 2-243 2-255 2-261 2-267 2-273 2-360 2-374 2-386 2-410 2-432 2-1200 2-1214 2-1227 2-1227 2-1254 2-1259 2-1259 2-1270 2-1281 2-1294 2-1297 2-1314 2-1315 ii 006203 automatic fixed bin(24,0) dcl 1-264 in procedure "skip_recovered" set ref 1-293* 1-294 1-298* ii 006470 automatic fixed bin(24,0) dcl 1-553 in procedure "dump_la" set ref 1-555* 1-556 1-557* 1-557 1-557 1-561* 1-561 ii parameter fixed bin(17,0) dcl 3-2616 in procedure "pull_name" ref 3-2614 3-2618 index builtin function dcl 85 ref 2-71 2-89 2-140 2-157 2-1236 2-1254 2-1270 2-1281 3-1276 3-2583 info 000100 automatic char(100) unaligned dcl 3-1304 set ref 3-1309 3-1309 input 12 based structure level 2 packed unaligned dcl 5-7 set ref 3-483* input_check 14 based structure level 2 packed unaligned dcl 5-7 ioa_ 000534 constant entry external dcl 1-370 ref 2-125 2-1259 ioa_$ioa_switch_nnl 000530 constant entry external dcl 1-333 ref 1-148 1-178 1-208 1-220 1-221 1-224 1-226 1-475 1-557 1-592 1-610 1-635 3-2332 3-2349 3-2366 ioa_$nnl 000526 constant entry external dcl 106 ref 108 118 127 iox_$user_output 000532 external static pointer dcl 1-334 set ref 1-148* 1-178* 1-208* 1-220* 1-221* 1-224* 1-226* 1-475* 1-557* 1-592* 1-610* 1-635* 3-2332* 3-2349* 3-2366* j 006570 automatic fixed bin(24,0) dcl 2-1288 in procedure "skip" set ref 2-1294* 2-1295 j 006204 automatic fixed bin(24,0) dcl 1-265 in procedure "skip_recovered" set ref 1-292* 1-294 1-296 1-297* j 000167 automatic fixed bin(17,0) dcl 105 in procedure "mrpg_parse_" set ref 109* 111 114 124* 124 125 jj 006205 automatic fixed bin(24,0) dcl 1-265 in procedure "skip_recovered" set ref 1-291* 1-293 1-293 1-293 jj 006525 automatic fixed bin(24,0) dcl 2-19 in procedure "scanner" set ref 2-92* 2-93 2-93* 2-95 2-97 2-99 2-102* 2-104 2-107* 2-109 2-112* 2-114 2-117* 2-121 2-121* 2-124 2-132* 2-135 2-140 2-142 2-142 2-144 2-157* 2-159 2-169 2-1270* 2-1272 2-1280 keyword 006612 automatic bit(1) unaligned dcl 3-153 set ref 3-196* 3-215* 3-226 3-240 3-329* ki 006606 automatic fixed bin(17,0) dcl 3-147 set ref 3-259* 3-266* 3-273* 3-282 3-286 3-1309* 3-1310 3-1312 3-1314 3-1631* 3-1632 3-1634 3-1634 3-1637 3-1637 3-1637* 3-1650* 3-1658* 3-1738* 3-1739 3-1744 3-1749 3-1754 3-1971* 3-1972 3-1972 3-2304* 3-2310* 3-2314 3-2315 kind 6 based fixed bin(17,0) level 2 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-226 3-277 3-282* kind 6(18) based fixed bin(17,0) level 2 in structure "opn" packed unaligned dcl 5-60 in procedure "mrpg_parse_" set ref 3-399* 3-758* 3-780* 3-801* 3-823* 3-1764* 3-1803* 3-1818* 3-1831* 3-1892* 3-1980* 3-2013* 3-2054* 3-2085* 3-2098* 3-2117* 3-2131* 3-2155* 3-2169* 3-2181* 3-2195* 3-2207* 3-2221* 3-2231* 3-2241* 3-2246* 3-2255* 3-2260* 3-2268* 3-2327* 3-2344* 3-2361* kind 6 based fixed bin(17,0) level 2 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-92 2-125 2-1415* 2-1422 3-491* 3-498* 3-505* 3-512* 3-520* 3-528* 3-535* 3-542* 3-550* 3-559* 3-568* 3-576* 3-585* 3-592* 3-599* 3-606* 3-613* 3-620* 3-628* 3-636* 3-644* 3-651* 3-659* 3-667* 3-676* 3-700* 3-706* 3-713* 3-720* 3-726* 3-731 3-731* 3-737 3-737* 3-1693 3-2268 kind 6 based fixed bin(17,0) level 2 in structure "symref" packed unaligned dcl 5-55 in procedure "mrpg_parse_" set ref 2-124* 2-149* 2-180* 2-1422* 3-1764 3-2024* 3-2085 3-2089 kind 12 based fixed bin(17,0) level 2 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1245 3-1245* 3-1248 3-1253 3-1267* 3-1290 3-1298* 3-1324 3-1329* 3-1334 3-1340* kind_char 000051 internal static varying char(16) initial array dcl 5-169 set ref 2-125* l parameter fixed bin(17,0) dcl 2-1374 ref 2-1372 2-1416 la_ct 006020 automatic fixed bin(24,0) dcl 1-356 set ref 1-33* 1-93 1-97* 1-97 1-117* 1-117 1-193* 1-193 1-282 1-285* 1-313* 1-313 1-460 1-463* 1-463 1-511* 1-511 1-532* 1-532 la_get 006021 automatic fixed bin(24,0) dcl 1-357 set ref 1-29* 1-56 1-72 1-85 1-116* 1-116 1-176* 1-191 1-192* 1-192 1-272 1-276* 1-287 1-301 1-304 1-305 1-312* 1-312 1-457 1-465 1-486 1-500* 1-501 1-509* 1-510 1-518* 1-528* 1-531* 1-536* 1-541 1-542 1-555 la_need 006022 automatic fixed bin(24,0) dcl 1-358 set ref 1-56 1-57 1-60* 1-60 1-71* 1-84* 1-93 1-171 1-197* la_next 006265 automatic fixed bin(24,0) dcl 1-447 set ref 1-465* 1-466 1-501* 1-510* 1-513 1-515 1-516 1-517 1-518 1-530* 1-531 1-539* 1-542 1-543 la_put 006023 automatic fixed bin(24,0) dcl 1-359 set ref 1-29* 1-96* 1-96 1-284* 1-284 1-462* 1-462 1-516 1-556 2-28 2-45 2-46 2-47 2-48 2-49 2-50 2-52 2-70 2-71 2-76 2-78 2-79 2-80 2-80 2-80 2-80 2-81 2-83 2-85 2-87 2-89 2-95 2-97 2-101 2-106 2-111 2-116 2-120 2-124 2-125 2-132 2-137 2-142 2-145 2-146 2-147 2-148 2-148 2-148 2-148 2-150 2-151 2-164 2-175 2-176 2-177 2-178 2-179 2-179 2-179 2-179 2-181 2-193 2-194 2-197 2-198 2-209 2-210 2-213 2-214 2-219 2-220 2-225 2-226 2-229 2-230 2-235 2-236 2-239 2-240 2-245 2-246 2-257 2-258 2-263 2-264 2-269 2-270 2-275 2-276 2-279 2-280 2-288 2-297 2-306 2-314 2-322 2-337 2-338 2-343 2-344 2-349 2-350 2-357 2-363 2-364 2-369 2-381 2-389 2-390 2-399 2-400 2-405 2-413 2-414 2-419 2-427 2-435 2-436 2-441 2-449 2-450 2-455 2-456 2-461 2-462 2-467 2-468 2-473 2-474 2-482 2-483 2-492 2-493 2-498 2-499 2-504 2-505 2-510 2-511 2-516 2-517 2-522 2-523 2-528 2-529 2-537 2-538 2-543 2-544 2-549 2-550 2-555 2-556 2-561 2-562 2-567 2-568 2-573 2-574 2-579 2-580 2-599 2-600 2-609 2-610 2-616 2-617 2-622 2-623 2-638 2-639 2-651 2-652 2-657 2-658 2-663 2-664 2-669 2-670 2-675 2-676 2-681 2-682 2-687 2-688 2-693 2-694 2-702 2-703 2-708 2-709 2-718 2-719 2-724 2-725 2-730 2-731 2-738 2-739 2-743 2-744 2-749 2-750 2-759 2-760 2-761 2-766 2-767 2-772 2-773 2-786 2-787 2-791 2-792 2-806 2-807 2-812 2-813 2-821 2-822 2-830 2-831 2-836 2-837 2-842 2-843 2-853 2-854 2-862 2-863 2-868 2-869 2-874 2-875 2-880 2-881 2-886 2-887 2-895 2-896 2-901 2-902 2-907 2-908 2-913 2-914 2-922 2-923 2-929 2-930 2-935 2-936 2-941 2-942 2-950 2-951 2-956 2-957 2-962 2-963 2-971 2-972 2-977 2-978 2-983 2-984 2-989 2-990 2-995 2-996 2-1001 2-1002 2-1007 2-1008 2-1013 2-1014 2-1019 2-1020 2-1025 2-1026 2-1031 2-1032 2-1037 2-1038 2-1043 2-1044 2-1052 2-1053 2-1058 2-1059 2-1064 2-1065 2-1070 2-1071 2-1076 2-1077 2-1082 2-1083 2-1091 2-1092 2-1109 2-1110 2-1116 2-1117 2-1122 2-1123 2-1128 2-1129 2-1137 2-1138 2-1143 2-1144 2-1149 2-1150 2-1156 2-1157 2-1158 2-1165 2-1166 2-1170 2-1171 2-1179 2-1180 2-1185 2-1186 2-1194 2-1195 2-1203 2-1204 2-1209 2-1217 2-1218 2-1223 2-1275 2-1397 2-1398 2-1399 la_use 006024 automatic fixed bin(22,0) dcl 1-360 set ref 1-56* 1-72* 1-85* 1-99 1-150 1-150 lastk_ovflo 000176 stack reference condition dcl 1-59 ref 1-57 lbound builtin function dcl 85 ref 1-56 1-57 1-96 1-116 1-192 1-284 1-312 1-462 1-465 1-510 1-516 1-561 leng 13 based fixed bin(24,0) level 2 in structure "param" dcl 5-128 in procedure "mrpg_parse_" set ref 3-230 3-283* leng 16 based fixed bin(24,0) level 2 in structure "field" dcl 5-99 in procedure "mrpg_parse_" set ref 3-1341* leng 6(18) based fixed bin(17,0) level 2 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-1416* 3-492* 3-499* 3-506* 3-513* 3-521* 3-529* 3-536* 3-543* 3-551* 3-560* 3-569* 3-577* 3-586* 3-593* 3-600* 3-607* 3-614* 3-621* 3-629* 3-637* 3-652* 3-668* 3-677* 3-708* 3-715* leng 6 based fixed bin(24,0) level 2 in structure "symtab" dcl 5-35 in procedure "mrpg_parse_" set ref 2-125 2-125 2-151 2-1386 2-1389* 2-1392 3-318 3-320 3-320 3-394* 3-397 3-1276 3-1305 3-1308 3-1434 3-1436 3-2285 3-2285 3-2313 3-2585 3-2585 3-2624 let 10 based structure level 2 packed unaligned dcl 5-99 set ref 3-1240* 3-1262* 3-1670* li 006607 automatic fixed bin(24,0) dcl 3-148 set ref 3-260* 3-267* 3-274* 3-283 3-1205* 3-1211* 3-1213 3-1215 3-1215* 3-1217 3-1222 3-1227 3-1597* 3-1609* 3-1615* 3-1616 3-2035* 3-2036 3-2042 line 0(18) based fixed bin(17,0) level 3 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1037* 3-1044* line 3 000256 automatic fixed bin(24,0) array level 2 in structure "lstk" dcl 1-336 in procedure "mrpg_parse_" set ref 1-150 1-272 1-301 1-457 1-516* 1-516 1-545 2-47* 2-71* 2-137* 2-142* 2-164* 2-400* 2-493* 2-499* 2-719* 2-725* 2-739* 2-787* 2-1166* 2-1275* 2-1397 3-159 3-197 3-223 3-228 3-234 3-237 3-279 3-320 3-337 3-347 3-427 3-440 3-474 3-480 3-692 3-753 3-776 3-797 3-819 3-836 3-860 3-936 3-976 3-993 3-1026 3-1037 3-1044 3-1069 3-1105 3-1117 3-1122 3-1153 3-1189 3-1213 3-1293 3-1312 3-1314 3-1316 3-1322 3-1326 3-1337 3-1373 3-1383 3-1393 3-1400 3-1404 3-1411 3-1415 3-1427 3-1434 3-1441 3-1445 3-1456 3-1481 3-1517 3-1531 3-1556 3-1584 3-1601 3-1637* 3-1680 3-1734 3-1760 3-1967 3-1975 3-2038 3-2050 3-2065 3-2070 3-2075 3-2140 3-2285 3-2476 line 0(18) based fixed bin(17,0) level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 3-480* 3-692* line 0(18) based fixed bin(17,0) level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2476* 3-2479* line 0(18) based fixed bin(17,0) level 3 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1213* line 0(18) based fixed bin(17,0) level 3 in structure "symref" packed unaligned dcl 5-55 in procedure "mrpg_parse_" set ref 2-1397* 3-1548 3-2299 3-2406 3-2479 3-2585 line 0(18) based fixed bin(17,0) level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-237* line 0(18) based fixed bin(17,0) level 3 in structure "attr" packed unaligned dcl 5-120 in procedure "mrpg_parse_" set ref 3-2406* line 0(18) based fixed bin(17,0) level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-836* line1 parameter char unaligned dcl 59 ref 58 61 line2 parameter char unaligned dcl 59 ref 58 62 linenumber 000111 automatic fixed bin(24,0) dcl 93 set ref 41* 2-47 2-59* 2-329 2-355* 2-589 2-605* 2-628 2-644* 2-1227* 2-1238* 2-1246* 2-1246 2-1249 2-1251 2-1259* 2-1268 2-1281* 3-164 lines based structure level 1 unaligned dcl 5-92 in procedure "mrpg_parse_" set ref 3-1087 lines 10 based structure level 2 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1093* lino 000010 internal static fixed bin(17,0) initial array dcl 60 set ref 44 61* 62* 2-1247 2-1249 2-1251 linptr 000140 automatic pointer dcl 5-91 set ref 3-1087* 3-1089 3-1090 3-1091 3-1091 3-1092 3-1093* 3-1103 3-1115 3-1120 3-1122 3-1136 3-1137 3-1143 3-1144 3-1148 3-1150 3-1158 3-1165 3-1171 3-1173 3-1186 3-1190 3-1199 list parameter structure level 1 packed unaligned dcl 3-2527 in procedure "link" set ref 3-2524 list parameter structure level 1 packed unaligned dcl 3-2548 in procedure "linkr" set ref 3-2545 list 6 based structure level 2 in structure "head" packed unaligned dcl 5-69 in procedure "mrpg_parse_" set ref 3-435* 3-448* lista parameter structure level 1 packed unaligned dcl 3-2506 set ref 3-2502 listb parameter structure level 1 packed unaligned dcl 3-2506 set ref 3-2502 ln 1(18) 000520 external static fixed bin(17,0) array level 3 packed unaligned dcl 4-4 ref 1-395 1-402 local 20 based structure level 2 packed unaligned dcl 5-7 set ref 2-1420* 3-694* logic_error 006452 stack reference condition dcl 1-495 ref 1-492 look_ahead 000103 automatic bit(1) unaligned dcl 1-574 set ref 1-580* 1-582* 1-600 ls_top 005172 automatic fixed bin(24,0) dcl 1-348 set ref 1-28* 1-69 1-81 1-92 1-186 1-190* 1-190 1-191 1-219 1-240* 1-240 1-297* 1-541 1-543 3-159 3-197 3-203 3-223 3-228 3-234 3-237 3-238 3-257 3-264 3-267 3-271 3-279 3-284 3-289 3-293 3-300 3-302 3-304 3-306 3-316 3-320 3-323* 3-324* 3-328 3-337 3-340 3-347 3-369 3-375 3-398 3-401 3-402 3-409 3-411 3-418 3-418 3-427 3-429 3-430 3-431 3-432 3-433 3-436 3-440 3-442 3-443 3-444 3-445 3-446 3-449 3-456 3-458 3-462 3-462 3-464 3-465 3-469 3-490 3-492 3-499 3-506 3-513 3-514 3-521 3-522 3-529 3-536 3-543 3-544 3-551 3-552 3-553 3-560 3-561 3-562 3-569 3-570 3-577 3-578 3-584 3-586 3-593 3-600 3-621 3-622 3-630 3-638 3-645 3-653 3-660 3-661 3-669 3-670 3-677 3-679 3-690 3-692 3-702 3-708 3-709 3-715 3-716 3-722 3-753 3-757 3-759 3-760 3-776 3-779 3-781 3-782 3-797 3-800 3-802 3-803 3-819 3-822 3-824 3-825 3-836 3-837 3-860 3-862 3-867 3-882 3-887 3-892 3-897 3-908 3-915 3-920 3-922 3-923 3-925 3-925 3-929 3-931 3-932 3-936 3-938 3-939 3-940 3-941 3-945 3-947 3-948 3-976 3-993 3-1023 3-1026 3-1026 3-1026 3-1035 3-1037 3-1042 3-1044 3-1059 3-1064 3-1069 3-1105 3-1117 3-1122 3-1134 3-1136 3-1137 3-1141 3-1143 3-1144 3-1148 3-1153 3-1158 3-1163 3-1165 3-1169 3-1171 3-1189 3-1205 3-1211 3-1225* 3-1231* 3-1241 3-1258* 3-1263 3-1293 3-1296 3-1299 3-1312 3-1314 3-1316 3-1322 3-1326 3-1330 3-1337 3-1341 3-1359 3-1373 3-1383 3-1393 3-1400 3-1404 3-1411 3-1415 3-1419 3-1420 3-1427 3-1431 3-1434 3-1441 3-1445 3-1456 3-1458* 3-1481 3-1493 3-1495 3-1496 3-1507 3-1510 3-1516 3-1517 3-1521 3-1524 3-1530 3-1531 3-1535 3-1540 3-1542 3-1543 3-1548 3-1548 3-1556 3-1584 3-1587* 3-1601 3-1616 3-1631 3-1650 3-1658 3-1664 3-1678 3-1680 3-1680 3-1680 3-1689 3-1693 3-1696 3-1698 3-1701 3-1704 3-1707 3-1710 3-1712 3-1713 3-1714 3-1732 3-1734 3-1737 3-1738 3-1741 3-1742 3-1746 3-1747 3-1751 3-1752 3-1756 3-1757 3-1760 3-1763 3-1764 3-1765 3-1766 3-1767 3-1771 3-1775 3-1799 3-1801* 3-1802 3-1804 3-1805 3-1806 3-1807 3-1808 3-1814 3-1816* 3-1817 3-1819 3-1820 3-1821 3-1828* 3-1830 3-1832 3-1833 3-1834 3-1840 3-1845 3-1850 3-1855 3-1860 3-1865 3-1870 3-1870 3-1873 3-1873 3-1875 3-1875* 3-1878* 3-1879 3-1885 3-1889* 3-1890 3-1890 3-1893 3-1894 3-1895 3-1896 3-1897 3-1901 3-1906 3-1911 3-1916 3-1921 3-1926 3-1931 3-1936 3-1941 3-1946 3-1951 3-1956 3-1961 3-1964 3-1967 3-1967 3-1967 3-1971 3-1975 3-1979 3-1981 3-1988 3-2008* 3-2014 3-2024 3-2026 3-2035 3-2038 3-2038 3-2042 3-2043 3-2050 3-2053 3-2057 3-2060 3-2061 3-2065 3-2070 3-2075 3-2080 3-2082* 3-2083 3-2084 3-2086 3-2088 3-2089 3-2094 3-2096* 3-2097 3-2099 3-2100 3-2101 3-2102 3-2112 3-2114 3-2115 3-2116 3-2118 3-2119 3-2120 3-2121 3-2122 3-2127 3-2129 3-2130 3-2132 3-2133 3-2134 3-2135 3-2140 3-2151 3-2153 3-2154 3-2156 3-2157 3-2158 3-2159 3-2165 3-2167* 3-2168 3-2170 3-2171 3-2172 3-2173 3-2177 3-2179* 3-2180 3-2182 3-2183 3-2184 3-2185 3-2191 3-2193* 3-2194 3-2196 3-2197 3-2198 3-2199 3-2203 3-2205* 3-2206 3-2208 3-2209 3-2210 3-2211 3-2218* 3-2220 3-2222 3-2223 3-2224 3-2228* 3-2230 3-2232 3-2233 3-2234 3-2238 3-2240 3-2242 3-2243 3-2244 3-2245 3-2247 3-2248 3-2252 3-2254 3-2256 3-2257 3-2258 3-2259 3-2261 3-2262 3-2266 3-2268 3-2269 3-2270 3-2271 3-2271 3-2277 3-2282 3-2285 3-2293 3-2299 3-2299 3-2302 3-2303 3-2304 3-2310 3-2393 3-2408 3-2481 3-2484 lstk 000256 automatic structure array level 1 unaligned dcl 1-336 set ref 1-56 1-57 1-96 1-116 1-186 1-191* 1-191 1-192 1-284 1-312 1-462 1-465 1-510 1-516 1-541* 1-541 1-542* 1-542 1-543* 1-543 1-561 lstk_ovflo 000212 stack reference condition dcl 1-189 ref 1-186 lstop_line 006613 automatic fixed bin(17,0) dcl 3-154 set ref 3-458* 3-465* 3-469* 3-474 3-477 3-480 3-679* m 006025 automatic fixed bin(24,0) dcl 1-362 set ref 1-101* 1-104* 1-122 1-124 max builtin function dcl 85 ref 1-90 1-160 2-1227 2-1227 2-1229 maxl 11 based fixed bin(24,0) level 2 in structure "report" dcl 5-74 in procedure "mrpg_parse_" set ref 3-839* 3-855 3-855* 3-860 3-897* 3-1120 3-1120* 3-1122 maxl 6 based fixed bin(17,0) level 2 in structure "part" dcl 5-85 in procedure "mrpg_parse_" set ref 3-1014* 3-1064* min builtin function dcl 85 ref 1-385 3-858 min_paren 006105 automatic fixed bin(17,0) initial dcl 2-4 set ref 2-4* 2-395 3-1346* 3-1353* 3-1463* 3-1467* minl 10 based fixed bin(24,0) level 2 dcl 5-74 set ref 3-838* 3-858 3-858* 3-860 3-892* mmddyy 33 based bit(1) level 3 packed unaligned dcl 5-7 set ref 2-228* mod builtin function dcl 1-322 ref 1-56 1-96 1-116 1-192 1-284 1-312 1-462 1-465 1-510 1-516 1-561 month 33(02) based bit(1) level 3 packed unaligned dcl 5-7 set ref 2-238* mrpg_dump_$all 000516 constant entry external dcl 96 ref 3-249 3-1235 mrpg_error_ 000514 constant entry external dcl 95 ref 1-143 1-150 1-152 1-154 1-457 1-545 2-59 2-71 2-137 2-142 2-164 2-400 2-493 2-499 2-719 2-725 2-739 2-787 2-1166 2-1227 2-1238 2-1275 2-1281 3-159 3-164 3-197 3-223 3-228 3-234 3-279 3-320 3-337 3-347 3-427 3-440 3-474 3-753 3-776 3-797 3-819 3-860 3-936 3-976 3-993 3-1026 3-1069 3-1105 3-1117 3-1122 3-1153 3-1189 3-1293 3-1312 3-1314 3-1316 3-1322 3-1326 3-1337 3-1373 3-1383 3-1393 3-1400 3-1404 3-1411 3-1415 3-1427 3-1434 3-1441 3-1445 3-1456 3-1481 3-1517 3-1531 3-1548 3-1556 3-1584 3-1601 3-1637 3-1680 3-1734 3-1760 3-1967 3-1975 3-2038 3-2050 3-2065 3-2070 3-2075 3-2140 3-2285 3-2299 3-2585 mrpg_tables_$DPDA 000524 external static structure level 1 unaligned dcl 4-13 mrpg_tables_$TC 000522 external static structure level 1 unaligned dcl 4-9 mrpg_tables_$TL 000520 external static structure level 1 unaligned dcl 4-4 n 006026 automatic fixed bin(24,0) dcl 1-362 set ref 1-103* 1-104 1-104 1-104* 1-106 n_n 000234 internal static fixed bin(17,0) initial dcl 5-227 set ref 3-750 3-757* 3-1739 3-1972 3-1998 n_s 000235 internal static fixed bin(17,0) initial dcl 5-228 set ref 3-773 3-779* 3-1744 next 3 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" ref 3-1795 next 3 based pointer level 3 in structure "symref" packed unaligned dcl 5-55 in procedure "mrpg_parse_" set ref 2-1400* 3-1791* 3-2383 3-2517* 3-2535* 3-2538* 3-2541* 3-2554* 3-2557* next 3 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2491* next 3 based pointer level 3 in structure "symtab" packed unaligned dcl 5-35 in procedure "mrpg_parse_" ref 2-1388 next_state 006027 automatic fixed bin(24,0) dcl 1-364 set ref 1-108* 1-124* 1-167 1-181 next_symbol 006447 automatic fixed bin(24,0) dcl 1-451 set ref 1-466* 1-477 1-530* 1-539* 1-597 nil_sym 006030 automatic fixed bin(24,0) dcl 1-365 set ref 1-26* 1-114 1-279* 1-305 node_ptr 6 000256 automatic pointer array level 2 dcl 1-336 set ref 2-48* 2-81* 2-124 2-150* 2-181* 2-197* 2-213* 2-229* 2-239* 2-279* 2-759* 2-1156* 3-203 3-238 3-285* 3-304 3-316 3-340 3-401 3-411 3-418 3-418 3-432 3-433 3-436* 3-445 3-446 3-449* 3-456 3-462 3-462 3-464 3-477 3-514* 3-522* 3-552* 3-561* 3-645* 3-653* 3-660* 3-669* 3-690 3-759 3-760 3-781 3-782 3-802 3-803 3-824 3-825 3-837 3-908* 3-915* 3-922 3-923 3-925* 3-925 3-931 3-932* 3-939 3-941* 3-947 3-948* 3-1023 3-1026* 3-1035 3-1042 3-1059 3-1137 3-1144 3-1165 3-1171 3-1217 3-1227* 3-1296 3-1299 3-1330 3-1431 3-1495* 3-1496* 3-1510 3-1516 3-1524 3-1530 3-1535* 3-1542* 3-1543 3-1632 3-1664 3-1693 3-1710* 3-1712 3-1713* 3-1714* 3-1737 3-1738 3-1764 3-1765 3-1766 3-1767* 3-1771* 3-1775 3-1804 3-1805 3-1806* 3-1819 3-1820 3-1821* 3-1832 3-1833* 3-1893 3-1894 3-1895* 3-1971 3-1979 3-1981 3-1982 3-1983* 3-2014 3-2024 3-2035* 3-2043 3-2060* 3-2083 3-2086 3-2088* 3-2099 3-2100 3-2101* 3-2118 3-2119 3-2120 3-2121* 3-2132 3-2133 3-2134* 3-2156 3-2157 3-2158* 3-2170 3-2171 3-2172* 3-2182 3-2183 3-2184* 3-2196 3-2197 3-2198* 3-2208 3-2209 3-2210* 3-2222 3-2223* 3-2232 3-2233* 3-2242 3-2243* 3-2247 3-2248* 3-2256 3-2257* 3-2261 3-2262* 3-2268 3-2269 3-2270* 3-2293 3-2302 3-2303 3-2314* 3-2330 3-2331* 3-2347 3-2348* 3-2364 3-2365* 3-2403 3-2408 3-2473 3-2481 3-2618 not_flag 006104 automatic fixed bin(17,0) initial dcl 2-3 set ref 2-3* 2-21 2-21* 2-21 2-487 2-713 2-927* ns parameter fixed bin(24,0) dcl 1-567 set ref 1-566 1-577 1-580 1-583* 1-583 1-585 1-592* 1-635* 1-642* 1-653* 1-657* null builtin function dcl 85 ref 27 28 29 30 31 32 33 34 35 38 39 1-16 1-17 1-18 2-48 2-83 2-1383 2-1391 2-1400 2-1401 2-1407 2-1417 2-1418 3-194 3-210 3-220 3-230 3-334 3-345 3-347 3-396 3-471 3-481 3-484 3-678 3-695 3-750 3-773 3-794 3-816 3-833 3-834 3-835 3-843 3-864 3-871 3-904 3-973 3-990 3-1013 3-1015 3-1016 3-1090 3-1091 3-1195 3-1196 3-1197 3-1218 3-1243 3-1265 3-1281 3-1432 3-1462 3-1477 3-1561 3-1585 3-1591 3-1620 3-1668 3-1784 3-1787 3-1791 3-2032 3-2047 3-2377 3-2391 3-2392 3-2404 3-2416 3-2420 3-2421 3-2435 3-2448 3-2461 3-2462 3-2463 3-2474 3-2482 3-2489 3-2490 3-2491 3-2508 3-2511 3-2520 3-2530 3-2532 3-2535 3-2541 3-2551 3-2554 3-2567 3-2570 3-2573 3-2575 3-2578 3-2599 3-2602 3-2604 3-2610 3-2619 3-2622 numb 6 based fixed bin(24,0) level 2 dcl 5-114 set ref 3-404* 3-940* numbe 000154 automatic picture(4) array unaligned dcl 104 set ref 114* 118 118 119* 127 127 number 6 based fixed bin(17,0) level 2 packed unaligned dcl 5-92 set ref 3-1092* 3-1103 3-1115 3-1120 3-1122 3-1136* 3-1143* 3-1148* 3-1150 3-1158* 3-1173* 3-1186 3-1190* onlist 12 based structure level 2 packed unaligned dcl 5-74 set ref 3-869* 3-908* 3-915* 3-924* op 6 based fixed bin(17,0) level 2 packed unaligned dcl 5-60 set ref 3-750 3-773 3-794 3-816 3-1738 3-1971 3-2328* 3-2332 3-2345* 3-2349 3-2362* 3-2366 3-2434* op1 7 based pointer level 2 packed unaligned dcl 5-60 set ref 3-400* 3-432* 3-445* 3-759* 3-781* 3-802* 3-824* 3-1765* 3-1804* 3-1819* 3-1893* 3-1981* 3-2014* 3-2055* 3-2086* 3-2099* 3-2118* 3-2132* 3-2156* 3-2170* 3-2182* 3-2196* 3-2208* 3-2242* 3-2256* 3-2269* 3-2330* 3-2347* 3-2364* 3-2435* op2 10 based pointer level 2 packed unaligned dcl 5-60 set ref 3-401* 3-433* 3-446* 3-760* 3-782* 3-803* 3-825* 3-1766* 3-1805* 3-1820* 3-1832* 3-1894* 3-1982* 3-2059* 3-2087* 3-2100* 3-2119* 3-2133* 3-2157* 3-2171* 3-2183* 3-2197* 3-2209* 3-2222* 3-2232* 3-2247* 3-2261* 3-2435* op3 11 based pointer level 2 packed unaligned dcl 5-60 set ref 3-2120* 3-2435* op_char 000246 internal static varying char(8) initial array dcl 5-241 set ref 3-2332* 3-2349* 3-2366* operand parameter fixed bin(17,0) dcl 3-2427 ref 3-2426 3-2434 opn based structure level 1 unaligned dcl 5-60 set ref 3-2432 opptr 000130 automatic pointer dcl 5-59 set ref 3-399 3-400 3-401 3-403 3-432 3-433 3-435* 3-445 3-446 3-448* 3-748* 3-750 3-750 3-758 3-759 3-760 3-761* 3-771* 3-773 3-773 3-780 3-781 3-782 3-783* 3-792* 3-794 3-794 3-801 3-802 3-803 3-804* 3-814* 3-816 3-816 3-823 3-824 3-825 3-826* 3-1764 3-1765 3-1766 3-1767 3-1803 3-1804 3-1805 3-1806 3-1818 3-1819 3-1820 3-1821 3-1831 3-1832 3-1833 3-1892 3-1893 3-1894 3-1895 3-1980 3-1981 3-1982 3-1983 3-2013 3-2014 3-2015* 3-2054 3-2055 3-2059 3-2060 3-2085 3-2086 3-2087 3-2088 3-2098 3-2099 3-2100 3-2101 3-2117 3-2118 3-2119 3-2120 3-2121 3-2131 3-2132 3-2133 3-2134 3-2155 3-2156 3-2157 3-2158 3-2169 3-2170 3-2171 3-2172 3-2181 3-2182 3-2183 3-2184 3-2195 3-2196 3-2197 3-2198 3-2207 3-2208 3-2209 3-2210 3-2221 3-2222 3-2223 3-2231 3-2232 3-2233 3-2241 3-2242 3-2243 3-2246 3-2247 3-2248 3-2255 3-2256 3-2257 3-2260 3-2261 3-2262 3-2268 3-2269 3-2270 3-2327 3-2328 3-2330 3-2331 3-2332 3-2344 3-2345 3-2347 3-2348 3-2349 3-2361 3-2362 3-2364 3-2365 3-2366 3-2432* 3-2433 3-2434 3-2435 3-2435 3-2435 3-2436* p parameter pointer dcl 2-1374 in procedure "st_search" set ref 2-1372 2-1403* 2-1406 2-1414 2-1422 p parameter pointer dcl 3-2373 in procedure "break_number" ref 3-2371 3-2381 paptr 000150 automatic pointer dcl 5-127 set ref 3-194* 3-210* 3-220 3-226 3-230 3-237 3-238 3-239* 3-242* 3-246* 3-249 3-277 3-282 3-283 3-284 3-285 3-292 3-293 3-305 3-306 3-327 3-328 3-334 3-340 3-2416 3-2418* 3-2419 3-2420 3-2420 3-2421 3-2421 3-2422* param based structure level 1 unaligned dcl 5-128 set ref 3-2418 parenct 000102 automatic fixed bin(17,0) dcl 68 set ref 42* 1-519* 1-519 1-521* 1-521 2-295* 2-295 2-304* 2-304 2-331 2-395 2-398* 2-398 2-489 2-491* 2-491 2-715 2-717* 2-717 2-735 2-737* 2-737 2-783 2-785* 2-785 2-1162 2-1164* 2-1164 parm_check 10 based structure level 2 packed unaligned dcl 5-7 set ref 3-203* parm_key 5 based structure level 2 packed unaligned dcl 5-7 set ref 3-242* parm_pos 2 based structure level 2 packed unaligned dcl 5-7 set ref 3-246* parse_stack 005503 automatic fixed bin(24,0) array dcl 1-350 set ref 1-86 1-91* 1-224* 1-234 1-236* 1-251 1-294 1-651 part 16 based structure level 2 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-1017* part based structure level 1 unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1010 partl 006106 automatic fixed bin(17,0) array dcl 3-123 set ref 3-840* 3-1097* 3-1097 3-1101 3-1113 partno 006115 automatic fixed bin(17,0) dcl 3-124 set ref 3-963* 3-969* 3-980* 3-986* 3-997* 3-1003* 3-1009* 3-1097 3-1097 3-1099 3-1111 partptr 000136 automatic pointer dcl 5-84 set ref 3-1010* 3-1012 3-1013 3-1014 3-1015 3-1015 3-1016 3-1017* 3-1023 3-1025 3-1035 3-1037 3-1038* 3-1042 3-1044 3-1045* 3-1059 3-1064 3-1093 phase0 24 based structure level 2 packed unaligned dcl 5-7 pic 000131 automatic char unaligned dcl 3-1305 set ref 3-1308* 3-1309* 3-1312* 3-1314* 3-1316* pic2 006616 automatic picture(2) unaligned dcl 3-2056 set ref 3-2057* 3-2058 picture_info_ 000536 constant entry external dcl 3-1306 ref 3-1309 pkey_ct 7 based fixed bin(17,0) level 2 dcl 5-7 set ref 3-197 3-243* 3-243 pl 7 based fixed bin(24,0) level 2 dcl 5-74 set ref 3-842* 3-855 3-858 3-887* 3-1150 pos 7 based fixed bin(17,0) level 2 dcl 5-46 set ref 3-490* 3-544* 3-553* 3-562* 3-570* 3-578* 3-584* 3-622* 3-630* 3-638* 3-661* 3-670* ppos_ct 4 based fixed bin(17,0) level 2 dcl 5-7 set ref 3-197 3-247* 3-247 pr_sw 000012 internal static bit(1) initial unaligned dcl 66 set ref 52* 55* 2-1259 ps_max 000502 internal static fixed bin(17,0) dcl 1-13 set ref 1-12* 1-90* 1-90 ps_top 006031 automatic fixed bin(24,0) dcl 1-366 set ref 1-28* 1-86 1-89* 1-89 1-90 1-91 1-92 1-134* 1-134 1-223 1-223 1-234 1-236 1-239* 1-239 1-251 1-292 1-296* 1-481 pstk_ovflo 000204 stack reference condition dcl 1-88 ref 1-86 1-234 pt 1 000520 external static fixed bin(17,0) array level 3 packed unaligned dcl 4-4 ref 1-395 1-402 pw 6 based fixed bin(24,0) level 2 dcl 5-74 set ref 3-841* 3-882* rec_str 16 based fixed bin(17,0) level 2 packed unaligned dcl 5-7 set ref 36* 3-371* 3-377* 3-381* 3-386* recov_msg 006032 automatic varying char(150) dcl 1-367 set ref 1-143* 1-273* 1-274* 1-274 1-275* 1-275 1-276* 1-276 1-277* 1-277 1-299* 1-299 1-300* 1-300 1-302* 1-302 1-315* 1-315 1-483* 1-497* 1-497 1-499* 1-499 1-500* 1-500 1-505* 1-505 1-507* 1-507 1-508* 1-508 1-509* 1-509 1-525* 1-525 1-528* 1-528 1-529* 1-529 1-530* 1-530 1-536* 1-536 1-538* 1-538 1-539* 1-539 1-540* 1-540 1-545* ref parameter pointer dcl 3-2527 in procedure "link" ref 3-2524 3-2530 3-2534 3-2535 3-2538 3-2539 3-2541 ref parameter pointer dcl 3-2548 in procedure "linkr" ref 3-2545 3-2553 3-2554 3-2557 3-2558 ref parameter pointer dcl 3-2595 in procedure "use_ref" ref 3-2594 3-2599 3-2601 3-2604 3-2607 3-2608 3-2610 ref parameter pointer dcl 3-2563 in procedure "use_def" ref 3-2562 3-2567 3-2569 3-2577 3-2578 3-2585 3-2588 3-2589 ref1 6 based structure level 2 packed unaligned dcl 5-136 set ref 3-1226* 3-1259* 3-1495* 3-1542* 3-1589* 3-1673* 3-1710* ref2 10 based structure level 2 packed unaligned dcl 5-136 set ref 3-1227* 3-1260* 3-1261* 3-1497 3-1618* 3-1713* ref3 12 based structure level 2 packed unaligned dcl 5-136 set ref 3-1461 3-1498 refp parameter pointer dcl 3-2470 ref 3-2468 3-2476 3-2479 3-2484 3-2487 3-2489 3-2490 3-2491 rep 000101 automatic fixed bin(24,0) dcl 1-572 set ref 1-596* 1-598* 1-598 1-610* 1-614 report 22 based structure level 2 in structure "tree" packed unaligned dcl 5-7 in procedure "mrpg_parse_" set ref 3-863* report based structure level 1 unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-830 report_sw 006116 automatic bit(1) unaligned dcl 3-125 set ref 1-14* 3-1200* 3-1236* 3-1348* 3-1355* repptr 000134 automatic pointer dcl 5-73 set ref 3-830* 3-832 3-833 3-833 3-834 3-834 3-835 3-835 3-836 3-837 3-838 3-839 3-841 3-842 3-844* 3-855 3-855 3-855 3-858 3-858 3-858 3-860 3-860 3-862 3-863* 3-864 3-869 3-871* 3-882 3-887 3-892 3-897 3-902 3-908 3-915 3-924 3-973 3-990 3-1017 3-1120 3-1120 3-1122 3-1150 3-2032 3-2047 3-2055 3-2308 3-2377 res_siz 16(18) based fixed bin(17,0) level 2 packed unaligned dcl 5-7 set ref 37* 3-369* 3-375* rulen parameter fixed bin(24,0) dcl 3-140 in procedure "semantics" ref 3-138 3-143 rulen 006101 automatic fixed bin(24,0) dcl 1-368 in procedure "mrpg_parse_" set ref 1-201* 1-208* 1-211 1-211 1-213 1-214* s 000102 automatic fixed bin(24,0) dcl 1-573 set ref 1-597* 1-606 1-610* s_n 000236 internal static fixed bin(17,0) initial dcl 5-229 set ref 3-794 3-800* 3-1749 s_s 000237 internal static fixed bin(17,0) initial dcl 5-230 set ref 3-816 3-822* 3-1754 3-1972 3-2003 sbl 006560 automatic fixed bin(24,0) dcl 2-1265 in procedure "comment" set ref 2-1269* 2-1281 2-1281 sbl 006535 automatic fixed bin(24,0) dcl 2-153 in procedure "typer" set ref 2-155* 2-175 set_type 006160 automatic fixed bin(17,0) dcl 3-134 set ref 3-1998* 3-2003* 3-2008* sl 1(18) 000220 automatic picture(2) level 2 packed unaligned dcl 1-324 set ref 1-69* 1-81* 1-170* sort_list 006164 automatic structure level 1 packed unaligned dcl 3-136 set ref 3-1618 3-1642* space based area(1024) dcl 5-3 ref 26 2-1389 2-1394 2-1411 3-394 3-830 3-1010 3-1087 3-1192 3-1627 3-1646 3-1654 3-1789 3-2390 3-2402 3-2418 3-2432 3-2446 3-2459 3-2497 srefptr 000126 automatic pointer dcl 5-54 set ref 2-1394* 2-1396 2-1397 2-1398 2-1399 2-1400 2-1401 2-1402 2-1403 3-316* 3-318 3-320 3-326 3-1272* 3-1273 3-1275 3-1789* 3-1790 3-1791 3-1792* 3-1793* 3-2303* 3-2308* 3-2311 3-2377* 3-2377* 3-2381* 3-2383 state 0(09) 000220 automatic picture(4) level 2 packed unaligned dcl 1-324 set ref 1-46* stmt based structure level 1 unaligned dcl 5-136 set ref 3-2459 stmt_list 006166 automatic structure level 1 packed unaligned dcl 3-137 stmtlistptr 006130 automatic pointer dcl 3-130 set ref 1-20* 3-1461* 3-1494 3-1496 3-1497* 3-1502* 3-1510* 3-1516* 3-1524* 3-1530* 3-1535 3-1551 3-1590 3-1619 stmtptr 000152 automatic pointer dcl 5-135 set ref 3-169* 3-170* 3-170 3-171 3-171 3-171 3-171 3-1226 3-1227 3-1228* 3-1259 3-1260 3-1261 3-1262* 3-1459 3-1461 3-1494* 3-1495 3-1497 3-1498 3-1542 3-1551* 3-1589 3-1590* 3-1618 3-1619* 3-1710 3-1713 3-1714 3-2459* 3-2460 3-2461 3-2461 3-2462 3-2462 3-2463 3-2463 3-2464* string builtin function dcl 85 in procedure "mrpg_parse_" set ref 118 118 119* 127 127 1-45* 1-178 1-178 1-208 1-208 string builtin function dcl 1-467 in procedure "local_recovered" set ref 1-468* 1-480* 1-487 substr builtin function dcl 85 set ref 111 1-211* 1-220 1-220 1-385 1-395 1-402 2-34 2-37 2-38 2-42 2-59 2-59 2-70 2-71 2-71 2-80 2-80 2-132 2-137 2-137 2-140 2-142 2-142 2-148 2-148 2-157 2-170 2-179 2-179 2-184 2-207 2-217 2-223 2-233 2-243 2-255 2-261 2-267 2-273 2-335 2-341 2-347 2-360 2-374 2-386 2-410 2-432 2-596 2-635 2-1200 2-1214 2-1227 2-1227 2-1236 2-1238 2-1254 2-1259 2-1259 2-1270 2-1281 2-1297 2-1314 2-1315 3-318 3-1308 3-1436 sws 006262 automatic structure level 1 packed unaligned dcl 1-442 set ref 1-468* 1-487 sym 4 based pointer level 3 in structure "attr" packed unaligned dcl 5-120 in procedure "mrpg_parse_" set ref 3-291* 3-294 3-304* 3-307 3-326* 3-1632* 3-1641 sym 4 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-125 2-1414* 3-477* 3-481 3-678* 3-690* 3-1787 3-1790 3-2569 sym 4 based pointer level 3 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1016* 3-1023* 3-1025 3-1035* 3-1042* sym 4 based pointer level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-837* 3-2055 3-2308 sym 4 based pointer level 3 in structure "symref" packed unaligned dcl 5-55 in procedure "mrpg_parse_" set ref 2-82 2-125 2-1402* 2-1406 3-318 3-320 3-1275 3-1296 3-1434 3-1436 3-1545 3-1693 3-1738 3-1971 3-2296 3-2311 3-2381 3-2381 3-2572 3-2601 3-2621 sym 4 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2490* sym 4 based pointer level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-238* sym 4 based pointer level 3 in structure "value" packed unaligned dcl 5-114 in procedure "mrpg_parse_" set ref 3-403* 3-411* 3-868* 3-931* 3-939* 3-947* 3-1232* 3-1242* 3-1264* 3-1272 sym_len 006522 automatic fixed bin(24,0) dcl 2-17 set ref 2-34* 2-35 2-37 2-43* 2-46 2-66 2-76 2-77 2-135 2-137 2-137 2-448 2-450 2-454 2-456 2-460 2-462 2-466 2-468 2-472 2-474 2-481 2-483 2-503 2-505 2-509 2-511 2-515 2-517 2-521 2-523 2-527 2-529 2-536 2-538 2-542 2-544 2-548 2-550 2-554 2-556 2-560 2-562 2-566 2-568 2-572 2-574 2-578 2-580 2-591 2-592 2-607* 2-608 2-610 2-615 2-617 2-621 2-623 2-630 2-631 2-646* 2-650 2-652 2-656 2-658 2-662 2-664 2-668 2-670 2-674 2-676 2-680 2-682 2-686 2-688 2-692 2-694 2-701 2-703 2-707 2-709 2-729 2-731 2-742 2-744 2-748 2-750 2-757 2-761 2-765 2-767 2-771 2-773 2-790 2-792 2-805 2-807 2-811 2-813 2-820 2-822 2-829 2-831 2-835 2-837 2-841 2-843 2-852 2-854 2-861 2-863 2-867 2-869 2-873 2-875 2-879 2-881 2-885 2-887 2-894 2-896 2-900 2-902 2-906 2-908 2-912 2-914 2-921 2-923 2-928 2-930 2-934 2-936 2-940 2-942 2-949 2-951 2-955 2-957 2-961 2-963 2-970 2-972 2-976 2-978 2-982 2-984 2-988 2-990 2-994 2-996 2-1000 2-1002 2-1006 2-1008 2-1012 2-1014 2-1018 2-1020 2-1024 2-1026 2-1030 2-1032 2-1036 2-1038 2-1042 2-1044 2-1051 2-1053 2-1057 2-1059 2-1063 2-1065 2-1069 2-1071 2-1075 2-1077 2-1081 2-1083 2-1090 2-1092 2-1108 2-1110 2-1115 2-1117 2-1121 2-1123 2-1127 2-1129 2-1136 2-1138 2-1142 2-1144 2-1148 2-1150 2-1154 2-1158 2-1169 2-1171 2-1178 2-1180 2-1184 2-1186 2-1193 2-1195 2-1227 2-1227 2-1229 2-1314* 2-1315 2-1315 symbol 4 000256 automatic fixed bin(24,0) array level 2 dcl 1-336 set ref 1-99 1-287 1-305* 1-387 1-466 1-517* 1-557* 1-557* 2-28* 2-79* 2-146* 2-177* 2-194* 2-210* 2-220* 2-226* 2-236* 2-246* 2-258* 2-264* 2-270* 2-276* 2-288* 2-297* 2-306* 2-314* 2-322* 2-337* 2-343* 2-349* 2-357* 2-364* 2-369* 2-381* 2-390* 2-399* 2-405* 2-414* 2-419* 2-427* 2-436* 2-441* 2-449* 2-455* 2-461* 2-467* 2-473* 2-482* 2-492* 2-498* 2-504* 2-510* 2-516* 2-522* 2-528* 2-537* 2-543* 2-549* 2-555* 2-561* 2-567* 2-573* 2-579* 2-599* 2-609* 2-616* 2-622* 2-638* 2-651* 2-657* 2-663* 2-669* 2-675* 2-681* 2-687* 2-693* 2-702* 2-708* 2-718* 2-724* 2-730* 2-738* 2-743* 2-749* 2-760* 2-766* 2-772* 2-786* 2-791* 2-806* 2-812* 2-821* 2-830* 2-836* 2-842* 2-853* 2-862* 2-868* 2-874* 2-880* 2-886* 2-895* 2-901* 2-907* 2-913* 2-922* 2-929* 2-935* 2-941* 2-950* 2-956* 2-962* 2-971* 2-977* 2-983* 2-989* 2-995* 2-1001* 2-1007* 2-1013* 2-1019* 2-1025* 2-1031* 2-1037* 2-1043* 2-1052* 2-1058* 2-1064* 2-1070* 2-1076* 2-1082* 2-1091* 2-1109* 2-1116* 2-1122* 2-1128* 2-1137* 2-1143* 2-1149* 2-1157* 2-1165* 2-1170* 2-1179* 2-1185* 2-1194* 2-1204* 2-1209* 2-1218* 2-1223* symbol_leng 000122 automatic fixed bin(24,0) dcl 5-43 set ref 2-1382* 2-1389 2-1389 3-392* 3-394 3-394 symlen 2 000256 automatic fixed bin(24,0) array level 2 dcl 1-336 set ref 1-304* 1-380 1-385 1-515* 2-46* 2-76* 2-80 2-80 2-132* 2-148 2-148 2-175* 2-179 2-179 2-193* 2-209* 2-219* 2-225* 2-235* 2-245* 2-257* 2-263* 2-269* 2-275* 2-338* 2-344* 2-350* 2-363* 2-389* 2-413* 2-435* 2-450* 2-456* 2-462* 2-468* 2-474* 2-483* 2-505* 2-511* 2-517* 2-523* 2-529* 2-538* 2-544* 2-550* 2-556* 2-562* 2-568* 2-574* 2-580* 2-600* 2-610* 2-617* 2-623* 2-639* 2-652* 2-658* 2-664* 2-670* 2-676* 2-682* 2-688* 2-694* 2-703* 2-709* 2-731* 2-744* 2-750* 2-761* 2-767* 2-773* 2-792* 2-807* 2-813* 2-822* 2-831* 2-837* 2-843* 2-854* 2-863* 2-869* 2-875* 2-881* 2-887* 2-896* 2-902* 2-908* 2-914* 2-923* 2-930* 2-936* 2-942* 2-951* 2-957* 2-963* 2-972* 2-978* 2-984* 2-990* 2-996* 2-1002* 2-1008* 2-1014* 2-1020* 2-1026* 2-1032* 2-1038* 2-1044* 2-1053* 2-1059* 2-1065* 2-1071* 2-1077* 2-1083* 2-1092* 2-1110* 2-1117* 2-1123* 2-1129* 2-1138* 2-1144* 2-1150* 2-1158* 2-1171* 2-1180* 2-1186* 2-1195* 2-1203* 2-1217* symptr 000256 automatic pointer array level 2 dcl 1-336 set ref 1-385 1-513* 2-45* symref based structure level 1 unaligned dcl 5-55 set ref 2-1394 3-1789 3-1790* 3-1790 symt 006500 automatic char(32) unaligned dcl 2-13 set ref 2-37* 2-38 2-41* 2-335 2-341 2-347 2-446 2-453 2-459 2-465 2-471 2-479 2-486 2-508 2-514 2-520 2-526 2-534 2-541 2-547 2-553 2-559 2-565 2-571 2-577 2-585 2-585 2-590 2-596 2-606* 2-613 2-613 2-620 2-626 2-629 2-635 2-645* 2-649 2-655 2-661 2-667 2-673 2-679 2-685 2-691 2-699 2-706 2-712 2-734 2-747 2-755 2-764 2-770 2-782 2-803 2-810 2-818 2-827 2-834 2-840 2-848 2-859 2-866 2-872 2-878 2-884 2-892 2-899 2-905 2-911 2-919 2-926 2-933 2-939 2-947 2-954 2-960 2-968 2-975 2-981 2-987 2-993 2-999 2-1005 2-1011 2-1017 2-1023 2-1029 2-1035 2-1041 2-1049 2-1056 2-1062 2-1068 2-1074 2-1080 2-1088 2-1107 2-1113 2-1113 2-1120 2-1126 2-1134 2-1141 2-1147 2-1153 2-1161 2-1176 2-1183 2-1191 2-1236 2-1238 2-1238* 2-1315* 2-1317* symtab based structure level 1 unaligned dcl 5-35 set ref 2-1389 3-394 symtabptr 000120 automatic pointer dcl 5-34 set ref 2-151 2-1383* 2-1383* 2-1386* 2-1388 2-1389* 2-1390 2-1391 2-1391 2-1392 2-1393* 2-1402 3-394* 3-395 3-396 3-396 3-397 3-400 3-1275* 3-1276 3-1276 3-1296* 3-1305 3-1308 3-2285 3-2311* 3-2313 t 006102 automatic fixed bin(24,0) dcl 1-369 in procedure "mrpg_parse_" set ref 1-219* 1-220* 1-220 1-220 1-223* 1-224* t parameter fixed bin(17,0) dcl 2-1374 in procedure "st_search" ref 2-1372 2-1404 2-1415 table based structure level 2 packed unaligned dcl 5-7 set ref 2-1393* temp 006220 automatic varying char(100) dcl 1-375 set ref 1-379* 1-384* 1-384 1-385* 1-385 1-386* 1-386 1-388 1-390* 1-390 1-391 1-393* 1-395* 1-396 1-400* 1-402* 1-403* 1-403 test_symbol 006015 automatic fixed bin(24,0) dcl 1-353 set ref 1-99* 1-106 1-114 1-150* 1-172* 1-176* 1-276* 1-455 1-500* 1-509* 1-528* 1-536* 1-597 top parameter fixed bin(24,0) dcl 1-567 set ref 1-566 1-602 1-639* 1-639 1-651 tptr 006674 automatic pointer dcl 3-2400 in procedure "aloc_attr" set ref 3-2403* 3-2404 3-2406 3-2408* 3-2409 tptr 000100 automatic pointer dcl 3-2565 in procedure "use_def" set ref 3-2569* 3-2570 3-2572* 3-2572 3-2573 3-2575 3-2577 3-2577 3-2582 3-2585 3-2588 3-2589 tptr 000100 automatic pointer dcl 2-1380 in procedure "st_search" set ref 2-1406* 2-1407 2-1409 2-1411* 2-1413 2-1414 2-1415 2-1416 2-1417 2-1417 2-1418 2-1418 2-1419* 2-1420* 2-1422 tptr 000100 automatic pointer dcl 67 in procedure "mrpg_parse_" set ref 2-80* 2-81 2-82* 2-82 2-83 2-85 2-87 2-89 2-92 2-125 2-125 2-125 2-148* 2-149 2-150 2-179* 2-180 2-181 2-195* 2-197 2-211* 2-213 2-227* 2-229 2-237* 2-239 2-277* 2-279 2-758* 2-759 2-1155* 2-1156 3-2473* 3-2474 3-2479 3-2481* 3-2482 3-2487 3-2618* 3-2619 3-2621* 3-2621 3-2622 3-2624 tptr 006764 automatic pointer dcl 3-2597 in procedure "use_ref" set ref 3-2601* 3-2602 3-2604 3-2604 3-2604 3-2607 3-2608 tptr 006604 automatic pointer dcl 3-146 in procedure "semantics" set ref 3-288* 3-291 3-866* 3-868 3-1217* 3-1218 3-1220 3-1232 3-1239* 3-1242 3-1431* 3-1432 3-1434 3-1436 3-1543* 3-1544 3-1545 3-1548 3-1664* 3-1670* 3-1673* 3-2058* 3-2059 3-2083* 3-2085 3-2087 3-2089 3-2293* 3-2295 3-2296 3-2299 3-2313* 3-2314 transit 006264 automatic fixed bin(24,0) dcl 1-446 set ref 1-469* 1-484 1-497* 1-507* 1-517 1-519 1-521 1-613* 1-626* translate builtin function dcl 85 ref 2-37 2-184 2-207 2-217 2-223 2-233 2-243 2-255 2-261 2-267 2-273 2-1315 tree based structure level 1 unaligned dcl 5-7 set ref 26 tree_ptr 000116 automatic pointer dcl 5-6 set ref 26* 27 27 28 28 29 29 30 30 31 32 32 33 33 34 34 35 35 36 37 38 38 39 39 48 1-20 2-196 2-212 2-228 2-238 2-278 2-1383 2-1393 2-1420 3-167 3-167 3-169 3-197 3-197 3-203 3-242 3-243 3-243 3-246 3-247 3-247 3-347 3-369 3-371 3-375 3-377 3-381 3-386 3-405 3-412 3-483 3-694 3-863 3-1475 3-1784 type based char(2) level 3 in structure "symtab" packed unaligned dcl 5-35 in procedure "mrpg_parse_" set ref 2-1390* 3-395* 3-1276 type based char(2) level 3 in structure "value" packed unaligned dcl 5-114 in procedure "mrpg_parse_" set ref 3-1270 3-2447* type based char(2) level 3 in structure "part" packed unaligned dcl 5-85 in procedure "mrpg_parse_" set ref 3-1012* type 2(09) 000220 automatic char(6) level 2 in structure "db_data" packed unaligned dcl 1-324 in procedure "mrpg_parse_" set ref 1-54* 1-66* 1-78* 1-169* 1-171* 1-171 1-206* type based char(2) level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 2-85 2-87 2-89 2-125* 2-1413* 3-478* 3-686* 3-1545 3-2296 type based char(2) level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-171 3-171 3-171 3-171* 3-1237 3-2460* type based char(2) level 3 in structure "attr" packed unaligned dcl 5-120 in procedure "mrpg_parse_" set ref 3-290* 3-303* 3-325* 3-1629* 3-1648* 3-1656* type based char(2) level 3 in structure "head" packed unaligned dcl 5-69 in procedure "mrpg_parse_" set ref 3-2498* type based char(2) level 3 in structure "symref" packed unaligned dcl 5-55 in procedure "mrpg_parse_" set ref 2-1396* 2-1409 3-232 3-1220 3-1273 3-2582 type based char(2) level 3 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1193* type based char(2) level 3 in structure "param" packed unaligned dcl 5-128 in procedure "mrpg_parse_" set ref 3-2419* type based char(2) level 3 in structure "report" packed unaligned dcl 5-74 in procedure "mrpg_parse_" set ref 3-832* type based char(2) level 3 in structure "lines" packed unaligned dcl 5-92 in procedure "mrpg_parse_" set ref 3-1089* type based char(2) level 3 in structure "opn" packed unaligned dcl 5-60 in procedure "mrpg_parse_" set ref 3-2433* unspec builtin function dcl 85 ref 2-38 2-42 2-1294 usage 5 based pointer level 3 in structure "symref" packed unaligned dcl 5-55 in procedure "mrpg_parse_" set ref 2-1401* usage 5 based pointer level 3 in structure "datum" packed unaligned dcl 5-46 in procedure "mrpg_parse_" set ref 3-2578* 3-2588* 3-2607* 3-2610* usage 5 based pointer level 3 in structure "stmt" packed unaligned dcl 5-136 in procedure "mrpg_parse_" set ref 3-2489* use 4 based structure level 2 packed unaligned dcl 5-35 used 000471 internal static bit(302) initial unaligned dcl 101 set ref 111 1-211* v1 1 000524 external static fixed bin(17,0) array level 3 packed unaligned dcl 4-13 set ref 1-48 1-103 1-201 1-221* 1-223 1-233 1-239 1-241 1-246 1-251 1-269 1-279 1-289 1-294 1-298 1-474 1-586 1-602 1-606 1-606 1-639 1-640 1-646 1-651 v2 1(18) 000524 external static fixed bin(17,0) array level 3 packed unaligned dcl 4-13 set ref 1-52 1-63 1-75 1-102 1-108 1-124 1-202 1-219 1-221* 1-240 1-243 1-248 1-250 1-253 1-257 1-288 1-291 1-293 1-473 1-475 1-481 1-588 1-599 1-602 1-642 1-648 1-650 1-653 1-657 val 10 000256 automatic fixed bin(24,0) array level 2 dcl 1-336 set ref 2-151* 3-267 3-369 3-375 3-490 3-492 3-499 3-506 3-513 3-521 3-529 3-536 3-543 3-544 3-551 3-553 3-560 3-562 3-569 3-570 3-577 3-578 3-584 3-586 3-593 3-600 3-621 3-622 3-630 3-638 3-661 3-670 3-677 3-708 3-715 3-882 3-887 3-892 3-897 3-940 3-1064 3-1136 3-1143 3-1148 3-1158 3-1341 3-1359 3-1419 3-1420 3-1840* 3-1845* 3-1850* 3-1855* 3-1860* 3-1865* 3-1890 3-1896* 3-1901* 3-1906* 3-1911* 3-1916* 3-1921* 3-1926* 3-1931* 3-1936* 3-1941* 3-1946* 3-1951* 3-1956* 3-2042* 3-2057 valptr 000144 automatic pointer dcl 5-113 set ref 3-403 3-404 3-405 3-411 3-412 3-868 3-869* 3-922* 3-923 3-924* 3-931 3-932 3-939 3-940 3-941 3-947 3-948 3-1232 3-1233* 3-1242 3-1244* 3-1264 3-1266* 3-1269* 3-1270 3-1272 3-2446* 3-2447 3-2448 3-2449* value 6 based structure level 2 in structure "field" packed unaligned dcl 5-99 in procedure "mrpg_parse_" set ref 3-1228* 3-1233* 3-1240* 3-1244* 3-1266* value based structure level 1 unaligned dcl 5-114 in procedure "mrpg_parse_" set ref 3-2446 verify builtin function dcl 85 ref 2-34 2-132 2-1314 which 006451 automatic fixed bin(17,0) dcl 1-453 set ref 1-486* 1-545 yyddd 33(01) based bit(1) level 3 packed unaligned dcl 5-7 set ref 2-278* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DPDAp automatic pointer dcl 4-17 Func internal static fixed bin(17,0) initial dcl 5-208 Pnum internal static fixed bin(17,0) initial dcl 5-209 ect automatic fixed bin(24,0) dcl 1-570 i automatic fixed bin(24,0) dcl 2-1288 mrpg_dump_ 000000 constant entry external dcl 96 mrpg_dump_$list 000000 constant entry external dcl 96 param_list automatic structure level 1 packed unaligned dcl 3-151 tptr automatic pointer dcl 3-2457 in procedure "aloc_stmt" tptr automatic pointer dcl 3-2444 in procedure "aloc_value" tptr automatic pointer dcl 3-2430 in procedure "aloc_opn" NAMES DECLARED BY EXPLICIT CONTEXT. CASE 000023 constant label array(0:10) dcl 1-588 in procedure "next_term" ref 1-586 CASE 000000 constant label array(0:10) dcl 1-52 in procedure "mrpg_parse_" set ref 1-48 IN_rtn 027375 constant label dcl 3-1964 ref 3-1991 NEXT 006651 constant label dcl 1-583 in procedure "next_term" ref 1-643 1-654 1-658 NEXT 003446 constant label dcl 1-36 in procedure "mrpg_parse_" ref 1-144 1-195 1-244 1-254 1-258 TRY_AGAIN 003464 constant label dcl 1-48 ref 1-136 aloc_attr 032440 constant entry internal dcl 3-2397 ref 3-289 3-302 3-324 aloc_datum 032417 constant entry internal dcl 3-2388 ref 3-488 3-496 3-503 3-510 3-518 3-526 3-533 3-540 3-548 3-557 3-566 3-574 3-582 3-590 3-597 3-604 3-611 3-618 3-626 3-634 3-642 3-649 3-657 3-665 3-674 3-684 aloc_head 032741 constant entry internal dcl 3-2495 ref 3-434 3-447 aloc_opn 032543 constant entry internal dcl 3-2426 ref 3-398 3-431 3-444 3-757 3-779 3-800 3-822 3-1763 3-1802 3-1817 3-1830 3-1890 3-1963 3-1990 3-2008 3-2053 3-2084 3-2097 3-2116 3-2130 3-2154 3-2168 3-2180 3-2194 3-2206 3-2220 3-2230 3-2240 3-2245 3-2254 3-2259 3-2266 3-2326 3-2343 3-2360 aloc_param 032471 constant entry internal dcl 3-2413 ref 3-275 3-300 3-323 aloc_stmt 032624 constant entry internal dcl 3-2453 ref 3-1225 3-1258 3-1458 3-1493 3-1540 3-1587 3-1616 3-1698 3-1707 aloc_value 032575 constant entry internal dcl 3-2440 ref 3-402 3-409 3-867 3-929 3-938 3-945 3-1231 3-1241 3-1263 break_number 032363 constant entry internal dcl 3-2371 ref 3-1026 3-2035 case 000013 constant label array(0:7) dcl 1-489 ref 1-487 check_absolute 023100 constant label dcl 3-1150 ref 3-1138 check_picture 031565 constant entry internal dcl 3-1302 ref 3-1297 comment 015513 constant entry internal dcl 2-1263 ref 2-376 2-1299 cv_assign 000574 constant label array(0:7) dcl 3-1680 ref 3-1678 cvassign 026426 constant label dcl 3-1707 ref 3-1691 3-1693 3-1702 cvassign1 026435 constant label dcl 3-1710 ref 3-1699 dbf 003165 constant entry external dcl 56 dbn 003100 constant entry external dcl 51 digit_test 015335 constant entry internal dcl 2-1234 ref 2-334 2-595 2-634 dmpf 003141 constant entry external dcl 54 dmpn 003126 constant entry external dcl 53 doit 016151 constant label dcl 2-1411 set ref 2-1407 done 006461 constant label dcl 1-545 ref 1-523 1-534 done_parse 003450 constant label dcl 1-39 dump_la 006530 constant entry internal dcl 1-551 ref 1-472 1-547 end_parm 017267 constant label dcl 3-330 ref 3-280 3-296 3-308 3-321 error 015262 constant label dcl 2-1227 ref 2-283 2-291 2-300 2-309 2-317 2-325 2-372 2-384 2-393 2-408 2-422 2-430 2-444 2-1212 field_1 023320 constant label dcl 3-1213 ref 3-1207 fill_hdr 032662 constant entry internal dcl 3-2468 ref 3-2422 3-2436 3-2449 3-2464 finished 015730 constant label dcl 2-1311 ref 2-1303 found 016101 constant label dcl 2-1394 set ref 2-1386 get_line 015406 constant entry internal dcl 2-1244 ref 2-31 2-166 2-1277 2-1308 get_more 007277 constant label dcl 2-23 ref 2-32 2-64 2-377 2-1230 get_rest 005364 constant label dcl 1-380 ref 1-404 geterm 005361 constant entry internal dcl 1-372 ref 1-150 1-172 1-276 1-299 1-475 1-497 1-500 1-507 1-509 1-528 1-530 1-536 1-539 1-557 getermc 005531 constant entry internal dcl 1-398 ref 1-176 got_symbol 004201 constant label dcl 1-160 ref 1-109 1-125 hold_common 025756 constant label dcl 3-1587 ref 3-1570 3-1578 hold_input 032013 constant entry internal dcl 3-1783 ref 3-1569 3-1575 3-1779 ifld_com 020050 constant label dcl 3-471 ref 3-459 3-466 indcl 020117 constant label dcl 3-478 ref 3-680 line 003202 constant entry external dcl 58 link 033045 constant entry internal dcl 3-2524 ref 2-1393 2-1420 3-242 3-246 3-292 3-305 3-327 3-435 3-448 3-483 3-514 3-522 3-552 3-561 3-645 3-653 3-660 3-669 3-694 3-761 3-783 3-804 3-826 3-863 3-1017 3-1093 3-1199 3-1226 3-1227 3-1228 3-1233 3-1244 3-1259 3-1260 3-1261 3-1262 3-1266 3-1475 3-1494 3-1495 3-1535 3-1542 3-1551 3-1590 3-1619 3-1642 3-1670 3-1673 3-1710 3-1713 3-1771 3-1792 3-2015 link_list 032752 constant entry internal dcl 3-2502 ref 3-203 3-340 3-418 3-456 3-462 3-464 3-1240 linkr 033124 constant entry internal dcl 3-2545 ref 3-869 3-908 3-915 3-924 local_recovered 005571 constant entry internal dcl 1-411 ref 1-132 loop 015522 constant label dcl 2-1270 ref 2-1278 make_bool 032263 constant entry internal dcl 3-2354 ref 3-429 3-442 3-920 3-1134 3-1141 3-1163 3-1169 3-1507 3-1521 3-1689 3-1799 3-1801 3-1814 3-1816 3-1828 3-2080 make_char 032163 constant entry internal dcl 3-2337 ref 3-430 3-443 3-1215 3-1701 3-1751 3-1756 3-1873 3-1875 3-1885 3-1889 3-2082 3-2094 3-2096 3-2112 3-2129 3-2153 make_dec 032063 constant entry internal dcl 3-2320 ref 3-1704 3-1741 3-1746 3-1878 3-1879 3-2114 3-2115 3-2127 3-2151 3-2165 3-2167 3-2177 3-2179 3-2191 3-2193 3-2203 3-2205 3-2218 3-2228 3-2238 3-2252 mrpg_parse_ 002767 constant entry external dcl 16 mrpg_parse_ 003406 constant entry internal dcl 1-7 in procedure "mrpg_parse_" ref 47 next_term 006630 constant entry internal dcl 1-566 ref 1-481 1-602 number 010102 constant label dcl 2-132 parm_spec 016734 constant label dcl 3-275 ref 3-261 3-268 part_common 022352 constant label dcl 3-1010 ref 3-964 3-970 3-981 3-987 3-998 3-1004 pe_field 023645 constant label dcl 3-1256 ref 3-1251 pgno 031501 constant label dcl 3-2311 ref 3-2305 prf 003153 constant entry external dcl 55 prn 003113 constant entry external dcl 52 pull_name 033347 constant entry internal dcl 3-2614 ref 3-1026 3-1548 3-1637 3-1680 3-1967 3-1975 3-1975 3-2038 3-2299 read_look 003642 constant label dcl 1-93 ref 1-61 1-73 1-118 rels 027217 constant label dcl 3-1890 ref 3-1882 retry 004306 constant label dcl 1-186 ref 1-155 rule 000110 constant label array(308) dcl 3-159 ref 3-143 scanner 007272 constant entry internal dcl 2-6 ref 1-95 1-283 1-461 semantics 016231 constant entry internal dcl 3-138 ref 1-214 set_comm 027630 constant label dcl 3-2008 ref 3-2000 3-2005 set_symbol 006230 constant label dcl 1-513 set ref 1-503 skip 015653 constant entry internal dcl 2-1286 ref 2-331 2-593 2-632 skip_recovered 004773 constant entry internal dcl 1-262 ref 1-141 sort_common 026056 constant label dcl 3-1616 ref 3-1598 3-1610 sortkey 026116 constant label dcl 3-1632 ref 3-1651 3-1659 st_search 015773 constant entry internal dcl 2-1372 ref 2-80 2-148 2-179 2-195 2-211 2-227 2-237 2-277 2-758 2-1155 3-288 3-866 3-1222 3-1224 3-1256 3-2058 3-2313 symbol 007505 constant label dcl 2-66 ref 2-477 2-532 2-583 2-647 2-697 2-753 2-801 2-816 2-825 2-846 2-857 2-890 2-917 2-945 2-966 2-1047 2-1086 2-1132 2-1174 2-1189 2-1198 try_again 010377 constant label dcl 2-157 in procedure "typer" ref 2-167 2-173 try_again 015656 constant label dcl 2-1292 in procedure "skip" ref 2-1300 2-1309 type 000036 constant label array(0:41) dcl 2-59 ref 2-57 typer 007440 constant entry internal dcl 2-55 ref 2-51 us_1 003347 constant label dcl 119 ref 110 us_2 003303 constant label dcl 111 ref 125 usage 003257 constant entry external dcl 102 use_def 033165 constant entry internal dcl 3-2562 ref 2-1419 3-239 3-481 3-693 3-844 3-1038 3-1045 use_ref 033311 constant entry internal dcl 3-2594 ref 3-1025 3-1544 3-1641 3-1712 3-1737 3-1775 3-1793 3-1979 3-2043 3-2295 3-2302 NAMES DECLARED BY CONTEXT OR IMPLICATION. abs builtin function ref 1-211 1-474 1-583 after builtin function ref 2-140 fixed builtin function ref 61 62 length builtin function ref 1-515 2-1382 sign builtin function ref 1-475 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 35072 35632 34647 35102 Length 36422 34647 540 553 222 504 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mrpg_parse_ 4608 external procedure is an external procedure. mrpg_parse_ internal procedure shares stack frame of external procedure mrpg_parse_. skip_recovered internal procedure shares stack frame of external procedure mrpg_parse_. geterm internal procedure shares stack frame of external procedure mrpg_parse_. local_recovered internal procedure shares stack frame of external procedure mrpg_parse_. dump_la internal procedure shares stack frame of external procedure mrpg_parse_. next_term 120 internal procedure calls itself recursively. scanner internal procedure shares stack frame of external procedure mrpg_parse_. typer internal procedure shares stack frame of external procedure mrpg_parse_. digit_test internal procedure shares stack frame of external procedure mrpg_parse_. get_line internal procedure shares stack frame of external procedure mrpg_parse_. comment internal procedure shares stack frame of external procedure mrpg_parse_. skip internal procedure shares stack frame of external procedure mrpg_parse_. st_search 78 internal procedure is called during a stack extension. semantics internal procedure shares stack frame of external procedure mrpg_parse_. check_picture 134 internal procedure uses auto adjustable storage. hold_input internal procedure shares stack frame of external procedure mrpg_parse_. make_dec internal procedure shares stack frame of external procedure mrpg_parse_. make_char internal procedure shares stack frame of external procedure mrpg_parse_. make_bool internal procedure shares stack frame of external procedure mrpg_parse_. break_number internal procedure shares stack frame of external procedure mrpg_parse_. aloc_datum internal procedure shares stack frame of external procedure mrpg_parse_. aloc_attr internal procedure shares stack frame of external procedure mrpg_parse_. aloc_param internal procedure shares stack frame of external procedure mrpg_parse_. aloc_opn internal procedure shares stack frame of external procedure mrpg_parse_. aloc_value internal procedure shares stack frame of external procedure mrpg_parse_. aloc_stmt internal procedure shares stack frame of external procedure mrpg_parse_. fill_hdr internal procedure shares stack frame of external procedure mrpg_parse_. aloc_head internal procedure shares stack frame of external procedure mrpg_parse_. link_list internal procedure shares stack frame of external procedure mrpg_parse_. link 67 internal procedure is called by several nonquick procedures. linkr internal procedure shares stack frame of external procedure mrpg_parse_. use_def 116 internal procedure is called by several nonquick procedures. use_ref internal procedure shares stack frame of external procedure mrpg_parse_. pull_name internal procedure shares stack frame of external procedure mrpg_parse_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 lino mrpg_parse_ 000012 pr_sw mrpg_parse_ 000013 dmp_sw mrpg_parse_ 000014 dt_s mrpg_parse_ 000044 db_sw mrpg_parse_ 000045 Char mrpg_parse_ 000046 Chard mrpg_parse_ 000047 Integer mrpg_parse_ 000050 Decimal mrpg_parse_ 000051 kind_char mrpg_parse_ 000215 Add mrpg_parse_ 000216 And mrpg_parse_ 000217 Cat mrpg_parse_ 000220 Div mrpg_parse_ 000221 Mul mrpg_parse_ 000222 Not mrpg_parse_ 000223 Or mrpg_parse_ 000224 Paren mrpg_parse_ 000225 Rpt mrpg_parse_ 000226 Sub mrpg_parse_ 000227 Level mrpg_parse_ 000230 In mrpg_parse_ 000231 Nin mrpg_parse_ 000232 Skip mrpg_parse_ 000233 Stop mrpg_parse_ 000234 n_n mrpg_parse_ 000235 n_s mrpg_parse_ 000236 s_n mrpg_parse_ 000237 s_s mrpg_parse_ 000240 c_b mrpg_parse_ 000241 c_d mrpg_parse_ 000242 d_c mrpg_parse_ 000243 Tran mrpg_parse_ 000244 Substr mrpg_parse_ 000245 If mrpg_parse_ 000246 op_char mrpg_parse_ 000471 used mrpg_parse_ 000502 ps_max mrpg_parse_ 000503 DDop mrpg_parse_ 000507 default_symbol local_recovered STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME check_picture 000100 info check_picture 000131 pic check_picture mrpg_parse_ 000100 tptr mrpg_parse_ 000102 parenct mrpg_parse_ 000104 ifp mrpg_parse_ 000106 ifi mrpg_parse_ 000107 ifl mrpg_parse_ 000110 ife mrpg_parse_ 000111 linenumber mrpg_parse_ 000112 fail_ct mrpg_parse_ 000114 area_ptr mrpg_parse_ 000116 tree_ptr mrpg_parse_ 000120 symtabptr mrpg_parse_ 000122 symbol_leng mrpg_parse_ 000124 daptr mrpg_parse_ 000126 srefptr mrpg_parse_ 000130 opptr mrpg_parse_ 000132 headptr mrpg_parse_ 000134 repptr mrpg_parse_ 000136 partptr mrpg_parse_ 000140 linptr mrpg_parse_ 000142 fldptr mrpg_parse_ 000144 valptr mrpg_parse_ 000146 atptr mrpg_parse_ 000150 paptr mrpg_parse_ 000152 stmtptr mrpg_parse_ 000154 numbe mrpg_parse_ 000166 i mrpg_parse_ 000167 j mrpg_parse_ 000220 db_data mrpg_parse_ 000256 lstk mrpg_parse_ 005172 ls_top mrpg_parse_ 005173 cur_lex_top mrpg_parse_ 005503 parse_stack mrpg_parse_ 006013 altn mrpg_parse_ 006014 current_state mrpg_parse_ 006015 test_symbol mrpg_parse_ 006016 current_table mrpg_parse_ 006017 i mrpg_parse_ 006020 la_ct mrpg_parse_ 006021 la_get mrpg_parse_ 006022 la_need mrpg_parse_ 006023 la_put mrpg_parse_ 006024 la_use mrpg_parse_ 006025 m mrpg_parse_ 006026 n mrpg_parse_ 006027 next_state mrpg_parse_ 006030 nil_sym mrpg_parse_ 006031 ps_top mrpg_parse_ 006032 recov_msg mrpg_parse_ 006101 rulen mrpg_parse_ 006102 t mrpg_parse_ 006103 err_ct mrpg_parse_ 006104 not_flag mrpg_parse_ 006105 min_paren mrpg_parse_ 006106 partl mrpg_parse_ 006115 partno mrpg_parse_ 006116 report_sw mrpg_parse_ 006120 T_01ptr mrpg_parse_ 006122 T_02ptr mrpg_parse_ 006124 beginptr mrpg_parse_ 006126 depth mrpg_parse_ 006127 hold_ct mrpg_parse_ 006130 stmtlistptr mrpg_parse_ 006132 elselistptr mrpg_parse_ 006156 if_nest mrpg_parse_ 006157 begin_ct mrpg_parse_ 006160 set_type mrpg_parse_ 006162 hold_list mrpg_parse_ 006164 sort_list mrpg_parse_ 006166 stmt_list mrpg_parse_ 006202 i skip_recovered 006203 ii skip_recovered 006204 j skip_recovered 006205 jj skip_recovered 006206 c skip_recovered 006207 dec4 skip_recovered 006220 temp geterm 006252 i geterm 006262 sws local_recovered 006263 dupl local_recovered 006264 transit local_recovered 006265 la_next local_recovered 006266 alt_symbol local_recovered 006267 cycle local_recovered 006447 next_symbol local_recovered 006450 depth local_recovered 006451 which local_recovered 006470 ii dump_la 006500 symt scanner 006510 hold_symt scanner 006520 hold_ifi scanner 006521 hold_line scanner 006522 sym_len scanner 006523 hold_sym_len scanner 006524 ctype scanner 006525 jj scanner 006534 Ch2 typer 006535 sbl typer 006560 sbl comment 006561 bln comment 006570 j skip 006571 found skip 006602 bch semantics 006604 tptr semantics 006606 ki semantics 006607 li semantics 006610 ch2 semantics 006611 class semantics 006612 keyword semantics 006613 lstop_line semantics 006614 dflt_ptr semantics 006616 pic2 semantics 006656 i break_number 006674 tptr aloc_attr 006764 tptr use_ref next_term 000100 cur_st next_term 000101 rep next_term 000102 s next_term 000103 look_ahead next_term 000104 i next_term st_search 000100 tptr st_search use_def 000100 tptr use_def 000102 ch2 use_def THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs unpk_to_pk call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return alloc_auto_adj sign bound_check_signal mpfx2 mod_fx1 signal shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc any_to_any_tr alloc_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ ioa_$ioa_switch_nnl ioa_$nnl mrpg_dump_$all mrpg_error_ picture_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output mrpg_tables_$DPDA mrpg_tables_$TC mrpg_tables_$TL LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 4 002757 16 002762 22 002775 23 003001 24 003003 25 003006 26 003010 27 003015 28 003020 29 003023 30 003026 31 003031 32 003033 33 003036 34 003041 35 003044 36 003047 37 003051 38 003053 39 003056 40 003061 41 003063 42 003064 43 003065 44 003066 47 003072 48 003073 49 003076 51 003077 51 003106 51 003111 52 003112 52 003121 52 003124 53 003125 53 003134 53 003137 54 003140 54 003147 54 003151 55 003152 55 003161 55 003163 56 003164 56 003173 56 003175 58 003176 61 003223 62 003240 63 003255 102 003256 108 003265 109 003301 110 003302 111 003303 114 003311 115 003322 116 003323 118 003326 119 003347 121 003352 124 003354 125 003355 127 003360 129 003405 1 7 003406 2 3 003407 2 4 003410 1 12 003411 1 14 003413 1 15 003414 1 16 003415 1 17 003417 1 18 003422 1 19 003425 1 20 003426 1 21 003431 1 22 003432 1 24 003433 1 26 003435 1 28 003437 1 29 003441 1 31 003444 1 33 003445 1 36 003446 1 39 003450 1 43 003451 1 45 003452 1 46 003455 1 48 003464 1 52 003505 1 54 003513 1 56 003516 1 57 003527 1 60 003535 1 61 003536 1 63 003537 1 66 003545 1 69 003550 1 71 003562 1 72 003564 1 73 003566 1 75 003567 1 78 003575 1 81 003600 1 82 003612 1 84 003614 1 85 003616 1 86 003620 1 89 003626 1 90 003627 1 91 003635 1 92 003640 1 93 003642 1 95 003645 1 96 003646 1 97 003655 1 98 003656 1 99 003657 1 101 003663 1 102 003664 1 103 003701 1 104 003705 1 106 003711 1 108 003713 1 109 003720 1 111 003721 1 114 003723 1 116 003726 1 117 003735 1 118 003737 1 122 003740 1 124 003742 1 125 003747 1 130 003750 1 132 003753 1 134 003764 1 136 003772 1 141 003773 1 143 004000 1 144 004031 1 148 004032 1 150 004057 1 151 004121 1 152 004122 1 154 004153 1 155 004200 1 160 004201 1 165 004207 1 167 004212 1 169 004214 1 170 004217 1 171 004223 1 172 004232 1 173 004241 1 174 004243 1 176 004244 1 178 004252 1 181 004300 1 182 004302 1 183 004303 1 184 004305 1 186 004306 1 190 004314 1 191 004315 1 192 004327 1 193 004336 1 195 004340 1 197 004341 1 201 004343 1 202 004351 1 204 004357 1 206 004361 1 207 004364 1 208 004367 1 211 004423 1 213 004434 1 214 004436 1 217 004446 1 219 004451 1 220 004463 1 221 004520 1 223 004557 1 224 004577 1 225 004622 1 226 004625 1 233 004644 1 234 004653 1 236 004661 1 239 004664 1 240 004674 1 241 004704 1 243 004712 1 244 004720 1 246 004721 1 248 004723 1 250 004731 1 251 004745 1 253 004753 1 254 004760 1 256 004761 1 257 004763 1 258 004772 1 262 004773 1 269 004775 1 271 005011 1 272 005014 1 273 005026 1 274 005033 1 275 005045 1 276 005057 1 277 005073 1 279 005105 1 280 005113 1 281 005115 1 282 005120 1 283 005122 1 284 005123 1 285 005132 1 287 005134 1 288 005140 1 289 005155 1 291 005162 1 292 005167 1 293 005175 1 294 005213 1 296 005222 1 297 005225 1 298 005227 1 299 005231 1 300 005246 1 301 005260 1 302 005272 1 304 005305 1 305 005307 1 306 005311 1 308 005317 1 309 005321 1 311 005324 1 312 005326 1 313 005335 1 314 005337 1 315 005340 1 316 005352 1 317 005353 1 372 005361 1 379 005363 1 380 005364 1 384 005374 1 385 005403 1 386 005424 1 387 005433 1 388 005435 1 390 005454 1 391 005466 1 393 005475 1 395 005505 1 396 005522 1 398 005531 1 400 005533 1 402 005544 1 403 005561 1 404 005570 1 411 005571 1 455 005573 1 457 005575 1 458 005627 1 460 005635 1 461 005641 1 462 005642 1 463 005651 1 464 005652 1 465 005653 1 466 005662 1 468 005666 1 469 005670 1 470 005671 1 471 005672 1 472 005673 1 473 005677 1 474 005717 1 475 005726 1 477 006004 1 479 006012 1 480 006014 1 481 006017 1 482 006037 1 483 006041 1 484 006042 1 486 006052 1 487 006054 1 489 006057 1 492 006065 1 497 006070 1 499 006105 1 500 006117 1 501 006133 1 502 006135 1 503 006137 1 505 006140 1 507 006152 1 508 006167 1 509 006201 1 510 006215 1 511 006225 1 512 006226 1 513 006230 1 515 006235 1 516 006240 1 517 006254 1 518 006256 1 519 006260 1 521 006265 1 523 006271 1 525 006272 1 528 006304 1 529 006320 1 530 006332 1 531 006346 1 532 006350 1 533 006352 1 534 006353 1 536 006354 1 538 006370 1 539 006402 1 540 006416 1 541 006430 1 542 006442 1 543 006452 1 544 006457 1 545 006461 1 547 006516 1 548 006522 1 551 006530 1 554 006531 1 555 006534 1 556 006536 1 557 006541 1 561 006616 1 562 006625 1 564 006626 1 566 006627 1 577 006635 1 579 006640 1 580 006643 1 582 006650 1 583 006651 1 585 006657 1 586 006660 1 588 006663 1 592 006667 1 596 006723 1 597 006724 1 598 006731 1 599 006732 1 600 006752 1 602 006754 1 604 007002 1 606 007003 1 610 007012 1 611 007047 1 613 007053 1 614 007055 1 616 007065 1 617 007071 1 618 007072 1 620 007074 1 621 007076 1 622 007110 1 624 007114 1 626 007117 1 627 007121 1 628 007125 1 629 007126 1 631 007130 1 632 007132 1 635 007133 1 639 007167 1 640 007200 1 642 007205 1 643 007213 1 646 007214 1 648 007216 1 650 007224 1 651 007241 1 653 007251 1 654 007256 1 656 007257 1 657 007261 1 658 007271 2 6 007272 2 21 007273 2 23 007277 2 26 007302 2 28 007304 2 29 007307 2 31 007310 2 32 007311 2 34 007312 2 35 007330 2 37 007331 2 38 007342 2 39 007357 2 41 007360 2 42 007363 2 43 007404 2 45 007406 2 46 007415 2 47 007420 2 48 007422 2 49 007424 2 50 007426 2 51 007427 2 52 007431 2 53 007437 2 55 007440 2 57 007441 2 59 007443 2 62 007503 2 64 007504 2 66 007505 2 70 007510 2 71 007520 2 76 007572 2 77 007577 2 78 007600 2 79 007603 2 80 007605 2 81 007651 2 82 007656 2 83 007662 2 85 007672 2 87 007703 2 89 007711 2 92 007725 2 93 007730 2 95 007735 2 97 007743 2 99 007752 2 101 007754 2 102 007757 2 103 007761 2 104 007762 2 106 007764 2 107 007767 2 108 007771 2 109 007772 2 111 007774 2 112 007777 2 113 010001 2 114 010002 2 116 010004 2 117 010007 2 118 010011 2 120 010012 2 121 010015 2 124 010022 2 125 010026 2 131 010101 2 132 010102 2 135 010123 2 137 010126 2 139 010170 2 140 010172 2 142 010222 2 143 010264 2 144 010265 2 145 010267 2 146 010273 2 147 010275 2 148 010277 2 149 010343 2 150 010351 2 151 010354 2 152 010373 2 155 010374 2 156 010376 2 157 010377 2 159 010415 2 161 010416 2 162 010421 2 164 010423 2 166 010453 2 167 010454 2 169 010455 2 170 010456 2 172 010463 2 173 010464 2 175 010465 2 176 010473 2 177 010476 2 178 010500 2 179 010502 2 180 010545 2 181 010553 2 182 010556 2 184 010557 2 192 010570 2 193 010572 2 194 010577 2 195 010601 2 196 010637 2 197 010642 2 198 010646 2 199 010651 2 207 010652 2 208 010663 2 209 010665 2 210 010672 2 211 010674 2 212 010732 2 213 010735 2 214 010741 2 215 010744 2 217 010745 2 218 010756 2 219 010760 2 220 010765 2 221 010767 2 223 010770 2 224 010773 2 225 010775 2 226 011002 2 227 011004 2 228 011042 2 229 011045 2 230 011051 2 231 011054 2 233 011055 2 234 011060 2 235 011062 2 236 011067 2 237 011071 2 238 011127 2 239 011132 2 240 011136 2 241 011141 2 243 011142 2 244 011155 2 245 011160 2 246 011165 2 247 011167 2 255 011170 2 256 011173 2 257 011175 2 258 011202 2 259 011204 2 261 011205 2 262 011210 2 263 011212 2 264 011217 2 265 011221 2 267 011222 2 268 011225 2 269 011227 2 270 011234 2 271 011236 2 273 011237 2 274 011242 2 275 011244 2 276 011251 2 277 011253 2 278 011311 2 279 011314 2 280 011320 2 281 011323 2 283 011324 2 287 011325 2 288 011326 2 289 011333 2 295 011334 2 296 011335 2 297 011336 2 298 011343 2 304 011344 2 305 011346 2 306 011347 2 307 011354 2 313 011355 2 314 011356 2 315 011363 2 321 011364 2 322 011365 2 323 011372 2 327 011373 2 329 011375 2 330 011377 2 331 011400 2 334 011407 2 335 011410 2 336 011415 2 337 011416 2 338 011423 2 339 011426 2 341 011427 2 342 011431 2 343 011432 2 344 011437 2 345 011442 2 347 011443 2 348 011445 2 349 011446 2 350 011453 2 351 011456 2 354 011457 2 355 011461 2 356 011463 2 357 011464 2 358 011471 2 360 011472 2 362 011500 2 363 011502 2 364 011507 2 365 011511 2 368 011512 2 369 011513 2 370 011520 2 374 011521 2 376 011527 2 377 011530 2 380 011531 2 381 011532 2 382 011537 2 386 011540 2 388 011546 2 389 011550 2 390 011555 2 391 011557 2 393 011560 2 395 011561 2 398 011564 2 399 011566 2 400 011573 2 401 011621 2 404 011622 2 405 011623 2 406 011630 2 410 011631 2 412 011637 2 413 011641 2 414 011646 2 415 011650 2 418 011651 2 419 011652 2 420 011657 2 426 011660 2 427 011661 2 428 011666 2 432 011667 2 434 011675 2 435 011677 2 436 011704 2 437 011706 2 440 011707 2 441 011710 2 442 011715 2 446 011716 2 448 011722 2 449 011724 2 450 011731 2 451 011733 2 453 011734 2 454 011740 2 455 011742 2 456 011747 2 457 011751 2 459 011752 2 460 011756 2 461 011760 2 462 011765 2 463 011767 2 465 011770 2 466 011774 2 467 011776 2 468 012003 2 469 012005 2 471 012006 2 472 012012 2 473 012014 2 474 012021 2 475 012023 2 477 012024 2 479 012025 2 481 012031 2 482 012033 2 483 012040 2 484 012042 2 486 012043 2 487 012047 2 489 012051 2 491 012053 2 492 012055 2 493 012062 2 494 012110 2 496 012111 2 498 012113 2 499 012120 2 500 012146 2 503 012147 2 504 012151 2 505 012156 2 506 012160 2 508 012161 2 509 012165 2 510 012167 2 511 012174 2 512 012176 2 514 012177 2 515 012203 2 516 012205 2 517 012212 2 518 012214 2 520 012215 2 521 012221 2 522 012223 2 523 012230 2 524 012232 2 526 012233 2 527 012237 2 528 012241 2 529 012246 2 530 012250 2 532 012251 2 534 012252 2 536 012256 2 537 012260 2 538 012265 2 539 012267 2 541 012270 2 542 012274 2 543 012276 2 544 012303 2 545 012305 2 547 012306 2 548 012312 2 549 012314 2 550 012321 2 551 012323 2 553 012324 2 554 012330 2 555 012332 2 556 012337 2 557 012341 2 559 012342 2 560 012346 2 561 012350 2 562 012355 2 563 012357 2 565 012360 2 566 012364 2 567 012366 2 568 012373 2 569 012375 2 571 012376 2 572 012402 2 573 012404 2 574 012411 2 575 012413 2 577 012414 2 578 012420 2 579 012422 2 580 012427 2 581 012431 2 583 012432 2 585 012433 2 588 012443 2 589 012445 2 590 012447 2 591 012452 2 592 012454 2 593 012455 2 595 012462 2 596 012463 2 598 012467 2 599 012470 2 600 012475 2 601 012500 2 604 012501 2 605 012503 2 606 012505 2 607 012510 2 608 012512 2 609 012513 2 610 012520 2 611 012522 2 613 012523 2 615 012533 2 616 012535 2 617 012542 2 618 012544 2 620 012545 2 621 012551 2 622 012553 2 623 012560 2 624 012562 2 626 012563 2 627 012567 2 628 012571 2 629 012573 2 630 012576 2 631 012600 2 632 012601 2 634 012606 2 635 012607 2 637 012613 2 638 012614 2 639 012621 2 640 012624 2 643 012625 2 644 012627 2 645 012631 2 646 012634 2 647 012636 2 649 012637 2 650 012643 2 651 012645 2 652 012652 2 653 012654 2 655 012655 2 656 012661 2 657 012663 2 658 012670 2 659 012672 2 661 012673 2 662 012677 2 663 012701 2 664 012706 2 665 012710 2 667 012711 2 668 012715 2 669 012717 2 670 012724 2 671 012726 2 673 012727 2 674 012733 2 675 012735 2 676 012742 2 677 012744 2 679 012745 2 680 012751 2 681 012753 2 682 012760 2 683 012762 2 685 012763 2 686 012767 2 687 012771 2 688 012776 2 689 013000 2 691 013001 2 692 013005 2 693 013007 2 694 013014 2 695 013016 2 697 013017 2 699 013020 2 701 013024 2 702 013026 2 703 013033 2 704 013035 2 706 013036 2 707 013042 2 708 013044 2 709 013051 2 710 013053 2 712 013054 2 713 013060 2 715 013062 2 717 013064 2 718 013066 2 719 013073 2 720 013121 2 722 013122 2 724 013124 2 725 013131 2 726 013157 2 729 013160 2 730 013162 2 731 013167 2 732 013171 2 734 013172 2 735 013176 2 737 013200 2 738 013202 2 739 013207 2 740 013235 2 742 013236 2 743 013240 2 744 013245 2 745 013247 2 747 013250 2 748 013254 2 749 013256 2 750 013263 2 751 013265 2 753 013266 2 755 013267 2 757 013273 2 758 013275 2 759 013332 2 760 013336 2 761 013341 2 762 013343 2 764 013344 2 765 013350 2 766 013352 2 767 013357 2 768 013361 2 770 013362 2 771 013366 2 772 013370 2 773 013375 2 774 013377 2 782 013400 2 783 013404 2 785 013406 2 786 013410 2 787 013415 2 788 013443 2 790 013444 2 791 013446 2 792 013453 2 793 013455 2 801 013456 2 803 013457 2 805 013463 2 806 013465 2 807 013472 2 808 013474 2 810 013475 2 811 013501 2 812 013503 2 813 013510 2 814 013512 2 816 013513 2 818 013514 2 820 013520 2 821 013522 2 822 013527 2 823 013531 2 825 013532 2 827 013533 2 829 013537 2 830 013541 2 831 013546 2 832 013550 2 834 013551 2 835 013555 2 836 013557 2 837 013564 2 838 013566 2 840 013567 2 841 013573 2 842 013575 2 843 013602 2 844 013604 2 846 013605 2 848 013606 2 852 013612 2 853 013614 2 854 013621 2 855 013623 2 857 013624 2 859 013625 2 861 013631 2 862 013633 2 863 013640 2 864 013642 2 866 013643 2 867 013647 2 868 013651 2 869 013656 2 870 013660 2 872 013661 2 873 013665 2 874 013667 2 875 013674 2 876 013676 2 878 013677 2 879 013703 2 880 013705 2 881 013712 2 882 013714 2 884 013715 2 885 013721 2 886 013723 2 887 013730 2 888 013732 2 890 013733 2 892 013734 2 894 013740 2 895 013742 2 896 013747 2 897 013751 2 899 013752 2 900 013756 2 901 013760 2 902 013765 2 903 013767 2 905 013770 2 906 013774 2 907 013776 2 908 014003 2 909 014005 2 911 014006 2 912 014012 2 913 014014 2 914 014021 2 915 014023 2 917 014024 2 919 014025 2 921 014031 2 922 014033 2 923 014040 2 924 014042 2 926 014043 2 927 014047 2 928 014051 2 929 014053 2 930 014060 2 931 014062 2 933 014063 2 934 014067 2 935 014071 2 936 014076 2 937 014100 2 939 014101 2 940 014105 2 941 014107 2 942 014114 2 943 014116 2 945 014117 2 947 014120 2 949 014124 2 950 014126 2 951 014133 2 952 014135 2 954 014136 2 955 014142 2 956 014144 2 957 014151 2 958 014153 2 960 014154 2 961 014160 2 962 014162 2 963 014167 2 964 014171 2 966 014172 2 968 014173 2 970 014177 2 971 014201 2 972 014206 2 973 014210 2 975 014211 2 976 014215 2 977 014217 2 978 014224 2 979 014226 2 981 014227 2 982 014233 2 983 014235 2 984 014242 2 985 014244 2 987 014245 2 988 014251 2 989 014253 2 990 014260 2 991 014262 2 993 014263 2 994 014267 2 995 014271 2 996 014276 2 997 014300 2 999 014301 2 1000 014305 2 1001 014307 2 1002 014314 2 1003 014316 2 1005 014317 2 1006 014323 2 1007 014325 2 1008 014332 2 1009 014334 2 1011 014335 2 1012 014341 2 1013 014343 2 1014 014350 2 1015 014352 2 1017 014353 2 1018 014357 2 1019 014361 2 1020 014366 2 1021 014370 2 1023 014371 2 1024 014375 2 1025 014377 2 1026 014404 2 1027 014406 2 1029 014407 2 1030 014413 2 1031 014415 2 1032 014422 2 1033 014424 2 1035 014425 2 1036 014431 2 1037 014433 2 1038 014440 2 1039 014442 2 1041 014443 2 1042 014447 2 1043 014451 2 1044 014456 2 1045 014460 2 1047 014461 2 1049 014462 2 1051 014466 2 1052 014470 2 1053 014475 2 1054 014477 2 1056 014500 2 1057 014504 2 1058 014506 2 1059 014513 2 1060 014515 2 1062 014516 2 1063 014522 2 1064 014524 2 1065 014531 2 1066 014533 2 1068 014534 2 1069 014540 2 1070 014542 2 1071 014547 2 1072 014551 2 1074 014552 2 1075 014556 2 1076 014560 2 1077 014565 2 1078 014567 2 1080 014570 2 1081 014574 2 1082 014576 2 1083 014603 2 1084 014605 2 1086 014606 2 1088 014607 2 1090 014613 2 1091 014615 2 1092 014622 2 1093 014624 2 1107 014625 2 1108 014631 2 1109 014633 2 1110 014640 2 1111 014642 2 1113 014643 2 1115 014653 2 1116 014655 2 1117 014662 2 1118 014664 2 1120 014665 2 1121 014671 2 1122 014673 2 1123 014700 2 1124 014702 2 1126 014703 2 1127 014707 2 1128 014711 2 1129 014716 2 1130 014720 2 1132 014721 2 1134 014722 2 1136 014726 2 1137 014730 2 1138 014735 2 1139 014737 2 1141 014740 2 1142 014744 2 1143 014746 2 1144 014753 2 1145 014755 2 1147 014756 2 1148 014762 2 1149 014764 2 1150 014771 2 1151 014773 2 1153 014774 2 1154 015000 2 1155 015002 2 1156 015037 2 1157 015043 2 1158 015046 2 1159 015050 2 1161 015051 2 1162 015055 2 1164 015057 2 1165 015061 2 1166 015066 2 1167 015114 2 1169 015115 2 1170 015117 2 1171 015124 2 1172 015126 2 1174 015127 2 1176 015130 2 1178 015134 2 1179 015136 2 1180 015143 2 1181 015145 2 1183 015146 2 1184 015152 2 1185 015154 2 1186 015161 2 1187 015163 2 1189 015164 2 1191 015165 2 1193 015171 2 1194 015173 2 1195 015200 2 1196 015202 2 1198 015203 2 1200 015204 2 1202 015212 2 1203 015214 2 1204 015221 2 1205 015223 2 1208 015224 2 1209 015225 2 1210 015232 2 1214 015233 2 1216 015241 2 1217 015243 2 1218 015250 2 1219 015252 2 1222 015253 2 1223 015254 2 1224 015261 2 1227 015262 2 1229 015331 2 1230 015334 2 1234 015335 2 1236 015336 2 1238 015347 2 1242 015405 2 1244 015406 2 1246 015407 2 1247 015410 2 1249 015413 2 1251 015420 2 1254 015424 2 1255 015442 2 1257 015450 2 1258 015452 2 1259 015455 2 1261 015511 2 1263 015513 2 1268 015514 2 1269 015516 2 1270 015522 2 1272 015540 2 1274 015541 2 1275 015544 2 1277 015577 2 1278 015600 2 1280 015601 2 1281 015604 2 1284 015652 2 1286 015653 2 1291 015655 2 1292 015656 2 1294 015665 2 1295 015706 2 1297 015710 2 1299 015715 2 1300 015716 2 1302 015717 2 1303 015721 2 1305 015722 2 1306 015724 2 1308 015726 2 1309 015727 2 1311 015730 2 1314 015732 2 1315 015745 2 1317 015760 2 1319 015764 2 1372 015772 2 1382 016006 2 1383 016014 2 1386 016023 2 1388 016034 2 1389 016037 2 1390 016053 2 1391 016060 2 1392 016063 2 1393 016070 2 1394 016101 2 1396 016110 2 1397 016112 2 1398 016117 2 1399 016121 2 1400 016123 2 1401 016125 2 1402 016126 2 1403 016130 2 1404 016132 2 1406 016134 2 1407 016141 2 1409 016145 2 1411 016151 2 1413 016157 2 1414 016161 2 1415 016165 2 1416 016170 2 1417 016172 2 1418 016175 2 1419 016200 2 1420 016207 2 1422 016222 2 1424 016230 3 138 016231 3 143 016233 3 159 016235 3 162 016275 3 164 016300 3 165 016330 3 167 016333 3 169 016337 3 170 016341 3 171 016343 3 176 016356 3 194 016357 3 196 016362 3 197 016363 3 200 016422 3 203 016423 3 205 016436 3 210 016437 3 215 016442 3 216 016443 3 220 016444 3 223 016450 3 224 016505 3 226 016506 3 228 016515 3 230 016547 3 232 016556 3 234 016562 3 237 016614 3 238 016622 3 239 016625 3 240 016633 3 242 016635 3 243 016646 3 244 016650 3 246 016651 3 247 016662 3 249 016664 3 250 016702 3 257 016703 3 259 016706 3 260 016711 3 261 016712 3 264 016713 3 266 016716 3 267 016721 3 268 016725 3 271 016726 3 273 016730 3 274 016732 3 275 016734 3 277 016736 3 279 016742 3 280 016774 3 282 016775 3 283 017000 3 284 017002 3 285 017006 3 286 017011 3 288 017014 3 289 017051 3 290 017056 3 291 017061 3 292 017064 3 293 017077 3 294 017104 3 296 017107 3 300 017110 3 302 017115 3 303 017122 3 304 017125 3 305 017132 3 306 017145 3 307 017152 3 308 017155 3 316 017156 3 318 017162 3 320 017172 3 321 017232 3 323 017233 3 324 017235 3 325 017237 3 326 017242 3 327 017245 3 328 017260 3 329 017265 3 330 017267 3 334 017270 3 337 017274 3 338 017326 3 340 017327 3 341 017344 3 345 017345 3 347 017347 3 349 017405 3 369 017406 3 371 017413 3 372 017415 3 375 017416 3 377 017423 3 378 017425 3 381 017426 3 383 017431 3 386 017432 3 388 017435 3 392 017436 3 394 017440 3 395 017452 3 396 017454 3 397 017457 3 398 017462 3 399 017476 3 400 017502 3 401 017504 3 402 017510 3 403 017517 3 404 017522 3 405 017523 3 406 017525 3 409 017526 3 411 017535 3 412 017542 3 413 017544 3 418 017545 3 422 017557 3 427 017560 3 429 017612 3 430 017617 3 431 017624 3 432 017640 3 433 017645 3 434 017647 3 435 017650 3 436 017661 3 437 017665 3 440 017666 3 442 017720 3 443 017725 3 444 017732 3 445 017746 3 446 017753 3 447 017755 3 448 017756 3 449 017767 3 450 017773 3 454 017774 3 456 017775 3 458 020010 3 459 020013 3 462 020014 3 464 020026 3 465 020041 3 466 020044 3 469 020045 3 471 020050 3 474 020054 3 475 020111 3 477 020112 3 478 020117 3 480 020122 3 481 020127 3 483 020141 3 484 020152 3 485 020154 3 488 020155 3 490 020156 3 491 020164 3 492 020170 3 493 020172 3 496 020173 3 498 020174 3 499 020201 3 500 020205 3 503 020206 3 505 020207 3 506 020214 3 507 020220 3 510 020221 3 512 020222 3 513 020227 3 514 020234 3 515 020244 3 518 020245 3 520 020246 3 521 020253 3 522 020260 3 523 020270 3 526 020271 3 528 020272 3 529 020275 3 530 020301 3 533 020302 3 535 020303 3 536 020306 3 537 020312 3 540 020313 3 542 020314 3 543 020321 3 544 020326 3 545 020330 3 548 020331 3 550 020332 3 551 020337 3 552 020344 3 553 020354 3 554 020361 3 557 020362 3 559 020363 3 560 020370 3 561 020375 3 562 020405 3 563 020412 3 566 020413 3 568 020414 3 569 020417 3 570 020424 3 571 020426 3 574 020427 3 576 020430 3 577 020433 3 578 020440 3 579 020442 3 582 020443 3 584 020444 3 585 020452 3 586 020456 3 587 020460 3 590 020461 3 592 020462 3 593 020467 3 594 020473 3 597 020474 3 599 020475 3 600 020502 3 601 020506 3 604 020507 3 606 020510 3 607 020513 3 608 020515 3 611 020516 3 613 020517 3 614 020522 3 615 020524 3 618 020525 3 620 020526 3 621 020533 3 622 020540 3 623 020542 3 626 020543 3 628 020544 3 629 020547 3 630 020551 3 631 020555 3 634 020556 3 636 020557 3 637 020562 3 638 020564 3 639 020570 3 642 020571 3 644 020572 3 645 020577 3 646 020611 3 649 020612 3 651 020613 3 652 020620 3 653 020622 3 654 020634 3 657 020635 3 659 020636 3 660 020643 3 661 020655 3 662 020662 3 665 020663 3 667 020664 3 668 020671 3 669 020673 3 670 020705 3 671 020712 3 674 020713 3 676 020714 3 677 020717 3 678 020723 3 679 020725 3 680 020730 3 684 020731 3 686 020732 3 687 020735 3 690 020736 3 692 020743 3 693 020745 3 694 020753 3 695 020764 3 696 020766 3 700 020767 3 702 020774 3 703 021000 3 706 021001 3 708 021006 3 709 021013 3 710 021015 3 713 021016 3 715 021021 3 716 021026 3 717 021030 3 720 021031 3 722 021034 3 723 021040 3 726 021041 3 728 021044 3 731 021045 3 734 021053 3 737 021054 3 740 021062 3 748 021063 3 750 021066 3 753 021077 3 754 021130 3 757 021131 3 758 021145 3 759 021151 3 760 021155 3 761 021157 3 762 021170 3 771 021171 3 773 021174 3 776 021205 3 777 021236 3 779 021237 3 780 021253 3 781 021257 3 782 021263 3 783 021265 3 784 021276 3 792 021277 3 794 021302 3 797 021313 3 798 021344 3 800 021345 3 801 021361 3 802 021365 3 803 021371 3 804 021373 3 805 021404 3 814 021405 3 816 021410 3 819 021421 3 820 021452 3 822 021453 3 823 021467 3 824 021473 3 825 021477 3 826 021501 3 827 021512 3 830 021513 3 832 021520 3 833 021522 3 834 021525 3 835 021530 3 836 021533 3 837 021540 3 838 021542 3 839 021544 3 840 021545 3 841 021556 3 842 021561 3 843 021563 3 844 021566 3 845 021574 3 855 021575 3 858 021603 3 860 021613 3 862 021650 3 863 021655 3 864 021666 3 866 021672 3 867 021733 3 868 021742 3 869 021745 3 871 021756 3 872 021760 3 882 021761 3 884 021766 3 887 021767 3 889 021774 3 892 021775 3 894 022002 3 897 022003 3 899 022010 3 902 022011 3 904 022015 3 905 022020 3 908 022021 3 910 022034 3 915 022035 3 917 022050 3 920 022051 3 922 022056 3 923 022062 3 924 022064 3 925 022075 3 926 022101 3 929 022102 3 931 022111 3 932 022116 3 933 022117 3 936 022120 3 938 022152 3 939 022161 3 940 022166 3 941 022170 3 942 022173 3 945 022174 3 947 022203 3 948 022210 3 949 022211 3 961 022212 3 963 022214 3 964 022216 3 967 022217 3 969 022221 3 970 022223 3 973 022224 3 976 022230 3 977 022262 3 979 022263 3 980 022265 3 981 022267 3 984 022270 3 986 022272 3 987 022274 3 990 022275 3 993 022301 3 994 022333 3 996 022334 3 997 022336 3 998 022340 3 1001 022341 3 1003 022343 3 1004 022345 3 1007 022346 3 1009 022350 3 1010 022352 3 1012 022357 3 1013 022361 3 1014 022363 3 1015 022364 3 1016 022367 3 1017 022370 3 1018 022401 3 1021 022402 3 1023 022403 3 1025 022410 3 1026 022414 3 1028 022473 3 1035 022474 3 1037 022501 3 1038 022503 3 1039 022511 3 1042 022512 3 1044 022517 3 1045 022521 3 1046 022527 3 1059 022530 3 1061 022535 3 1064 022536 3 1066 022543 3 1069 022544 3 1071 022601 3 1087 022602 3 1089 022607 3 1090 022611 3 1091 022615 3 1092 022626 3 1093 022630 3 1094 022641 3 1097 022642 3 1099 022644 3 1101 022647 3 1103 022652 3 1105 022656 3 1106 022710 3 1109 022711 3 1111 022712 3 1113 022714 3 1115 022717 3 1117 022724 3 1118 022756 3 1120 022757 3 1122 022767 3 1125 023024 3 1127 023025 3 1134 023026 3 1136 023033 3 1137 023042 3 1138 023047 3 1141 023050 3 1143 023055 3 1144 023064 3 1145 023071 3 1148 023072 3 1150 023100 3 1153 023107 3 1155 023141 3 1158 023142 3 1160 023150 3 1163 023151 3 1165 023156 3 1166 023166 3 1169 023167 3 1171 023174 3 1173 023204 3 1176 023207 3 1186 023210 3 1189 023214 3 1190 023246 3 1192 023251 3 1193 023256 3 1194 023260 3 1195 023262 3 1196 023265 3 1197 023270 3 1198 023272 3 1199 023274 3 1200 023307 3 1201 023311 3 1205 023312 3 1207 023315 3 1211 023316 3 1213 023320 3 1215 023325 3 1217 023332 3 1218 023336 3 1220 023344 3 1222 023350 3 1224 023412 3 1225 023450 3 1226 023454 3 1227 023465 3 1228 023500 3 1229 023511 3 1231 023512 3 1232 023516 3 1233 023521 3 1235 023532 3 1236 023550 3 1237 023551 3 1239 023557 3 1240 023561 3 1241 023572 3 1242 023601 3 1243 023604 3 1244 023610 3 1245 023620 3 1248 023630 3 1250 023636 3 1251 023640 3 1253 023641 3 1255 023643 3 1256 023645 3 1258 023703 3 1259 023705 3 1260 023716 3 1261 023732 3 1262 023746 3 1263 023757 3 1264 023766 3 1265 023771 3 1266 023775 3 1267 024005 3 1269 024012 3 1270 024014 3 1272 024020 3 1273 024022 3 1275 024026 3 1276 024030 3 1281 024051 3 1282 024053 3 1290 024054 3 1293 024060 3 1294 024112 3 1296 024113 3 1297 024120 3 1298 024124 3 1299 024127 3 1300 024133 3 1322 024134 3 1324 024166 3 1326 024172 3 1327 024224 3 1329 024225 3 1330 024227 3 1331 024233 3 1334 024234 3 1337 024240 3 1338 024272 3 1340 024273 3 1341 024277 3 1342 024303 3 1346 024304 3 1348 024306 3 1349 024307 3 1353 024310 3 1355 024311 3 1356 024313 3 1359 024314 3 1361 024321 3 1365 024322 3 1367 024325 3 1370 024326 3 1373 024333 3 1374 024370 3 1376 024371 3 1377 024373 3 1380 024374 3 1383 024401 3 1384 024436 3 1386 024437 3 1387 024441 3 1390 024442 3 1393 024447 3 1394 024504 3 1396 024505 3 1397 024507 3 1400 024510 3 1402 024542 3 1404 024547 3 1405 024604 3 1407 024605 3 1408 024607 3 1411 024610 3 1413 024642 3 1415 024647 3 1416 024704 3 1418 024705 3 1419 024707 3 1420 024715 3 1421 024717 3 1424 024720 3 1427 024725 3 1428 024762 3 1430 024763 3 1431 024765 3 1432 024771 3 1434 024776 3 1436 025033 3 1437 025041 3 1438 025042 3 1441 025043 3 1443 025075 3 1445 025102 3 1446 025137 3 1448 025140 3 1449 025142 3 1453 025143 3 1456 025145 3 1458 025203 3 1459 025207 3 1460 025211 3 1461 025212 3 1462 025215 3 1463 025220 3 1464 025222 3 1467 025223 3 1469 025224 3 1475 025225 3 1477 025236 3 1478 025240 3 1481 025241 3 1484 025276 3 1491 025277 3 1493 025300 3 1494 025307 3 1495 025317 3 1496 025332 3 1497 025336 3 1498 025341 3 1499 025346 3 1502 025347 3 1504 025353 3 1507 025354 3 1509 025361 3 1510 025363 3 1511 025367 3 1514 025370 3 1516 025372 3 1517 025376 3 1518 025425 3 1521 025426 3 1523 025433 3 1524 025435 3 1525 025441 3 1528 025442 3 1530 025444 3 1531 025450 3 1532 025477 3 1535 025500 3 1537 025512 3 1540 025513 3 1542 025522 3 1543 025535 3 1544 025541 3 1545 025544 3 1546 025551 3 1548 025556 3 1551 025633 3 1552 025643 3 1556 025644 3 1558 025676 3 1561 025677 3 1563 025702 3 1566 025703 3 1569 025706 3 1570 025707 3 1572 025710 3 1575 025711 3 1578 025715 3 1581 025716 3 1584 025721 3 1585 025753 3 1587 025756 3 1589 025762 3 1590 025766 3 1591 025776 3 1592 026001 3 1595 026002 3 1597 026004 3 1598 026006 3 1601 026007 3 1604 026044 3 1607 026045 3 1609 026047 3 1610 026051 3 1613 026052 3 1615 026054 3 1616 026056 3 1618 026063 3 1619 026067 3 1620 026077 3 1621 026102 3 1627 026103 3 1629 026110 3 1630 026112 3 1631 026114 3 1632 026116 3 1634 026123 3 1637 026130 3 1639 026176 3 1641 026177 3 1642 026203 3 1643 026213 3 1646 026214 3 1648 026221 3 1649 026223 3 1650 026225 3 1651 026230 3 1654 026231 3 1656 026236 3 1657 026240 3 1658 026242 3 1659 026245 3 1664 026246 3 1668 026252 3 1670 026256 3 1671 026267 3 1673 026270 3 1675 026301 3 1678 026302 3 1680 026307 3 1687 026361 3 1689 026362 3 1691 026367 3 1693 026370 3 1696 026377 3 1698 026403 3 1699 026412 3 1701 026413 3 1702 026420 3 1704 026421 3 1707 026426 3 1710 026435 3 1712 026450 3 1713 026456 3 1714 026471 3 1715 026475 3 1719 026476 3 1727 026477 3 1730 026500 3 1732 026502 3 1734 026510 3 1735 026541 3 1737 026542 3 1738 026547 3 1739 026561 3 1741 026564 3 1742 026571 3 1743 026576 3 1744 026577 3 1746 026601 3 1747 026606 3 1748 026613 3 1749 026614 3 1751 026616 3 1752 026623 3 1753 026630 3 1754 026631 3 1756 026633 3 1757 026640 3 1758 026645 3 1760 026646 3 1761 026701 3 1763 026702 3 1764 026716 3 1765 026725 3 1766 026726 3 1767 026730 3 1768 026731 3 1771 026732 3 1775 026744 3 1776 026752 3 1779 026753 3 1781 026754 3 1799 026755 3 1801 026762 3 1802 026764 3 1803 027000 3 1804 027003 3 1805 027007 3 1806 027011 3 1807 027012 3 1809 027015 3 1814 027016 3 1816 027023 3 1817 027025 3 1818 027041 3 1819 027044 3 1820 027050 3 1821 027052 3 1822 027053 3 1828 027054 3 1830 027056 3 1831 027072 3 1832 027075 3 1833 027101 3 1834 027102 3 1835 027105 3 1840 027106 3 1842 027113 3 1845 027114 3 1847 027121 3 1850 027122 3 1852 027127 3 1855 027130 3 1857 027135 3 1860 027136 3 1862 027143 3 1865 027144 3 1867 027151 3 1870 027152 3 1873 027160 3 1875 027172 3 1878 027200 3 1879 027202 3 1882 027207 3 1885 027210 3 1889 027215 3 1890 027217 3 1892 027230 3 1893 027233 3 1894 027237 3 1895 027241 3 1896 027242 3 1897 027245 3 1898 027247 3 1901 027250 3 1903 027255 3 1906 027256 3 1908 027263 3 1911 027264 3 1913 027271 3 1916 027272 3 1918 027277 3 1921 027300 3 1923 027305 3 1926 027306 3 1928 027313 3 1931 027314 3 1933 027321 3 1936 027322 3 1938 027327 3 1941 027330 3 1943 027335 3 1946 027336 3 1948 027343 3 1951 027344 3 1953 027351 3 1956 027352 3 1958 027357 3 1961 027360 3 1963 027363 3 1964 027375 3 1967 027403 3 1969 027454 3 1971 027455 3 1972 027465 3 1975 027507 3 1977 027556 3 1979 027557 3 1980 027562 3 1981 027565 3 1982 027571 3 1983 027575 3 1984 027576 3 1985 027601 3 1988 027602 3 1990 027605 3 1991 027617 3 1998 027620 3 2000 027623 3 2003 027624 3 2005 027627 3 2008 027630 3 2013 027632 3 2014 027635 3 2015 027641 3 2016 027652 3 2022 027653 3 2024 027654 3 2026 027661 3 2027 027664 3 2032 027665 3 2035 027671 3 2036 027705 3 2038 027706 3 2040 027751 3 2042 027752 3 2043 027757 3 2047 027763 3 2050 027767 3 2051 030021 3 2053 030022 3 2054 030036 3 2055 030041 3 2057 030044 3 2058 030057 3 2059 030113 3 2060 030116 3 2061 030121 3 2062 030124 3 2065 030125 3 2067 030157 3 2070 030160 3 2072 030212 3 2075 030213 3 2077 030245 3 2080 030246 3 2082 030253 3 2083 030255 3 2084 030261 3 2085 030275 3 2086 030302 3 2087 030306 3 2088 030307 3 2089 030310 3 2090 030314 3 2094 030315 3 2096 030322 3 2097 030324 3 2098 030340 3 2099 030344 3 2100 030350 3 2101 030352 3 2102 030353 3 2103 030356 3 2112 030357 3 2114 030364 3 2115 030371 3 2116 030376 3 2117 030412 3 2118 030416 3 2119 030422 3 2120 030424 3 2121 030426 3 2122 030427 3 2123 030432 3 2124 030434 3 2127 030435 3 2129 030442 3 2130 030447 3 2131 030463 3 2132 030467 3 2133 030473 3 2134 030475 3 2135 030476 3 2136 030501 3 2137 030503 3 2140 030504 3 2142 030536 3 2143 030540 3 2151 030541 3 2153 030546 3 2154 030553 3 2155 030567 3 2156 030573 3 2157 030577 3 2158 030601 3 2159 030602 3 2160 030605 3 2161 030607 3 2165 030610 3 2167 030615 3 2168 030617 3 2169 030633 3 2170 030637 3 2171 030643 3 2172 030645 3 2173 030646 3 2174 030651 3 2177 030652 3 2179 030657 3 2180 030661 3 2181 030675 3 2182 030701 3 2183 030705 3 2184 030707 3 2185 030710 3 2186 030713 3 2191 030714 3 2193 030721 3 2194 030723 3 2195 030737 3 2196 030743 3 2197 030747 3 2198 030751 3 2199 030752 3 2200 030755 3 2203 030756 3 2205 030763 3 2206 030765 3 2207 031001 3 2208 031005 3 2209 031011 3 2210 031013 3 2211 031014 3 2212 031017 3 2218 031020 3 2220 031022 3 2221 031036 3 2222 031042 3 2223 031046 3 2224 031047 3 2225 031052 3 2228 031053 3 2230 031055 3 2231 031071 3 2232 031075 3 2233 031101 3 2234 031102 3 2235 031105 3 2238 031106 3 2240 031113 3 2241 031127 3 2242 031133 3 2243 031137 3 2244 031140 3 2245 031143 3 2246 031156 3 2247 031162 3 2248 031166 3 2249 031167 3 2252 031170 3 2254 031175 3 2255 031211 3 2256 031215 3 2257 031221 3 2258 031222 3 2259 031225 3 2260 031240 3 2261 031244 3 2262 031250 3 2263 031251 3 2266 031252 3 2268 031266 3 2269 031275 3 2270 031276 3 2271 031277 3 2272 031302 3 2277 031303 3 2279 031310 3 2282 031311 3 2285 031316 3 2286 031357 3 2288 031360 3 2293 031361 3 2295 031365 3 2296 031370 3 2297 031375 3 2299 031400 3 2302 031455 3 2303 031463 3 2304 031467 3 2305 031472 3 2308 031473 3 2310 031476 3 2311 031501 3 2313 031503 3 2314 031553 3 2315 031560 3 2316 031563 3 1302 031564 3 1305 031572 3 1309 031604 3 1312 031607 3 1314 031612 3 1316 031615 3 1308 031620 3 1309 031626 3 1310 031647 3 1312 031652 3 1314 031713 3 1316 031754 3 1317 032012 3 1783 032013 3 1784 032014 3 1787 032024 3 1789 032030 3 1790 032035 3 1791 032042 3 1792 032044 3 1793 032054 3 1795 032056 3 1796 032062 3 2320 032063 3 2324 032065 3 2326 032073 3 2327 032105 3 2328 032111 3 2330 032122 3 2331 032125 3 2332 032126 3 2333 032162 3 2337 032163 3 2341 032165 3 2343 032173 3 2344 032205 3 2345 032211 3 2347 032222 3 2348 032225 3 2349 032226 3 2350 032262 3 2354 032263 3 2358 032265 3 2360 032273 3 2361 032305 3 2362 032310 3 2364 032321 3 2365 032324 3 2366 032325 3 2367 032362 3 2371 032363 3 2376 032365 3 2377 032366 3 2380 032376 3 2381 032377 3 2383 032411 3 2384 032414 3 2388 032417 3 2390 032420 3 2391 032425 3 2392 032430 3 2393 032433 3 2395 032437 3 2397 032440 3 2402 032442 3 2403 032447 3 2404 032454 3 2406 032460 3 2408 032462 3 2409 032466 3 2411 032470 3 2413 032471 3 2416 032473 3 2418 032500 3 2419 032505 3 2420 032507 3 2421 032520 3 2422 032531 3 2424 032542 3 2426 032543 3 2432 032545 3 2433 032552 3 2434 032554 3 2435 032560 3 2436 032564 3 2438 032574 3 2440 032575 3 2446 032577 3 2447 032604 3 2448 032611 3 2449 032613 3 2451 032623 3 2453 032624 3 2459 032626 3 2460 032633 3 2461 032640 3 2462 032643 3 2463 032646 3 2464 032651 3 2466 032661 3 2468 032662 3 2473 032664 3 2474 032670 3 2476 032675 3 2477 032702 3 2479 032703 3 2481 032707 3 2482 032713 3 2484 032720 3 2485 032725 3 2487 032726 3 2489 032732 3 2490 032736 3 2491 032737 3 2493 032740 3 2495 032741 3 2497 032742 3 2498 032747 3 2500 032751 3 2502 032752 3 2508 032754 3 2511 032764 3 2513 032774 3 2514 033001 3 2515 033012 3 2517 033013 3 2518 033021 3 2520 033032 3 2522 033043 3 2524 033044 3 2530 033052 3 2532 033057 3 2534 033067 3 2535 033101 3 2536 033105 3 2538 033106 3 2539 033115 3 2541 033121 3 2543 033123 3 2545 033124 3 2551 033126 3 2553 033135 3 2554 033147 3 2555 033153 3 2557 033154 3 2558 033157 3 2561 033163 3 2562 033164 3 2567 033172 3 2569 033177 3 2570 033203 3 2572 033207 3 2573 033211 3 2575 033215 3 2577 033220 3 2578 033222 3 2579 033226 3 2582 033227 3 2583 033233 3 2585 033244 3 2586 033304 3 2588 033305 3 2589 033307 3 2592 033310 3 2594 033311 3 2599 033313 3 2601 033320 3 2602 033324 3 2604 033331 3 2607 033337 3 2608 033341 3 2610 033342 3 2612 033346 3 2614 033347 3 2618 033351 3 2619 033355 3 2621 033370 3 2622 033372 3 2624 033405 ----------------------------------------------------------- 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