SUBROUTINE ENDLIN INTEGER INPTR INTEGER OUTPTR INTEGER INMAX INTEGER MAXTAB INTEGER MAXLIN INTEGER IFMAX INTEGER MAXLEV INTEGER LINENO INTEGER PAGE INTEGER CLINE INTEGER TLIMIT INTEGER LN INTEGER I, J, K INTEGER II, JJ, KK INTEGER LEXVAL INTEGER SLEN INTEGER LEVEL INTEGER LEN INTEGER INCHAN INTEGER OUTCHN INTEGER LPTCHN INTEGER TTICHN INTEGER TTOCHN INTEGER PROCCN INTEGER COMCHN INTEGER TABS (10) LOGICAL SKIPFL LOGICAL POFF LOGICAL FIRST INTEGER ISP INTEGER ICSTK (20) INTEGER IFSP INTEGER IFST (20) INTEGER LPSP INTEGER LPST (100) LOGICAL TSEEN INTEGER CHAR INTEGER CTEMP LOGICAL NEWFIL INTEGER COMPMS (11) INTEGER LSAVE (5) LOGICAL PSAVE (5) INTEGER FFILE INTEGER EOF INTEGER LETTER INTEGER DIGIT INTEGER TAB INTEGER EOL INTEGER BLANK INTEGER QUOTE INTEGER GIZZY INTEGER LPAREN INTEGER RPAREN INTEGER AST INTEGER COMMA INTEGER PERIOD INTEGER SLASH INTEGER CHAR0 INTEGER CHAR1 INTEGER CHAR9 INTEGER SEMI INTEGER EQUAL INTEGER CHARA INTEGER CHARZ INTEGER BBLANK INTEGER UPAROW INTEGER DOOP INTEGER WHILE INTEGER ENDOP INTEGER FOR INTEGER DOLOOP INTEGER BREAK INTEGER NEXT INTEGER IFOP INTEGER ELSE INTEGER ENDIF INTEGER DEFINE INTEGER HEAD INTEGER EJECT INTEGER INCLUD INTEGER OUTFIL INTEGER IBUF (42) INTEGER PBUF (58) INTEGER HBUF (42) INTEGER OUTBUF (42) INTEGER BUF (58) INTEGER NAME (22) COMMON /STRN/ INPTR COMMON /STRN/ OUTPTR COMMON /STRN/ INMAX COMMON /STRN/ MAXTAB COMMON /STRN/ MAXLIN COMMON /STRN/ IFMAX COMMON /STRN/ MAXLEV COMMON /STRN/ LINENO COMMON /STRN/ PAGE COMMON /STRN/ CLINE COMMON /STRN/ TLIMIT COMMON /STRN/ LN COMMON /STRN/ I, J, K COMMON /STRN/ II, JJ, KK COMMON /STRN/ LEXVAL COMMON /STRN/ SLEN COMMON /STRN/ LEVEL COMMON /STRN/ LEN COMMON /STRN/ INCHAN COMMON /STRN/ OUTCHN COMMON /STRN/ LPTCHN COMMON /STRN/ TTICHN COMMON /STRN/ TTOCHN COMMON /STRN/ PROCCN COMMON /STRN/ COMCHN COMMON /STRN/ TABS COMMON /STRN/ SKIPFL COMMON /STRN/ POFF COMMON /STRN/ FIRST COMMON /STRN/ ISP COMMON /STRN/ ICSTK COMMON /STRN/ IFSP COMMON /STRN/ IFST COMMON /STRN/ LPSP COMMON /STRN/ LPST COMMON /STRN/ TSEEN COMMON /STRN/ CHAR COMMON /STRN/ CTEMP COMMON /STRN/ NEWFIL COMMON /STRN/ COMPMS COMMON /STRN/ LSAVE COMMON /STRN/ PSAVE COMMON /STRN/ FFILE COMMON /STRN/ EOF COMMON /STRN/ LETTER COMMON /STRN/ DIGIT COMMON /STRN/ TAB COMMON /STRN/ EOL COMMON /STRN/ BLANK COMMON /STRN/ QUOTE COMMON /STRN/ GIZZY COMMON /STRN/ LPAREN COMMON /STRN/ RPAREN COMMON /STRN/ AST COMMON /STRN/ COMMA COMMON /STRN/ PERIOD COMMON /STRN/ SLASH COMMON /STRN/ CHAR0 COMMON /STRN/ CHAR1 COMMON /STRN/ CHAR9 COMMON /STRN/ SEMI COMMON /STRN/ EQUAL COMMON /STRN/ CHARA COMMON /STRN/ CHARZ COMMON /STRN/ BBLANK COMMON /STRN/ UPAROW COMMON /STRN/ DOOP COMMON /STRN/ WHILE COMMON /STRN/ ENDOP COMMON /STRN/ FOR COMMON /STRN/ DOLOOP COMMON /STRN/ BREAK COMMON /STRN/ NEXT COMMON /STRN/ IFOP COMMON /STRN/ ELSE COMMON /STRN/ ENDIF COMMON /STRN/ DEFINE COMMON /STRN/ HEAD COMMON /STRN/ EJECT COMMON /STRN/ INCLUD COMMON /STRN/ OUTFIL COMMON /STRN/ IBUF COMMON /STRN/ PBUF COMMON /STRN/ HBUF COMMON /STRN/ OUTBUF COMMON /STRN/ BUF COMMON /STRN/ NAME INTEGER GETC, GCHAR, QCOUNT, CHARD, CHART, ICHAR LOGICAL QSEEN, QALLOW DATA CHARD /68/ , CHART /84/ QALLOW = .FALSE. QSEEN = .FALSE. CONTINUE 13000 CONTINUE CHAR = GETC (CHAR) IF (.NOT.(CHAR .NE. EOL))GO TO 13001 IF (.NOT. (CHAR .EQ. CHARD))GO TO 13002 IF (.NOT. (GCHAR (IBUF, INPTR) .EQ. CHARA .AND. GCHAR (IBUF, INPTR 1+1) .EQ. CHART .AND. GCHAR (IBUF, INPTR+2) .EQ. CHARA))GO TO 13004 QALLOW = .TRUE. 13004 CONTINUE 13002 CONTINUE IF (.NOT. (QALLOW))GO TO 13006 IF (.NOT. (CHAR .EQ. GIZZY))GO TO 13008 QCOUNT = -4 QSEEN =.NOT.(QSEEN) GO TO 13009 13008 CONTINUE IF (.NOT. (QSEEN))GO TO 13010 QCOUNT = QCOUNT + 1 IF (.NOT. (QCOUNT .EQ. 0))GO TO 13012 QCOUNT = -3 CALL PUTC (CHAR) CHAR = GETC (CHAR) IF (.NOT. (CHAR .NE. GIZZY))GO TO 13014 ICHAR = CHAR CALL PUTC (GIZZY) CALL PUTC (COMMA) CALL PUTC (GIZZY) CHAR = ICHAR GO TO 13015 13014 CONTINUE QSEEN =.NOT.(QSEEN) 13015 CONTINUE 13012 CONTINUE 13010 CONTINUE 13009 CONTINUE 13006 CONTINUE CALL PUTC (CHAR) GO TO 13000 13001 CONTINUE CALL PUTC (EOL) RETURN END