INTEGER FUNCTION GETTOK(K1, K2) C C GETTOK FINDS NEXT TOKEN IN STMT(K1)-STMT(K2-1) C AND RETURNS A VALUE: C 0= DOUBLE PRECISION CONSTANT- C 2= INTEGER CONSTANT C 1= REAL CONSTANT- C 3= COMPLEX CONSTANT C 4= LOGICAL CONSTANT C 5= HOLLERITH CONSTANT C 6= ID C >10=OPERATOR (10+CODE FOR OPERATOR;HERE ARRAY AND FCN REFS ARE 16 C INTEGER PSTMT, STMT LOGICAL ERR, SYSERR, ABORT, TOKLOP, TOKRL, TOKCOM, TOKLOG COMMON /INPUT/ NSTMT, PSTMT, STMT(1327) COMMON /DETECT/ ERR, SYSERR, ABORT 10 GETTOK = -1 IF (.NOT.TOKRL(K1,K2,K)) GO TO 20 GETTOK = 1 IF (K.EQ.0) GETTOK = 0 GO TO 40 20 CALL NEXTOK(K1, K2, K) K = K + 1 GO TO (50, 30, 60, 70), K 30 GETTOK = 2 40 RETURN C C PROCESS ID, SEE IF ITS A FCN CALL OR ARRAY NAME C 50 GETTOK = 6 IF (STMT(K2).NE.65) GO TO 40 GETTOK = 16 K2 = K2 + 1 GO TO 40 60 GETTOK = 5 GO TO 40 70 K = STMT(K1) IF (K.EQ.64) GO TO 100 IF (K.EQ.65) GO TO 80 IF (K.EQ.62) GETTOK = 12 IF (K.EQ.68) GETTOK = 18 IF (K.EQ.60 .OR. K.EQ.61) GETTOK = 11 IF (K.EQ.66 .OR. K.EQ.67) GETTOK = 17 IF (K2.EQ.K1+2) GETTOK = 13 IF (GETTOK+1) 40, 120, 40 80 GETTOK = 15 IF (TOKCOM(K1,K)) GO TO 90 GO TO 40 90 GETTOK = 3 K2 = K GO TO 40 C C CHECK FOR LOGICAL CONSTANTS,OPERATORS C 100 IF (.NOT.TOKLOG(K1,K2)) GO TO 110 GETTOK = 4 GO TO 40 110 IF (.NOT.TOKLOP(K1,K2,K)) GO TO 120 GETTOK = K GO TO 40 120 CALL ERROR1(26H ILLEGAL CHARACTER IGNORED, 26) IF (K1+1.GE.NSTMT) GO TO 130 K1 = K1 + 1 GO TO 10 130 ERR = .TRUE. RETURN END