SUBROUTINE MAIN LOGICAL*1 BUF(402) INTEGER GTNWRD LOGICAL*1 ST001Z(27) DATA ST001Z(1)/117/,ST001Z(2)/115/,ST001Z(3)/97/,ST001Z(4)/103/,ST *001Z(5)/101/,ST001Z(6)/58/,ST001Z(7)/32/,ST001Z(8)/32/,ST001Z(9)/1 *16/,ST001Z(10)/120/,ST001Z(11)/116/,ST001Z(12)/114/,ST001Z(13)/112 */,ST001Z(14)/108/,ST001Z(15)/32/,ST001Z(16)/112/,ST001Z(17)/97/,ST *001Z(18)/116/,ST001Z(19)/102/,ST001Z(20)/105/,ST001Z(21)/108/,ST00 *1Z(22)/101/,ST001Z(23)/32/,ST001Z(24)/46/,ST001Z(25)/46/,ST001Z(26 *)/46/,ST001Z(27)/0/ CALL QUERY(ST001Z) CALL INIPAT(BUF) 23000 IF (.NOT.(GTNWRD(BUF, 1) .NE. -1))GOTO 23001 CALL REPLAC(BUF, 2) GOTO 23000 23001 CONTINUE RETURN END LOGICAL*1 FUNCTION GTCH(C, INT) LOGICAL*1 C INTEGER INT LOGICAL*1 GETCH LOGICAL*1 PBCHAR COMMON / CUNGET / PBCHAR IF (.NOT.(PBCHAR .NE. 0))GOTO 23002 C = PBCHAR PBCHAR = 0 GOTO 23003 23002 CONTINUE C = GETCH(C, INT) 23003 CONTINUE GTCH=(C) RETURN END INTEGER FUNCTION GTNWRD(BUF, INT) LOGICAL*1 BUF(402), C, TRMCHR INTEGER INT INTEGER I, T LOGICAL*1 GTCH INTEGER TYPE, LENGTH C = GTCH(BUF(1), INT) BUF(2) = 0 IF (.NOT.(C .EQ. -1))GOTO 23004 GTNWRD=(-1) RETURN 23004 CONTINUE I = 2 IF (.NOT.(TYPE(C) .EQ. 1))GOTO 23006 23008 IF (.NOT.(GTCH(C, INT) .NE. -1))GOTO 23009 T = TYPE(C) IF (.NOT.(T .NE. 1 .AND. T .NE. 2 .AND. T .NE. 95))GOTO 23010 GOTO 23009 23010 CONTINUE CALL CHCOPY(C, BUF, I) 23011 CONTINUE GOTO 23008 23009 CONTINUE CALL UNGTCH(C, INT) GOTO 23007 23006 CONTINUE IF (.NOT.(C .EQ. 34))GOTO 23012 TRMCHR = C 23014 IF (.NOT.(GTCH(C, INT) .NE. -1))GOTO 23015 CALL CHCOPY(C, BUF, I) IF (.NOT.(C .EQ. TRMCHR .AND. BUF(I-2) .NE. 64))GOTO 23016 GOTO 23015 23016 CONTINUE GOTO 23014 23015 CONTINUE GOTO 23013 23012 CONTINUE IF (.NOT.(C .EQ. 39))GOTO 23018 C = GTCH(C, INT) CALL CHCOPY(C, BUF, I) IF (.NOT.(C .EQ. 64))GOTO 23020 C = GTCH(C, INT) CALL CHCOPY(C, BUF, I) 23020 CONTINUE C = GTCH(C, INT) CALL CHCOPY(C, BUF, I) GOTO 23019 23018 CONTINUE IF (.NOT.(C .EQ. 35))GOTO 23022 23024 IF (.NOT.(GTCH(C, INT) .NE. -1))GOTO 23025 CALL CHCOPY(C, BUF, I) IF (.NOT.(C .EQ. 10))GOTO 23026 GOTO 23025 23026 CONTINUE GOTO 23024 23025 CONTINUE 23022 CONTINUE 23019 CONTINUE 23013 CONTINUE 23007 CONTINUE GTNWRD=(LENGTH(BUF)) RETURN END SUBROUTINE INIPAT(BUF) LOGICAL*1 BUF(402), PAT(402), FILE(36) INTEGER I, J, JUNK INTEGER INT INTEGER GETARG, GETLIN, GETWRD, LENGTH INTEGER OPEN INTEGER MEM( 5000) LOGICAL*1 CMEM(10000) LOGICAL*1 PBCHAR COMMON /CDSMEM/ MEM COMMON / CUNGET / PBCHAR EQUIVALENCE (CMEM(1),MEM(1)) PBCHAR = 0 CALL TBINIT(5000) I=1 23028 IF (.NOT.(GETARG(I, FILE, 36) .NE. -1))GOTO 23030 INT = OPEN(FILE, 1) IF (.NOT.(INT .EQ. -3))GOTO 23031 CALL CANT(FILE) 23031 CONTINUE 23033 IF (.NOT.(GETLIN(BUF, INT) .NE. -1))GOTO 23034 J = 1 JUNK = GETWRD(BUF, J, PAT) CALL SKIPBL(BUF, J) CALL SCOPY(BUF, J, BUF, 1) J = LENGTH(BUF) BUF(J) = 0 CALL TBINST(PAT, BUF) GOTO 23033 23034 CONTINUE CALL CLOSE(INT) 23029 I=I+1 GOTO 23028 23030 CONTINUE RETURN END SUBROUTINE UNGTCH(C, INT) LOGICAL*1 C INTEGER INT LOGICAL*1 PBCHAR LOGICAL*1 ST002Z(45) COMMON / CUNGET / PBCHAR DATA ST002Z(1)/65/,ST002Z(2)/116/,ST002Z(3)/116/,ST002Z(4)/101/,ST *002Z(5)/109/,ST002Z(6)/112/,ST002Z(7)/116/,ST002Z(8)/32/,ST002Z(9) */116/,ST002Z(10)/111/,ST002Z(11)/32/,ST002Z(12)/112/,ST002Z(13)/11 *7/,ST002Z(14)/115/,ST002Z(15)/104/,ST002Z(16)/32/,ST002Z(17)/98/,S *T002Z(18)/97/,ST002Z(19)/99/,ST002Z(20)/107/,ST002Z(21)/32/,ST002Z *(22)/109/,ST002Z(23)/111/,ST002Z(24)/114/,ST002Z(25)/101/,ST002Z(2 *6)/32/,ST002Z(27)/116/,ST002Z(28)/104/,ST002Z(29)/97/,ST002Z(30)/1 *10/,ST002Z(31)/32/,ST002Z(32)/111/,ST002Z(33)/110/,ST002Z(34)/101/ *,ST002Z(35)/32/,ST002Z(36)/99/,ST002Z(37)/104/,ST002Z(38)/97/,ST00 *2Z(39)/114/,ST002Z(40)/97/,ST002Z(41)/99/,ST002Z(42)/116/,ST002Z(4 *3)/101/,ST002Z(44)/114/,ST002Z(45)/0/ IF (.NOT.(PBCHAR .NE. 0))GOTO 23035 CALL ERROR(ST002Z) 23035 CONTINUE PBCHAR = C RETURN END SUBROUTINE REPLAC(BUF, OUT) LOGICAL*1 BUF(402), DEFN(402) INTEGER OUT INTEGER TBLOOK IF (.NOT.(TBLOOK(BUF, DEFN) .EQ. 1))GOTO 23037 CALL PUTLIN(DEFN, OUT) GOTO 23038 23037 CONTINUE CALL PUTLIN(BUF, OUT) 23038 CONTINUE RETURN END