|
|
1.1 ! root 1: INTEGER FUNCTION GETTOK(K1, K2) ! 2: C ! 3: C GETTOK FINDS NEXT TOKEN IN STMT(K1)-STMT(K2-1) ! 4: C AND RETURNS A VALUE: ! 5: C 0= DOUBLE PRECISION CONSTANT- ! 6: C 2= INTEGER CONSTANT ! 7: C 1= REAL CONSTANT- ! 8: C 3= COMPLEX CONSTANT ! 9: C 4= LOGICAL CONSTANT ! 10: C 5= HOLLERITH CONSTANT ! 11: C 6= ID ! 12: C >10=OPERATOR (10+CODE FOR OPERATOR;HERE ARRAY AND FCN REFS ARE 16 ! 13: C ! 14: INTEGER PSTMT, STMT ! 15: LOGICAL ERR, SYSERR, ABORT, TOKLOP, TOKRL, TOKCOM, TOKLOG ! 16: COMMON /INPUT/ NSTMT, PSTMT, STMT(1327) ! 17: COMMON /DETECT/ ERR, SYSERR, ABORT ! 18: 10 GETTOK = -1 ! 19: IF (.NOT.TOKRL(K1,K2,K)) GO TO 20 ! 20: GETTOK = 1 ! 21: IF (K.EQ.0) GETTOK = 0 ! 22: GO TO 40 ! 23: 20 CALL NEXTOK(K1, K2, K) ! 24: K = K + 1 ! 25: GO TO (50, 30, 60, 70), K ! 26: 30 GETTOK = 2 ! 27: 40 RETURN ! 28: C ! 29: C PROCESS ID, SEE IF ITS A FCN CALL OR ARRAY NAME ! 30: C ! 31: 50 GETTOK = 6 ! 32: IF (STMT(K2).NE.65) GO TO 40 ! 33: GETTOK = 16 ! 34: K2 = K2 + 1 ! 35: GO TO 40 ! 36: 60 GETTOK = 5 ! 37: GO TO 40 ! 38: 70 K = STMT(K1) ! 39: IF (K.EQ.64) GO TO 100 ! 40: IF (K.EQ.65) GO TO 80 ! 41: IF (K.EQ.62) GETTOK = 12 ! 42: IF (K.EQ.68) GETTOK = 18 ! 43: IF (K.EQ.60 .OR. K.EQ.61) GETTOK = 11 ! 44: IF (K.EQ.66 .OR. K.EQ.67) GETTOK = 17 ! 45: IF (K2.EQ.K1+2) GETTOK = 13 ! 46: IF (GETTOK+1) 40, 120, 40 ! 47: 80 GETTOK = 15 ! 48: IF (TOKCOM(K1,K)) GO TO 90 ! 49: GO TO 40 ! 50: 90 GETTOK = 3 ! 51: K2 = K ! 52: GO TO 40 ! 53: C ! 54: C CHECK FOR LOGICAL CONSTANTS,OPERATORS ! 55: C ! 56: 100 IF (.NOT.TOKLOG(K1,K2)) GO TO 110 ! 57: GETTOK = 4 ! 58: GO TO 40 ! 59: 110 IF (.NOT.TOKLOP(K1,K2,K)) GO TO 120 ! 60: GETTOK = K ! 61: GO TO 40 ! 62: 120 CALL ERROR1(26H ILLEGAL CHARACTER IGNORED, 26) ! 63: IF (K1+1.GE.NSTMT) GO TO 130 ! 64: K1 = K1 + 1 ! 65: GO TO 10 ! 66: 130 ERR = .TRUE. ! 67: RETURN ! 68: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.