SUBROUTINE CMPLOP IMPLICIT INTEGER (A-Z) LOGICAL*1 ASSMBL, CONT , DONE , ENDFIL, ENDLIN, ENDPGM LOGICAL*1 ERLST , FIRST , FOUND , INCLUD, INDENT, INSERT LOGICAL*1 LSTCMT, LSTFIN, LSTFLG, MINER , NDERR , NIERR LOGICAL*1 NOPGM , NOTFLG, OPENI , PARMS , PASS , QUOTE LOGICAL*1 SAVED , STREQ , STRLT , VARSET INTEGER UTYPE(3), USTART(3), ULEN(3) INTEGER ESTACK(10) INTEGER SDIGIT(2) INTEGER SFNAM(52) INTEGER SNUMBR(52) INTEGER SPINV(52) INTEGER SPUTGO(12) INTEGER SSTRNG(52) INTEGER SVARBL(52) INTEGER SWITCH(52) INTEGER KBREAK(4) DATA KBREAK/5,2HBR,2HEA,2HK / INTEGER KCOND(7) DATA KCOND/11,2HCO,2HND,2HIT,2HIO,2HNA,2HL / INTEGER KDEFN(5) DATA KDEFN/6,2HDE,2HFI,2HNE,1H / INTEGER KDO(3) DATA KDO/2,2HDO,1H / INTEGER KELSE(4) DATA KELSE/4,2HEL,2HSE,1H / INTEGER KEND(3) DATA KEND/3,2HEN,2HD / INTEGER KFALSE(4) DATA KFALSE/5,2HFA,2HLS,2HE / INTEGER KFIN(3) DATA KFIN/3,2HFI,2HN / INTEGER KIF(3) DATA KIF/2,2HIF,1H / INTEGER KINCL(5) DATA KINCL/7,2HIN,2HCL,2HUD,2HE / INTEGER KLIST(4) DATA KLIST/4,2HLI,2HST,1H / INTEGER KLOOP(4) DATA KLOOP/4,2HLO,2HOP,1H / INTEGER KNEXT(4) DATA KNEXT/4,2HNE,2HXT,1H / INTEGER KNOLST(5) DATA KNOLST/6,2HNO,2HLI,2HST,1H / INTEGER KPAGE(4) DATA KPAGE/4,2HPA,2HGE,1H / INTEGER KREPT(5) DATA KREPT/6,2HRE,2HPE,2HAT,1H / INTEGER KRETN(5) DATA KRETN/6,2HRE,2HTU,2HRN,1H / INTEGER KSELCT(5) DATA KSELCT/6,2HSE,2HLE,2HCT,1H / INTEGER KSTRNG(5) DATA KSTRNG/6,2HST,2HRI,2HNG,1H / INTEGER KTHEN(4) DATA KTHEN/4,2HTH,2HEN,1H / INTEGER KTO(3) DATA KTO/2,2HTO,1H / INTEGER KTRUE(4) DATA KTRUE/4,2HTR,2HUE,1H / INTEGER KUNLES(5) DATA KUNLES/6,2HUN,2HLE,2HSS,1H / INTEGER KUNTIL(4) DATA KUNTIL/5,2HUN,2HTI,2HL / INTEGER KWHEN(4) DATA KWHEN/4,2HWH,2HEN,1H / INTEGER KWHILE(4) DATA KWHILE/5,2HWH,2HIL,2HE / INTEGER SASSN1(8) DATA SASSN1/13,2H ,2H ,2H ,2HAS,2HSI,2HGN,2H / INTEGER SASSN2(4) DATA SASSN2/5,2H T,2HO ,2HI / INTEGER SB(2) DATA SB/1,2H / INTEGER SB2(3) DATA SB2/2,2H ,1H / INTEGER SB4(4) DATA SB4/4,2H ,2H ,1H / INTEGER SB5I1(5) DATA SB5I1/6,2H ,2H ,2H 1,1H / INTEGER SB6(5) DATA SB6/6,2H ,2H ,2H ,1H / INTEGER SB6I(5) DATA SB6I/7,2H ,2H ,2H ,2HI / INTEGER SB7(5) DATA SB7/7,2H ,2H ,2H ,2H / INTEGER SBGOTO(5) DATA SBGOTO/7,2H G,2HO ,2HTO,2H / INTEGER SBSPCR(3) DATA SBSPCR/3,2Hv-,2H- / INTEGER SCMTSW(3) DATA SCMTSW/2,2H/C,1H / INTEGER SCOMMA(2) DATA SCOMMA/1,2H, / INTEGER SCOND(10) DATA SCOND/17,2H ,2H ,2H ,2HCO,2HND,2HIT,2HIO,2HNA,2HL / INTEGER SCONT(6) DATA SCONT/8,2HCO,2HNT,2HIN,2HUE,1H / INTEGER SCP(3) DATA SCP/2,2H,(,1H / INTEGER SDASH(22) DATA SDASH/40,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H 1--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,1H / INTEGER SDATA(7) DATA SDATA/11,2H ,2H ,2H ,2HDA,2HTA,2H / INTEGER SDOST(6) DATA SDOST/9,2H ,2H ,2H ,2HDO,2H / INTEGER SDSPCR(3) DATA SDSPCR/3,2H.-,2H- / INTEGER SDUM(9) DATA SDUM/15,2HDU,2HMM,2HY-,2HPR,2HOC,2HED,2HUR,2HE / INTEGER SEND(6) DATA SEND/9,2H ,2H ,2H ,2HEN,2HD / INTEGER SEQ(2) DATA SEQ/1,2H= / INTEGER SFORCE(9) DATA SFORCE/14,2H ,2H ,2H ,2HCO,2HNT,2HIN,2HUE,1H / INTEGER SFSPCR(3) DATA SFSPCR/3,2H..,2H. / INTEGER SFUNC(6) DATA SFUNC/8,2HFU,2HNC,2HTI,2HON,1H / INTEGER SGOTO(8) DATA SGOTO/12,2H ,2H ,2H ,2HGO,2H T,2HO ,1H / INTEGER SGOTOI(8) DATA SGOTOI/13,2H ,2H ,2H ,2HGO,2H T,2HO ,2HI / INTEGER SGOTOP(8) DATA SGOTOP/13,2H ,2H ,2H ,2HGO,2H T,2HO ,2H( / INTEGER SGUP1(25) DATA SGUP1/46,2H**,2H**,2H* ,2HTr,2Han,2Hsl,2Hat,2Hor,2H h,2Has,2H 1 e,2Hxh,2Hau,2Hst,2Hed,2H a,2Hll,2H t,2Hab,2Hle,2H s,2Hpa,2Hce,1H 1/ INTEGER SGUP2(24) DATA SGUP2/44,2H**,2H**,2H* ,2HTr,2Han,2Hsl,2Hat,2Hio,2Hn ,2Hmu,2H 1st,2H t,2Her,2Hmi,2Hna,2Hte,2H i,2Hmm,2Hed,2Hia,2Hte,2Hly,1H / INTEGER SH(2) DATA SH/1,2HH / INTEGER SICATX(25) DATA SICATX/47,2H**,2H**,2H* ,2H ,2H (,2HCo,2Hnd,2Hit,2Hio,2Hna,2 1Hl ,2Has,2Hse,2Hmb,2Hly,2H t,2Hab,2Hle,2Hs ,2Hex,2Hce,2Hed,2Hed,2H 1) / INTEGER SIF(6) DATA SIF/8,2H ,2H ,2H ,2HIF,1H / INTEGER SIFP(6) DATA SIFP/9,2H ,2H ,2H ,2HIF,2H( / INTEGER SIFPN(9) DATA SIFPN/14,2H ,2H ,2H ,2HIF,2H(.,2HNO,2HT.,1H / INTEGER SIGN(24) DATA SIGN/45,2H**,2H**,2H* ,2H ,2H (,2HNo,2H c,2Hon,2Htr,2Hol,2H 1p,2Hhr,2Has,2He ,2Hfo,2Hr ,2HFI,2HN ,2Hto,2H m,2Hat,2Hch,2H) / INTEGER SINCSW(3) DATA SINCSW/2,2H/D,1H / INTEGER SINT(9) DATA SINT/14,2H ,2H ,2H ,2HIN,2HTE,2HGE,2HR ,1H / INTEGER SISCMD(24) DATA SISCMD/45,2H**,2H**,2H* ,2H ,2H (,2HIn,2Hva,2Hli,2Hd ,2H$<,2 1Hsy,2Hst,2Hem,2H c,2Hom,2Hma,2Hnd,2H>-,2H-i,2Hgn,2Hor,2Hed,2H) / INTEGER SLASH(2) DATA SLASH/1,2H/ / INTEGER SLP(2) DATA SLP/1,2H( / INTEGER SNDERR(23) DATA SNDERR/43,2H**,2H**,2H* ,2HPr,2Hoc,2Hed,2Hur,2Hes,2H i,2Hnv,2 1Hok,2Hed,2H b,2Hut,2H n,2Hev,2Her,2H d,2Hef,2Hin,2Hed,2H: / INTEGER SNE(4) DATA SNE/4,2H.N,2HE.,1H / INTEGER SNIERR(23) DATA SNIERR/43,2H**,2H**,2H* ,2HPr,2Hoc,2Hed,2Hur,2Hes,2H d,2Hef,2 1Hin,2Hed,2H b,2Hut,2H n,2Hev,2Her,2H i,2Hnv,2Hok,2Hed,2H: / INTEGER SNSPCR(3) DATA SNSPCR/3,2H^-,2H- / INTEGER SOWSE(7) DATA SOWSE/11,2H(O,2HTH,2HER,2HWI,2HSE,2H) / INTEGER SPB(3) DATA SPB/2,2H) ,1H / INTEGER SPGOTO(6) DATA SPGOTO/8,2H) ,2HGO,2H T,2HO ,1H / INTEGER SRP(2) DATA SRP/1,2H) / INTEGER SRPCI(4) DATA SRPCI/4,2H),,2H I,1H / INTEGER SSPACR(3) DATA SSPACR/3,2H. ,2H / INTEGER SSTOP(7) DATA SSTOP/10,2H ,2H ,2H ,2HST,2HOP,1H / INTEGER STABH(20) DATA STABH/37,2H ,2H ,2H ,2HPr,2Hoc,2Hed,2Hur,2He ,2HCr,2Hos,2H 1s-,2HRe,2Hfe,2Hre,2Hnc,2He ,2HTa,2Hbl,2He / INTEGER STSPCR(2) DATA STSPCR/1,2H / INTEGER SVER(14) DATA SVER/25,2H(F,2HLE,2HCS,2H ,2HVe,2Hrs,2Hio,2Hn ,2H22,2HH(,2H1 13,2H1),2H) / INTEGER SFLX(52) INTEGER SHOLD(52) DATA MAXFLX / 100/ INTEGER SST(102) INTEGER SLIST(102) DATA MAXSST / 200/ INTEGER STACK ( 2000) DATA MAXSTK / 2000/ INTEGER VSTACK ( 10) INTEGER VARNAM ( 10) LOGICAL VARFLG ( 10) DATA VARMAX / 10/ DATA PRIME / 53/ DATA SAFETY / 35/ LOGICAL LONG , SHORT , FAKE , COGOTO DATA LONG /.FALSE./ DATA SHORT /.TRUE. / DATA FAKE /.FALSE./ DATA COGOTO /.FALSE./ DATA NCHPWD / 2/ DATA OCHPWD / 2/ DATA SEEDNO /32767/ DATA LWIDTH / 132/ DATA CHSPAC / 32/ DATA CHTAB / 9/ DATA CHC / 67/ DATA CHD / 68/ DATA CHZERO / 48/ DATA CHDOLR / 36/ DATA CHEXCL / 33/ DATA CHCOMA / 44/ DATA CHDQOT / 34/ DATA CHQUOT / 39/ DATA CHSEMI / 59/ DATA CHLPRN / 40/ DATA CHRPRN / 41/ DATA FORTCL/ 1/, LISTCL/ 2/, ERRCL / 3/, FINCL/4/ DATA SETUP / 1/, RETRY / 2/, READ / 3/ DATA ACSEQ / 1/, AELSE / 2/, AFSEQ / 3/, AGCONT/ 4/, AGGOTO/ 5/ DATA AGSTNO/ 6/, AMSEQ / 7/, AGRET / 8/, ASSEQ / 9/, ATSEQ /10/ DATA TCEXP / 1/, TELSE / 2/, TEND / 3/, TEXEC / 4/, TFIN / 5/ DATA TTO / 6/, TINCL / 7/, TSTRNG/ 8/, TBREAK/ 9/, TNEXT /10/ DATA TFORT / 1/, TINVOK/ 2/, TIF / 3/, TUNLES/ 4/, TWHEN / 5/ DATA TCOND / 6/, TSELCT/ 7/, TDO / 8/, TWHILE/ 9/, TRWHIL/10/ DATA TUNTIL/11/, TRUNTL/12/, TLOOP /13/, TRLOOP/14/, TRETN /15/ DATA UEXP / 1/, UFORT / 2/, UOWSE / 3/, UPINV / 4/, UDO / 5/ DATA UBREAK/ 6/, UNEXT / 7/, URETN/ 8/ DATA ENONE / 0/, EICOND/ 1/, EIELSE/ 2/, EIEND / 3/, EIFIN / 4/ DATA EIFINM/ 5/, EILOOP/ 6/, EIPROC/ 7/, EIWFIN/ 8/, EIWHEN/ 9/ DATA EXFIN /10/, EXPROC/11/ DATA TLETTR/ 1/, TDIGIT/ 2/, THYPHN/ 3/, TLP / 4/, TRP / 5/ DATA TBLANK/ 6/, TOTHER/ 7/, TEOL / 8/ DATA TERROR/ 0/, TCONST/ 1/, TVARBL/ 2/ DATA LBLANK/ 1/, LCOMNT/ 2/, LDASHS/ 3/, LFLEX /4/, LINFLX/5/ DATA LINSRC/ 6/ COMMON /FLXSY1/ 1 ACSEQ ,ACTION ,AELSE ,AFSEQ ,AGCONT ,AGGOTO , 1 AGRET ,AGSTNO ,AMSEQ ,ASSEQ , ATSEQ , 1 BLN ,CALLNO ,CH ,CHC ,CHCOMA ,CHD , 1 CHDOLR ,CHDQOT ,CHEXCL ,CHLPRN ,CHQUOT ,CHRPRN , 1 CHSEMI ,CHSPAC ,CHTAB ,CHTYPE ,CHZERO ,CLASS , 1 COGOTO , CONTNO ,CPOS ,CSAVE ,CURSOR , 1 CWD ,DIGIT , DUMARG ,DUMMY ,EICOND , 1 EIELSE ,EIEND ,EIFIN ,EIFINM ,EILOOP ,EIPROC , 1 EIWFIN ,EIWHEN ,ELSNO , ENDNO , 1 ENONE ,ENTNO , ERRCL ,ERROR , 1 ERTYPE ,ESTACK ,ESTOP ,EXFIN ,EXPROC ,EXTYPE , 1 FAKE ,FINCL ,FINDEX , FLXNO ,FORTCL , 1 GGOTON ,GOTONO ,GSTNO ,HOLDNO ,I , 1 INCLVL , INDSRC , ITEMP , 1 J ,KBREAK ,KCOND ,KDEFN ,KDO ,KELSE , 1 KEND ,KFALSE ,KFIN ,KIF ,KINCL ,KLIST , 1 KLOOP ,KNEXT ,KNOLST ,KPAGE ,KREPT ,KRETN , 1 KSELCT ,KSTRNG ,KTHEN ,KTO ,KTRUE ,KUNLES , 1 KUNTIL ,KWHEN ,KWHILE ,L ,LBLANK ,LCOMNT , 1 LDASH ,LDASHS ,LEN ,LEVEL ,LFLEX ,LINENO , 1 LINFLX ,LINSRC ,LISTCL ,LL ,LONG , 1 LOOPNO ,LP ,LPCURS ,LR , LSTLEV , 1 LT ,LTOP ,LWIDTH ,MAJCNT ,MAKFIN , 1 MAX ,MAXFLX ,MAXSST ,MAXSTK ,MINCNT , 1 MLINE ,NCHPWD , NEXTNO ,NFIN , 1 NLOOP , NUMBER ,NUNITS ,NUSAV , 1 NXIFNO ,OCHPWD ,OFFSET ,OFFST2 ,P , 1 PCNT ,PDUMMY ,PENT ,POWER ,PRIME , 1 PTABLE ,Q ,QM ,QP , 1 READ ,REFNO ,RETNO ,RETRY ,RPCURS ,S , 1 SAFETY ,SASSN1 ,SASSN2 , SB ,SBGOTO , 1 SBSPCR ,SB2 ,SB4, 1SB5I1 ,SB6 ,SB6I ,SB7 , 1 SCMTSW , 1 SCNT ,SCOMMA ,SCOND ,SCONT ,SCP ,SDASH , 1 SDATA ,SDIGIT ,SDOST ,SDSPCR ,SDUM ,SEEDNO , 1 SEND ,SEQ ,SETUP , 1 SFLX ,SFNAM ,SFORCE ,SFSPCR ,SFUNC ,SGOTO , 1 SGOTOI ,SGOTOP ,SGUP1 ,SGUP2 ,SH ,SHOLD , 1 SHORT ,SICATX ,SIF , 1 SIFP ,SIFPN ,SIGN ,SINCSW , 1 SINT ,SISCMD ,SLASH , 1 SLIST ,SLP ,SNDERR ,SNE ,SNIERR , 1 SNSPCR ,SNUMBR ,SOURCE ,SOWSE ,SPB ,SPGOTO , 1 SPINV ,SPUTGO ,SRP ,SRPCI ,SSPACR ,SST , 1 SSTOP ,SSTRNG ,STABH ,STACK ,START ,STNO , 1 STRLEN ,STRTYP ,STSPCR ,SVARBL ,SVER , 1 SWITCH , 1 S1CPOS ,S1CURS ,S1CWD ,S2CPOS ,S2CURS ,S2CWD , 1 TABLCL ,TBLANK ,TBREAK ,TCEXP ,TCOND ,TCONST , 1 TDIGIT ,TDO ,TELSE ,TEND ,TEOL ,TERROR , 1 TESTNO ,TEXEC ,TFIN ,TFORT ,THYPHN ,TIF , 1 TINCL ,TINVOK ,TLETTR ,TLOOP ,TLP ,TMAX , 1 TNEXT ,TOP ,TOPNO ,TOPTYP ,TOTHER ,TRETN , 1 TRLOOP ,TRP ,TRUNTL ,TRWHIL ,TSELCT ,TSTRNG , 1 TTO ,TTOP ,TUNLES ,TUNTIL ,TVARBL ,TWHEN , 1 TWHILE ,TYPBN ,UBREAK ,UDO ,UEXP ,UFORT , 1 ULEN ,UNEXT ,UOWSE ,UPINV ,URETN ,USTART , 1 UTYPE ,VARFLG ,VARIBL ,VARMAX ,VARNAM ,VARNDX , 1 VARNUM , VSTACK ,VSTOP ,WWIDTH COMMON /FLXSY2/ ASSMBL, CONT , DONE , ENDFIL, ENDLIN, ENDPGM COMMON /FLXSY2/ ERLST , FIRST , FOUND , INCLUD, INDENT, INSERT COMMON /FLXSY2/ LSTCMT, LSTFIN, LSTFLG, MINER , NDERR , NIERR COMMON /FLXSY2/ NOPGM , NOTFLG, PARMS , PASS , QUOTE , SAVED COMMON /FLXSY2/ VARSET ASSIGN 32765 TO I32766 GO TO 32766 32765 LOOPNO=NEWNO(DUMARG) TOPNO=NEWNO(DUMARG) ENDNO=NEWNO(DUMARG) IF((2).NE.(SCNT)) GO TO 32763 LPCURS=USTART(1) RPCURS=USTART(1)-1+ULEN(1) NUSAV=NUNITS NUNITS=0 USTART(1)=LPCURS+1 ULEN(1)=S1CURS-USTART(1) ASSIGN 32761 TO I32762 GO TO 32762 32761 GOTONO=TOPNO ASSIGN 32759 TO I32760 GO TO 32760 32759 NEXTNO=LOOPNO NUNITS=0 USTART(1)=S2CURS+1 ULEN(1)=RPCURS-USTART(1) ASSIGN 32758 TO I32762 GO TO 32762 32758 ASSIGN 32756 TO I32757 GO TO 32757 32756 IF (EXTYPE.EQ.TLOOP) NEXTNO=TOPNO NUNITS=NUSAV USTART(1)=S1CURS ULEN(1)=S2CURS+1-S1CURS UTYPE(1)=UEXP CURSOR=S1CURS ASSIGN 32754 TO I32755 GO TO 32755 32754 GO TO 32752 32753 IF(CHTYPE.NE.TBLANK) GO TO 32751 32752 ASSIGN 32749 TO I32750 GO TO 32750 32749 GO TO 32753 32751 IF(.NOT.(CH.EQ.CHSEMI)) GO TO 32747 ASSIGN 32746 TO I32757 GO TO 32757 32746 GO TO 32748 32747 GOTONO=ENDNO NOTFLG=.TRUE. CALL PUTCH(SFLX(S1CWD),S1CPOS,CHLPRN) CALL PUTCH(SFLX(S2CWD),S2CPOS,CHRPRN) ASSIGN 32744 TO I32745 GO TO 32745 32744 CALL PUTCH(SFLX(S1CWD),S1CPOS,CHSEMI) CALL PUTCH(SFLX(S2CWD),S2CPOS,CHSEMI) 32748 GO TO 32764 32763 IF((0).NE.(SCNT)) GO TO 32743 IF (NEXTNO.NE.0) LOOPNO=NEXTNO NEXTNO=LOOPNO TOPNO=LOOPNO GO TO 32764 32743 IF(.NOT.(NEXTNO.NE.0)) GO TO 32741 LOOPNO=NEXTNO GO TO 32742 32741 NEXTNO=LOOPNO 32742 GOTONO=ENDNO ASSIGN 32740 TO I32760 GO TO 32760 32740 CONTINUE 32764 GSTNO=ENDNO ASSIGN 32738 TO I32739 GO TO 32739 32738 GGOTON=LOOPNO ASSIGN 32736 TO I32737 GO TO 32737 32736 ASSIGN 32734 TO I32735 GO TO 32735 32734 IF (EXTYPE.EQ.TRLOOP) NEXTNO=TOPNO RETURN 32733 CONTINUE STNO=FLXNO CALL CPYSTR(SST,SB6) IF(.NOT.(UTYPE(1).EQ.UFORT)) GO TO 32731 J=1 GO TO 32732 32731 J=2 32732 CALL CATSUB(SST,SFLX,USTART(J),ULEN(J)) ASSIGN 32729 TO I32730 GO TO 32730 32729 GO TO I32733 32728 CONTINUE ASSIGN 32726 TO I32727 GO TO 32727 32726 ENTNO=STACK(PENT+1) RETNO=NEWNO(DUMARG) MAX=MAX-(1+OFFSET) STACK(MAX+1)=STACK(PENT+3) STACK(PENT+3)=MAX+1 STACK(MAX+2)=LINENO IF (LONG.OR.COGOTO) STACK(MAX+3)=RETNO IF(.NOT.(COGOTO)) GO TO 32724 STACK(PENT-2)=STACK(PENT-2)+1 CALL CPYSTR(SST,SB6I) CALL CATNUM(SST,ENTNO) CALL CATSTR(SST,SEQ) CALL CATNUM(SST,STACK(PENT-2)) GO TO 32725 32724 CALL CPYSTR(SST,SASSN1) CALL CATNUM(SST,RETNO) CALL CATSTR(SST,SASSN2) CALL CATNUM(SST,ENTNO) 32725 STNO=FLXNO ASSIGN 32723 TO I32730 GO TO 32730 32723 GOTONO=ENTNO ASSIGN 32722 TO I32760 GO TO 32760 32722 NEXTNO=RETNO GO TO I32728 32762 CONTINUE CURSOR=USTART(1) ASSIGN 32721 TO I32755 GO TO 32755 32721 IF(.NOT.(CHTYPE.EQ.TBLANK .AND. ULEN(1).GT.0)) GO TO 32720 USTART(1)=USTART(1)+1 ULEN(1)=ULEN(1)-1 ASSIGN 32719 TO I32750 GO TO 32750 32719 GO TO 32721 32720 CURSOR=USTART(1)-1+ULEN(1) ASSIGN 32718 TO I32755 GO TO 32755 32718 IF(.NOT.(CHTYPE.EQ.TBLANK .AND. ULEN(1).GT.0)) GO TO 32717 ULEN(1)=ULEN(1)-1 CURSOR=CURSOR-1 ASSIGN 32716 TO I32755 GO TO 32755 32716 GO TO 32718 32717 IF(.NOT.(ULEN(1).EQ.0)) GO TO 32714 ASSIGN 32713 TO I32757 GO TO 32757 32713 GO TO 32715 32714 CURSOR=USTART(1) ASSIGN 32712 TO I32755 GO TO 32755 32712 ASSIGN 32710 TO I32711 GO TO 32711 32710 IF(.NOT.(FOUND)) GO TO 32708 ASSIGN 32707 TO I32728 GO TO 32728 32707 GO TO 32709 32708 NUNITS=1 UTYPE(NUNITS)=UFORT ASSIGN 32706 TO I32733 GO TO 32733 32706 CONTINUE 32709 CONTINUE 32715 GO TO I32762 32727 CONTINUE IF(.NOT.(UTYPE(1).EQ.UPINV)) GO TO 32704 J=1 GO TO 32705 32704 J=2 32705 CALL CPYSUB(SPINV,SFLX,USTART(J),ULEN(J)) CALL STRUC(SPINV) IF(.NOT.(STREQ(SPINV,SDUM))) GO TO 32702 PENT=PDUMMY STACK(PENT+2)=0 GO TO 32703 32702 P=MAXSTK-HASH(SPINV,PRIME) FOUND=.FALSE. 32701 IF(STACK(P).EQ.0.OR.FOUND) GO TO 32700 P=STACK(P) IF (STREQ(SPINV,STACK(P+4))) FOUND=.TRUE. GO TO 32701 32700 IF(.NOT.(FOUND)) GO TO 32698 PENT=P GO TO 32699 32698 TMAX=MAX-(4+OFFST2+(SPINV(1)+NCHPWD-1)/NCHPWD) IF(.NOT.(TMAX.LE.TOP+SAFETY)) GO TO 32696 PENT=PDUMMY STACK(PENT+2)=0 GO TO 32697 32696 MAX=TMAX PENT=MAX+OFFST2 IF (LONG.OR.COGOTO) STACK(PENT-1)=NEWNO(DUMARG) IF (COGOTO) STACK(PENT-2)=0 STACK(PENT)=0 STACK(P)=PENT STACK(PENT+1)=NEWNO(DUMARG) STACK(PENT+2)=0 STACK(PENT+3)=0 CALL CPYSTR(STACK(PENT+4),SPINV) 32697 CONTINUE 32699 CONTINUE 32703 GO TO I32727 32735 CONTINUE STACK(TOP)=-IABS(STACK(TOP)) GO TO I32735 32757 CONTINUE IF(.NOT.(NEXTNO.NE.0)) GO TO 32695 CALL PUTNUM(SFORCE,NEXTNO) CALL PUT(LINENO,SFORCE,FORTCL) NEXTNO=0 32695 GO TO I32757 32750 CONTINUE CURSOR=CURSOR+1 CPOS=CPOS+1 IF(.NOT.(CPOS.GT.NCHPWD)) GO TO 32694 CWD=CWD+1 CPOS=1 32694 IF(.NOT.(CURSOR.GT.SFLX(1))) GO TO 32692 CH = -1 CHTYPE=TEOL GO TO 32693 32692 CALL GETCH(SFLX(CWD),CPOS,CH) CHTYPE=CHTYP(CH) 32693 GO TO I32750 32737 CONTINUE TOP=TOP+2 STACK(TOP-1)=GGOTON STACK(TOP)=AGGOTO GO TO I32737 32739 CONTINUE TOP=TOP+2 STACK(TOP-1)=GSTNO STACK(TOP)=AGSTNO GO TO I32739 32760 CONTINUE CALL CPYSTR(SPUTGO,SGOTO) CALL CATNUM(SPUTGO,GOTONO) IF(.NOT.(NEXTNO.NE.0)) GO TO 32691 CALL PUTNUM(SPUTGO,NEXTNO) NEXTNO=0 32691 CALL PUT(LINENO,SPUTGO,FORTCL) GO TO I32760 32745 CONTINUE IF(.NOT.(NOTFLG)) GO TO 32689 CALL CPYSTR(SST,SIFPN) GO TO 32690 32689 CALL CPYSTR(SST,SIF) 32690 CALL CATSUB(SST,SFLX,USTART(1),ULEN(1)) IF(.NOT.(NOTFLG)) GO TO 32687 CALL CATSTR(SST,SPGOTO) GO TO 32688 32687 CALL CATSTR(SST,SBGOTO) 32688 CALL CATNUM(SST,GOTONO) ASSIGN 32686 TO I32730 GO TO 32730 32686 NOTFLG=.TRUE. GO TO I32745 32730 CONTINUE IF(NEXTNO.EQ.0) GO TO 32685 IF(.NOT.(STNO.EQ.0)) GO TO 32683 STNO=NEXTNO NEXTNO=0 GO TO 32684 32683 ASSIGN 32682 TO I32757 GO TO 32757 32682 CONTINUE 32684 CONTINUE 32685 IF(STNO.EQ.0) GO TO 32681 CALL PUTNUM(SST,STNO) STNO=0 32681 IF(.NOT.(SST(1).LE.72)) GO TO 32679 CALL PUT(LINENO,SST,FORTCL) GO TO 32680 32679 CALL CPYSUB (SLIST,SST,1,72) CALL PUT(LINENO,SLIST,FORTCL) S=73 L=66 GO TO 32677 32678 IF(S.GT.SST(1)) GO TO 32676 32677 IF(S+L-1.GT.SST(1)) L=SST(1)-S+1 CALL CPYSTR(SLIST,SB5I1) CALL CATSUB(SLIST,SST,S,L) CALL PUT(LINENO,SLIST,FORTCL) S=S+66 GO TO 32678 32676 CONTINUE 32680 GO TO I32730 32755 CONTINUE CURSOR=CURSOR-1 CWD=(CURSOR-1)/NCHPWD+2 CPOS=CURSOR-(CWD-2)*NCHPWD ASSIGN 32675 TO I32750 GO TO 32750 32675 GO TO I32755 32711 CONTINUE 32674 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32673 ASSIGN 32672 TO I32750 GO TO 32750 32672 GO TO 32674 32673 FOUND=.FALSE. START=CURSOR IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32671 GO TO 32669 32670 IF(.NOT.(CHTYPE.LE.THYPHN)) GO TO 32668 32669 ASSIGN 32667 TO I32750 GO TO 32750 32667 IF(CHTYPE.EQ.THYPHN) FOUND=.TRUE. GO TO 32670 32668 CONTINUE 32671 LEN=CURSOR-START IF(.NOT.(FOUND)) GO TO 32666 NUNITS=NUNITS+1 UTYPE(NUNITS)=UPINV USTART(NUNITS)=START ULEN(NUNITS)=LEN 32666 GO TO I32711 32766 CONTINUE IF(.NOT.(FLXNO.NE.0)) GO TO 32665 ASSIGN 32664 TO I32757 GO TO 32757 32664 NEXTNO=FLXNO FLXNO=0 32665 GO TO I32766 END