|
|
1.1 root 1: SUBROUTINE EXTERN
2: LOGICAL ERR, SYSERR, ABORT
3: LOGICAL BR, INTEXT
4: INTEGER STMT, PSTMT
5: COMMON /FACTS/ NAME, NOST, ITYP, IASF
6: COMMON /INPUT/ NSTMT, PSTMT, STMT(1327)
7: COMMON /DETECT/ ERR, SYSERR, ABORT
8: C
9: C PROCESS AN EXTERNAL STMT. CAUSES IDS TO BE MARKED AS EXTERNAL
10: C PROCEDURES. ERROR OCCURS IF ID HAS PREVIOUSLY DEFINED INCONSISTANT
11: C USAGE. EXTERNAL CAN'T APPEAR IN BLOCK DATA PGM UNIT.
12: C
13: L = IGATT1(NAME,8)
14: IF (L.EQ.11) GO TO 60
15: 10 CALL NEXTOK(PSTMT, K2, KK)
16: IF (KK.EQ.0) GO TO 20
17: CALL ERROR1(19H ILLEGAL IDENTIFIER, 19)
18: GO TO 70
19: 20 KK = LOOKUP(K2,.FALSE.)
20: IF (SYSERR) RETURN
21: L = IGATT1(KK,8)
22: IF (L.EQ.0) GO TO 30
23: CALL ERROR1(26H ILLEGAL USE OF IDENTIFIER, 26)
24: GO TO 40
25: 30 CALL SATT1(KK, 8, 13)
26: C
27: C CAUSE EXTERNAL BIT TO BE SET IF POSSIBLE BASIC EXTERNAL
28: C
29: 40 BR = INTEXT(KK,0,0,.FALSE.)
30: IF (K2.EQ.NSTMT) GO TO 70
31: IF (STMT(K2).NE.68) GO TO 50
32: PSTMT = K2 + 1
33: GO TO 10
34: 50 CALL ERROR1(20H ILLEGAL PUNCTUATION, 20)
35: GO TO 70
36: 60 CALL ERROR1(
37: *60H ILLEGAL USAGE OF EXTERNAL STMT WITHIN BLOCK DATA SUBPROGRAM,
38: * 60)
39: 70 RETURN
40: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.