SUBROUTINE ANALYZ 01300 INTEGER BLN , CH , CHC , CHSPAC, CHTYP , CHTYPE 09850 INTEGER CHZERO, CLASS , CPOS , CSAVE , CURSOR, CWD 09900 INTEGER ERRCL , ERROR , ERRSTK, ERSTOP 09950 INTEGER EXTYPE, FLXNO , FORTCL, HOLDNO, I , KCOND 10000 INTEGER KDO , KELSE , KEND , KFIN , KIF , KREPT 10050 INTEGER KSELCT, KTO , KUNLES, KUNTIL, KWHEN , KWHILE 10100 INTEGER LEN , LEVEL , LINENO, LISTCL, LSTLEV, MAJCNT 10150 INTEGER MINCNT, MLINE , NCHPWD, NUNITS, PCNT , PTABLE, QP 10200 INTEGER READ , REFNO ,RETRY , SB , SB5 , SB6 10250 INTEGER SB7 , SDASH , SDUM , SEND , SETUP , SFLX 10300 INTEGER SFSPCR, SHOLD , SLIST , SLP , SOURCE, SOWSE 10350 INTEGER SP , SPINV , SPUTGO, SRP , SSPACR, SST 10400 INTEGER SSTMAX, STACK , START , TBLANK, TCEXP , TCOND 10450 INTEGER TDIGIT, TDO , TELSE , TEND , TEOL , TEXEC 10500 INTEGER TFIN , TFORT , THYPHN, TIF , TINVOK, TLETTR 10550 INTEGER TLP , TOP , TOTHER, TRP , TRUNTL, TRWHIL 10600 INTEGER TSELCT, TTO , TUNLES, TUNTIL, TWHEN , TWHILE 10650 INTEGER UDO , UEXP , UFORT , ULEN , UOWSE , UPINV 10700 INTEGER USTART, UTYPE , WWIDTH 10750 LOGICAL BADCH , CONT , DONE ,ENDFIL, ENDPGM, ERLST , FIRST 12450 LOGICAL FOUND , INDENT, INVOKE, NOPGM , PASS , SAVED , STREQ 12500 DIMENSION UTYPE(3), USTART(3), ULEN(3) 13050 DIMENSION STACK(2000) 13200 DIMENSION ERRSTK(5) 13350 COMMON BLN , CLASS , DONE , ENDFIL, ENDPGM, ERLST 13850 COMMON ERROR , ERRSTK, ERSTOP, EXTYPE, FIRST , FLXNO 13900 COMMON FOUND , HOLDNO, LEVEL , LINENO, LSTLEV, MAJCNT 13950 COMMON MINCNT, MLINE , NOPGM , NUNITS, PASS , PTABLE, QP 14000 COMMON REFNO , SAVED , SFLX , SHOLD , SLIST , SOURCE 14050 COMMON SPINV , SPUTGO, SST , STACK , TOP , ULEN 14100 COMMON USTART, UTYPE , WWIDTH 14150 COMMON /PARAM/ NCHPWD, CHZERO, CHSPAC, CHC 20900 DIMENSION SFLX (51) 21601 DIMENSION SHOLD (51) 21651 DIMENSION SLIST (101) 21701 DIMENSION SPINV (41) 21751 DIMENSION SPUTGO (11) 21801 DIMENSION SST (101) 21851 DIMENSION SB (2) 22301 DIMENSION SB5 (4) 22601 DIMENSION SB6 (4) 22801 DIMENSION SB7 (5) 22851 DIMENSION SDASH (21) 23401 DIMENSION SDUM (9) 23501 DIMENSION SEND (6) 23701 DIMENSION SFSPCR (3) 24051 DIMENSION SLP (2) 25301 DIMENSION SOWSE (7) 25501 DIMENSION SRP (2) 26201 DIMENSION SSPACR (3) 26401 DIMENSION KCOND (7) 27801 DIMENSION KDO (2) 27851 DIMENSION KELSE (3) 27901 DIMENSION KEND (3) 27951 DIMENSION KFIN (3) 28001 DIMENSION KIF (2) 28051 DIMENSION KREPT (4) 28101 DIMENSION KSELCT (4) 28151 DIMENSION KTO (2) 28201 DIMENSION KUNLES (4) 28251 DIMENSION KUNTIL (4) 28301 DIMENSION KWHEN (3) 28351 DIMENSION KWHILE (4) 28401 DATA FORTCL /1/, LISTCL /2/, ERRCL /3/ 30001 DATA UEXP/1/, UFORT/2/, UOWSE/3/, UPINV/4/, UDO/5/ 30002 DATA TLETTR/1/, TDIGIT/2/, THYPHN/3/, TLP/4/, TRP/5/ 30003 DATA TBLANK/6/, TOTHER/7/, TEOL/8/ 30004 DATA TCEXP/1/, TELSE/2/, TEND/3/, TEXEC/4/, TFIN/5/, TTO/6/ 30005 DATA TCOND/1/, TDO/2/, TFORT/3/, TIF/4/, TINVOK/5/, TRUNTL/6/ 30006 DATA TRWHIL/7/, TSELCT/8/, TUNLES/9/, TUNTIL/10/, TWHEN/11/ 30007 DATA TWHILE/12/ 30008 DATA SETUP /1/, RETRY /2/, READ /3/ 30009 DATA SSTMAX /200/ 30010 DATA SB / 1, 1H / 30011 DATA SB5 / 5, 2H , 2H , 1H / 30012 DATA SB6 / 6, 2H , 2H , 2H / 30013 DATA SB7 / 7, 2H , 2H , 2H , 1H / 30014 DATA SDASH / 40, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H-- 30015 1 , 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H--, 2H-- 30016 1 , 2H--, 2H--, 2H--, 2H--/ 30017 DATA SDUM / 15, 2HDU, 2HMM, 2HY-, 2HPR, 2HOC, 2HED, 2HUR, 1HE/ 30018 DATA SEND / 9, 2H , 2H , 2H , 2HEN, 1HD/ 30019 DATA SFSPCR / 3, 2H.., 1H./ 30020 DATA SLP / 1, 1H(/ 30021 DATA SOWSE / 11, 2H(O, 2HTH, 2HER, 2HWI, 2HSE, 1H)/ 30022 DATA SRP / 1, 1H)/ 30023 DATA SSPACR / 3, 2H. , 1H / 30024 DATA KCOND / 11, 2HCO, 2HND, 2HIT, 2HIO, 2HNA, 1HL/ 30025 DATA KDO / 2, 2HDO/ 30026 DATA KELSE / 4, 2HEL, 2HSE/ 30027 DATA KEND / 3, 2HEN, 1HD/ 30028 DATA KFIN / 3, 2HFI, 1HN/ 30029 DATA KIF / 2, 2HIF/ 30030 DATA KREPT / 6, 2HRE, 2HPE, 2HAT/ 30031 DATA KSELCT / 6, 2HSE, 2HLE, 2HCT/ 30032 DATA KTO / 2, 2HTO/ 30033 DATA KUNLES / 6, 2HUN, 2HLE, 2HSS/ 30034 DATA KUNTIL / 5, 2HUN, 2HTI, 1HL/ 30035 DATA KWHEN / 4, 2HWH, 2HEN/ 30036 DATA KWHILE / 5, 2HWH, 2HIL, 1HE/ 30037 IF((READ).NE.(SOURCE)) GO TO 32758 35900 ASSIGN 32756 TO I32757 35901 GO TO 32757 35902 32756 GO TO 32759 35950 32758 IF((SETUP).NE.(SOURCE)) GO TO 32755 35951 GO TO 32759 36000 32755 IF((RETRY).NE.(SOURCE)) GO TO 32754 36001 LINENO=HOLDNO 36050 CALL CPYSTR(SFLX,SHOLD) 36100 32754 CONTINUE 36200 32759 ERROR=0 36250 SAVED=.FALSE. 36300 NUNITS=0 36350 ERSTOP=0 36400 CURSOR=0 36450 CWD=2 36500 CPOS=0 36550 CLASS=0 36600 ASSIGN 32752 TO I32753 36650 GO TO 32753 36651 32752 ASSIGN 32750 TO I32751 36700 GO TO 32751 36701 32750 IF(.NOT.(CONT.OR.PASS)) GO TO 32748 36750 CLASS=TEXEC 36800 EXTYPE=TFORT 36850 GO TO 32749 36900 32748 ASSIGN 32746 TO I32747 36950 GO TO 32747 36951 32746 CONTINUE 36952 32749 IF((TEXEC).NE.(CLASS)) GO TO 32744 37050 IF((TFORT).NE.(EXTYPE)) GO TO 32742 37150 GO TO 32743 37200 32742 IF((TINVOK).NE.(EXTYPE)) GO TO 32741 37201 ASSIGN 32739 TO I32740 37202 GO TO 32740 37203 32739 GO TO 32743 37250 32741 IF((TCOND).NE.(EXTYPE)) GO TO 32738 37251 ASSIGN 32737 TO I32740 37252 GO TO 32740 37253 32737 GO TO 32743 37300 32738 IF((TSELCT).NE.(EXTYPE)) GO TO 32736 37301 ASSIGN 32734 TO I32735 37350 GO TO 32735 37351 32734 IF(.NOT.(NUNITS.GT.1)) GO TO 32733 37400 NUNITS=1 37450 CURSOR=USTART(2) 37500 ASSIGN 32731 TO I32732 37550 GO TO 32732 37551 32731 ASSIGN 32730 TO I32740 37600 GO TO 32740 37601 32730 CONTINUE 37650 32733 GO TO 32743 37750 32736 ASSIGN 32729 TO I32735 37751 GO TO 32735 37752 32729 CONTINUE 37800 32743 GO TO 32745 37900 32744 IF((TFIN).NE.(CLASS)) GO TO 32728 37901 ASSIGN 32727 TO I32740 37902 GO TO 32740 37903 32727 GO TO 32745 37950 32728 IF((TEND).NE.(CLASS)) GO TO 32726 37951 GO TO 32745 38000 32726 IF((TELSE).NE.(CLASS)) GO TO 32725 38001 ASSIGN 32723 TO I32724 38002 GO TO 32724 38003 32723 GO TO 32745 38050 32725 IF((TTO).NE.(CLASS)) GO TO 32722 38051 CSAVE=CURSOR 38100 ASSIGN 32720 TO I32721 38150 GO TO 32721 38151 32720 IF(.NOT.(FOUND)) GO TO 32718 38200 ASSIGN 32717 TO I32724 38201 GO TO 32724 38202 32717 GO TO 32719 38203 32718 ERSTOP=ERSTOP+1 38300 ERRSTK(ERSTOP)=5 38350 ASSIGN 32715 TO I32716 38400 GO TO 32716 38401 32715 SFLX(1)=CSAVE 38450 CALL CATSTR(SFLX,SDUM) 38500 CURSOR=CSAVE 38550 ASSIGN 32714 TO I32732 38600 GO TO 32732 38601 32714 ASSIGN 32713 TO I32721 38650 GO TO 32721 38651 32713 CONTINUE 38700 32719 GO TO 32745 38800 32722 IF((TCEXP).NE.(CLASS)) GO TO 32712 38801 ASSIGN 32711 TO I32735 38802 GO TO 32735 38803 32711 CONTINUE 38850 32712 CONTINUE 38851 32745 IF(ERSTOP.GT.0) CLASS=0 38900 LSTLEV=LEVEL 38950 RETURN 39060 32710 CONTINUE 59000 CURSOR=CURSOR+1 59050 CPOS=CPOS+1 59100 IF(.NOT.(CPOS.GT.NCHPWD)) GO TO 32709 59150 CWD=CWD+1 59200 CPOS=1 59250 32709 IF(.NOT.(CURSOR.GT.SFLX(1))) GO TO 32707 59350 CHTYPE=TEOL 59351 GO TO 32708 59352 32707 CALL GETCH(SFLX(CWD),CPOS,CH) 59450 CHTYPE=CHTYP(CH) 59500 32708 GO TO I32710 59600 32706 CONTINUE 62200 LSTLEV=LEVEL 62220 IF(.NOT.(LSTLEV.EQ.0.OR.(SSPACR(1)*LSTLEV+SB6(1).GT.WWIDTH))) GO T 62250 1O 32704 62251 CALL PUT(BLN,SB,LISTCL) 62260 GO TO 32705 62270 32704 CALL CPYSTR(SLIST,SB6) 62350 DO 32703 I=1,LSTLEV 62400 CALL CATSTR(SLIST,SSPACR) 62401 32703 CONTINUE 62402 CALL PUT(BLN,SLIST,LISTCL) 62500 32705 BLN=0 62600 GO TO I32706 62650 32702 CONTINUE 62750 CURSOR=1 62800 ASSIGN 32701 TO I32732 62850 GO TO 32732 62851 32701 INDENT=.TRUE. 62900 I=2 62950 GO TO 32699 63000 32700 IF(.NOT.(I.LE.6.AND.INDENT)) GO TO 32698 63001 32699 ASSIGN 32697 TO I32710 63050 GO TO 32710 63051 32697 IF (CHTYPE.NE.TBLANK.AND.CHTYPE.NE.TEOL) INDENT=.FALSE. 63100 I=I+1 63150 GO TO 32700 63200 32698 IF(.NOT.(INDENT)) GO TO 32695 63250 LSTLEV=LEVEL 63300 CLASS=0 63325 ASSIGN 32693 TO I32694 63350 GO TO 32694 63351 32693 GO TO 32696 63450 32695 CALL PUT(LINENO,SFLX,LISTCL) 63500 32696 GO TO I32702 63550 32692 CONTINUE 63650 CALL PUT(0,SB,LISTCL) 63700 CALL PUT(0,SDASH,LISTCL) 63750 CALL PUT(0,SB,LISTCL) 63800 GO TO I32692 63850 32694 CONTINUE 63950 IF(.NOT.(CLASS.EQ.TTO)) GO TO 32691 64000 ASSIGN 32690 TO I32692 64001 GO TO 32692 64002 32690 CONTINUE 64003 32691 IF (SFLX(1).LT.7) CALL CATSTR(SFLX,SB7) 64050 CALL CPYSUB(SLIST,SFLX,1,6) 64100 IF(LSTLEV.EQ.0.OR.(SSPACR(1)*LSTLEV+SFLX(1).GT.WWIDTH)) GO TO 3268 64150 19 64151 DO 32688 I=1,LSTLEV 64200 CALL CATSTR(SLIST,SSPACR) 64201 32688 CONTINUE 64202 IF(.NOT.(CLASS.EQ.TFIN)) GO TO 32687 64300 SLIST(1)=SLIST(1)-SSPACR(1) 64350 CALL CATSTR(SLIST,SFSPCR) 64400 32687 CONTINUE 64460 32689 CALL CATSUB(SLIST,SFLX,7,SFLX(1)-6) 64500 IF (SLIST(1).GT.WWIDTH) CALL CPYSTR(SLIST,SFLX) 64550 IF(.NOT.(ERLST)) GO TO 32685 64600 CALL PUT(LINENO,SLIST,ERRCL) 64650 ERLST=.FALSE. 64700 GO TO 32686 64750 32685 CALL PUT(LINENO,SLIST,LISTCL) 64800 32686 GO TO I32694 64850 32757 CONTINUE 80550 GO TO 32683 80600 32684 IF(FOUND) GO TO 32682 80601 32683 CALL GET(LINENO,SFLX,ENDFIL) 80650 IF(.NOT.(FIRST)) GO TO 32681 80700 32680 IF(SFLX(1).GT.0.OR.ENDFIL) GO TO 32679 80725 CALL GET(LINENO,SFLX,ENDFIL) 80726 GO TO 32680 80727 32679 FIRST=.FALSE. 80750 IF(ENDFIL) NOPGM=.TRUE. 80800 32681 IF(.NOT.(ENDFIL)) GO TO 32678 80900 CALL CPYSTR(SFLX,SEND) 80950 LINENO=0 81000 32678 CALL GETCH(SFLX(2),1,CH) 81100 IF(.NOT.(SFLX(1).EQ.0)) GO TO 32676 81200 BLN=LINENO 81250 ASSIGN 32675 TO I32706 81300 GO TO 32706 81301 32675 FOUND=.FALSE. 81350 GO TO 32677 81450 32676 IF(.NOT.(CH.EQ.CHC)) GO TO 32674 81451 ASSIGN 32673 TO I32702 81500 GO TO 32702 81501 32673 FOUND=.FALSE. 81550 GO TO 32677 81650 32674 FOUND=.TRUE. 81651 32677 GO TO 32684 81750 32682 GO TO I32757 81800 32732 CONTINUE 81850 CURSOR=CURSOR-1 81900 CWD=(CURSOR-1)/NCHPWD+2 81950 CPOS=CURSOR-(CWD-2)*NCHPWD 82000 ASSIGN 32672 TO I32710 82050 GO TO 32710 82051 32672 GO TO I32732 82100 32716 CONTINUE 82800 IF(SAVED) GO TO 32671 82850 SAVED=.TRUE. 82900 HOLDNO=LINENO 82950 CALL CPYSTR(SHOLD,SFLX) 83000 32671 GO TO I32716 83100 32751 CONTINUE 83200 ASSIGN 32670 TO I32710 83250 GO TO 32710 83251 32670 IF(.NOT.(CHTYPE.EQ.TEOL)) GO TO 32668 83350 CONT=.FALSE. 83351 GO TO 32669 83400 32668 IF(.NOT.(CH.EQ.CHZERO.OR.CH.EQ.CHSPAC)) GO TO 32667 83401 CONT=.FALSE. 83402 GO TO 32669 83450 32667 CONT=.TRUE. 83451 32669 GO TO I32751 83550 32735 CONTINUE 83600 32666 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32665 83650 ASSIGN 32664 TO I32710 83651 GO TO 32710 83652 32664 GO TO 32666 83653 32665 START=CURSOR 83700 IF(.NOT.(CHTYPE.NE.TLP)) GO TO 32663 83750 ERSTOP=ERSTOP+1 83800 ERRSTK(ERSTOP)=3 83850 ASSIGN 32662 TO I32716 83900 GO TO 32716 83901 32662 CALL CPYSTR(SST,SFLX) 83950 SFLX(1)=START-1 84000 CALL CATSTR(SFLX,SLP) 84050 CALL CATSUB(SFLX,SST,START,SST(1)-START-1) 84100 32663 PCNT=1 84200 FOUND=.TRUE. 84250 GO TO 32660 84300 32661 IF(PCNT.EQ.0.OR..NOT.FOUND) GO TO 32659 84301 32660 ASSIGN 32658 TO I32710 84350 GO TO 32710 84351 32658 IF((TRP).NE.(CHTYPE)) GO TO 32656 84450 PCNT=PCNT-1 84451 GO TO 32657 84500 32656 IF((TLP).NE.(CHTYPE)) GO TO 32655 84501 PCNT=PCNT+1 84502 GO TO 32657 84550 32655 IF((TEOL).NE.(CHTYPE)) GO TO 32654 84551 FOUND=.FALSE. 84552 32654 CONTINUE 84600 32657 GO TO 32661 84650 32659 IF(FOUND) GO TO 32653 84700 ERSTOP=ERSTOP+1 84750 ERRSTK(ERSTOP)=4 84800 ASSIGN 32652 TO I32716 84850 GO TO 32716 84851 32652 DO 32651 I=1,PCNT 84900 CALL CATSTR(SFLX,SRP) 84901 32651 CONTINUE 84902 CURSOR=SFLX(1) 84950 ASSIGN 32650 TO I32732 85000 GO TO 32732 85001 32650 CONTINUE 85050 32653 ASSIGN 32649 TO I32710 85100 GO TO 32710 85101 32649 NUNITS=NUNITS+1 85150 UTYPE(NUNITS)=UEXP 85200 USTART(NUNITS)=START 85250 ULEN(NUNITS)=CURSOR-START 85300 CALL CPYSUB(SST,SFLX,START,CURSOR-START) 85350 IF(STREQ(SST,SOWSE)) UTYPE(NUNITS)=UOWSE 85400 ASSIGN 32648 TO I32724 85450 GO TO 32724 85451 32648 GO TO I32735 85500 32740 CONTINUE 85550 32647 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32646 85600 ASSIGN 32645 TO I32710 85601 GO TO 32710 85602 32645 GO TO 32647 85603 32646 IF(.NOT.(CHTYPE.NE.TEOL)) GO TO 32644 85650 ERSTOP=ERSTOP+1 85700 ERRSTK(ERSTOP)=2 85750 ASSIGN 32643 TO I32716 85800 GO TO 32716 85801 32643 SFLX(1)=CURSOR-1 85850 32644 GO TO I32740 85950 32747 CONTINUE 86000 ASSIGN 32642 TO I32710 86050 GO TO 32710 86051 32642 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32641 86100 ASSIGN 32640 TO I32710 86101 GO TO 32710 86102 32640 GO TO 32642 86103 32641 IF((TLETTR).NE.(CHTYPE)) GO TO 32638 86200 START=CURSOR 86250 INVOKE=.FALSE. 86300 BADCH=.FALSE. 86350 GO TO 32636 86400 32637 IF(BADCH) GO TO 32635 86401 32636 ASSIGN 32634 TO I32710 86450 GO TO 32710 86451 32634 IF(.NOT.(CHTYPE.LE.TDIGIT)) GO TO 32632 86550 GO TO 32633 86600 32632 IF(.NOT.(CHTYPE.EQ.THYPHN)) GO TO 32631 86601 INVOKE=.TRUE. 86602 GO TO 32633 86650 32631 BADCH=.TRUE. 86651 32633 GO TO 32637 86750 32635 LEN=CURSOR-START 86800 IF(.NOT.(INVOKE)) GO TO 32629 86850 CLASS=TEXEC 86900 EXTYPE=TINVOK 86950 NUNITS=1 87000 UTYPE(1)=UPINV 87050 USTART(1)=START 87100 ULEN(1)=LEN 87150 GO TO 32630 87200 32629 CALL CPYSUB(SST,SFLX,START,LEN) 87300 CLASS=TEXEC 87350 EXTYPE=TFORT 87400 IF((2).NE.(SST(1))) GO TO 32627 87500 IF(.NOT.(STREQ(SST,KIF))) GO TO 32625 87600 EXTYPE=TIF 87601 GO TO 32626 87650 32625 IF(.NOT.(STREQ(SST,KTO))) GO TO 32624 87651 CLASS=TTO 87652 GO TO 32626 87700 32624 IF(.NOT.(STREQ(SST,KDO))) GO TO 32623 87701 32622 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32621 87750 ASSIGN 32620 TO I32710 87751 GO TO 32710 87752 32620 GO TO 32622 87753 32621 IF(.NOT.(CHTYPE.EQ.TDIGIT)) GO TO 32618 87800 EXTYPE=TFORT 87801 GO TO 32619 87802 32618 EXTYPE=TDO 87850 32619 CONTINUE 87950 32623 CONTINUE 87951 32626 GO TO 32628 88050 32627 IF((3).NE.(SST(1))) GO TO 32617 88051 IF(.NOT.(STREQ(SST,KFIN))) GO TO 32615 88150 CLASS=TFIN 88151 GO TO 32616 88200 32615 IF(.NOT.(STREQ(SST,KEND))) GO TO 32614 88201 IF (CHTYPE.EQ.TEOL) CLASS=TEND 88250 32614 CONTINUE 88350 32616 GO TO 32628 88450 32617 IF((4).NE.(SST(1))) GO TO 32613 88451 IF(.NOT.(STREQ(SST,KWHEN))) GO TO 32611 88550 EXTYPE=TWHEN 88551 GO TO 32612 88600 32611 IF(.NOT.(STREQ(SST,KELSE))) GO TO 32610 88601 CLASS=TELSE 88602 32610 CONTINUE 88650 32612 GO TO 32628 88750 32613 IF((5).NE.(SST(1))) GO TO 32609 88751 IF(.NOT.(STREQ(SST,KWHILE))) GO TO 32607 88850 EXTYPE=TWHILE 88851 GO TO 32608 88900 32607 IF(.NOT.(STREQ(SST,KUNTIL))) GO TO 32606 88901 EXTYPE=TUNTIL 88902 32606 CONTINUE 88950 32608 GO TO 32628 89050 32609 IF((6).NE.(SST(1))) GO TO 32605 89051 IF(.NOT.(STREQ(SST,KREPT))) GO TO 32603 89150 32602 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32601 89200 ASSIGN 32600 TO I32710 89201 GO TO 32710 89202 32600 GO TO 32602 89203 32601 START=CURSOR 89250 32599 IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32598 89300 ASSIGN 32597 TO I32710 89301 GO TO 32710 89302 32597 GO TO 32599 89303 32598 LEN=CURSOR-START 89350 CALL CPYSUB(SST,SFLX,START,LEN) 89400 IF(.NOT.(STREQ(SST,KWHILE))) GO TO 32595 89500 EXTYPE=TRWHIL 89501 GO TO 32596 89550 32595 IF(.NOT.(STREQ(SST,KUNTIL))) GO TO 32594 89551 EXTYPE=TRUNTL 89552 32594 CONTINUE 89600 32596 GO TO 32604 89700 32603 IF(.NOT.(STREQ(SST,KSELCT))) GO TO 32593 89701 EXTYPE=TSELCT 89702 GO TO 32604 89750 32593 IF(.NOT.(STREQ(SST,KUNLES))) GO TO 32592 89751 EXTYPE=TUNLES 89752 32592 CONTINUE 89800 32604 GO TO 32628 89900 32605 IF((11).NE.(SST(1))) GO TO 32591 89901 IF (STREQ(SST,KCOND)) EXTYPE=TCOND 89950 32591 CONTINUE 90050 32628 CONTINUE 90100 32630 GO TO 32639 90200 32638 IF((TLP).NE.(CHTYPE)) GO TO 32590 90201 CLASS=TCEXP 90202 GO TO 32639 90250 32590 CLASS=TEXEC 90300 EXTYPE=TFORT 90350 32639 GO TO I32747 90500 32721 CONTINUE 90550 32589 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32588 90600 ASSIGN 32587 TO I32710 90601 GO TO 32710 90602 32587 GO TO 32589 90603 32588 FOUND=.FALSE. 90650 IF(.NOT.(CHTYPE.EQ.TLETTR)) GO TO 32586 90700 START=CURSOR 90750 GO TO 32584 90800 32585 IF(CHTYPE.GT.THYPHN) GO TO 32583 90801 32584 ASSIGN 32582 TO I32710 90850 GO TO 32710 90851 32582 IF(CHTYPE.EQ.THYPHN) FOUND=.TRUE. 90900 GO TO 32585 90950 32583 CONTINUE 91000 32586 IF(.NOT.(FOUND)) GO TO 32581 91050 NUNITS=NUNITS+1 91100 UTYPE(NUNITS)=UPINV 91150 USTART(NUNITS)=START 91200 ULEN(NUNITS)=CURSOR-START 91250 32581 GO TO I32721 91350 32724 CONTINUE 91400 32580 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32579 91450 ASSIGN 32578 TO I32710 91451 GO TO 32710 91452 32578 GO TO 32580 91453 32579 IF(CHTYPE.EQ.TEOL) GO TO 32577 91500 CSAVE=CURSOR 91550 ASSIGN 32576 TO I32721 91600 GO TO 32721 91601 32576 IF(.NOT.(FOUND)) GO TO 32574 91650 ASSIGN 32573 TO I32740 91651 GO TO 32740 91652 32573 GO TO 32575 91653 32574 NUNITS=NUNITS+1 91750 UTYPE(NUNITS)=UFORT 91800 USTART(NUNITS)=CSAVE 91850 ULEN(NUNITS)=SFLX(1)+1-CSAVE 91900 32575 CONTINUE 92000 32577 GO TO I32724 92050 32753 CONTINUE 92100 FLXNO=0 92150 PASS=.FALSE. 92175 DO 32572 I=1,5 92200 ASSIGN 32571 TO I32710 92250 GO TO 32710 92251 32571 IF((TBLANK).NE.(CHTYPE)) GO TO 32569 92350 GO TO 32570 92400 32569 IF((TDIGIT).NE.(CHTYPE)) GO TO 32568 92401 FLXNO=FLXNO*10+CH-CHZERO 92402 GO TO 32570 92450 32568 IF((TEOL).NE.(CHTYPE)) GO TO 32567 92451 GO TO 32570 92500 32567 PASS=.TRUE. 92501 32570 CONTINUE 92850 32572 CONTINUE 92851 GO TO I32753 93300 END 95400 END 95400