|
|
1.1 root 1: SUBROUTINE FIXLAB(ND)
2: C
3: C ROUTINE SETS END-OF-DEF-STMT NO FOR LABELS
4: C WHEN CALLED BY END STMT, FIXES ALL LABEL DEFS YET UNBOUND
5: C TO THE END OF PGM STMT NO. WHEN CALLED BY DO STMT
6: C FIXES UP ALL LABELS AT THE LEVEL OF THE CURRENT
7: C DO TO END-OF-DO STMT NO; ND TRUE MEANS AN END STMT CALLED FIXLAB
8: C
9: LOGICAL ND
10: INTEGER DOLIST, DOPT, BNEXT, SYMHD, DSA, PDSA
11: COMMON /CTABL/ LDSA, PDSA, DSA(5000)
12: COMMON /DOS/ DOPT, LDO, DOLIST(192)
13: COMMON /FACTS/ NAME, NOST, ITYP, IASF
14: COMMON /TABL/ NEXT, LABHD, SYMHD, BNEXT
15: LEV = -DOPT/6
16: I = LABHD
17: 10 IF (I.EQ.0) RETURN
18: K = IGATT1(I,2)
19: IF (K.NE.1) GO TO 30
20: K = IGATT1(I,1)
21: IF (K.NE.1) GO TO 30
22: K = DSA(I+2)
23: IF (ND) GO TO 20
24: IF (DSA(K+1).EQ.LEV) DSA(K+1) = NOST
25: GO TO 30
26: 20 IF (DSA(K+1).LE.0) DSA(K+1) = NOST
27: 30 I = DSA(I+3)
28: GO TO 10
29: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.