INTEGER A$BUF(200) LOGICAL FOUND INTEGER FD INTEGER OPEN INTEGER LCNT,OCNT,I,J INTEGER NAME(128),PAT(128) INTEGER BUF(512),IBUF(512) INTEGER STATE(4),DFA(128),FS,PLEN,BLEN INTEGER OCCUR0 LOGICAL COUNT,IGNORE,NUMBER,VERIFY,EXCLU0 INTEGER OPEN INTEGER GFNARG,GETARG,GETLIN,MAPDN INTEGER AAAAA0 INTEGER AAAAB0 INTEGER USAGE(59) INTEGER AAAAC0(17) INTEGER AAAAD0(17) INTEGER PARSCL INTEGER AAAAE0(17) INTEGER AAAAF0(4) INTEGER AAAAG0(4) INTEGER AAAAH0(4) INTEGER AAAAI0(5) DATA USAGE/213,243,225,231,229,186,160,230,230,233,238,228,160,188 *,240,225,244,244,229,242,238,190,160,251,173,251,227,252,233,252,2 *36,252,239,188,238,245,237,190,252,246,252,248,253,253,160,251,188 *,230,233,236,229,160,243,240,229,227,190,253,0/ DATA AAAAC0/170,243,186,160,227,225,238,167,244,160,239,240,229,23 *8,170,238,0/ DATA AAAAD0/170,243,186,160,227,225,238,167,244,160,239,240,229,23 *8,170,238,0/ DATA AAAAE0/227,233,236,246,248,238,188,233,231,238,190,239,188,23 *9,233,190,0/ DATA AAAAF0/170,243,186,0/ DATA AAAAG0/170,233,186,0/ DATA AAAAH0/170,243,186,0/ DATA AAAAI0/170,233,170,238,0/ AAAAA0=1 GOTO 10000 10002 STATE(1)=1 FS=GFNARG(NAME,STATE) 10003 IF((FS.EQ.-1))GOTO 10004 IF((FS.NE.-2))GOTO 10005 FD=OPEN(NAME,1) IF((FD.NE.-3))GOTO 10006 CALL PRINT(-15,AAAAC0,NAME) GOTO 10007 10006 AAAAB0=1 GOTO 10001 10008 CALL CLOSE(FD) 10007 GOTO 10009 10005 CALL PRINT(-15,AAAAD0,NAME) 10009 FS=GFNARG(NAME,STATE) GOTO 10003 10004 CALL SWT 10000 PLEN=GETARG(1,PAT,128) IF((PLEN.NE.-1))GOTO 10010 CALL ERROR(USAGE) 10010 CALL DELARG(1) IF((PARSCL(AAAAE0,A$BUF).NE.-3))GOTO 10011 CALL ERROR(USAGE) 10011 IF((A$BUF(239-225+1).EQ.0))GOTO 10012 IF((A$BUF(239-225+1).EQ.2))GOTO 10013 A$BUF(239-225+27)=1 10013 GOTO 10014 10012 IF((A$BUF(239-225+1).EQ.2))GOTO 10015 A$BUF(239-225+27)=32766 10015 CONTINUE 10014 OCCUR0=A$BUF(239-225+27) COUNT=.FALSE. IGNORE=.FALSE. NUMBER=.FALSE. VERIFY=.FALSE. EXCLU0=.FALSE. IF((A$BUF(227-225+1).EQ.0))GOTO 10016 COUNT=.TRUE. 10016 IF((A$BUF(233-225+1).EQ.0))GOTO 10017 IGNORE=.TRUE. 10017 IF((A$BUF(236-225+1).EQ.0))GOTO 10018 NUMBER=.TRUE. 10018 IF((A$BUF(246-225+1).EQ.0))GOTO 10019 VERIFY=.TRUE. 10019 IF((A$BUF(248-225+1).EQ.0))GOTO 10020 EXCLU0=.TRUE. 10020 IF((.NOT.IGNORE))GOTO 10021 CALL MAPSTR(PAT,1) 10021 DFA(1)=0 I=2 GOTO 10024 10022 I=I+(1) 10024 IF((I.GT.PLEN))GOTO 10023 J=DFA(I-1) 10025 IF((J.EQ.0))GOTO 10026 IF((PAT(J).EQ.PAT(I-1)))GOTO 10026 J=DFA(J) GOTO 10025 10026 DFA(I)=J+1 GOTO 10022 10023 GOTO 10027 10001 LCNT=0 OCNT=0 10028 IF((.NOT.IGNORE))GOTO 10029 BLEN=GETLIN(IBUF,FD,512) J=BLEN+1 DO 10030 I=1,J BUF(I)=MAPDN(IBUF(I)) 10030 CONTINUE 10031 GOTO 10032 10029 BLEN=GETLIN(BUF,FD,512) 10032 IF((BLEN.NE.-1))GOTO 10033 GOTO 10034 10033 I=1 J=1 LCNT=LCNT+(1) 10035 IF((BUF(I).EQ.0))GOTO 10036 IF((PAT(J).EQ.0))GOTO 10036 IF((BUF(I).NE.PAT(J)))GOTO 10037 I=I+(1) J=J+(1) GOTO 10038 10037 J=DFA(J) 10038 IF((J.NE.0))GOTO 10039 I=I+(1) J=J+(1) 10039 GOTO 10035 10036 FOUND=.FALSE. IF(((PAT(J).EQ.0).AND.(.NOT.EXCLU0)))GOTO 10041 IF(((PAT(J).NE.0).AND.EXCLU0))GOTO 10041 GOTO 10040 10041 FOUND=.TRUE. 10040 IF((.NOT.FOUND))GOTO 10042 OCNT=OCNT+(1) IF(COUNT)GOTO 10043 IF((.NOT.VERIFY))GOTO 10044 CALL PRINT(-11,AAAAF0,NAME) 10044 IF((.NOT.NUMBER))GOTO 10045 CALL PRINT(-11,AAAAG0,LCNT) 10045 IF(IGNORE)GOTO 10046 CALL PUTLIN(BUF,-11) GOTO 10047 10046 CALL PUTLIN(IBUF,-11) 10047 CONTINUE 10043 CONTINUE 10042 CONTINUE IF((OCNT.LT.OCCUR0))GOTO 10028 10034 IF((.NOT.COUNT))GOTO 10048 IF((.NOT.VERIFY))GOTO 10049 CALL PRINT(-11,AAAAH0,NAME) 10049 CALL PRINT(-11,AAAAI0,OCNT) 10048 GOTO 10050 10050 GOTO 10008 10027 GOTO 10002 END C ---- Long Name Map ---- C exclude exclu0 C occurrence occur0