Annotation of researchv10no/cmd/pfort/IDLIST.f, revision 1.1.1.1

1.1       root        1:       LOGICAL FUNCTION IDLIST(IDO)
                      2:       INTEGER PSTMT, STMT
                      3:       LOGICAL ERR, SYSERR, ABORT, IDO
                      4:       COMMON /INPUT/ NSTMT, PSTMT, STMT(1327)
                      5:       COMMON /DETECT/ ERR, SYSERR, ABORT
                      6: C
                      7: C     RECOGNIZES  IDLIST=<ID>  �, <ID>! ;LAST <ID> CANNOT BE FOLLOWED BY
                      8: C     A '='; IDLIST MUST CONTAIN AT LEAST ONE ID.  IDLIST=.FALSE. WILL
                      9: C     BE RETURNED FOR AN IRRECOVERABLE SYNTAX ERROR.
                     10: C     IDO SET TO .TRUE. WHEN <IDLIST> IS FOLLOWED BY <DOSPEC>
                     11: C
                     12:       IDO = .FALSE.
                     13:       IDLIST = .TRUE.
                     14:       IF (PSTMT.GE.NSTMT) GO TO 60
                     15:       CALL NEXTOK(PSTMT, K2, K)
                     16:       IF (K.NE.0) GO TO 60
                     17:       IF (STMT(K2).EQ.63) GO TO 20
                     18:       CALL ID(K2)
                     19:       IF (ERR .OR. SYSERR) GO TO 20
                     20:    10 PSTMT = K2
                     21:       IF (STMT(PSTMT).EQ.68 .AND. STMT(PSTMT+1).EQ.65 .OR.
                     22:      *    STMT(PSTMT).EQ.62 .OR. PSTMT.EQ.NSTMT) GO TO 30
                     23:       IF (STMT(PSTMT).EQ.68) GO TO 50
                     24:       CALL ERROR1(35H ILLEGAL TOKEN FOLLOWING IDENTIFIER, 35)
                     25:    20 IDLIST = .FALSE.
                     26:       ERR = .FALSE.
                     27:    30 RETURN
                     28:    40 IDO = .TRUE.
                     29:       GO TO 30
                     30: C
                     31: C     MAKE SURE <ID> =  ISN'T NEXT CONSTRUCT
                     32: C
                     33:    50 K2 = K2 + 1
                     34:       IF (K2.GE.NSTMT) GO TO 60
                     35:       CALL NEXTOK(K2, K3, K)
                     36:       IF (STMT(K3).EQ.63) GO TO 40
                     37:       PSTMT = K2
                     38:       K2 = K3
                     39:       CALL ID(K2)
                     40:       IF (ERR .OR. SYSERR) GO TO 20
                     41:       GO TO 10
                     42:    60 CALL ERROR1(23H ILLEGAL SYNTAX IN LIST, 23)
                     43:       GO TO 20
                     44:       END

unix.superglobalmegacorp.com

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