|
|
1.1 root 1: SUBROUTINE ASSIGN
2: INTEGER PSTMT, STMT
3: LOGICAL TOKLAB, ERR, SYSERR, ABORT
4: COMMON /INPUT/ NSTMT, PSTMT, STMT(1327)
5: COMMON /DETECT/ ERR, SYSERR, ABORT
6: C
7: C PROCESSES AN ASSIGN STMT: ASSIGN <LABEL> TO <VAR>
8: C
9: IF (PSTMT.GE.NSTMT) GO TO 10
10: IF (.NOT.TOKLAB(1,K2,KK,.FALSE.)) GO TO 80
11: IF (SYSERR) GO TO 20
12: PSTMT = K2
13: IF (PSTMT+2.GE.NSTMT) GO TO 10
14: IF (STMT(PSTMT).EQ.49 .AND. STMT(PSTMT+1).EQ.44) GO TO 30
15: 10 CALL ERROR1(15H ILLEGAL SYNTAX, 15)
16: 20 RETURN
17: 30 PSTMT = PSTMT + 2
18: IF (PSTMT.GE.NSTMT) GO TO 10
19: CALL NEXTOK(PSTMT, K2, K)
20: IF (K.NE.0) GO TO 10
21: K = LOOKUP(K2,.FALSE.)
22: IF (SYSERR) GO TO 20
23: I1 = IGATT1(K,1)
24: I2 = IGATT1(K,7)
25: I3 = IGATT1(K,8)
26: IF (I3.EQ.0) GO TO 40
27: IF (I3.NE.8) GO TO 90
28: GO TO 50
29: 40 CALL SATT1(K, 8, 8)
30: 50 IF (I1.NE.0) GO TO 60
31: I1 = 1
32: IF (STMT(PSTMT).GE.38 .AND. STMT(PSTMT).LE.43) I1 = 2
33: CALL SATT1(K, 1, I1)
34: 60 IF (MOD(I1,8).EQ.2 .AND. I2.EQ.0) GO TO 70
35: CALL ERROR1(35H ASSIGN VARIABLE NOT INTEGER SCALAR, 35)
36: GO TO 20
37: 70 IF (K2.NE.NSTMT) GO TO 10
38: GO TO 20
39: 80 CALL ERROR1(14H MISSING LABEL, 14)
40: GO TO 20
41: 90 CALL ERROR1(23H ILLEGAL VARIABLE USAGE, 23)
42: GO TO 20
43: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.