File:  [Research Unix] / researchv10no / cmd / pfort / IFS.f
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:35 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Norman

      SUBROUTINE IFS(LOG)
      LOGICAL TOKLAB, ERR, SYSERR, ABORT, LOG
      INTEGER STMT, PSTMT, EXPR
      COMMON /INPUT/ NSTMT, PSTMT, STMT(1327)
      COMMON /DETECT/ ERR, SYSERR, ABORT
C
C     ROUTINE PROCESSES ARITHMETIC AND LOGICAL IF STMTS
C     LOG RETURNED AS TRUE IF LOGICAL-IF IS ENCOUNTERED;PU CHECKS FOR
C     ACCEPTIBLE EXECUTABLE STMT AFTER LOGICAL EXPRESSION
C
      LOG = .FALSE.
      L = MOD(EXPR(I),8)
      IF (-1.EQ.L .OR. SYSERR) GO TO 30
      LOG = L.EQ.4
      IF (LOG) GO TO 30
C
C     ARITHMETIC IF--SEARCH FOR  <LAB>,<LAB>,<LAB>
C
      IF (L.GT.2) GO TO 50
      I = 0
      IF (PSTMT.GE.NSTMT) GO TO 20
   10 IF (.NOT.TOKLAB(1,K2,L,.FALSE.)) GO TO 40
      IF (SYSERR) GO TO 30
      I = I + 1
      IF (I.EQ.3) GO TO 60
      IF (STMT(K2).NE.68) GO TO 20
      PSTMT = K2 + 1
      IF (PSTMT.LT.NSTMT) GO TO 10
   20 CALL ERROR1(15H ILLEGAL SYNTAX, 15)
   30 RETURN
   40 CALL ERROR1(14H MISSING LABEL, 14)
      GO TO 30
   50 CALL ERROR1(39H COMPLEX EXPRESSION ILLEGAL IN ARITH-IF, 39)
      GO TO 30
   60 IF (K2.EQ.NSTMT) GO TO 30
      CALL ERROR1(34H EXTRANEOUS INFO AFTER END OF STMT, 34)
      GO TO 30
      END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.