      SUBROUTINE EXTER0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER ID,PARAMS,MODE,DM
      INTEGER SC,JUNK,ISSTO0
      INTEGER Q
      INTEGER AAAAA0
      INTEGER AAAAB0
      INTEGER AAAAC0
      INTEGER AAAAD0
      INTEGER AAAAE0
      INTEGER AAAAF0
      INTEGER AAAAG0
      INTEGER AAAAH0
      INTEGER AAAAI0
      INTEGER AAAAJ0
      INTEGER AAAAK0
      INTEGER AAAAL0
      INTEGER AAAAM0
      INTEGER AAAAN0
      INTEGER AAAAO0
      INTEGER AAAAP0
      INTEGER AAAAQ0
      CALL SSALL0(2)
      SEMSK0(SEMSP0-1)=SC
      SEMSK0(SEMSP0-2)=MODE
      CALL DECLS0(STATE)
      AAAAA0=STATE
      GOTO 10000
10001   GPST=2
        RETURN
10002   SC=SEMSK0(SEMSP0-1)
        MODE=SEMSK0(SEMSP0-2)
        CALL SSDEA0(2)
        ID=0
        PARAMS=0
        CALL SSALL0(2)
        SEMSK0(SEMSP0-1)=ID
        SEMSK0(SEMSP0-2)=PARAMS
      GOTO 10003
10000 AAAAB0=AAAAA0-1
      GOTO(10001,10002),AAAAB0
10003 IF((STATE.NE.3))GOTO 10004
        STATE=1
        IF((SYMBO0.NE.187))GOTO 10005
          STATE=3
          ID=SEMSK0(SEMSP0-1)
          PARAMS=SEMSK0(SEMSP0-2)
          CALL SSDEA0(2)
          CALL GETSYM
10005   IF((STATE.NE.1))GOTO 10006
          CALL DECLB0(STATE)
          AAAAC0=STATE
          GOTO 10007
10008       GPST=2
            RETURN
10009       ID=SEMSK0(SEMSP0-1)
            PARAMS=SEMSK0(SEMSP0-2)
            CALL SSDEA0(2)
            DM=MODE
            CALL CREAU0(DM)
          GOTO 10010
10007     AAAAD0=AAAAC0-1
          GOTO(10008,10009),AAAAD0
10010     IF((STATE.NE.3))GOTO 10011
            STATE=1
            IF((SYMBO0.NE.172))GOTO 10012
              STATE=3
              CALL ENTET0(ID,DM,SC,PARAMS,0,0)
              CALL ALLOC0(ID)
              IF((ISSTO0(ID).NE.1))GOTO 10013
                CALL OUTVAR(ID)
                CALL OUTOP0(39)
                CALL OUTSI0(MEMAA0(ID+1))
10013         CALL SSALL0(3)
              SEMSK0(SEMSP0-1)=SC
              SEMSK0(SEMSP0-2)=MODE
              SEMSK0(SEMSP0-3)=0
              CALL GETSYM
10012       IF((STATE.NE.3))GOTO 10014
              CALL INITE0(STATE)
              AAAAE0=STATE
              GOTO 10015
10016           GPST=2
                RETURN
10017           SC=SEMSK0(SEMSP0-1)
                MODE=SEMSK0(SEMSP0-2)
                JUNK=SEMSK0(SEMSP0-3)
                CALL SSDEA0(3)
              GOTO 10018
10015         AAAAF0=AAAAE0-1
              GOTO(10016,10017),AAAAF0
10018         IF((STATE.EQ.3))GOTO 10019
                GPST=2
                RETURN
10019       CONTINUE
10014       IF((STATE.NE.1))GOTO 10020
              IF((SYMBO0.NE.189))GOTO 10021
                STATE=3
                CALL ENTET0(ID,DM,SC,PARAMS,0,0)
                CALL OUTVAR(ID)
                CALL SSALL0(1)
                SEMSK0(SEMSP0-1)=ID
                CALL GETSYM
10021         IF((STATE.NE.3))GOTO 10022
                CALL INITJ0(STATE)
                AAAAG0=STATE
                GOTO 10023
10024             GPST=2
                  RETURN
10025             ID=SEMSK0(SEMSP0-1)
                  CALL SSDEA0(1)
                  CALL ALLOC0(ID)
                  CALL OUTOP0(39)
                  CALL OUTSI0(MEMAA0(ID+1))
                GOTO 10026
10023           AAAAH0=AAAAG0-1
                GOTO(10024,10025),AAAAH0
10026           IF((STATE.EQ.3))GOTO 10027
                  GPST=2
                  RETURN
10027           STATE=1
                IF((SYMBO0.NE.172))GOTO 10028
                  STATE=3
                  CALL SSALL0(3)
                  SEMSK0(SEMSP0-1)=SC
                  SEMSK0(SEMSP0-2)=MODE
                  SEMSK0(SEMSP0-3)=0
                  CALL GETSYM
10028           IF((STATE.NE.3))GOTO 10029
                  CALL INITE0(STATE)
                  AAAAI0=STATE
                  GOTO 10030
10031               GPST=2
                    RETURN
10032               SC=SEMSK0(SEMSP0-1)
                    MODE=SEMSK0(SEMSP0-2)
                    JUNK=SEMSK0(SEMSP0-3)
                    CALL SSDEA0(3)
                  GOTO 10033
10030             AAAAJ0=AAAAI0-1
                  GOTO(10031,10032),AAAAJ0
10033             IF((STATE.EQ.3))GOTO 10034
                    GPST=2
                    RETURN
10034           CONTINUE
10029           AAAAK0=STATE
                GOTO 10035
10036             STATE=3
                GOTO 10037
10035           IF(AAAAK0.EQ.1)GOTO 10036
10037           IF((STATE.EQ.3))GOTO 10038
                  GPST=2
                  RETURN
10038         CONTINUE
10022         IF((STATE.NE.1))GOTO 10039
                IF((SYMBO0.NE.187))GOTO 10040
                  STATE=3
                  CALL ENTET0(ID,DM,SC,PARAMS,0,0)
                  IF((ISSTO0(ID).NE.1))GOTO 10041
                    CALL OUTVAR(ID)
                    CALL ALLOC0(ID)
                    CALL OUTOP0(39)
                    CALL OUTSI0(MEMAA0(ID+1))
10041           CONTINUE
10040           IF((STATE.NE.1))GOTO 10042
                  CALL EMPTY(STATE)
                  AAAAL0=STATE
                  GOTO 10043
10044               GPST=2
                    RETURN
10045               IF((MEMAA0(DM+3).EQ.15))GOTO 10046
                      CALL SYNERR('Semicolon required.',0)
                      GOTO 10048
10046                 STATE=1
10047             GOTO 10048
10043             AAAAM0=AAAAL0-1
                  GOTO(10044,10045),AAAAM0
10048             IF((STATE.NE.1))GOTO 10049
                    CALL EMPTY(STATE)
                    AAAAN0=STATE
                    GOTO 10050
10051                 GPST=2
                      RETURN
10052                 IF((SC.NE.6))GOTO 10053
                        CALL SYNERR('Function may not be TYPEDEF.',0)
                        SC=1
10053                 Q=0
                      CALL ENTET0(ID,DM,SC,Q,0,1)
                      CALL ALLOC0(ID)
                      CALL SSALL0(2)
                      SEMSK0(SEMSP0-1)=ID
                      SEMSK0(SEMSP0-2)=PARAMS
                    GOTO 10054
10050               AAAAO0=AAAAN0-1
                    GOTO(10051,10052),AAAAO0
10054               IF((STATE.NE.3))GOTO 10055
                      CALL FUNCT0(STATE)
                      AAAAP0=STATE
                      GOTO 10056
10057                   GPST=2
                        RETURN
10058                   ID=SEMSK0(SEMSP0-1)
                        PARAMS=SEMSK0(SEMSP0-2)
                        CALL SSDEA0(2)
                      GOTO 10059
10056                 AAAAQ0=AAAAP0-1
                      GOTO(10057,10058),AAAAQ0
10059                 IF((STATE.EQ.3))GOTO 10060
                        GPST=2
                        RETURN
10060               CONTINUE
10055             CONTINUE
10049           CONTINUE
10042         CONTINUE
10039       CONTINUE
10020       IF((STATE.EQ.3))GOTO 10061
              GPST=2
              RETURN
10061     CONTINUE
10011   CONTINUE
10006   IF((STATE.NE.1))GOTO 10062
          CALL SYNERR('Illegal element in external definition.',0)
          CALL SKIPTO(172)
          STATE=3
10062   IF((STATE.EQ.3))GOTO 10063
          GPST=2
          RETURN
10063 CONTINUE
10004 GPST=STATE
      RETURN
      END
      SUBROUTINE FUNCT0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER ID,PARAMS
      INTEGER Q,MP
      INTEGER NEWSYM
      INTEGER ARGCT,JUNK
      INTEGER FINDS0,NEWOBJ,ISAGG0
      INTEGER AAAAR0
      INTEGER AAAAS0
      INTEGER AAAAT0
      INTEGER AAAAU0
      INTEGER AAAAV0
      INTEGER AAAAW0
      INTEGER AAAAX0(6)
      INTEGER AAAAY0(25)
      INTEGER AAAAZ0
      INTEGER AAABA0
      INTEGER AAABB0
      DATA AAAAX0/163,242,244,238,246,0/
      DATA AAAAY0/208,225,242,225,237,229,244,229,242,243,160,237,245,24
     *3,244,160,226,229,160,238,225,237,229,228,0/
      ID=SEMSK0(SEMSP0-1)
      PARAMS=SEMSK0(SEMSP0-2)
      OUTFP0=3
      CALL CKFND0(ID)
      PROCM0=MEMAA0(MEMAA0(ID+1))
      CALL ENTEV0
10064   CALL TYPEO0(STATE)
        AAAAR0=STATE
        GOTO 10065
10066     GPST=2
          RETURN
10067     CALL SSALL0(1)
          SEMSK0(SEMSP0-1)=1
        GOTO 10068
10065   AAAAS0=AAAAR0-1
        GOTO(10066,10067),AAAAS0
10068   IF((STATE.NE.3))GOTO 10069
          CALL DECLA0(STATE)
          AAAAT0=STATE
          GOTO 10070
10071       GPST=2
            RETURN
10072       JUNK=SEMSK0(SEMSP0-1)
            CALL SSDEA0(1)
          GOTO 10073
10070     AAAAU0=AAAAT0-1
          GOTO(10071,10072),AAAAU0
10073     IF((STATE.EQ.3))GOTO 10074
            GPST=2
            RETURN
10074   CONTINUE
10069 CONTINUE
      IF((STATE.EQ.3))GOTO 10064
      AAAAV0=STATE
      GOTO 10075
10076   STATE=3
      GOTO 10077
10075 IF(AAAAV0.EQ.1)GOTO 10076
10077 IF((STATE.NE.3))GOTO 10078
        CALL EMPTY(STATE)
        AAAAW0=STATE
        GOTO 10079
10080     GPST=2
          RETURN
10081     ARGCT=0
          Q=PARAMS
          GOTO 10084
10082     Q=MEMAA0(Q)
10084     IF((Q.EQ.0))GOTO 10083
            ARGCT=ARGCT+(1)
          GOTO 10082
10083     IF((ISAGG0(PROCM0).NE.0))GOTO 10085
            CALL OUTPR0(ID,ARGCT)
            ARGCT=0
            PROCR0=0
            GOTO 10086
10085       CALL OUTPR0(ID,ARGCT+1)
            MP=PROCM0
            CALL CREAT0(MP,12,0)
            Q=NEWSYM(AAAAX0,MP,2,1,LLAAA0,NEWOBJ(0),0)
            MEMAA0(Q+4)=1
            CALL OUTARG(Q)
            ARGCT=1
            PROCR0=Q
10086     CONTINUE
10087     IF((PARAMS.EQ.0))GOTO 10088
            IF((MEMAA0(PARAMS+1).NE.0))GOTO 10089
              CALL SYNERR(AAAAY0,0)
              GOTO 10090
10089         IF((FINDS0(MEMAA0(MEMAA0(PARAMS+1)),Q,1).NE.1))GOTO 10091
              IF((MEMAA0(Q).NE.1))GOTO 10091
              IF((MEMAA0(Q+3).NE.LLAAA0))GOTO 10091
                ARGCT=ARGCT+(1)
                MEMAA0(Q+4)=ARGCT
                CALL CKFNA0(Q)
                CALL OUTARG(Q)
                GOTO 10092
10091           CALL CTOC(MEMAA0(MEMAA0(PARAMS+1)),ERROR0,200)
                CALL SYNERR('parameter not declared.',0)
10092       CONTINUE
10090       IF((MEMAA0(PARAMS+1).EQ.0))GOTO 10093
              CALL DSFREE(MEMAA0(PARAMS+1))
10093       Q=MEMAA0(PARAMS)
            CALL DSFREE(PARAMS)
            PARAMS=Q
          GOTO 10087
10088     CALL OUTOP0(39)
          CALL CKFNE0
        GOTO 10094
10079   AAAAZ0=AAAAW0-1
        GOTO(10080,10081),AAAAZ0
10094   IF((STATE.EQ.3))GOTO 10095
          GPST=2
          RETURN
10095   CALL COMPO0(STATE)
        AAABA0=STATE
        GOTO 10096
10097     GPST=2
          RETURN
10098     CALL CLEAN0
          CALL EXITLL
          CALL OUTOP0(39)
          OUTFP0=2
          SEMSK0(SEMSP0-1)=ID
          SEMSK0(SEMSP0-2)=PARAMS
        GOTO 10099
10096   AAABB0=AAABA0-1
        GOTO(10097,10098),AAABB0
10099   IF((STATE.EQ.3))GOTO 10100
          GPST=2
          RETURN
10100 CONTINUE
10078 GPST=STATE
      RETURN
      END
      SUBROUTINE STATE0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAABC0
      INTEGER AAABD0
      INTEGER AAABE0
      INTEGER AAABF0
      INTEGER AAABG0
      INTEGER AAABH0
      INTEGER AAABI0
      INTEGER AAABJ0
      INTEGER AAABK0
      INTEGER AAABL0
      INTEGER AAABM0
      INTEGER AAABN0
      INTEGER AAABO0
      INTEGER AAABP0
      INTEGER AAABQ0
      INTEGER AAABR0
      STATE=1
      AAABC0=SYMBO0
      GOTO 10101
10102   STATE=3
        CALL ENTEV0
        IF((STATE.NE.3))GOTO 10109
          CALL COMPO0(STATE)
          AAABD0=STATE
          GOTO 10104
10105       GPST=2
            RETURN
10106       CALL CLEAN0
            CALL EXITLL
          GOTO 10107
10104     AAABE0=AAABD0-1
          GOTO(10105,10106),AAABE0
10107     IF((STATE.EQ.3))GOTO 10108
            GPST=2
            RETURN
10108   CONTINUE
10103 GOTO 10109
10110   STATE=3
        IF((NSYMB0.EQ.186))GOTO 10111
          STATE=1
10111   IF((STATE.NE.3))GOTO 10109
          CALL STATF0(STATE)
          AAABF0=STATE
          GOTO 10113
10114       GPST=2
            RETURN
10113     IF(AAABF0.EQ.2)GOTO 10114
          IF((STATE.EQ.3))GOTO 10115
            GPST=2
            RETURN
10115   CONTINUE
10112 GOTO 10109
10116   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL IFSTA0(STATE)
          AAABG0=STATE
          GOTO 10118
10119       GPST=2
            RETURN
10118     IF(AAABG0.EQ.2)GOTO 10119
          IF((STATE.EQ.3))GOTO 10120
            GPST=2
            RETURN
10120   CONTINUE
10117 GOTO 10109
10121   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL WHILE0(STATE)
          AAABH0=STATE
          GOTO 10123
10124       GPST=2
            RETURN
10123     IF(AAABH0.EQ.2)GOTO 10124
          IF((STATE.EQ.3))GOTO 10125
            GPST=2
            RETURN
10125   CONTINUE
10122 GOTO 10109
10126   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL DOSTA0(STATE)
          AAABI0=STATE
          GOTO 10128
10129       GPST=2
            RETURN
10128     IF(AAABI0.EQ.2)GOTO 10129
          IF((STATE.EQ.3))GOTO 10130
            GPST=2
            RETURN
10130   CONTINUE
10127 GOTO 10109
10131   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL FORST0(STATE)
          AAABJ0=STATE
          GOTO 10133
10134       GPST=2
            RETURN
10133     IF(AAABJ0.EQ.2)GOTO 10134
          IF((STATE.EQ.3))GOTO 10135
            GPST=2
            RETURN
10135   CONTINUE
10132 GOTO 10109
10136   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL SWITC0(STATE)
          AAABK0=STATE
          GOTO 10138
10139       GPST=2
            RETURN
10138     IF(AAABK0.EQ.2)GOTO 10139
          IF((STATE.EQ.3))GOTO 10140
            GPST=2
            RETURN
10140   CONTINUE
10137 GOTO 10109
10141   STATE=3
        CALL SYNERR('''Case'' not in scope of ''switch''.',0)
        CALL GETSYM
      GOTO 10109
10142   STATE=3
        CALL SYNERR('''Default'' not in scope of ''switch''.',0)
        CALL GETSYM
      GOTO 10109
10143   STATE=3
        CALL GETSYM
      GOTO 10109
10144   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL BREAK0(STATE)
          AAABL0=STATE
          GOTO 10146
10147       GPST=2
            RETURN
10146     IF(AAABL0.EQ.2)GOTO 10147
          IF((STATE.EQ.3))GOTO 10148
            GPST=2
            RETURN
10148     STATE=1
          IF((SYMBO0.NE.187))GOTO 10149
            STATE=3
            CALL GETSYM
            GOTO 10150
10149       CALL SYNERR('missing semicolon.',0)
            STATE=3
10150     IF((STATE.EQ.3))GOTO 10151
            GPST=2
            RETURN
10151   CONTINUE
10145 GOTO 10109
10152   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL CONTI0(STATE)
          AAABM0=STATE
          GOTO 10154
10155       GPST=2
            RETURN
10154     IF(AAABM0.EQ.2)GOTO 10155
          IF((STATE.EQ.3))GOTO 10156
            GPST=2
            RETURN
10156     STATE=1
          IF((SYMBO0.NE.187))GOTO 10157
            STATE=3
            CALL GETSYM
            GOTO 10158
10157       CALL SYNERR('missing semicolon.',0)
            STATE=3
10158     IF((STATE.EQ.3))GOTO 10159
            GPST=2
            RETURN
10159   CONTINUE
10153 GOTO 10109
10160   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL RETUR0(STATE)
          AAABN0=STATE
          GOTO 10162
10163       GPST=2
            RETURN
10162     IF(AAABN0.EQ.2)GOTO 10163
          IF((STATE.EQ.3))GOTO 10164
            GPST=2
            RETURN
10164     STATE=1
          IF((SYMBO0.NE.187))GOTO 10165
            STATE=3
            CALL GETSYM
            GOTO 10166
10165       CALL SYNERR('missing semicolon.',0)
            STATE=3
10166     IF((STATE.EQ.3))GOTO 10167
            GPST=2
            RETURN
10167   CONTINUE
10161 GOTO 10109
10168   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 10109
          CALL GOTOS0(STATE)
          AAABO0=STATE
          GOTO 10170
10171       GPST=2
            RETURN
10170     IF(AAABO0.EQ.2)GOTO 10171
          IF((STATE.EQ.3))GOTO 10172
            GPST=2
            RETURN
10172     STATE=1
          IF((SYMBO0.NE.187))GOTO 10173
            STATE=3
            CALL GETSYM
            GOTO 10174
10173       CALL SYNERR('missing semicolon.',0)
            STATE=3
10174     IF((STATE.EQ.3))GOTO 10175
            GPST=2
            RETURN
10175   CONTINUE
10169 GOTO 10109
10101 IF(AAABC0.EQ.187)GOTO 10143
      IF(AAABC0.EQ.251)GOTO 10102
      AAABP0=AAABC0-1022
      GOTO(10110,10176,10176,10176,10176,10176,10144,10141,10176,10152, 
     *    10176,10142,10176,10126,10176,10176,10176,10176,10176,10176,  
     *   10176,10131,10176,10168,10176,10176,10116,10176,10176,10176,   
     *  10176,10176,10160,10176,10176,10176,10176,10136,10176,10176,    
     * 10176,10176,10121),AAABP0
10176 CONTINUE
10109 IF((STATE.NE.1))GOTO 10177
        CALL EXPRE0(STATE)
        AAABQ0=STATE
        GOTO 10178
10179     GPST=2
          RETURN
10180     CALL OUTOP0(59)
          CALL GENMA0
          CALL OUTEX0
        GOTO 10181
10178   AAABR0=AAABQ0-1
        GOTO(10179,10180),AAABR0
10181   IF((STATE.NE.3))GOTO 10182
          STATE=1
          IF((SYMBO0.NE.187))GOTO 10183
            STATE=3
            CALL GETSYM
            GOTO 10184
10183       CALL SYNERR('missing semicolon.',0)
            STATE=3
10184     IF((STATE.EQ.3))GOTO 10185
            GPST=2
            RETURN
10185   CONTINUE
10182 CONTINUE
10177 GPST=STATE
      RETURN
      END
      SUBROUTINE STATF0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAABS0
      STATE=1
      IF((SYMBO0.NE.1023))GOTO 10186
        STATE=3
        CALL DECLC0(1)
        CALL OUTLAB(SYMPT0)
        CALL GETSYM
10186 IF((STATE.NE.3))GOTO 10187
        STATE=1
        IF((SYMBO0.NE.186))GOTO 10188
          STATE=3
          CALL GETSYM
10188   IF((STATE.EQ.3))GOTO 10189
          GPST=2
          RETURN
10189   CONTINUE
10190     STATE=1
          IF((SYMBO0.NE.1023))GOTO 10191
            STATE=3
            IF((NSYMB0.EQ.':'))GOTO 10192
              STATE=1
10192     CONTINUE
10191     IF((STATE.NE.3))GOTO 10193
            STATE=1
            IF((SYMBO0.NE.1023))GOTO 10194
              STATE=3
              CALL DECLC0(1)
              CALL OUTLAB(SYMPT0)
              CALL GETSYM
10194       IF((STATE.EQ.3))GOTO 10195
              GPST=2
              RETURN
10195       STATE=1
            IF((SYMBO0.NE.186))GOTO 10196
              STATE=3
              CALL GETSYM
10196       IF((STATE.EQ.3))GOTO 10197
              GPST=2
              RETURN
10197     CONTINUE
10193   CONTINUE
        IF((STATE.EQ.3))GOTO 10190
        AAABS0=STATE
        GOTO 10198
10199     STATE=3
        GOTO 10200
10198   IF(AAABS0.EQ.1)GOTO 10199
10200   IF((STATE.EQ.3))GOTO 10201
          GPST=2
          RETURN
10201 CONTINUE
10187 GPST=STATE
      RETURN
      END
      SUBROUTINE GOTOS0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.1023))GOTO 10202
        STATE=3
        CALL DECLC0(0)
        CALL OUTGO0(SYMPT0)
        CALL GETSYM
        GOTO 10203
10202   CALL SYNERR('Label required following ''goto''.',0)
        STATE=3
10203 GPST=STATE
      RETURN
      END
      SUBROUTINE RETUR0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER P
      INTEGER AAABT0
      CALL EXPRE0(STATE)
      AAABT0=STATE
      GOTO 10204
10205   GPST=2
        RETURN
10206   CALL OUTST0(54)
        CALL OUTOP0(39)
        STATE=3
      GOTO 10207
10208   IF((PROCR0.NE.0))GOTO 10209
          CALL OUTST0(54)
          CALL GENMA0
          CALL GENCO0(PROCM0)
          CALL OUTEX0
          GOTO 10207
10209     CALL ESPOP(P)
          CALL GENOQ0(PROCR0)
          CALL GENOP0(15)
          CALL ESPUSH(P)
          CALL GENCO0(PROCM0)
          CALL GENOP0(5)
          CALL OUTOP0(59)
          CALL OUTEX0
          CALL OUTST0(54)
          CALL OUTOP0(39)
10210 GOTO 10207
10204 GOTO(10206,10205,10208),AAABT0
10207 GPST=STATE
      RETURN
      END
      SUBROUTINE CONTI0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER NL,I
      INTEGER AAABU0
      INTEGER AAABV0
      INTEGER AAABW0
      CALL SSALL0(1)
      SEMSK0(SEMSP0-1)=0
      CALL CONST0(STATE)
      AAABU0=STATE
      GOTO 10211
10212   GPST=2
        RETURN
10213   NL=SEMSK0(SEMSP0-1)
        CALL SSDEA0(1)
        NL=1
        STATE=3
      GOTO 10214
10215   NL=SEMSK0(SEMSP0-1)
        CALL SSDEA0(1)
      GOTO 10214
10211 GOTO(10213,10212,10215),AAABU0
10214 IF((STATE.NE.3))GOTO 10216
        CALL EMPTY(STATE)
        AAABV0=STATE
        GOTO 10217
10218     GPST=2
          RETURN
10219     CALL OUTST0(36)
          CALL OUTNUM(NL)
          I=CTLSP0
          GOTO 10222
10220     I=I-(1)
10222     IF((I.LE.0))GOTO 10221
          IF((NL.LE.0))GOTO 10221
            IF((CTLSK0(I).EQ.4))GOTO 10220
              NL=NL-(1)
10223     GOTO 10220
10221     IF((NL.LE.0))GOTO 10225
            CALL SYNERR('Not enough loops active.',0)
10224   GOTO 10225
10217   AAABW0=AAABV0-1
        GOTO(10218,10219),AAABW0
10225   IF((STATE.EQ.3))GOTO 10226
          GPST=2
          RETURN
10226 CONTINUE
10216 GPST=STATE
      RETURN
      END
      SUBROUTINE BREAK0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER NL,I
      INTEGER AAABX0
      INTEGER AAABY0
      INTEGER AAABZ0
      CALL SSALL0(1)
      SEMSK0(SEMSP0-1)=0
      CALL CONST0(STATE)
      AAABX0=STATE
      GOTO 10227
10228   GPST=2
        RETURN
10229   NL=SEMSK0(SEMSP0-1)
        CALL SSDEA0(1)
        NL=1
        STATE=3
      GOTO 10230
10231   NL=SEMSK0(SEMSP0-1)
        CALL SSDEA0(1)
      GOTO 10230
10227 GOTO(10229,10228,10231),AAABX0
10230 IF((STATE.NE.3))GOTO 10232
        CALL EMPTY(STATE)
        AAABY0=STATE
        GOTO 10233
10234     GPST=2
          RETURN
10235     CALL OUTST0(6)
          CALL OUTNUM(NL)
          I=CTLSP0
          GOTO 10238
10236     I=I-(1)
10238     IF((I.LE.0))GOTO 10237
          IF((NL.LE.0))GOTO 10237
            NL=NL-(1)
          GOTO 10236
10237     IF((NL.LE.0))GOTO 10240
            CALL SYNERR('Not enough loops active.',0)
10239   GOTO 10240
10233   AAABZ0=AAABY0-1
        GOTO(10234,10235),AAABZ0
10240   IF((STATE.EQ.3))GOTO 10241
          GPST=2
          RETURN
10241 CONTINUE
10232 GPST=STATE
      RETURN
      END
      SUBROUTINE SWITC0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER LSTATE
      INTEGER ISCON0
      INTEGER V,MP
      INTEGER AAACA0
      INTEGER AAACB0
      INTEGER AAACC0
      INTEGER AAACD0
      INTEGER AAACE0
      INTEGER AAACF0
      INTEGER AAACG0
      LSTATE=1
      CALL CSPUSH(4)
      CALL OUTST0(63)
      CALL EXPRE0(STATE)
      AAACA0=STATE
      GOTO 10242
10243   GPST=2
        RETURN
10244   CALL SYNERR('Expression required after ''switch''.',0)
        STATE=3
        MP=INTMO0
      GOTO 10245
10246   CALL GENMA0
        CALL CHECK0
        CALL ESTOP(V)
        MP=MEMAA0(V+1)
        CALL OUTMO0(MP)
        CALL OUTEX0
      GOTO 10245
10242 GOTO(10244,10243,10246),AAACA0
10245 IF((STATE.NE.3))GOTO 10247
        STATE=1
        IF((SYMBO0.NE.251))GOTO 10248
          STATE=3
          CALL GETSYM
          GOTO 10249
10248     CALL SYNERR('Left brace required after ''switch''.',0)
          STATE=3
10249   IF((STATE.EQ.3))GOTO 10250
          GPST=2
          RETURN
10250   CONTINUE
10251     STATE=1
          IF((SYMBO0.NE.1030))GOTO 10252
            STATE=3
            IF((LSTATE.NE.1))GOTO 10253
              LSTATE=2
              GOTO 10254
10253         CALL OUTOP0(39)
10254       CALL GETSYM
10252     IF((STATE.NE.3))GOTO 10255
            CALL EXPRE0(STATE)
            AAACB0=STATE
            GOTO 10256
10257         GPST=2
              RETURN
10258         CALL SYNERR('Constant expr required after ''case''.',0)
              STATE=3
            GOTO 10259
10260         CALL OUTOP0(7)
              CALL GENCO0(MP)
              CALL ESTOP(V)
              IF((ISCON0(V).NE.0))GOTO 10261
                CALL SYNERR('Constant expression required.',0)
10261         CALL GENMA0
              CALL OUTEX0
            GOTO 10259
10256       GOTO(10258,10257,10260),AAACB0
10259       IF((STATE.EQ.3))GOTO 10262
              GPST=2
              RETURN
10262       STATE=1
            IF((SYMBO0.NE.186))GOTO 10263
              STATE=3
              CALL GETSYM
              GOTO 10264
10263         CALL SYNERR('Colon required after ''case''.',0)
              STATE=3
10264       IF((STATE.EQ.3))GOTO 10265
              GPST=2
              RETURN
10265     CONTINUE
10255     IF((STATE.NE.1))GOTO 10266
            IF((SYMBO0.NE.1034))GOTO 10267
              STATE=3
              IF((LSTATE.NE.1))GOTO 10268
                LSTATE=3
                GOTO 10269
10268           IF((LSTATE.NE.2))GOTO 10270
                  LSTATE=3
                  CALL OUTOP0(39)
                  GOTO 10271
10270             CALL SYNERR('Only 1 ''default'' allowed per ''switch''
     *.',0)
10271         CONTINUE
10269         CALL OUTOP0(12)
              CALL GETSYM
10267       IF((STATE.NE.3))GOTO 10272
              STATE=1
              IF((SYMBO0.NE.186))GOTO 10273
                STATE=3
                CALL GETSYM
                GOTO 10274
10273           CALL SYNERR('Colon required after ''default''.',0)
                STATE=3
10274         IF((STATE.EQ.3))GOTO 10275
                GPST=2
                RETURN
10275       CONTINUE
10272       IF((STATE.NE.1))GOTO 10276
              CALL STATE0(STATE)
              AAACC0=STATE
              GOTO 10277
10278           GPST=2
                RETURN
10279           IF((LSTATE.NE.1))GOTO 10281
                  CALL SYNERR('''Case'' must follow ''switch''.',0)
10280         GOTO 10281
10277         AAACD0=AAACC0-1
              GOTO(10278,10279),AAACD0
10281       CONTINUE
10276     CONTINUE
10266   CONTINUE
        IF((STATE.EQ.3))GOTO 10251
        AAACE0=STATE
        GOTO 10282
10283     STATE=3
        GOTO 10284
10282   IF(AAACE0.EQ.1)GOTO 10283
10284   IF((STATE.EQ.3))GOTO 10285
          GPST=2
          RETURN
10285   STATE=1
        IF((SYMBO0.NE.253))GOTO 10286
          STATE=3
          CALL GETSYM
          GOTO 10287
10286     CALL SYNERR('Right brace required.',0)
          STATE=3
10287   IF((STATE.EQ.3))GOTO 10288
          GPST=2
          RETURN
10288   CALL EMPTY(STATE)
        AAACF0=STATE
        GOTO 10289
10290     GPST=2
          RETURN
10291     CALL OUTOP0(39)
          CALL OUTOP0(39)
          CALL CSPOP
        GOTO 10292
10289   AAACG0=AAACF0-1
        GOTO(10290,10291),AAACG0
10292   IF((STATE.EQ.3))GOTO 10293
          GPST=2
          RETURN
10293 CONTINUE
10247 GPST=STATE
      RETURN
      END
      SUBROUTINE FORST0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAACH0
      INTEGER AAACI0
      INTEGER AAACJ0
      INTEGER AAACK0
      INTEGER AAACL0
      INTEGER AAACM0
      INTEGER AAACN0
      CALL CSPUSH(2)
      CALL OUTST0(20)
      STATE=1
      IF((SYMBO0.NE.168))GOTO 10294
        STATE=3
        CALL GETSYM
        GOTO 10295
10294   CALL SYNERR('Left paren required after ''for''.',0)
        STATE=3
10295 IF((STATE.NE.3))GOTO 10296
        CALL EXPRE0(STATE)
        AAACH0=STATE
        GOTO 10297
10298     GPST=2
          RETURN
10299     CALL OUTOP0(39)
        GOTO 10300
10301     CALL GENMA0
          CALL OUTEX0
        GOTO 10300
10297   GOTO(10299,10298,10301),AAACH0
10300   AAACI0=STATE
        GOTO 10302
10303     STATE=3
        GOTO 10304
10302   IF(AAACI0.EQ.1)GOTO 10303
10304   IF((STATE.EQ.3))GOTO 10305
          GPST=2
          RETURN
10305   STATE=1
        IF((SYMBO0.NE.187))GOTO 10306
          STATE=3
          CALL GETSYM
          GOTO 10307
10306     CALL SYNERR('Semicolon required.',0)
          STATE=3
10307   IF((STATE.EQ.3))GOTO 10308
          GPST=2
          RETURN
10308   CALL EXPRE0(STATE)
        AAACJ0=STATE
        GOTO 10309
10310     GPST=2
          RETURN
10311     CALL OUTOP0(39)
        GOTO 10312
10313     CALL GENMA0
          CALL GENTO0
          CALL OUTEX0
        GOTO 10312
10309   GOTO(10311,10310,10313),AAACJ0
10312   AAACK0=STATE
        GOTO 10314
10315     STATE=3
        GOTO 10316
10314   IF(AAACK0.EQ.1)GOTO 10315
10316   IF((STATE.EQ.3))GOTO 10317
          GPST=2
          RETURN
10317   STATE=1
        IF((SYMBO0.NE.187))GOTO 10318
          STATE=3
          CALL GETSYM
          GOTO 10319
10318     CALL SYNERR('Semicolon required.',0)
          STATE=3
10319   IF((STATE.EQ.3))GOTO 10320
          GPST=2
          RETURN
10320   CALL EXPRE0(STATE)
        AAACL0=STATE
        GOTO 10321
10322     GPST=2
          RETURN
10323     CALL OUTOP0(39)
        GOTO 10324
10325     CALL GENMA0
          CALL OUTEX0
        GOTO 10324
10321   GOTO(10323,10322,10325),AAACL0
10324   AAACM0=STATE
        GOTO 10326
10327     STATE=3
        GOTO 10328
10326   IF(AAACM0.EQ.1)GOTO 10327
10328   IF((STATE.EQ.3))GOTO 10329
          GPST=2
          RETURN
10329   STATE=1
        IF((SYMBO0.NE.169))GOTO 10330
          STATE=3
          CALL GETSYM
          GOTO 10331
10330     CALL SYNERR('Right paren required after ''for''.',0)
          STATE=3
10331   IF((STATE.EQ.3))GOTO 10332
          GPST=2
          RETURN
10332   CALL STATE0(STATE)
        AAACN0=STATE
        GOTO 10333
10334     GPST=2
          RETURN
10335     CALL SYNERR('Statement required after ''for''.',0)
          STATE=3
        GOTO 10336
10337     CALL OUTOP0(39)
          CALL CSPOP
        GOTO 10336
10333   GOTO(10335,10334,10337),AAACN0
10336   IF((STATE.EQ.3))GOTO 10338
          GPST=2
          RETURN
10338 CONTINUE
10296 GPST=STATE
      RETURN
      END
      SUBROUTINE DOSTA0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAACO0
      INTEGER AAACP0
      INTEGER AAACQ0
      INTEGER AAACR0
      CALL CSPUSH(3)
      CALL OUTST0(18)
      CALL STATE0(STATE)
      AAACO0=STATE
      GOTO 10339
10340   GPST=2
        RETURN
10341   CALL SYNERR('Statement required after ''do''.',0)
        STATE=3
      GOTO 10342
10343   CALL OUTOP0(39)
      GOTO 10342
10339 GOTO(10341,10340,10343),AAACO0
10342 IF((STATE.NE.3))GOTO 10344
        STATE=1
        IF((SYMBO0.NE.1065))GOTO 10345
          STATE=3
          CALL GETSYM
          GOTO 10346
10345     CALL SYNERR('''While'' required after ''do''.',0)
          STATE=3
10346   IF((STATE.EQ.3))GOTO 10347
          GPST=2
          RETURN
10347   CALL EXPRE0(STATE)
        AAACP0=STATE
        GOTO 10348
10349     GPST=2
          RETURN
10350     CALL SYNERR('Expression required after ''while''.',0)
          STATE=3
        GOTO 10351
10352     CALL GENMA0
          CALL GENOP0(38)
          CALL GENTO0
          CALL OUTEX0
        GOTO 10351
10348   GOTO(10350,10349,10352),AAACP0
10351   IF((STATE.EQ.3))GOTO 10353
          GPST=2
          RETURN
10353   CALL EMPTY(STATE)
        AAACQ0=STATE
        GOTO 10354
10355     GPST=2
          RETURN
10356     CALL CSPOP
        GOTO 10357
10354   AAACR0=AAACQ0-1
        GOTO(10355,10356),AAACR0
10357   IF((STATE.EQ.3))GOTO 10358
          GPST=2
          RETURN
10358 CONTINUE
10344 GPST=STATE
      RETURN
      END
      SUBROUTINE IFSTA0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAACS0
      INTEGER AAACT0
      INTEGER AAACU0
      INTEGER AAACV0
      INTEGER AAACW0
      INTEGER AAACX0
      CALL OUTST0(24)
      CALL OUTMO0(INTMO0)
      STATE=1
      IF((SYMBO0.NE.168))GOTO 10359
        STATE=3
        CALL GETSYM
        GOTO 10360
10359   CALL SYNERR('Left paren required after ''if''.',0)
        STATE=3
10360 IF((STATE.NE.3))GOTO 10361
        CALL EXPRE0(STATE)
        AAACS0=STATE
        GOTO 10362
10363     GPST=2
          RETURN
10364     CALL SYNERR('Expression required after ''if''.',0)
          STATE=3
        GOTO 10365
10366     CALL GENMA0
          CALL GENTO0
          CALL OUTEX0
        GOTO 10365
10362   GOTO(10364,10363,10366),AAACS0
10365   IF((STATE.EQ.3))GOTO 10367
          GPST=2
          RETURN
10367   STATE=1
        IF((SYMBO0.NE.169))GOTO 10368
          STATE=3
          CALL GETSYM
          GOTO 10369
10368     CALL SYNERR('Right paren required after ''if''.',0)
          STATE=3
10369   IF((STATE.EQ.3))GOTO 10370
          GPST=2
          RETURN
10370   CALL STATE0(STATE)
        AAACT0=STATE
        GOTO 10371
10372     GPST=2
          RETURN
10373     CALL SYNERR('Statement required after ''if''.',0)
          STATE=3
        GOTO 10374
10375     CALL OUTOP0(39)
        GOTO 10374
10371   GOTO(10373,10372,10375),AAACT0
10374   IF((STATE.EQ.3))GOTO 10376
          GPST=2
          RETURN
10376   STATE=1
        IF((SYMBO0.NE.1038))GOTO 10377
          STATE=3
          CALL GETSYM
10377   IF((STATE.NE.3))GOTO 10378
          CALL STATE0(STATE)
          AAACU0=STATE
          GOTO 10379
10380       GPST=2
            RETURN
10381       CALL SYNERR('Statement required after ''else''.',0)
            STATE=3
          GOTO 10382
10379     GOTO(10381,10380),AAACU0
10382     IF((STATE.EQ.3))GOTO 10383
            GPST=2
            RETURN
10383   CONTINUE
10378   AAACV0=STATE
        GOTO 10384
10385     STATE=3
        GOTO 10386
10384   IF(AAACV0.EQ.1)GOTO 10385
10386   IF((STATE.EQ.3))GOTO 10387
          GPST=2
          RETURN
10387   CALL EMPTY(STATE)
        AAACW0=STATE
        GOTO 10388
10389     GPST=2
          RETURN
10390     CALL OUTOP0(39)
        GOTO 10391
10388   AAACX0=AAACW0-1
        GOTO(10389,10390),AAACX0
10391   IF((STATE.EQ.3))GOTO 10392
          GPST=2
          RETURN
10392 CONTINUE
10361 GPST=STATE
      RETURN
      END
      SUBROUTINE WHILE0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAACY0
      INTEGER AAACZ0
      INTEGER AAADA0
      INTEGER AAADB0
      CALL CSPUSH(1)
      CALL OUTST0(65)
      STATE=1
      IF((SYMBO0.NE.168))GOTO 10393
        STATE=3
        CALL GETSYM
        GOTO 10394
10393   CALL SYNERR('Left paren required after ''while''.',0)
        STATE=3
10394 IF((STATE.NE.3))GOTO 10395
        CALL EXPRE0(STATE)
        AAACY0=STATE
        GOTO 10396
10397     GPST=2
          RETURN
10398     CALL SYNERR('Expression required after ''while''.',0)
          STATE=3
        GOTO 10399
10400     CALL GENMA0
          CALL GENTO0
          CALL OUTEX0
        GOTO 10399
10396   GOTO(10398,10397,10400),AAACY0
10399   IF((STATE.EQ.3))GOTO 10401
          GPST=2
          RETURN
10401   STATE=1
        IF((SYMBO0.NE.169))GOTO 10402
          STATE=3
          CALL GETSYM
          GOTO 10403
10402     CALL SYNERR('Right paren required after ''while''.',0)
          STATE=3
10403   IF((STATE.EQ.3))GOTO 10404
          GPST=2
          RETURN
10404   CALL STATE0(STATE)
        AAACZ0=STATE
        GOTO 10405
10406     GPST=2
          RETURN
10407     CALL SYNERR('Statement required after ''while''.',0)
          STATE=3
        GOTO 10408
10405   GOTO(10407,10406),AAACZ0
10408   IF((STATE.EQ.3))GOTO 10409
          GPST=2
          RETURN
10409   CALL EMPTY(STATE)
        AAADA0=STATE
        GOTO 10410
10411     GPST=2
          RETURN
10412     CALL OUTOP0(39)
          CALL CSPOP
        GOTO 10413
10410   AAADB0=AAADA0-1
        GOTO(10411,10412),AAADB0
10413   IF((STATE.EQ.3))GOTO 10414
          GPST=2
          RETURN
10414 CONTINUE
10395 GPST=STATE
      RETURN
      END
      SUBROUTINE COMPO0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER JUNK
      INTEGER AAADC0
      INTEGER AAADD0
      INTEGER AAADE0
      INTEGER AAADF0
      INTEGER AAADG0
      INTEGER AAADH0
      INTEGER AAADI0
      INTEGER AAADJ0
      STATE=1
      IF((SYMBO0.NE.251))GOTO 10415
        STATE=3
        CALL GETSYM
        GOTO 10416
10415   CALL SYNERR('Left brace required.',0)
        STATE=3
10416 IF((STATE.NE.3))GOTO 10417
10418     CALL NOTSU0(STATE)
          AAADC0=STATE
          GOTO 10419
10420       GPST=2
            RETURN
10421       CALL SSALL0(1)
            SEMSK0(SEMSP0-1)=0
          GOTO 10422
10419     AAADD0=AAADC0-1
          GOTO(10420,10421),AAADD0
10422     IF((STATE.NE.3))GOTO 10423
            CALL DECLA0(STATE)
            AAADE0=STATE
            GOTO 10424
10425         GPST=2
              RETURN
10426         JUNK=SEMSK0(SEMSP0-1)
              CALL SSDEA0(1)
            GOTO 10427
10424       AAADF0=AAADE0-1
            GOTO(10425,10426),AAADF0
10427       IF((STATE.EQ.3))GOTO 10428
              GPST=2
              RETURN
10428     CONTINUE
10423   CONTINUE
        IF((STATE.EQ.3))GOTO 10418
        AAADG0=STATE
        GOTO 10429
10430     STATE=3
        GOTO 10431
10429   IF(AAADG0.EQ.1)GOTO 10430
10431   IF((STATE.EQ.3))GOTO 10432
          GPST=2
          RETURN
10432   CONTINUE
10433     CALL NOTST0(STATE)
          AAADH0=STATE
          GOTO 10434
10435       GPST=2
            RETURN
10434     IF(AAADH0.EQ.2)GOTO 10435
          IF((STATE.NE.3))GOTO 10436
            CALL STATE0(STATE)
            AAADI0=STATE
            GOTO 10437
10438         GPST=2
              RETURN
10437       IF(AAADI0.EQ.2)GOTO 10438
            IF((STATE.EQ.3))GOTO 10439
              GPST=2
              RETURN
10439     CONTINUE
10436   CONTINUE
        IF((STATE.EQ.3))GOTO 10433
        AAADJ0=STATE
        GOTO 10440
10441     STATE=3
        GOTO 10442
10440   IF(AAADJ0.EQ.1)GOTO 10441
10442   IF((STATE.EQ.3))GOTO 10443
          GPST=2
          RETURN
10443   STATE=1
        IF((SYMBO0.NE.253))GOTO 10444
          STATE=3
          CALL GETSYM
          GOTO 10445
10444     CALL SYNERR('Right brace required.',0)
          STATE=3
10445   IF((STATE.EQ.3))GOTO 10446
          GPST=2
          RETURN
10446 CONTINUE
10417 GPST=STATE
      RETURN
      END
      SUBROUTINE DECLA0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER FLAG,SC
      INTEGER MODE
      INTEGER AAADK0
      INTEGER AAADL0
      INTEGER AAADM0
      INTEGER AAADN0
      INTEGER AAADO0
      INTEGER AAADP0
      FLAG=SEMSK0(SEMSP0-1)
      CALL SSALL0(2)
      SEMSK0(SEMSP0-1)=SC
      SEMSK0(SEMSP0-2)=MODE
      CALL DECLS0(STATE)
      AAADK0=STATE
      GOTO 10447
10448   GPST=2
        RETURN
10449   SC=SEMSK0(SEMSP0-1)
        MODE=SEMSK0(SEMSP0-2)
        CALL SSDEA0(2)
      GOTO 10450
10447 AAADL0=AAADK0-1
      GOTO(10448,10449),AAADL0
10450 IF((STATE.NE.3))GOTO 10451
        STATE=1
        IF((SYMBO0.NE.187))GOTO 10452
          STATE=3
          CALL GETSYM
10452   IF((STATE.NE.1))GOTO 10453
          CALL EMPTY(STATE)
          AAADM0=STATE
          GOTO 10454
10455       GPST=2
            RETURN
10456       CALL SSALL0(3)
            SEMSK0(SEMSP0-1)=SC
            SEMSK0(SEMSP0-2)=MODE
            SEMSK0(SEMSP0-3)=FLAG
          GOTO 10457
10454     AAADN0=AAADM0-1
          GOTO(10455,10456),AAADN0
10457     IF((STATE.NE.3))GOTO 10458
            CALL INITE0(STATE)
            AAADO0=STATE
            GOTO 10459
10460         GPST=2
              RETURN
10461         SC=SEMSK0(SEMSP0-1)
              MODE=SEMSK0(SEMSP0-2)
              FLAG=SEMSK0(SEMSP0-3)
              CALL SSDEA0(3)
            GOTO 10462
10459       AAADP0=AAADO0-1
            GOTO(10460,10461),AAADP0
10462       IF((STATE.EQ.3))GOTO 10463
              GPST=2
              RETURN
10463       STATE=1
            IF((SYMBO0.NE.187))GOTO 10464
              STATE=3
              CALL GETSYM
              GOTO 10465
10464         CALL SYNERR('Semicolon required.',0)
              STATE=3
10465       IF((STATE.EQ.3))GOTO 10466
              GPST=2
              RETURN
10466     CONTINUE
10458   CONTINUE
10453   IF((STATE.NE.3))GOTO 10467
          SEMSK0(SEMSP0-1)=FLAG
10467   IF((STATE.EQ.3))GOTO 10468
          GPST=2
          RETURN
10468 CONTINUE
10451 GPST=STATE
      RETURN
      END
      SUBROUTINE DECLS0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER MODE
      INTEGER SC
      INTEGER JUNK
      INTEGER FINDS0
      INTEGER P
      INTEGER AAADQ0
      INTEGER AAADR0
      INTEGER AAADS0
      INTEGER AAADT0
      INTEGER AAADU0
      INTEGER AAADV0
      INTEGER AAADW0
      INTEGER AAADX0
      INTEGER AAADY0
      INTEGER AAADZ0
      INTEGER AAAEA0
      SC=SEMSK0(SEMSP0-1)
      MODE=SEMSK0(SEMSP0-2)
      P=0
      MODE=20
      SC=1
10469   STATE=1
        AAADQ0=SYMBO0
        GOTO 10470
10471     STATE=3
          IF((SC.EQ.1))GOTO 10472
            CALL SYNERR('''Auto'' is redundant.',0)
10472     SC=2
          CALL GETSYM
        GOTO 10473
10474     STATE=3
          IF((SC.EQ.1))GOTO 10475
            CALL SYNERR('''Extern'' is redundant.',0)
10475     SC=3
          CALL GETSYM
        GOTO 10473
10476     STATE=3
          IF((SC.EQ.1))GOTO 10477
            CALL SYNERR('''Register'' is redundant.',0)
10477     SC=4
          CALL GETSYM
        GOTO 10473
10478     STATE=3
          IF((SC.EQ.1))GOTO 10479
            CALL SYNERR('''Static'' is redundant.',0)
10479     SC=5
          CALL GETSYM
        GOTO 10473
10480     STATE=3
          IF((SC.EQ.1))GOTO 10481
            CALL SYNERR('''Typedef'' is redundant.',0)
10481     SC=6
          CALL GETSYM
        GOTO 10473
10482     STATE=3
          IF((MODE.NE.6))GOTO 10483
            MODE=2
            P=CHARU0
            GOTO 10484
10483       IF((MODE.NE.20))GOTO 10485
              MODE=1
              P=CHARM0
              GOTO 10486
10485         CALL SYNERR('''Char'' is redundant.',0)
10486     CONTINUE
10484     CALL GETSYM
        GOTO 10473
10487     STATE=3
          IF((MODE.NE.6))GOTO 10488
            MODE=7
            P=SHORU0
            GOTO 10489
10488       IF((MODE.EQ.20))GOTO 10491
            IF((MODE.EQ.3))GOTO 10491
            GOTO 10490
10491         MODE=4
              P=SHORT0
              GOTO 10492
10490         CALL SYNERR('''Short'' is redundant.',0)
10492     CONTINUE
10489     CALL GETSYM
        GOTO 10473
10493     STATE=3
          IF((MODE.NE.20))GOTO 10494
            MODE=3
            P=INTMO0
            GOTO 10495
10494       IF((MODE.EQ.4))GOTO 10496
            IF((MODE.EQ.5))GOTO 10496
            IF((MODE.EQ.6))GOTO 10496
            IF((MODE.EQ.7))GOTO 10496
            IF((MODE.EQ.8))GOTO 10496
              CALL SYNERR('''Int'' is redundant.',0)
10496     CONTINUE
10495     CALL GETSYM
        GOTO 10473
10497     STATE=3
          IF((MODE.EQ.20))GOTO 10499
          IF((MODE.EQ.3))GOTO 10499
          GOTO 10498
10499       MODE=5
            P=LONGM0
            GOTO 10500
10498       IF((MODE.NE.6))GOTO 10501
              MODE=8
              P=LONGU0
              GOTO 10502
10501         IF((MODE.NE.9))GOTO 10503
                MODE=10
                P=DOUBL0
                GOTO 10504
10503           CALL SYNERR('''Long'' is redundant.',0)
10504       CONTINUE
10502     CONTINUE
10500     CALL GETSYM
        GOTO 10473
10505     STATE=3
          IF((MODE.NE.4))GOTO 10506
            MODE=7
            P=SHORU0
            GOTO 10507
10506       IF((MODE.NE.1))GOTO 10508
              MODE=2
              P=CHARU0
              GOTO 10509
10508         IF((MODE.NE.5))GOTO 10510
                MODE=8
                P=LONGU0
                GOTO 10511
10510           IF((MODE.EQ.20))GOTO 10513
                IF((MODE.EQ.3))GOTO 10513
                GOTO 10512
10513             MODE=6
                  P=UNSIG0
                  GOTO 10514
10512             CALL SYNERR('''Unsigned'' is redundant.',0)
10514         CONTINUE
10511       CONTINUE
10509     CONTINUE
10507     CALL GETSYM
        GOTO 10473
10515     STATE=3
          IF((MODE.NE.20))GOTO 10516
            MODE=9
            P=FLOAT0
            GOTO 10517
10516       IF((MODE.NE.5))GOTO 10518
              MODE=10
              P=DOUBL0
              GOTO 10519
10518         IF((MODE.EQ.10))GOTO 10520
                CALL SYNERR('''Float'' is redundant.',0)
10520       CONTINUE
10519     CONTINUE
10517     CALL GETSYM
        GOTO 10473
10521     STATE=3
          IF((MODE.EQ.20))GOTO 10523
          IF((MODE.EQ.9))GOTO 10523
          GOTO 10522
10523       MODE=10
            P=DOUBL0
            GOTO 10524
10522       CALL SYNERR('''Double'' is redundant.',0)
10524     CALL GETSYM
        GOTO 10473
10525     STATE=3
          IF((MODE.EQ.20))GOTO 10526
            CALL SYNERR('''Struct'' is redundant.',0)
10526     MODE=16
          CALL SSALL0(2)
          SEMSK0(SEMSP0-1)=0
          SEMSK0(SEMSP0-2)=P
          CALL GETSYM
          IF((STATE.NE.3))GOTO 10473
            CALL STRUH0(STATE)
            AAADR0=STATE
            GOTO 10528
10529         GPST=2
              RETURN
10530         JUNK=SEMSK0(SEMSP0-1)
              P=SEMSK0(SEMSP0-2)
              CALL SSDEA0(2)
            GOTO 10531
10528       AAADS0=AAADR0-1
            GOTO(10529,10530),AAADS0
10531       IF((STATE.EQ.3))GOTO 10532
              GPST=2
              RETURN
10532     CONTINUE
10527   GOTO 10473
10533     STATE=3
          IF((MODE.EQ.20))GOTO 10534
            CALL SYNERR('''Union'' is redundant.',0)
10534     MODE=17
          CALL SSALL0(2)
          SEMSK0(SEMSP0-1)=1
          SEMSK0(SEMSP0-2)=P
          CALL GETSYM
          IF((STATE.NE.3))GOTO 10473
            CALL STRUH0(STATE)
            AAADT0=STATE
            GOTO 10536
10537         GPST=2
              RETURN
10538         JUNK=SEMSK0(SEMSP0-1)
              P=SEMSK0(SEMSP0-2)
              CALL SSDEA0(2)
            GOTO 10539
10536       AAADU0=AAADT0-1
            GOTO(10537,10538),AAADU0
10539       IF((STATE.EQ.3))GOTO 10540
              GPST=2
              RETURN
10540     CONTINUE
10535   GOTO 10473
10541     STATE=3
          IF((MODE.EQ.20))GOTO 10542
            CALL SYNERR('''Enum'' is redundant.',0)
10542     MODE=14
          CALL SSALL0(1)
          SEMSK0(SEMSP0-1)=P
          CALL GETSYM
          IF((STATE.NE.3))GOTO 10473
            CALL ENUMS0(STATE)
            AAADV0=STATE
            GOTO 10544
10545         GPST=2
              RETURN
10546         P=SEMSK0(SEMSP0-1)
              CALL SSDEA0(1)
            GOTO 10547
10544       AAADW0=AAADV0-1
            GOTO(10545,10546),AAADW0
10547       IF((STATE.EQ.3))GOTO 10548
              GPST=2
              RETURN
10548     CONTINUE
10543   GOTO 10473
10549     STATE=3
          IF((FINDS0(SYMTE0,SYMPT0,1).EQ.0))GOTO 10551
          IF((MEMAA0(SYMPT0+2).NE.6))GOTO 10551
          GOTO 10550
10551       STATE=1
            GOTO 10552
10550       IF((MODE.EQ.20))GOTO 10553
              IF((MEMAA0(SYMPT0+3).NE.LLAAA0))GOTO 10554
                CALL SYNERR('Mode and typedef name cannot appear togethe
     *r.',0)
10554         STATE=1
10553     CONTINUE
10552     IF((STATE.NE.3))GOTO 10473
            STATE=1
            IF((SYMBO0.NE.1023))GOTO 10556
              STATE=3
              MODE=19
              P=MEMAA0(SYMPT0+1)
              CALL GETSYM
10556       IF((STATE.EQ.3))GOTO 10557
              GPST=2
              RETURN
10557     CONTINUE
10555   GOTO 10473
10470   AAADX0=AAADQ0-1022
        GOTO(10549,10558,10558,10558,10558,10471,10558,10558,10482,10558
     *,10558,10558,10558,10558,10521,10558,10558,10558,10541,10474,10515
     *,10558,10558,10558,10558,10558,10558,10558,10493,10558,10497,10476
     *,10558,10487,10558,10478,10525,10558,10480,10558,10533,10505),AAAD
     *X0
10558   CONTINUE
10473 CONTINUE
      IF((STATE.EQ.3))GOTO 10469
      AAADY0=STATE
      GOTO 10559
10560   STATE=3
      GOTO 10561
10559 IF(AAADY0.EQ.1)GOTO 10560
10561 IF((STATE.NE.3))GOTO 10562
        CALL EMPTY(STATE)
        AAADZ0=STATE
        GOTO 10563
10564     GPST=2
          RETURN
10565     IF((MODE.NE.20))GOTO 10566
            P=INTMO0
10566     SEMSK0(SEMSP0-1)=SC
          SEMSK0(SEMSP0-2)=P
        GOTO 10567
10563   AAAEA0=AAADZ0-1
        GOTO(10564,10565),AAAEA0
10567   IF((STATE.EQ.3))GOTO 10568
          GPST=2
          RETURN
10568 CONTINUE
10562 GPST=STATE
      RETURN
      END
      SUBROUTINE INITE0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAEB0
      INTEGER AAAEC0
      INTEGER AAAED0
      CALL INITD0(STATE)
      AAAEB0=STATE
      GOTO 10569
10570   GPST=2
        RETURN
10569 IF(AAAEB0.EQ.2)GOTO 10570
      IF((STATE.NE.3))GOTO 10571
10572     STATE=1
          IF((SYMBO0.NE.172))GOTO 10573
            STATE=3
            CALL GETSYM
10573     IF((STATE.NE.3))GOTO 10574
            CALL INITD0(STATE)
            AAAEC0=STATE
            GOTO 10575
10576         GPST=2
              RETURN
10575       IF(AAAEC0.EQ.2)GOTO 10576
            IF((STATE.EQ.3))GOTO 10577
              GPST=2
              RETURN
10577     CONTINUE
10574   CONTINUE
        IF((STATE.EQ.3))GOTO 10572
        AAAED0=STATE
        GOTO 10578
10579     STATE=3
        GOTO 10580
10578   IF(AAAED0.EQ.1)GOTO 10579
10580   IF((STATE.EQ.3))GOTO 10581
          GPST=2
          RETURN
10581 CONTINUE
10571 GPST=STATE
      RETURN
      END
      SUBROUTINE INITD0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER DM,ID,PARAMS
      INTEGER MODE
      INTEGER SC,ARG
      INTEGER ISSTO0
      INTEGER AAAEE0
      INTEGER AAAEF0
      INTEGER AAAEG0
      INTEGER AAAEH0
      INTEGER AAAEI0
      INTEGER AAAEJ0
      INTEGER AAAEK0
      INTEGER AAAEL0
      INTEGER AAAEM0
      SC=SEMSK0(SEMSP0-1)
      MODE=SEMSK0(SEMSP0-2)
      ARG=SEMSK0(SEMSP0-3)
      ID=0
      PARAMS=0
      CALL SSALL0(2)
      SEMSK0(SEMSP0-1)=ID
      SEMSK0(SEMSP0-2)=PARAMS
      CALL DECLB0(STATE)
      AAAEE0=STATE
      GOTO 10582
10583   GPST=2
        RETURN
10584   ID=SEMSK0(SEMSP0-1)
        PARAMS=SEMSK0(SEMSP0-2)
        CALL SSDEA0(2)
        DM=MODE
        CALL CREAU0(DM)
        CALL ENTET0(ID,DM,SC,PARAMS,ARG,0)
        IF((ISSTO0(ID).NE.1))GOTO 10586
          CALL OUTVAR(ID)
10585 GOTO 10586
10582 AAAEF0=AAAEE0-1
      GOTO(10583,10584),AAAEF0
10586 IF((STATE.NE.3))GOTO 10587
        STATE=1
        IF((SYMBO0.NE.189))GOTO 10588
          STATE=3
          IF((ARG.NE.1))GOTO 10589
            CALL SYNERR('Parameters cannot be initialized.',0)
            STATE=1
            CALL SKIPTO(172)
10589     CALL GETSYM
10588   IF((STATE.NE.3))GOTO 10590
          CALL EMPTY(STATE)
          AAAEG0=STATE
          GOTO 10591
10592       GPST=2
            RETURN
10593       CALL SSALL0(1)
            SEMSK0(SEMSP0-1)=ID
          GOTO 10594
10591     AAAEH0=AAAEG0-1
          GOTO(10592,10593),AAAEH0
10594     IF((STATE.EQ.3))GOTO 10595
            GPST=2
            RETURN
10595     CALL INITJ0(STATE)
          AAAEI0=STATE
          GOTO 10596
10597       GPST=2
            RETURN
10598       ID=SEMSK0(SEMSP0-1)
            CALL SSDEA0(1)
          GOTO 10599
10596     AAAEJ0=AAAEI0-1
          GOTO(10597,10598),AAAEJ0
10599     IF((STATE.EQ.3))GOTO 10600
            GPST=2
            RETURN
10600   CONTINUE
10590   AAAEK0=STATE
        GOTO 10601
10602     STATE=3
        GOTO 10603
10601   IF(AAAEK0.EQ.1)GOTO 10602
10603   IF((STATE.EQ.3))GOTO 10604
          GPST=2
          RETURN
10604   CALL EMPTY(STATE)
        AAAEL0=STATE
        GOTO 10605
10606     GPST=2
          RETURN
10607     CALL ALLOC0(ID)
          IF((ISSTO0(ID).NE.1))GOTO 10608
            CALL OUTOP0(39)
            CALL OUTSI0(MEMAA0(ID+1))
10608     SEMSK0(SEMSP0-1)=SC
          SEMSK0(SEMSP0-2)=MODE
          SEMSK0(SEMSP0-3)=ARG
        GOTO 10609
10605   AAAEM0=AAAEL0-1
        GOTO(10606,10607),AAAEM0
10609   IF((STATE.EQ.3))GOTO 10610
          GPST=2
          RETURN
10610 CONTINUE
10587 GPST=STATE
      RETURN
      END
      SUBROUTINE DECLB0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER PARAMS,ID
      INTEGER SCNT,V
      INTEGER Q,TAIL,TP,MP
      INTEGER SDUPL,DSGET
      INTEGER AAAEN0
      INTEGER AAAEO0
      INTEGER AAAEP0
      INTEGER AAAEQ0
      INTEGER AAAER0
      INTEGER AAAES0
      INTEGER AAAET0
      INTEGER AAAEU0
      INTEGER AAAEV0
      INTEGER AAAEW0
      INTEGER AAAEX0
      INTEGER AAAEY0
      INTEGER AAAEZ0
      ID=SEMSK0(SEMSP0-1)
      PARAMS=SEMSK0(SEMSP0-2)
      SCNT=0
10611   STATE=1
        IF((SYMBO0.NE.170))GOTO 10612
          STATE=3
          SCNT=SCNT+(1)
          CALL GETSYM
10612 CONTINUE
      IF((STATE.EQ.3))GOTO 10611
      AAAEN0=STATE
      GOTO 10613
10614   STATE=3
      GOTO 10615
10613 IF(AAAEN0.EQ.1)GOTO 10614
10615 IF((STATE.NE.3))GOTO 10616
        STATE=1
        IF((SYMBO0.NE.168))GOTO 10617
          STATE=3
          CALL SSALL0(2)
          SEMSK0(SEMSP0-1)=ID
          SEMSK0(SEMSP0-2)=PARAMS
          CALL GETSYM
10617   IF((STATE.NE.3))GOTO 10618
          CALL DECLB0(STATE)
          AAAEO0=STATE
          GOTO 10619
10620       GPST=2
            RETURN
10621       ID=SEMSK0(SEMSP0-1)
            PARAMS=SEMSK0(SEMSP0-2)
            CALL SSDEA0(2)
          GOTO 10622
10619     AAAEP0=AAAEO0-1
          GOTO(10620,10621),AAAEP0
10622     IF((STATE.EQ.3))GOTO 10623
            GPST=2
            RETURN
10623     STATE=1
          IF((SYMBO0.NE.169))GOTO 10624
            STATE=3
            CALL GETSYM
            GOTO 10625
10624       CALL SYNERR('right paren required.',0)
            STATE=3
10625     IF((STATE.EQ.3))GOTO 10626
            GPST=2
            RETURN
10626   CONTINUE
10618   IF((STATE.NE.1))GOTO 10627
          IF((SYMBO0.NE.1023))GOTO 10628
            STATE=3
            ID=SDUPL(SYMTE0)
            CALL GETSYM
10628   CONTINUE
10627   IF((STATE.NE.1))GOTO 10629
          CALL SYNERR('Identifier required in declarator.',0)
          CALL GETSYM
          STATE=3
10629   IF((STATE.EQ.3))GOTO 10630
          GPST=2
          RETURN
10630   CONTINUE
10631     STATE=1
          IF((SYMBO0.NE.168))GOTO 10632
            STATE=3
            CALL GETSYM
10632     IF((STATE.NE.3))GOTO 10633
            STATE=1
            IF((SYMBO0.NE.1023))GOTO 10634
              STATE=3
              TP=SDUPL(SYMTE0)
              MP=0
              CALL GETSYM
              GOTO 10635
10634         CALL SSALL0(1)
              SEMSK0(SEMSP0-1)=MP
10635       IF((STATE.NE.1))GOTO 10636
              CALL TYPEN0(STATE)
              AAAEQ0=STATE
              GOTO 10637
10638           GPST=2
                RETURN
10639           MP=SEMSK0(SEMSP0-1)
                CALL SSDEA0(1)
              GOTO 10640
10641           MP=SEMSK0(SEMSP0-1)
                CALL SSDEA0(1)
                TP=0
              GOTO 10640
10637         GOTO(10639,10638,10641),AAAEQ0
10640         IF((STATE.NE.1))GOTO 10642
                IF((SYMBO0.NE.172))GOTO 10643
                  STATE=3
                  TP=0
                  MP=0
10643         CONTINUE
10642       CONTINUE
10636       IF((STATE.NE.3))GOTO 10644
              IF((PARAMS.EQ.0))GOTO 10645
                CALL SYNERR('Only 1 parameter list allowed.',0)
10645         TAIL=DSGET(3)
              PARAMS=TAIL
              MEMAA0(TAIL+1)=TP
              MEMAA0(TAIL+2)=MP
              MEMAA0(TAIL)=0
10644       IF((STATE.NE.3))GOTO 10646
10647           STATE=1
                IF((SYMBO0.NE.172))GOTO 10648
                  STATE=3
                  CALL GETSYM
10648           IF((STATE.NE.3))GOTO 10649
                  STATE=1
                  IF((SYMBO0.NE.1023))GOTO 10650
                    STATE=3
                    TP=SDUPL(SYMTE0)
                    MP=0
                    CALL GETSYM
                    GOTO 10651
10650               CALL SSALL0(1)
                    SEMSK0(SEMSP0-1)=MP
10651             IF((STATE.NE.1))GOTO 10652
                    CALL TYPEN0(STATE)
                    AAAER0=STATE
                    GOTO 10653
10654                 GPST=2
                      RETURN
10655                 MP=SEMSK0(SEMSP0-1)
                      CALL SSDEA0(1)
                    GOTO 10656
10657                 MP=SEMSK0(SEMSP0-1)
                      CALL SSDEA0(1)
                      TP=0
                    GOTO 10656
10653               GOTO(10655,10654,10657),AAAER0
10656               IF((STATE.NE.1))GOTO 10658
                      IF((SYMBO0.NE.172))GOTO 10659
                        STATE=3
                        TP=0
                        MP=0
10659               CONTINUE
10658             CONTINUE
10652             AAAES0=STATE
                  GOTO 10660
10661               CALL SYNERR('Parameters must be identifiers.',0)
                    STATE=3
                  GOTO 10662
10663               Q=DSGET(3)
                    MEMAA0(Q+1)=TP
                    MEMAA0(Q+2)=MP
                    MEMAA0(Q)=0
                    MEMAA0(TAIL)=Q
                    TAIL=Q
                  GOTO 10662
10660             GOTO(10661,10664,10663),AAAES0
10664             CONTINUE
10662             IF((STATE.EQ.3))GOTO 10665
                    GPST=2
                    RETURN
10665           CONTINUE
10649         CONTINUE
              IF((STATE.EQ.3))GOTO 10647
              AAAET0=STATE
              GOTO 10666
10667           STATE=3
              GOTO 10668
10666         IF(AAAET0.EQ.1)GOTO 10667
10668         IF((STATE.EQ.3))GOTO 10669
                GPST=2
                RETURN
10669       CONTINUE
10646       AAAEU0=STATE
            GOTO 10670
10671         STATE=3
            GOTO 10672
10670       IF(AAAEU0.EQ.1)GOTO 10671
10672       IF((STATE.EQ.3))GOTO 10673
              GPST=2
              RETURN
10673       STATE=1
            IF((SYMBO0.NE.169))GOTO 10674
              STATE=3
              CALL SAVEM0(15,0)
              CALL GETSYM
              GOTO 10675
10674         CALL SYNERR('Parameters must be identifiers.',0)
              STATE=3
10675       IF((STATE.EQ.3))GOTO 10676
              GPST=2
              RETURN
10676     CONTINUE
10633     IF((STATE.NE.1))GOTO 10677
            IF((SYMBO0.NE.219))GOTO 10678
              STATE=3
              CALL SSALL0(1)
              SEMSK0(SEMSP0-1)=0
              CALL GETSYM
10678       IF((STATE.NE.3))GOTO 10679
              CALL CONST0(STATE)
              AAAEV0=STATE
              GOTO 10680
10681           GPST=2
                RETURN
10682           V=SEMSK0(SEMSP0-1)
                CALL SSDEA0(1)
                V=0
              GOTO 10683
10684           V=SEMSK0(SEMSP0-1)
                CALL SSDEA0(1)
              GOTO 10683
10680         GOTO(10682,10681,10684),AAAEV0
10683         AAAEW0=STATE
              GOTO 10685
10686           STATE=3
              GOTO 10687
10685         IF(AAAEW0.EQ.1)GOTO 10686
10687         IF((STATE.EQ.3))GOTO 10688
                GPST=2
                RETURN
10688         STATE=1
              IF((SYMBO0.NE.221))GOTO 10689
                STATE=3
                CALL SAVEM0(13,V)
                CALL GETSYM
                GOTO 10690
10689           CALL SYNERR('Right bracket required.',0)
                STATE=3
10690         IF((STATE.EQ.3))GOTO 10691
                GPST=2
                RETURN
10691       CONTINUE
10679     CONTINUE
10677   CONTINUE
        IF((STATE.EQ.3))GOTO 10631
        AAAEX0=STATE
        GOTO 10692
10693     STATE=3
        GOTO 10694
10692   IF(AAAEX0.EQ.1)GOTO 10693
10694   IF((STATE.EQ.3))GOTO 10695
          GPST=2
          RETURN
10695   CALL EMPTY(STATE)
        AAAEY0=STATE
        GOTO 10696
10697     GPST=2
          RETURN
10699     SCNT=SCNT-(1)
10701     IF((SCNT.LE.0))GOTO 10700
            CALL SAVEM0(12,0)
          GOTO 10699
10700     SEMSK0(SEMSP0-1)=ID
          SEMSK0(SEMSP0-2)=PARAMS
        GOTO 10702
10696   AAAEZ0=AAAEY0-1
        GOTO(10697,10701),AAAEZ0
10702   IF((STATE.EQ.3))GOTO 10703
          GPST=2
          RETURN
10703 CONTINUE
10616 GPST=STATE
      RETURN
      END
      SUBROUTINE STRUH0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER UNION
      INTEGER MP,TAIL,ID
      INTEGER FINDS0,MAKES0,ENTEW0
      INTEGER MT
      INTEGER AAAFA0
      INTEGER AAAFB0
      INTEGER AAAFC0
      INTEGER AAAFD0
      INTEGER AAAFE0
      UNION=SEMSK0(SEMSP0-1)
      MP=SEMSK0(SEMSP0-2)
      IF((UNION.NE.0))GOTO 10704
        MT=16
        GOTO 10705
10704   MT=17
10705 STATE=1
      IF((SYMBO0.NE.251))GOTO 10706
        STATE=3
        MP=ENTEW0(MODET0,MT,0)
10706 IF((STATE.NE.1))GOTO 10707
        IF((SYMBO0.NE.1023))GOTO 10708
          STATE=3
          IF((FINDS0(SYMTE0,ID,2).EQ.0))GOTO 10710
          IF((MEMAA0(ID+3).EQ.LLAAA0))GOTO 10709
          IF((NSYMB0.NE.251))GOTO 10709
          GOTO 10710
10710       ID=MAKES0(SYMTE0,4,LLAAA0)
            MP=ENTEW0(MODET0,MT,0)
            MEMAA0(ID+1)=MP
            GOTO 10712
10709       IF((MEMAA0(ID).EQ.4))GOTO 10713
              CALL SYNERR('Struct tag already declared as struct member.
     *',0)
              MP=ENTEW0(MODET0,MT,0)
              GOTO 10714
10713         IF((NSYMB0.NE.251))GOTO 10715
              IF((MEMAA0(ID+1).EQ.0))GOTO 10715
              IF((MEMAA0(MEMAA0(ID+1)+5).EQ.0))GOTO 10715
                CALL SYNERR('Struct already defined.',0)
                MP=ENTEW0(MODET0,MT,0)
                GOTO 10716
10715           MP=MEMAA0(ID+1)
10716       CONTINUE
10714     CONTINUE
10712     CALL GETSYM
10708 CONTINUE
10707 IF((STATE.NE.1))GOTO 10717
        CALL SYNERR('Name or left brace must follow ''struct''.',0)
        STATE=3
        MP=ENTEW0(MODET0,MT,0)
10717 IF((STATE.NE.3))GOTO 10718
        STATE=1
        IF((SYMBO0.NE.251))GOTO 10719
          STATE=3
          MEMAA0(MP+5)=0
          CALL PUTLO0(MEMAA0(MP+6),INTL(0))
          TAIL=0
          CALL SSALL0(2)
          SEMSK0(SEMSP0-1)=MP
          SEMSK0(SEMSP0-2)=TAIL
          CALL GETSYM
10719   IF((STATE.NE.3))GOTO 10720
          CALL STRUF0(STATE)
          AAAFA0=STATE
          GOTO 10721
10722       GPST=2
            RETURN
10723       MP=SEMSK0(SEMSP0-1)
            TAIL=SEMSK0(SEMSP0-2)
            CALL SSDEA0(2)
            CALL ALIGN0(INTMO0,MEMAA0(MP+6))
          GOTO 10724
10721     AAAFB0=AAAFA0-1
          GOTO(10722,10723),AAAFB0
10724     IF((STATE.EQ.3))GOTO 10725
            GPST=2
            RETURN
10725     STATE=1
          IF((SYMBO0.NE.253))GOTO 10726
            STATE=3
            CALL GETSYM
            GOTO 10727
10726       CALL SYNERR('Right brace required.',0)
            STATE=3
10727     IF((STATE.EQ.3))GOTO 10728
            GPST=2
            RETURN
10728   CONTINUE
10720   AAAFC0=STATE
        GOTO 10729
10730     STATE=3
        GOTO 10731
10729   IF(AAAFC0.EQ.1)GOTO 10730
10731   IF((STATE.EQ.3))GOTO 10732
          GPST=2
          RETURN
10732   CALL EMPTY(STATE)
        AAAFD0=STATE
        GOTO 10733
10734     GPST=2
          RETURN
10735     IF((MP.NE.0))GOTO 10736
            MP=INTMO0
10736     SEMSK0(SEMSP0-1)=UNION
          SEMSK0(SEMSP0-2)=MP
        GOTO 10737
10733   AAAFE0=AAAFD0-1
        GOTO(10734,10735),AAAFE0
10737   IF((STATE.EQ.3))GOTO 10738
          GPST=2
          RETURN
10738 CONTINUE
10718 GPST=STATE
      RETURN
      END
      SUBROUTINE STRUF0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAFF0
      INTEGER AAAFG0
      INTEGER AAAFH0
      INTEGER AAAFI0
      CALL STRUC0(STATE)
      AAAFF0=STATE
      GOTO 10739
10740   GPST=2
        RETURN
10739 IF(AAAFF0.EQ.2)GOTO 10740
      IF((STATE.NE.3))GOTO 10741
10742     CALL TYPEO0(STATE)
          AAAFG0=STATE
          GOTO 10743
10744       GPST=2
            RETURN
10743     IF(AAAFG0.EQ.2)GOTO 10744
          IF((STATE.NE.3))GOTO 10745
            CALL STRUC0(STATE)
            AAAFH0=STATE
            GOTO 10746
10747         GPST=2
              RETURN
10746       IF(AAAFH0.EQ.2)GOTO 10747
            IF((STATE.EQ.3))GOTO 10748
              GPST=2
              RETURN
10748     CONTINUE
10745   CONTINUE
        IF((STATE.EQ.3))GOTO 10742
        AAAFI0=STATE
        GOTO 10749
10750     STATE=3
        GOTO 10751
10749   IF(AAAFI0.EQ.1)GOTO 10750
10751   IF((STATE.EQ.3))GOTO 10752
          GPST=2
          RETURN
10752 CONTINUE
10741 GPST=STATE
      RETURN
      END
      SUBROUTINE STRUC0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER MP,TAIL,ID
      INTEGER SC,SIZE
      INTEGER MODE
      INTEGER AAAFJ0
      INTEGER AAAFK0
      INTEGER AAAFL0
      INTEGER AAAFM0
      INTEGER AAAFN0
      INTEGER AAAFO0
      MP=SEMSK0(SEMSP0-1)
      TAIL=SEMSK0(SEMSP0-2)
      CALL SSALL0(2)
      SEMSK0(SEMSP0-1)=SC
      SEMSK0(SEMSP0-2)=MODE
      CALL DECLS0(STATE)
      AAAFJ0=STATE
      GOTO 10753
10754   GPST=2
        RETURN
10755   SC=SEMSK0(SEMSP0-1)
        MODE=SEMSK0(SEMSP0-2)
        CALL SSDEA0(2)
        IF((SC.EQ.1))GOTO 10756
          CALL SYNERR('Storage class cannot appear in ''struct''.',0)
          SC=1
10756   CALL SSALL0(3)
        SEMSK0(SEMSP0-1)=MP
        SEMSK0(SEMSP0-2)=TAIL
        SEMSK0(SEMSP0-3)=MODE
      GOTO 10757
10753 AAAFK0=AAAFJ0-1
      GOTO(10754,10755),AAAFK0
10757 IF((STATE.NE.3))GOTO 10758
        CALL STRUE0(STATE)
        AAAFL0=STATE
        GOTO 10759
10760     GPST=2
          RETURN
10761     MP=SEMSK0(SEMSP0-1)
          TAIL=SEMSK0(SEMSP0-2)
          MODE=SEMSK0(SEMSP0-3)
          CALL SSDEA0(3)
        GOTO 10762
10759   AAAFM0=AAAFL0-1
        GOTO(10760,10761),AAAFM0
10762   IF((STATE.EQ.3))GOTO 10763
          GPST=2
          RETURN
10763   STATE=1
        IF((SYMBO0.NE.187))GOTO 10764
          STATE=3
          CALL GETSYM
          GOTO 10765
10764     CALL SYNERR('Semicolon required.',0)
          STATE=3
10765   IF((STATE.EQ.3))GOTO 10766
          GPST=2
          RETURN
10766   CALL EMPTY(STATE)
        AAAFN0=STATE
        GOTO 10767
10768     GPST=2
          RETURN
10769     SEMSK0(SEMSP0-1)=MP
          SEMSK0(SEMSP0-2)=TAIL
        GOTO 10770
10767   AAAFO0=AAAFN0-1
        GOTO(10768,10769),AAAFO0
10770   IF((STATE.EQ.3))GOTO 10771
          GPST=2
          RETURN
10771 CONTINUE
10758 GPST=STATE
      RETURN
      END
      SUBROUTINE STRUE0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAFP0
      INTEGER AAAFQ0
      INTEGER AAAFR0
      CALL STRUD0(STATE)
      AAAFP0=STATE
      GOTO 10772
10773   GPST=2
        RETURN
10772 IF(AAAFP0.EQ.2)GOTO 10773
      IF((STATE.NE.3))GOTO 10774
10775     STATE=1
          IF((SYMBO0.NE.172))GOTO 10776
            STATE=3
            CALL GETSYM
10776     IF((STATE.NE.3))GOTO 10777
            CALL STRUD0(STATE)
            AAAFQ0=STATE
            GOTO 10778
10779         GPST=2
              RETURN
10778       IF(AAAFQ0.EQ.2)GOTO 10779
            IF((STATE.EQ.3))GOTO 10780
              GPST=2
              RETURN
10780     CONTINUE
10777   CONTINUE
        IF((STATE.EQ.3))GOTO 10775
        AAAFR0=STATE
        GOTO 10781
10782     STATE=3
        GOTO 10783
10781   IF(AAAFR0.EQ.1)GOTO 10782
10783   IF((STATE.EQ.3))GOTO 10784
          GPST=2
          RETURN
10784 CONTINUE
10774 GPST=STATE
      RETURN
      END
      SUBROUTINE STRUD0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER ID,TAIL,MODE,MP
      INTEGER PARAMS,DM
      INTEGER DSGET
      INTEGER V,SIZE
      INTEGER * 4 SIZEO0
      INTEGER AAAFS0
      INTEGER AAAFT0
      INTEGER AAAFU0
      INTEGER AAAFV0
      INTEGER AAAFW0
      INTEGER AAAFX0
      INTEGER AAAFY0
      INTEGER AAAFZ0
      INTEGER AAAGA0
      MP=SEMSK0(SEMSP0-1)
      TAIL=SEMSK0(SEMSP0-2)
      MODE=SEMSK0(SEMSP0-3)
      STATE=1
      IF((SYMBO0.NE.186))GOTO 10785
        STATE=3
        CALL SSALL0(1)
        SEMSK0(SEMSP0-1)=0
        CALL GETSYM
10785 IF((STATE.NE.3))GOTO 10786
        CALL CONST0(STATE)
        AAAFS0=STATE
        GOTO 10787
10788     GPST=2
          RETURN
10789     V=SEMSK0(SEMSP0-1)
          CALL SSDEA0(1)
          V=0
          CALL SYNERR('Constant expression required.',0)
          STATE=3
        GOTO 10790
10791     V=SEMSK0(SEMSP0-1)
          CALL SSDEA0(1)
          IF((V.GE.0))GOTO 10792
            CALL SYNERR('Field size must be >= 0.',0)
            GOTO 10790
10792       IF((V.NE.0))GOTO 10794
              CALL ALIGN0(SHORT0,MEMAA0(MP+6))
              GOTO 10795
10794         IF((V.LE.16))GOTO 10796
                DM=LONGU0
                GOTO 10797
10796           DM=SHORU0
10797         CALL CREAT0(DM,11,V)
              CALL ALIGN0(DM,MEMAA0(MP+6))
              CALL ALLOD0(MP,SIZEO0(DM))
10795     CONTINUE
10793   GOTO 10790
10787   GOTO(10789,10788,10791),AAAFS0
10790   IF((STATE.EQ.3))GOTO 10798
          GPST=2
          RETURN
10798 CONTINUE
10786 IF((STATE.NE.1))GOTO 10799
        CALL EMPTY(STATE)
        AAAFT0=STATE
        GOTO 10800
10801     GPST=2
          RETURN
10802     ID=0
          PARAMS=0
          CALL SSALL0(2)
          SEMSK0(SEMSP0-1)=ID
          SEMSK0(SEMSP0-2)=PARAMS
        GOTO 10803
10800   AAAFU0=AAAFT0-1
        GOTO(10801,10802),AAAFU0
10803   IF((STATE.NE.3))GOTO 10804
          CALL DECLB0(STATE)
          AAAFV0=STATE
          GOTO 10805
10806       GPST=2
            RETURN
10807       ID=SEMSK0(SEMSP0-1)
            PARAMS=SEMSK0(SEMSP0-2)
            CALL SSDEA0(2)
            DM=MODE
            CALL CREAU0(DM)
          GOTO 10808
10805     AAAFW0=AAAFV0-1
          GOTO(10806,10807),AAAFW0
10808     IF((STATE.EQ.3))GOTO 10809
            GPST=2
            RETURN
10809     STATE=1
          IF((SYMBO0.NE.186))GOTO 10810
            STATE=3
            CALL SSALL0(1)
            SEMSK0(SEMSP0-1)=0
            CALL GETSYM
10810     IF((STATE.NE.3))GOTO 10811
            CALL CONST0(STATE)
            AAAFX0=STATE
            GOTO 10812
10813         GPST=2
              RETURN
10814         V=SEMSK0(SEMSP0-1)
              CALL SSDEA0(1)
              CALL SYNERR('Constant expression required.',0)
              STATE=3
            GOTO 10815
10816         V=SEMSK0(SEMSP0-1)
              CALL SSDEA0(1)
              IF((V.GT.0))GOTO 10817
                CALL SYNERR('Field size must be > 0.',0)
                V=1
10817         IF((V.LE.32))GOTO 10818
                CALL SYNERR('Field size must be <= 32.',0)
                V=32
10818         IF((DM.EQ.INTMO0))GOTO 10819
              IF((DM.EQ.SHORT0))GOTO 10819
              IF((DM.EQ.LONGM0))GOTO 10819
              IF((DM.EQ.UNSIG0))GOTO 10819
              IF((DM.EQ.LONGU0))GOTO 10819
              IF((DM.EQ.SHORU0))GOTO 10819
              IF((DM.EQ.CHARM0))GOTO 10819
                CALL SYNERR('Only fields of integers are allowed.',0)
10819         IF((V.LE.16))GOTO 10820
                DM=LONGU0
                GOTO 10821
10820           DM=SHORU0
10821         CALL CREAT0(DM,11,V)
            GOTO 10815
10812       GOTO(10814,10813,10816),AAAFX0
10815       IF((STATE.EQ.3))GOTO 10822
              GPST=2
              RETURN
10822     CONTINUE
10811     AAAFY0=STATE
          GOTO 10823
10824       STATE=3
          GOTO 10825
10823     IF(AAAFY0.EQ.1)GOTO 10824
10825     IF((STATE.EQ.3))GOTO 10826
            GPST=2
            RETURN
10826     CALL EMPTY(STATE)
          AAAFZ0=STATE
          GOTO 10827
10828       GPST=2
            RETURN
10829       CALL ALIGN0(DM,MEMAA0(MP+6))
            IF((MEMAA0(MP+3).NE.17))GOTO 10830
              CALL ENTEX0(ID,DM,PARAMS,INTL(0))
              GOTO 10831
10830         CALL ENTEX0(ID,DM,PARAMS,MEMAA0(MP+6))
10831       CALL ALLOD0(MP,SIZEO0(DM))
            IF((MEMAA0(MP+5).NE.0))GOTO 10832
              MEMAA0(MP+5)=DSGET(2)
              TAIL=MEMAA0(MP+5)
              GOTO 10833
10832         MEMAA0(TAIL)=DSGET(2)
              TAIL=MEMAA0(TAIL)
10833       MEMAA0(TAIL)=0
            MEMAA0(TAIL+1)=ID
          GOTO 10834
10827     AAAGA0=AAAFZ0-1
          GOTO(10828,10829),AAAGA0
10834     IF((STATE.EQ.3))GOTO 10835
            GPST=2
            RETURN
10835   CONTINUE
10804 CONTINUE
10799 IF((STATE.NE.3))GOTO 10836
        SEMSK0(SEMSP0-1)=MP
        SEMSK0(SEMSP0-2)=TAIL
        SEMSK0(SEMSP0-3)=MODE
10836 GPST=STATE
      RETURN
      END
      SUBROUTINE ENUMS0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER MP
      INTEGER V
      INTEGER FINDS0
      INTEGER ID
      INTEGER MAKES0,ENTEW0
      INTEGER AAAGB0
      INTEGER AAAGC0
      INTEGER AAAGD0
      INTEGER AAAGE0
      INTEGER AAAGF0
      INTEGER AAAGG0
      INTEGER AAAGH0
      INTEGER AAAGI0
      MP=SEMSK0(SEMSP0-1)
      STATE=1
      IF((SYMBO0.NE.251))GOTO 10837
        STATE=3
        MP=ENTEW0(MODET0,14,0)
10837 IF((STATE.NE.1))GOTO 10838
        IF((SYMBO0.NE.1023))GOTO 10839
          STATE=3
          IF((FINDS0(SYMTE0,ID,1).EQ.0))GOTO 10841
          IF((MEMAA0(ID+3).EQ.LLAAA0))GOTO 10840
          IF((NSYMB0.NE.251))GOTO 10840
          GOTO 10841
10841       ID=MAKES0(SYMTE0,5,LLAAA0)
            MP=ENTEW0(MODET0,14,0)
            MEMAA0(ID+1)=MP
            GOTO 10843
10840       IF((MEMAA0(ID).EQ.5))GOTO 10844
              CALL SYNERR('Already defined, but not as ''enum''.',0)
              MP=ENTEW0(MODET0,14,0)
              GOTO 10845
10844         IF((NSYMB0.NE.251))GOTO 10846
              IF((MEMAA0(ID+1).EQ.0))GOTO 10846
              IF((MEMAA0(MEMAA0(ID+1)+5).EQ.0))GOTO 10846
                CALL SYNERR('Enum already defined.',0)
                MP=ENTEW0(MODET0,14,0)
                GOTO 10847
10846           MP=MEMAA0(ID+1)
10847       CONTINUE
10845     CONTINUE
10843     CALL GETSYM
10839 CONTINUE
10838 IF((STATE.NE.1))GOTO 10848
        CALL SYNERR('Name or left brace must follow ''enum''.',0)
        STATE=3
        MP=ENTEW0(MODET0,14,0)
10848 IF((STATE.NE.3))GOTO 10849
        STATE=1
        IF((SYMBO0.NE.251))GOTO 10850
          STATE=3
          MEMAA0(MP+5)=1
          V=0
          CALL SSALL0(2)
          SEMSK0(SEMSP0-1)=MP
          SEMSK0(SEMSP0-2)=V
          CALL GETSYM
10850   IF((STATE.NE.3))GOTO 10851
          CALL ENUMD0(STATE)
          AAAGB0=STATE
          GOTO 10852
10853       GPST=2
            RETURN
10854       MP=SEMSK0(SEMSP0-1)
            V=SEMSK0(SEMSP0-2)
            CALL SSDEA0(2)
          GOTO 10855
10852     AAAGC0=AAAGB0-1
          GOTO(10853,10854),AAAGC0
10855     IF((STATE.EQ.3))GOTO 10856
            GPST=2
            RETURN
10856     CONTINUE
10857       STATE=1
            IF((SYMBO0.NE.172))GOTO 10858
              STATE=3
              CALL SSALL0(2)
              SEMSK0(SEMSP0-1)=MP
              SEMSK0(SEMSP0-2)=V
              CALL GETSYM
10858       IF((STATE.NE.3))GOTO 10859
              CALL ENUMD0(STATE)
              AAAGD0=STATE
              GOTO 10860
10861           GPST=2
                RETURN
10862           MP=SEMSK0(SEMSP0-1)
                V=SEMSK0(SEMSP0-2)
                CALL SSDEA0(2)
              GOTO 10863
10860         AAAGE0=AAAGD0-1
              GOTO(10861,10862),AAAGE0
10863         IF((STATE.EQ.3))GOTO 10864
                GPST=2
                RETURN
10864       CONTINUE
10859     CONTINUE
          IF((STATE.EQ.3))GOTO 10857
          AAAGF0=STATE
          GOTO 10865
10866       STATE=3
          GOTO 10867
10865     IF(AAAGF0.EQ.1)GOTO 10866
10867     IF((STATE.EQ.3))GOTO 10868
            GPST=2
            RETURN
10868     STATE=1
          IF((SYMBO0.NE.253))GOTO 10869
            STATE=3
            CALL GETSYM
            GOTO 10870
10869       CALL SYNERR('Right brace required.',0)
            STATE=3
10870     IF((STATE.EQ.3))GOTO 10871
            GPST=2
            RETURN
10871   CONTINUE
10851   AAAGG0=STATE
        GOTO 10872
10873     STATE=3
        GOTO 10874
10872   IF(AAAGG0.EQ.1)GOTO 10873
10874   IF((STATE.EQ.3))GOTO 10875
          GPST=2
          RETURN
10875   CALL EMPTY(STATE)
        AAAGH0=STATE
        GOTO 10876
10877     GPST=2
          RETURN
10878     IF((MP.NE.0))GOTO 10879
            MP=INTMO0
10879     SEMSK0(SEMSP0-1)=MP
        GOTO 10880
10876   AAAGI0=AAAGH0-1
        GOTO(10877,10878),AAAGI0
10880   IF((STATE.EQ.3))GOTO 10881
          GPST=2
          RETURN
10881 CONTINUE
10849 GPST=STATE
      RETURN
      END
      SUBROUTINE ENUMD0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER MP
      INTEGER V
      INTEGER ID
      INTEGER SDUPL,NEWSYM
      INTEGER AAAGJ0
      INTEGER AAAGK0
      INTEGER AAAGL0
      INTEGER AAAGM0
      INTEGER AAAGN0
      MP=SEMSK0(SEMSP0-1)
      V=SEMSK0(SEMSP0-2)
      STATE=1
      IF((SYMBO0.NE.1023))GOTO 10882
        STATE=3
        ID=NEWSYM(SYMTE0,MP,5,0,LLAAA0,0,1,6)
        CALL GETSYM
        GOTO 10883
10882   CALL SYNERR('Identifier expected.',0)
        STATE=3
        ID=0
10883 IF((STATE.NE.3))GOTO 10884
        STATE=1
        IF((SYMBO0.NE.189))GOTO 10885
          STATE=3
          CALL SSALL0(1)
          SEMSK0(SEMSP0-1)=V
          CALL GETSYM
10885   IF((STATE.NE.3))GOTO 10886
          CALL CONST0(STATE)
          AAAGJ0=STATE
          GOTO 10887
10888       GPST=2
            RETURN
10889       V=SEMSK0(SEMSP0-1)
            CALL SSDEA0(1)
          GOTO 10890
10887     AAAGK0=AAAGJ0-1
          GOTO(10888,10889),AAAGK0
10890     IF((STATE.EQ.3))GOTO 10891
            GPST=2
            RETURN
10891   CONTINUE
10886   AAAGL0=STATE
        GOTO 10892
10893     STATE=3
        GOTO 10894
10892   IF(AAAGL0.EQ.1)GOTO 10893
10894   IF((STATE.EQ.3))GOTO 10895
          GPST=2
          RETURN
10895   CALL EMPTY(STATE)
        AAAGM0=STATE
        GOTO 10896
10897     GPST=2
          RETURN
10898     MEMAA0(ID+5)=V
          V=V+(1)
          SEMSK0(SEMSP0-1)=MP
          SEMSK0(SEMSP0-2)=V
        GOTO 10899
10896   AAAGN0=AAAGM0-1
        GOTO(10897,10898),AAAGN0
10899   IF((STATE.EQ.3))GOTO 10900
          GPST=2
          RETURN
10900 CONTINUE
10884 GPST=STATE
      RETURN
      END
      SUBROUTINE TYPEN0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER MODE
      INTEGER SC
      INTEGER AAAGO0
      INTEGER AAAGP0
      INTEGER AAAGQ0
      INTEGER AAAGR0
      INTEGER AAAGS0
      INTEGER AAAGT0
      MODE=SEMSK0(SEMSP0-1)
      CALL TYPEO0(STATE)
      AAAGO0=STATE
      GOTO 10901
10902   GPST=2
        RETURN
10903   CALL SSALL0(2)
        SEMSK0(SEMSP0-1)=SC
        SEMSK0(SEMSP0-2)=MODE
      GOTO 10904
10901 AAAGP0=AAAGO0-1
      GOTO(10902,10903),AAAGP0
10904 IF((STATE.NE.3))GOTO 10905
        CALL DECLS0(STATE)
        AAAGQ0=STATE
        GOTO 10906
10907     GPST=2
          RETURN
10908     SC=SEMSK0(SEMSP0-1)
          MODE=SEMSK0(SEMSP0-2)
          CALL SSDEA0(2)
          IF((SC.EQ.1))GOTO 10910
            CALL SYNERR('Storage class specifier illegal.',0)
10909   GOTO 10910
10906   AAAGR0=AAAGQ0-1
        GOTO(10907,10908),AAAGR0
10910   IF((STATE.EQ.3))GOTO 10911
          GPST=2
          RETURN
10911   CALL ABSTR0(STATE)
        AAAGS0=STATE
        GOTO 10912
10913     GPST=2
          RETURN
10914     CALL CREAU0(MODE)
          SEMSK0(SEMSP0-1)=MODE
        GOTO 10915
10912   AAAGT0=AAAGS0-1
        GOTO(10913,10914),AAAGT0
10915   IF((STATE.EQ.3))GOTO 10916
          GPST=2
          RETURN
10916 CONTINUE
10905 GPST=STATE
      RETURN
      END
      SUBROUTINE ABSTR0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER SCNT,V
      INTEGER AAAGU0
      INTEGER AAAGV0
      INTEGER AAAGW0
      INTEGER AAAGX0
      INTEGER AAAGY0
      INTEGER AAAGZ0
      INTEGER AAAHA0
      INTEGER AAAHB0
      SCNT=0
10917   STATE=1
        IF((SYMBO0.NE.170))GOTO 10918
          STATE=3
          SCNT=SCNT+(1)
          CALL GETSYM
10918 CONTINUE
      IF((STATE.EQ.3))GOTO 10917
      AAAGU0=STATE
      GOTO 10919
10920   STATE=3
      GOTO 10921
10919 IF(AAAGU0.EQ.1)GOTO 10920
10921 IF((STATE.NE.3))GOTO 10922
        STATE=1
        IF((SYMBO0.NE.168))GOTO 10923
          STATE=3
          IF((NSYMB0.NE.169))GOTO 10924
            STATE=1
10924   CONTINUE
10923   IF((STATE.NE.3))GOTO 10925
          STATE=1
          IF((SYMBO0.NE.168))GOTO 10926
            STATE=3
            CALL GETSYM
10926     IF((STATE.EQ.3))GOTO 10927
            GPST=2
            RETURN
10927     CALL ABSTR0(STATE)
          AAAGV0=STATE
          GOTO 10928
10929       GPST=2
            RETURN
10928     IF(AAAGV0.EQ.2)GOTO 10929
          IF((STATE.EQ.3))GOTO 10930
            GPST=2
            RETURN
10930     STATE=1
          IF((SYMBO0.NE.169))GOTO 10931
            STATE=3
            CALL GETSYM
            GOTO 10932
10931       CALL SYNERR('Right paren required.',0)
            STATE=3
10932     IF((STATE.EQ.3))GOTO 10933
            GPST=2
            RETURN
10933   CONTINUE
10925   AAAGW0=STATE
        GOTO 10934
10935     STATE=3
        GOTO 10936
10934   IF(AAAGW0.EQ.1)GOTO 10935
10936   IF((STATE.EQ.3))GOTO 10937
          GPST=2
          RETURN
10937   CONTINUE
10938     STATE=1
          IF((SYMBO0.NE.168))GOTO 10939
            STATE=3
            CALL GETSYM
10939     IF((STATE.NE.3))GOTO 10940
            STATE=1
            IF((SYMBO0.NE.169))GOTO 10941
              STATE=3
              CALL SAVEM0(15,0)
              CALL GETSYM
              GOTO 10942
10941         CALL SYNERR('Parameters not allowed.',0)
              STATE=3
10942       IF((STATE.EQ.3))GOTO 10943
              GPST=2
              RETURN
10943     CONTINUE
10940     IF((STATE.NE.1))GOTO 10944
            IF((SYMBO0.NE.219))GOTO 10945
              STATE=3
              CALL SSALL0(1)
              SEMSK0(SEMSP0-1)=0
              CALL GETSYM
10945       IF((STATE.NE.3))GOTO 10946
              CALL CONST0(STATE)
              AAAGX0=STATE
              GOTO 10947
10948           GPST=2
                RETURN
10949           V=SEMSK0(SEMSP0-1)
                CALL SSDEA0(1)
                V=0
              GOTO 10950
10951           V=SEMSK0(SEMSP0-1)
                CALL SSDEA0(1)
              GOTO 10950
10947         GOTO(10949,10948,10951),AAAGX0
10950         AAAGY0=STATE
              GOTO 10952
10953           STATE=3
              GOTO 10954
10952         IF(AAAGY0.EQ.1)GOTO 10953
10954         IF((STATE.EQ.3))GOTO 10955
                GPST=2
                RETURN
10955         STATE=1
              IF((SYMBO0.NE.221))GOTO 10956
                STATE=3
                CALL SAVEM0(13,V)
                CALL GETSYM
                GOTO 10957
10956           CALL SYNERR('Right bracket required.',0)
                STATE=3
10957         IF((STATE.EQ.3))GOTO 10958
                GPST=2
                RETURN
10958       CONTINUE
10946     CONTINUE
10944   CONTINUE
        IF((STATE.EQ.3))GOTO 10938
        AAAGZ0=STATE
        GOTO 10959
10960     STATE=3
        GOTO 10961
10959   IF(AAAGZ0.EQ.1)GOTO 10960
10961   IF((STATE.EQ.3))GOTO 10962
          GPST=2
          RETURN
10962   CALL EMPTY(STATE)
        AAAHA0=STATE
        GOTO 10963
10964     GPST=2
          RETURN
10966     SCNT=SCNT-(1)
10968     IF((SCNT.LE.0))GOTO 10969
            CALL SAVEM0(12,0)
          GOTO 10966
10963   AAAHB0=AAAHA0-1
        GOTO(10964,10968),AAAHB0
10969   IF((STATE.EQ.3))GOTO 10970
          GPST=2
          RETURN
10970 CONTINUE
10922 GPST=STATE
      RETURN
      END
      SUBROUTINE CONST0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER VALUE
      INTEGER P
      INTEGER AAAHC0
      INTEGER AAAHD0
      VALUE=SEMSK0(SEMSP0-1)
      CALL EXPR0(STATE)
      AAAHC0=STATE
      GOTO 10971
10972   GPST=2
        RETURN
10973   CALL GENCO0(SHORT0)
        CALL ESPOP(P)
        IF((MEMAA0(P).NE.3))GOTO 10974
          CALL GETLI0(P,VALUE,1)
          GOTO 10975
10974     CALL SYNERR('Constant expression required.',0)
          VALUE=1
10975   CALL DEALL0(P)
        SEMSK0(SEMSP0-1)=VALUE
      GOTO 10976
10971 AAAHD0=AAAHC0-1
      GOTO(10972,10973),AAAHD0
10976 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPRE0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAHE0
      INTEGER AAAHF0
      INTEGER AAAHG0
      CALL EXPR0(STATE)
      AAAHE0=STATE
      GOTO 10977
10978   GPST=2
        RETURN
10977 IF(AAAHE0.EQ.2)GOTO 10978
      IF((STATE.NE.3))GOTO 10979
10980     STATE=1
          IF((SYMBO0.NE.172))GOTO 10981
            STATE=3
            CALL GETSYM
10981     IF((STATE.NE.3))GOTO 10982
            CALL EXPR0(STATE)
            AAAHF0=STATE
            GOTO 10983
10984         GPST=2
              RETURN
10985         CALL SYNERR('Illegal element following '',''.',0)
              STATE=3
            GOTO 10986
10987         CALL GENOP0(59)
            GOTO 10986
10983       GOTO(10985,10984,10987),AAAHF0
10986       IF((STATE.EQ.3))GOTO 10988
              GPST=2
              RETURN
10988     CONTINUE
10982   CONTINUE
        IF((STATE.EQ.3))GOTO 10980
        AAAHG0=STATE
        GOTO 10989
10990     STATE=3
        GOTO 10991
10989   IF(AAAHG0.EQ.1)GOTO 10990
10991   IF((STATE.EQ.3))GOTO 10992
          GPST=2
          RETURN
10992 CONTINUE
10979 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER OP
      INTEGER AAAHH0
      INTEGER AAAHI0
      INTEGER AAAHJ0
      INTEGER AAAHK0
      INTEGER AAAHL0
      CALL EXPR1(STATE)
      AAAHH0=STATE
      GOTO 10993
10994   GPST=2
        RETURN
10993 IF(AAAHH0.EQ.2)GOTO 10994
      IF((STATE.NE.3))GOTO 10995
10996     STATE=1
          AAAHI0=SYMBO0
          GOTO 10997
10998       STATE=3
            OP=5
            CALL GETSYM
          GOTO 10999
11000       STATE=3
            OP=3
            CALL GETSYM
          GOTO 10999
11001       STATE=3
            OP=16
            CALL GETSYM
          GOTO 10999
11002       STATE=3
            OP=61
            CALL GETSYM
          GOTO 10999
11003       STATE=3
            OP=52
            CALL GETSYM
          GOTO 10999
11004       STATE=3
            OP=41
            CALL GETSYM
          GOTO 10999
11005       STATE=3
            OP=1
            CALL GETSYM
          GOTO 10999
11006       STATE=3
            OP=29
            CALL GETSYM
          GOTO 10999
11007       STATE=3
            OP=55
            CALL GETSYM
          GOTO 10999
11008       STATE=3
            OP=33
            CALL GETSYM
          GOTO 10999
11009       STATE=3
            OP=66
            CALL GETSYM
          GOTO 10999
10997     IF(AAAHI0.EQ.189)GOTO 10998
          AAAHJ0=AAAHI0-999
          GOTO(11000,11010,11010,11001,11010,11010,11010,11010,11002,   
     *  11003,11010,11004,11010,11005,11010,11006,11010,11007,11010,    
     * 11008,11009),AAAHJ0
11010     CONTINUE
10999     IF((STATE.NE.3))GOTO 11011
            CALL EXPR0(STATE)
            AAAHK0=STATE
            GOTO 11012
11013         GPST=2
              RETURN
11014         CALL SYNERR('Illegal element following assignment.',0)
              STATE=3
            GOTO 11015
11016         CALL GENOP0(OP)
            GOTO 11015
11012       GOTO(11014,11013,11016),AAAHK0
11015       IF((STATE.EQ.3))GOTO 11017
              GPST=2
              RETURN
11017     CONTINUE
11011   CONTINUE
        IF((STATE.EQ.3))GOTO 10996
        AAAHL0=STATE
        GOTO 11018
11019     STATE=3
        GOTO 11020
11018   IF(AAAHL0.EQ.1)GOTO 11019
11020   IF((STATE.EQ.3))GOTO 11021
          GPST=2
          RETURN
11021 CONTINUE
10995 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR1(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAHM0
      INTEGER AAAHN0
      INTEGER AAAHO0
      INTEGER AAAHP0
      CALL EXPR2(STATE)
      AAAHM0=STATE
      GOTO 11022
11023   GPST=2
        RETURN
11022 IF(AAAHM0.EQ.2)GOTO 11023
      IF((STATE.NE.3))GOTO 11024
11025     STATE=1
          IF((SYMBO0.NE.191))GOTO 11026
            STATE=3
            CALL GETSYM
11026     IF((STATE.NE.3))GOTO 11027
            CALL EXPRE0(STATE)
            AAAHN0=STATE
            GOTO 11028
11029         GPST=2
              RETURN
11030         CALL SYNERR('Illegal element following ''?''.',0)
              STATE=3
            GOTO 11031
11028       GOTO(11030,11029),AAAHN0
11031       IF((STATE.EQ.3))GOTO 11032
              GPST=2
              RETURN
11032       STATE=1
            IF((SYMBO0.NE.186))GOTO 11033
              STATE=3
              CALL GETSYM
              GOTO 11034
11033         CALL SYNERR('Colon required after ''?''.',0)
              STATE=3
11034       IF((STATE.EQ.3))GOTO 11035
              GPST=2
              RETURN
11035       CALL EXPR2(STATE)
            AAAHO0=STATE
            GOTO 11036
11037         GPST=2
              RETURN
11038         CALL SYNERR('Illegal element following '':''.',0)
              STATE=3
            GOTO 11039
11040         CALL GENOP0(71)
              CALL GENOP0(70)
            GOTO 11039
11036       GOTO(11038,11037,11040),AAAHO0
11039       IF((STATE.EQ.3))GOTO 11041
              GPST=2
              RETURN
11041     CONTINUE
11027   CONTINUE
        IF((STATE.EQ.3))GOTO 11025
        AAAHP0=STATE
        GOTO 11042
11043     STATE=3
        GOTO 11044
11042   IF(AAAHP0.EQ.1)GOTO 11043
11044   IF((STATE.EQ.3))GOTO 11045
          GPST=2
          RETURN
11045 CONTINUE
11024 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR2(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAHQ0
      INTEGER AAAHR0
      INTEGER AAAHS0
      CALL EXPR3(STATE)
      AAAHQ0=STATE
      GOTO 11046
11047   GPST=2
        RETURN
11046 IF(AAAHQ0.EQ.2)GOTO 11047
      IF((STATE.NE.3))GOTO 11048
11049     STATE=1
          IF((SYMBO0.NE.1012))GOTO 11050
            STATE=3
            CALL GETSYM
11050     IF((STATE.NE.3))GOTO 11051
            CALL EXPR3(STATE)
            AAAHR0=STATE
            GOTO 11052
11053         GPST=2
              RETURN
11054         CALL SYNERR('Illegal element following ''||''.',0)
              STATE=3
            GOTO 11055
11056         CALL GENOP0(60)
            GOTO 11055
11052       GOTO(11054,11053,11056),AAAHR0
11055       IF((STATE.EQ.3))GOTO 11057
              GPST=2
              RETURN
11057     CONTINUE
11051   CONTINUE
        IF((STATE.EQ.3))GOTO 11049
        AAAHS0=STATE
        GOTO 11058
11059     STATE=3
        GOTO 11060
11058   IF(AAAHS0.EQ.1)GOTO 11059
11060   IF((STATE.EQ.3))GOTO 11061
          GPST=2
          RETURN
11061 CONTINUE
11048 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR3(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAHT0
      INTEGER AAAHU0
      INTEGER AAAHV0
      CALL EXPR4(STATE)
      AAAHT0=STATE
      GOTO 11062
11063   GPST=2
        RETURN
11062 IF(AAAHT0.EQ.2)GOTO 11063
      IF((STATE.NE.3))GOTO 11064
11065     STATE=1
          IF((SYMBO0.NE.1001))GOTO 11066
            STATE=3
            CALL GETSYM
11066     IF((STATE.NE.3))GOTO 11067
            CALL EXPR4(STATE)
            AAAHU0=STATE
            GOTO 11068
11069         GPST=2
              RETURN
11070         CALL SYNERR('Illegal element following ''&&''.',0)
              STATE=3
            GOTO 11071
11072         CALL GENOP0(57)
            GOTO 11071
11068       GOTO(11070,11069,11072),AAAHU0
11071       IF((STATE.EQ.3))GOTO 11073
              GPST=2
              RETURN
11073     CONTINUE
11067   CONTINUE
        IF((STATE.EQ.3))GOTO 11065
        AAAHV0=STATE
        GOTO 11074
11075     STATE=3
        GOTO 11076
11074   IF(AAAHV0.EQ.1)GOTO 11075
11076   IF((STATE.EQ.3))GOTO 11077
          GPST=2
          RETURN
11077 CONTINUE
11064 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR4(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAHW0
      INTEGER AAAHX0
      INTEGER AAAHY0
      CALL EXPR5(STATE)
      AAAHW0=STATE
      GOTO 11078
11079   GPST=2
        RETURN
11078 IF(AAAHW0.EQ.2)GOTO 11079
      IF((STATE.NE.3))GOTO 11080
11081     STATE=1
          IF((SYMBO0.NE.252))GOTO 11082
            STATE=3
            CALL GETSYM
11082     IF((STATE.NE.3))GOTO 11083
            CALL EXPR5(STATE)
            AAAHX0=STATE
            GOTO 11084
11085         GPST=2
              RETURN
11086         CALL SYNERR('Illegal element following ''|''.',0)
              STATE=3
            GOTO 11087
11088         CALL GENOP0(42)
            GOTO 11087
11084       GOTO(11086,11085,11088),AAAHX0
11087       IF((STATE.EQ.3))GOTO 11089
              GPST=2
              RETURN
11089     CONTINUE
11083   CONTINUE
        IF((STATE.EQ.3))GOTO 11081
        AAAHY0=STATE
        GOTO 11090
11091     STATE=3
        GOTO 11092
11090   IF(AAAHY0.EQ.1)GOTO 11091
11092   IF((STATE.EQ.3))GOTO 11093
          GPST=2
          RETURN
11093 CONTINUE
11080 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR5(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAHZ0
      INTEGER AAAIA0
      INTEGER AAAIB0
      CALL EXPR6(STATE)
      AAAHZ0=STATE
      GOTO 11094
11095   GPST=2
        RETURN
11094 IF(AAAHZ0.EQ.2)GOTO 11095
      IF((STATE.NE.3))GOTO 11096
11097     STATE=1
          IF((SYMBO0.NE.222))GOTO 11098
            STATE=3
            CALL GETSYM
11098     IF((STATE.NE.3))GOTO 11099
            CALL EXPR6(STATE)
            AAAIA0=STATE
            GOTO 11100
11101         GPST=2
              RETURN
11102         CALL SYNERR('Illegal element following ''^''.',0)
              STATE=3
            GOTO 11103
11104         CALL GENOP0(67)
            GOTO 11103
11100       GOTO(11102,11101,11104),AAAIA0
11103       IF((STATE.EQ.3))GOTO 11105
              GPST=2
              RETURN
11105     CONTINUE
11099   CONTINUE
        IF((STATE.EQ.3))GOTO 11097
        AAAIB0=STATE
        GOTO 11106
11107     STATE=3
        GOTO 11108
11106   IF(AAAIB0.EQ.1)GOTO 11107
11108   IF((STATE.EQ.3))GOTO 11109
          GPST=2
          RETURN
11109 CONTINUE
11096 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR6(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER AAAIC0
      INTEGER AAAID0
      INTEGER AAAIE0
      CALL EXPR7(STATE)
      AAAIC0=STATE
      GOTO 11110
11111   GPST=2
        RETURN
11110 IF(AAAIC0.EQ.2)GOTO 11111
      IF((STATE.NE.3))GOTO 11112
11113     STATE=1
          IF((SYMBO0.NE.166))GOTO 11114
            STATE=3
            CALL GETSYM
11114     IF((STATE.NE.3))GOTO 11115
            CALL EXPR7(STATE)
            AAAID0=STATE
            GOTO 11116
11117         GPST=2
              RETURN
11118         CALL SYNERR('Illegal element following ''&''.',0)
              STATE=3
            GOTO 11119
11120         CALL GENOP0(4)
            GOTO 11119
11116       GOTO(11118,11117,11120),AAAID0
11119       IF((STATE.EQ.3))GOTO 11121
              GPST=2
              RETURN
11121     CONTINUE
11115   CONTINUE
        IF((STATE.EQ.3))GOTO 11113
        AAAIE0=STATE
        GOTO 11122
11123     STATE=3
        GOTO 11124
11122   IF(AAAIE0.EQ.1)GOTO 11123
11124   IF((STATE.EQ.3))GOTO 11125
          GPST=2
          RETURN
11125 CONTINUE
11112 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR7(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER OP
      INTEGER AAAIF0
      INTEGER AAAIG0
      INTEGER AAAIH0
      CALL EXPR8(STATE)
      AAAIF0=STATE
      GOTO 11126
11127   GPST=2
        RETURN
11126 IF(AAAIF0.EQ.2)GOTO 11127
      IF((STATE.NE.3))GOTO 11128
11129     STATE=1
          IF((SYMBO0.NE.1004))GOTO 11130
            STATE=3
            OP=19
            CALL GETSYM
11130     IF((STATE.NE.1))GOTO 11131
            IF((SYMBO0.NE.1010))GOTO 11132
              STATE=3
              OP=37
              CALL GETSYM
11132     CONTINUE
11131     IF((STATE.NE.3))GOTO 11133
            CALL EXPR8(STATE)
            AAAIG0=STATE
            GOTO 11134
11135         GPST=2
              RETURN
11136         CALL SYNERR('Illegal element in expression.',0)
              STATE=3
            GOTO 11137
11138         CALL GENOP0(OP)
            GOTO 11137
11134       GOTO(11136,11135,11138),AAAIG0
11137       IF((STATE.EQ.3))GOTO 11139
              GPST=2
              RETURN
11139     CONTINUE
11133   CONTINUE
        IF((STATE.EQ.3))GOTO 11129
        AAAIH0=STATE
        GOTO 11140
11141     STATE=3
        GOTO 11142
11140   IF(AAAIH0.EQ.1)GOTO 11141
11142   IF((STATE.EQ.3))GOTO 11143
          GPST=2
          RETURN
11143 CONTINUE
11128 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR8(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER OP
      INTEGER AAAII0
      INTEGER AAAIJ0
      INTEGER AAAIK0
      CALL EXPR9(STATE)
      AAAII0=STATE
      GOTO 11144
11145   GPST=2
        RETURN
11144 IF(AAAII0.EQ.2)GOTO 11145
      IF((STATE.NE.3))GOTO 11146
11147     STATE=1
          IF((SYMBO0.NE.190))GOTO 11148
            STATE=3
            OP=23
            CALL GETSYM
11148     IF((STATE.NE.1))GOTO 11149
            IF((SYMBO0.NE.188))GOTO 11150
              STATE=3
              OP=31
              CALL GETSYM
11150       IF((STATE.NE.1))GOTO 11151
              IF((SYMBO0.NE.1005))GOTO 11152
                STATE=3
                OP=21
                CALL GETSYM
11152         IF((STATE.NE.1))GOTO 11153
                IF((SYMBO0.NE.1007))GOTO 11154
                  STATE=3
                  OP=28
                  CALL GETSYM
11154         CONTINUE
11153       CONTINUE
11151     CONTINUE
11149     IF((STATE.NE.3))GOTO 11155
            CALL EXPR9(STATE)
            AAAIJ0=STATE
            GOTO 11156
11157         GPST=2
              RETURN
11158         CALL SYNERR('Illegal element in expression.',0)
              STATE=3
            GOTO 11159
11160         CALL GENOP0(OP)
            GOTO 11159
11156       GOTO(11158,11157,11160),AAAIJ0
11159       IF((STATE.EQ.3))GOTO 11161
              GPST=2
              RETURN
11161     CONTINUE
11155   CONTINUE
        IF((STATE.EQ.3))GOTO 11147
        AAAIK0=STATE
        GOTO 11162
11163     STATE=3
        GOTO 11164
11162   IF(AAAIK0.EQ.1)GOTO 11163
11164   IF((STATE.EQ.3))GOTO 11165
          GPST=2
          RETURN
11165 CONTINUE
11146 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR9(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER OP
      INTEGER AAAIL0
      INTEGER AAAIM0
      INTEGER AAAIN0
      CALL EXPR10(STATE)
      AAAIL0=STATE
      GOTO 11166
11167   GPST=2
        RETURN
11166 IF(AAAIL0.EQ.2)GOTO 11167
      IF((STATE.NE.3))GOTO 11168
11169     STATE=1
          IF((SYMBO0.NE.1018))GOTO 11170
            STATE=3
            OP=56
            CALL GETSYM
11170     IF((STATE.NE.1))GOTO 11171
            IF((SYMBO0.NE.1016))GOTO 11172
              STATE=3
              OP=30
              CALL GETSYM
11172     CONTINUE
11171     IF((STATE.NE.3))GOTO 11173
            CALL EXPR10(STATE)
            AAAIM0=STATE
            GOTO 11174
11175         GPST=2
              RETURN
11176         CALL SYNERR('Illegal element in expression.',0)
              STATE=3
            GOTO 11177
11178         CALL GENOP0(OP)
            GOTO 11177
11174       GOTO(11176,11175,11178),AAAIM0
11177       IF((STATE.EQ.3))GOTO 11179
              GPST=2
              RETURN
11179     CONTINUE
11173   CONTINUE
        IF((STATE.EQ.3))GOTO 11169
        AAAIN0=STATE
        GOTO 11180
11181     STATE=3
        GOTO 11182
11180   IF(AAAIN0.EQ.1)GOTO 11181
11182   IF((STATE.EQ.3))GOTO 11183
          GPST=2
          RETURN
11183 CONTINUE
11168 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR10(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER OP
      INTEGER AAAIO0
      INTEGER AAAIP0
      INTEGER AAAIQ0
      CALL EXPR11(STATE)
      AAAIO0=STATE
      GOTO 11184
11185   GPST=2
        RETURN
11184 IF(AAAIO0.EQ.2)GOTO 11185
      IF((STATE.NE.3))GOTO 11186
11187     STATE=1
          IF((SYMBO0.NE.171))GOTO 11188
            STATE=3
            OP=2
            CALL GETSYM
11188     IF((STATE.NE.1))GOTO 11189
            IF((SYMBO0.NE.173))GOTO 11190
              STATE=3
              OP=62
              CALL GETSYM
11190     CONTINUE
11189     IF((STATE.NE.3))GOTO 11191
            CALL EXPR11(STATE)
            AAAIP0=STATE
            GOTO 11192
11193         GPST=2
              RETURN
11194         CALL SYNERR('Illegal element in expression.',0)
              STATE=3
            GOTO 11195
11196         CALL GENOP0(OP)
            GOTO 11195
11192       GOTO(11194,11193,11196),AAAIP0
11195       IF((STATE.EQ.3))GOTO 11197
              GPST=2
              RETURN
11197     CONTINUE
11191   CONTINUE
        IF((STATE.EQ.3))GOTO 11187
        AAAIQ0=STATE
        GOTO 11198
11199     STATE=3
        GOTO 11200
11198   IF(AAAIQ0.EQ.1)GOTO 11199
11200   IF((STATE.EQ.3))GOTO 11201
          GPST=2
          RETURN
11201 CONTINUE
11186 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR11(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER OP
      INTEGER AAAIR0
      INTEGER AAAIS0
      INTEGER AAAIT0
      CALL EXPR12(STATE)
      AAAIR0=STATE
      GOTO 11202
11203   GPST=2
        RETURN
11202 IF(AAAIR0.EQ.2)GOTO 11203
      IF((STATE.NE.3))GOTO 11204
11205     STATE=1
          IF((SYMBO0.NE.170))GOTO 11206
            STATE=3
            OP=34
            CALL GETSYM
11206     IF((STATE.NE.1))GOTO 11207
            IF((SYMBO0.NE.175))GOTO 11208
              STATE=3
              OP=17
              CALL GETSYM
11208       IF((STATE.NE.1))GOTO 11209
              IF((SYMBO0.NE.165))GOTO 11210
                STATE=3
                OP=53
                CALL GETSYM
11210       CONTINUE
11209     CONTINUE
11207     IF((STATE.NE.3))GOTO 11211
            CALL EXPR12(STATE)
            AAAIS0=STATE
            GOTO 11212
11213         GPST=2
              RETURN
11214         CALL SYNERR('Illegal element in expression.',0)
              STATE=3
            GOTO 11215
11216         CALL GENOP0(OP)
            GOTO 11215
11212       GOTO(11214,11213,11216),AAAIS0
11215       IF((STATE.EQ.3))GOTO 11217
              GPST=2
              RETURN
11217     CONTINUE
11211   CONTINUE
        IF((STATE.EQ.3))GOTO 11205
        AAAIT0=STATE
        GOTO 11218
11219     STATE=3
        GOTO 11220
11218   IF(AAAIT0.EQ.1)GOTO 11219
11220   IF((STATE.EQ.3))GOTO 11221
          GPST=2
          RETURN
11221 CONTINUE
11204 GPST=STATE
      RETURN
      END
      SUBROUTINE EXPR12(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER P
      INTEGER OP,KLUGE
      INTEGER NEXTI0,ESPOP
      INTEGER WSIZE
      INTEGER MODE
      INTEGER * 4 SIZEO0
      INTEGER AAAIU0
      INTEGER AAAIV0
      INTEGER AAAIW0
      INTEGER AAAIX0
      INTEGER AAAIY0
      INTEGER AAAIZ0
      INTEGER AAAJA0
      INTEGER AAAJB0
      INTEGER AAAJC0
      INTEGER AAAJD0
      INTEGER AAAJE0
      INTEGER AAAJF0
      STATE=1
      AAAIU0=SYMBO0
      GOTO 11222
11223   STATE=3
        OP=15
        CALL GETSYM
      GOTO 11224
11225   STATE=3
        OP=51
        CALL GETSYM
      GOTO 11224
11226   STATE=3
        OP=35
        CALL GETSYM
      GOTO 11224
11227   STATE=3
        OP=38
        CALL GETSYM
      GOTO 11224
11228   STATE=3
        OP=46
        CALL GETSYM
      GOTO 11224
11229   STATE=3
        OP=45
        CALL GETSYM
      GOTO 11224
11230   STATE=3
        OP=8
        CALL GETSYM
      GOTO 11224
11222 AAAIV0=AAAIU0-160
      GOTO(11227,11231,11231,11231,11231,11225,11231,11231,11231,11223, 
     *    11231,11231,11226),AAAIV0
      IF(AAAIU0.EQ.254)GOTO 11230
      AAAIV0=AAAIU0-1001
      GOTO(11229,11231,11231,11231,11228),AAAIV0
11231 CONTINUE
11224 IF((STATE.NE.3))GOTO 11232
        CALL EXPR12(STATE)
        AAAIW0=STATE
        GOTO 11233
11234     GPST=2
          RETURN
11235     CALL SYNERR('Illegal element in expression.',0)
          STATE=3
        GOTO 11236
11237     CALL GENOP0(OP)
        GOTO 11236
11233   GOTO(11235,11234,11237),AAAIW0
11236   IF((STATE.EQ.3))GOTO 11238
          GPST=2
          RETURN
11238 CONTINUE
11232 IF((STATE.NE.1))GOTO 11239
        IF((SYMBO0.NE.1057))GOTO 11240
          STATE=3
          CALL GETSYM
11240   IF((STATE.NE.3))GOTO 11241
          STATE=1
          IF((SYMBO0.NE.168))GOTO 11242
            STATE=3
            IF((NEXTI0(0).NE.0))GOTO 11243
              STATE=1
11243     CONTINUE
11242     IF((STATE.NE.3))GOTO 11244
            STATE=1
            IF((SYMBO0.NE.168))GOTO 11245
              STATE=3
              CALL SSALL0(1)
              SEMSK0(SEMSP0-1)=MODE
              CALL GETSYM
11245       IF((STATE.EQ.3))GOTO 11246
              GPST=2
              RETURN
11246       CALL TYPEN0(STATE)
            AAAIX0=STATE
            GOTO 11247
11248         GPST=2
              RETURN
11249         MODE=SEMSK0(SEMSP0-1)
              CALL SSDEA0(1)
            GOTO 11250
11247       AAAIY0=AAAIX0-1
            GOTO(11248,11249),AAAIY0
11250       IF((STATE.EQ.3))GOTO 11251
              GPST=2
              RETURN
11251       STATE=1
            IF((SYMBO0.NE.169))GOTO 11252
              STATE=3
              CALL GENINT(WSIZE(SIZEO0(MODE)))
              CALL GETSYM
              GOTO 11253
11252         CALL SYNERR('Right paren required.',0)
              STATE=3
11253       IF((STATE.EQ.3))GOTO 11254
              GPST=2
              RETURN
11254     CONTINUE
11244     IF((STATE.NE.1))GOTO 11255
            CALL EXPR12(STATE)
            AAAIZ0=STATE
            GOTO 11256
11257         GPST=2
              RETURN
11258         CALL SYNERR('Illegal ''sizeof'' operand.',0)
              STATE=3
            GOTO 11259
11260         P=ESPOP(P)
              CALL GENINT(WSIZE(SIZEO0(MEMAA0(P+1))))
              CALL DEALL0(P)
            GOTO 11259
11256       GOTO(11258,11257,11260),AAAIZ0
11259     CONTINUE
11255     IF((STATE.EQ.3))GOTO 11261
            GPST=2
            RETURN
11261   CONTINUE
11241   IF((STATE.NE.1))GOTO 11262
          IF((SYMBO0.NE.168))GOTO 11263
            STATE=3
            IF((NEXTI0(0).NE.0))GOTO 11264
              STATE=1
11264     CONTINUE
11263     IF((STATE.NE.3))GOTO 11265
            STATE=1
            IF((SYMBO0.NE.168))GOTO 11266
              STATE=3
              KLUGE=0
              CALL SSALL0(1)
              SEMSK0(SEMSP0-1)=MODE
              CALL GETSYM
11266       IF((STATE.EQ.3))GOTO 11267
              GPST=2
              RETURN
11267       CALL TYPEN0(STATE)
            AAAJA0=STATE
            GOTO 11268
11269         GPST=2
              RETURN
11270         MODE=SEMSK0(SEMSP0-1)
              CALL SSDEA0(1)
            GOTO 11271
11268       AAAJB0=AAAJA0-1
            GOTO(11269,11270),AAAJB0
11271       IF((STATE.EQ.3))GOTO 11272
              GPST=2
              RETURN
11272       STATE=1
            IF((SYMBO0.NE.169))GOTO 11273
              STATE=3
              CALL GETSYM
              GOTO 11274
11273         CALL SYNERR('Right paren required.',0)
              STATE=3
11274       IF((STATE.EQ.3))GOTO 11275
              GPST=2
              RETURN
11275       STATE=1
            IF((SYMBO0.NE.191))GOTO 11276
              STATE=3
              IF((MEMAA0(MEMAA0(MODE+1)+3).EQ.12))GOTO 11277
              IF((MEMAA0(MEMAA0(MODE+1)+3).EQ.13))GOTO 11277
              IF((MEMAA0(MEMAA0(MODE+1)+3).EQ.15))GOTO 11277
                KLUGE=1
11277         CALL GETSYM
11276       AAAJC0=STATE
            GOTO 11278
11279         STATE=3
            GOTO 11280
11278       IF(AAAJC0.EQ.1)GOTO 11279
11280       IF((STATE.EQ.3))GOTO 11281
              GPST=2
              RETURN
11281       CALL EXPR12(STATE)
            AAAJD0=STATE
            GOTO 11282
11283         GPST=2
              RETURN
11284         CALL SYNERR('Illegal element in expression.',0)
              STATE=3
            GOTO 11285
11286         IF((KLUGE.NE.0))GOTO 11287
                CALL GENCA0(MODE)
                GOTO 11285
11287           CALL CREAT0(MODE,12,0)
                CALL GENCA0(MODE)
                CALL GENOP0(15)
11288       GOTO 11285
11282       GOTO(11284,11283,11286),AAAJD0
11285       IF((STATE.EQ.3))GOTO 11289
              GPST=2
              RETURN
11289     CONTINUE
11265     IF((STATE.NE.1))GOTO 11290
            CALL PRIMA0(STATE)
            AAAJE0=STATE
            GOTO 11291
11292         GPST=2
              RETURN
11291       IF(AAAJE0.EQ.2)GOTO 11292
            IF((STATE.NE.3))GOTO 11293
11294           STATE=1
                IF((SYMBO0.NE.1006))GOTO 11295
                  STATE=3
                  CALL GENOP0(44)
                  CALL GETSYM
11295           IF((STATE.NE.1))GOTO 11296
                  IF((SYMBO0.NE.1002))GOTO 11297
                    STATE=3
                    CALL GENOP0(43)
                    CALL GETSYM
11297           CONTINUE
11296         CONTINUE
              IF((STATE.EQ.3))GOTO 11294
              AAAJF0=STATE
              GOTO 11298
11299           STATE=3
              GOTO 11300
11298         IF(AAAJF0.EQ.1)GOTO 11299
11300         IF((STATE.EQ.3))GOTO 11301
                GPST=2
                RETURN
11301       CONTINUE
11293     CONTINUE
11290   CONTINUE
11262 CONTINUE
11239 GPST=STATE
      RETURN
      END
      SUBROUTINE PRIMA0(GPST)
      INTEGER GPST
      INTEGER SYMTE0(200),NSYMT0(200)
      INTEGER SYMLE0,SYMBO0,SYMLI0,NSYML0,NSYMB0,NSYMM0
      INTEGER SYMPT0,NSYMP0
      COMMON /LEXCOM/SYMBO0,NSYMB0,SYMLE0,NSYML0,SYMPT0,NSYMP0,SYMTE0,NS
     *YMT0,SYMLI0,NSYMM0
      INTEGER INBUF0(1105)
      INTEGER IBPAA0,LINEN0(5),LEVEL0
      INTEGER INFIL0(5)
      COMMON /INCOM/INBUF0,IBPAA0,LINEN0,INFIL0,LEVEL0
      INTEGER DIRTO0,DFOTO0
      INTEGER PPTBL0
      INTEGER DIRNA0(300),DFONA0(300)
      COMMON /PPCOM/PPTBL0,DIRTO0,DIRNA0,DFOTO0,DFONA0
      INTEGER KEYWD0,IDTBL0(50),SMTBL0(50)
      INTEGER LLAAA0
      COMMON /IDCOM/LLAAA0,KEYWD0,IDTBL0,SMTBL0
      INTEGER MEMAA0(30000)
      COMMON /DS$MEM/MEMAA0
      INTEGER SEMSK0(300),CTLSK0(50)
      INTEGER SEMSP0,CTLSP0
      COMMON /PARCOM/SEMSK0,SEMSP0,CTLSK0,CTLSP0
      INTEGER INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LABEL0,PO
     *INT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0(20),MODEU0(20),MODE
     *V0
      COMMON /MODCOM/INTMO0,CHARM0,SHORT0,LONGM0,UNSIG0,FLOAT0,DOUBL0,LA
     *BEL0,POINT0,SHORU0,LONGU0,CHARU0,MODET0,MODEL0,MODES0,MODEU0,MODEV
     *0
      INTEGER EXPSK0(100),PROCM0,PROCR0
      INTEGER EXPSP0,OBJNO0
      INTEGER * 4 ZINIT0
      COMMON /EXPCOM/EXPSK0,EXPSP0,OBJNO0,PROCM0,PROCR0,ZINIT0
      INTEGER OUTFP0,NERRS0
      INTEGER MODUL0(200),ERROR0(200)
      INTEGER A$BUF(200)
      INTEGER OUTFI0(3),CKFIL0
      INTEGER FNAME0(5)
      COMMON /MISCOM/MODUL0,ERROR0,A$BUF,OUTFI0,OUTFP0,CKFIL0,NERRS0,FNA
     *ME0
      INTEGER STATE
      INTEGER P,V,MP,PLIST
      INTEGER ALLOE0,ESTOP
      INTEGER ISAGG0
      INTEGER AAAJG0
      INTEGER AAAJH0
      INTEGER AAAJI0
      INTEGER AAAJJ0
      INTEGER AAAJK0
      INTEGER AAAJL0
      INTEGER AAAJM0
      INTEGER AAAJN0
      INTEGER AAAJO0
      INTEGER AAAJP0
      STATE=1
      AAAJG0=SYMBO0
      GOTO 11302
11303   STATE=3
        IF((NSYMB0.NE.168))GOTO 11304
          CALL CHECM0
          GOTO 11305
11304     CALL CHECL0(1)
11305   CALL GETSYM
      GOTO 11306
11307   STATE=3
        CALL GENLIT(1021,SYMTE0,SYMLE0)
        CALL GETSYM
      GOTO 11306
11308   STATE=3
        CALL GENLIT(1026,SYMTE0,SYMLE0)
        CALL GETSYM
      GOTO 11306
11309   STATE=3
        CALL GENLIT(1025,SYMTE0,0)
        CALL GETSYM
      GOTO 11306
11310   STATE=3
        CALL GENLIT(1024,SYMTE0,0)
        CALL GETSYM
      GOTO 11306
11311   STATE=3
        CALL GENLIT(1022,SYMTE0,0)
        CALL GETSYM
      GOTO 11306
11312   STATE=3
        CALL GETSYM
        IF((STATE.NE.3))GOTO 11306
          CALL EXPRE0(STATE)
          AAAJH0=STATE
          GOTO 11314
11315       GPST=2
            RETURN
11316       CALL SYNERR('Illegal element in expression.',0)
            STATE=3
          GOTO 11317
11314     GOTO(11316,11315),AAAJH0
11317     IF((STATE.EQ.3))GOTO 11318
            GPST=2
            RETURN
11318     STATE=1
          IF((SYMBO0.NE.169))GOTO 11319
            STATE=3
            CALL GETSYM
            GOTO 11320
11319       CALL SYNERR('Right paren required.',0)
            STATE=3
11320     IF((STATE.EQ.3))GOTO 11321
            GPST=2
            RETURN
11321   CONTINUE
11313 GOTO 11306
11302 IF(AAAJG0.EQ.168)GOTO 11312
      AAAJI0=AAAJG0-1020
      GOTO(11307,11311,11303,11310,11309,11308),AAAJI0
11306 IF((STATE.NE.3))GOTO 11322
11323     STATE=1
          IF((SYMBO0.NE.168))GOTO 11324
            STATE=3
            CALL ESTOP(V)
            IF((MEMAA0(V).NE.1))GOTO 11325
              PLIST=MEMAA0(V+8)
              GOTO 11326
11325         PLIST=0
11326       CALL CKFNC0(V)
            CALL GENOP0(39)
            IF((MEMAA0(MEMAA0(V+1)+3).EQ.15))GOTO 11327
              CALL SYNERR('Only functions can be called.',0)
11327       MP=MEMAA0(MEMAA0(V+1))
            IF((MP.EQ.0))GOTO 11328
            IF((ISAGG0(MP).NE.1))GOTO 11328
              P=ALLOE0(MP)
              CALL GENOQ0(P)
              CALL GENOP0(47)
11328       CALL GETSYM
11324     IF((STATE.NE.3))GOTO 11329
            CALL EXPR0(STATE)
            AAAJJ0=STATE
            GOTO 11330
11331         GPST=2
              RETURN
11332         CALL CKFNA0(ESTOP(V))
              IF((PLIST.EQ.0))GOTO 11333
                IF((MEMAA0(PLIST+2).EQ.0))GOTO 11334
                  CALL GENCO0(MEMAA0(PLIST+2))
11334           PLIST=MEMAA0(PLIST)
11333         CALL GENOP0(47)
            GOTO 11335
11330       AAAJK0=AAAJJ0-1
            GOTO(11331,11332),AAAJK0
11335       IF((STATE.NE.3))GOTO 11336
11337           STATE=1
                IF((SYMBO0.NE.172))GOTO 11338
                  STATE=3
                  CALL GETSYM
11338           IF((STATE.NE.3))GOTO 11339
                  CALL EXPR0(STATE)
                  AAAJL0=STATE
                  GOTO 11340
11341               GPST=2
                    RETURN
11342               CALL SYNERR('Illegal element in expression.',0)
                    STATE=3
                  GOTO 11343
11344               CALL CKFNA0(ESTOP(V))
                    IF((PLIST.EQ.0))GOTO 11345
                      IF((MEMAA0(PLIST+2).EQ.0))GOTO 11346
                        CALL GENCO0(MEMAA0(PLIST+2))
11346                 PLIST=MEMAA0(PLIST)
11345               CALL GENOP0(47)
                  GOTO 11343
11340             GOTO(11342,11341,11344),AAAJL0
11343             IF((STATE.EQ.3))GOTO 11347
                    GPST=2
                    RETURN
11347           CONTINUE
11339         CONTINUE
              IF((STATE.EQ.3))GOTO 11337
              AAAJM0=STATE
              GOTO 11348
11349           STATE=3
              GOTO 11350
11348         IF(AAAJM0.EQ.1)GOTO 11349
11350         IF((STATE.EQ.3))GOTO 11351
                GPST=2
                RETURN
11351       CONTINUE
11336       AAAJN0=STATE
            GOTO 11352
11353         STATE=3
            GOTO 11354
11352       IF(AAAJN0.EQ.1)GOTO 11353
11354       IF((STATE.EQ.3))GOTO 11355
              GPST=2
              RETURN
11355       STATE=1
            IF((SYMBO0.NE.169))GOTO 11356
              STATE=3
              CALL CKFNE0
              CALL GENOP0(48)
              IF((MP.EQ.0))GOTO 11357
              IF((ISAGG0(MP).NE.1))GOTO 11357
                CALL GENOQ0(P)
                CALL GENOP0(59)
11357         CALL GETSYM
              GOTO 11358
11356         CALL SYNERR('Right paren required.',0)
              STATE=3
11358       IF((STATE.EQ.3))GOTO 11359
              GPST=2
              RETURN
11359     CONTINUE
11329     IF((STATE.NE.1))GOTO 11360
            IF((SYMBO0.NE.219))GOTO 11361
              STATE=3
              CALL GETSYM
11361       IF((STATE.NE.3))GOTO 11362
              CALL EXPRE0(STATE)
              AAAJO0=STATE
              GOTO 11363
11364           GPST=2
                RETURN
11365           CALL SYNERR('Illegal element in expression.',0)
                STATE=3
              GOTO 11366
11363         GOTO(11365,11364),AAAJO0
11366         IF((STATE.EQ.3))GOTO 11367
                GPST=2
                RETURN
11367         STATE=1
              IF((SYMBO0.NE.221))GOTO 11368
                STATE=3
                CALL GENIN0
                CALL GETSYM
                GOTO 11369
11368           CALL SYNERR('Right bracket required.',0)
                STATE=3
11369         IF((STATE.EQ.3))GOTO 11370
                GPST=2
                RETURN
11370       CONTINUE
11362       IF((STATE.NE.1))GOTO 11371
              IF((SYMBO0.NE.174))GOTO 11372
                STATE=3
                CALL GETSYM
11372         IF((STATE.NE.3))GOTO 11373
                STATE=1
                IF((SYMBO0.NE.1023))GOTO 11374
                  STATE=3
                  CALL CHECL0(2)
                  CALL GENOP0(58)
                  CALL GETSYM
                  GOTO 11375
11374             CALL SYNERR('''Struct'' member required.',0)
                  STATE=3
11375           IF((STATE.EQ.3))GOTO 11376
                  GPST=2
                  RETURN
11376         CONTINUE
11373         IF((STATE.NE.1))GOTO 11377
                IF((SYMBO0.NE.1014))GOTO 11378
                  STATE=3
                  CALL GETSYM
11378           IF((STATE.NE.3))GOTO 11379
                  STATE=1
                  IF((SYMBO0.NE.1023))GOTO 11380
                    STATE=3
                    CALL GENOP0(15)
                    CALL CHECL0(2)
                    CALL GENOP0(58)
                    CALL GETSYM
                    GOTO 11381
11380               CALL SYNERR('''Struct'' member required.',0)
                    STATE=3
11381             IF((STATE.EQ.3))GOTO 11382
                    GPST=2
                    RETURN
11382           CONTINUE
11379         CONTINUE
11377       CONTINUE
11371     CONTINUE
11360   CONTINUE
        IF((STATE.EQ.3))GOTO 11323
        AAAJP0=STATE
        GOTO 11383
11384     STATE=3
        GOTO 11385
11383   IF(AAAJP0.EQ.1)GOTO 11384
11385   IF((STATE.EQ.3))GOTO 11386
          GPST=2
          RETURN
11386 CONTINUE
11322 GPST=STATE
      RETURN
      END
C ---- Long Name Map ----
C dumpsymentry                   dumpt0
C Procmode                       procm0
C declspecifiers                 decls0
C enterdefinition                entes0
C islvalue                       islva0
C outoper                        outop0
C installdefinition              insta0
C Nerrs                          nerrs0
C dumpsym                        dumps0
C entersmdecl                    entex0
C enumspecifier                  enums0
C openinclude                    openi0
C Nsymbol                        nsymb0
C Expsk                          expsk0
C enterchildmode                 enter0
C gencast                        genca0
C Dfoname                        dfona0
C checkarith                     check0
C droplitval                     dropl0
C outgoto                        outgo0
C returnstatement                retur0
C Nsymlen                        nsyml0
C Symptr                         sympt0
C ckfncall                       ckfnc0
C cleanupll                      clean0
C genmakearith                   genma0
C Outfp                          outfp0
C alloctemp                      alloe0
C forstatement                   forst0
C outinitend                     outio0
C outsize                        outsi0
C putbackstr                     putbc0
C Floatmodeptr                   float0
C createmode                     creat0
C displaymode                    displ0
C Expsp                          expsp0
C convoper                       convo0
C outexprtree                    outey0
C putback                        putba0
C structdeclaratorlist           strue0
C Nsymtext                       nsymt0
C Modelist                       model0
C Fnametable                     fname0
C genopnd                        genoq0
C isconstant                     iscon0
C isstored                       issto0
C Dirname                        dirna0
C invokemacro                    invok0
C makemode                       makem0
C notstatementstart              notsu0
C outexpr                        outex0
C structdecllist                 struf0
C Ll                             llaaa0
C Modesavelen                    modeu0
C functionheader                 funct0
C outdeclarations                outde0
C Charunsmodeptr                 charu0
C Modesavetype                   modes0
C structdeclaration              struc0
C Dfotop                         dfoto0
C ckputname                      ckpuu0
C findmode                       findm0
C refillbuffer                   refil0
C Keywdtbl                       keywd0
C declarations                   decla0
C entersiblingmode               entew0
C genoper                        genop0
C getlong                        getlo0
C typeorscspec                   typeo0
C declarator                     declb0
C ssalloc                        ssall0
C accesssym                      acces0
C declarelabel                   declc0
C ifstatement                    ifsta0
C initializer                    initj0
C isnullconv                     isnul0
C resetline                      reset0
C Charmodeptr                    charm0
C ckputmode                      ckput0
C createsavedmode                creau0
C displaysc                      dispo0
C dumpexpr                       dumpe0
C foldconst                      foldc0
C getlitval                      getli0
C initdeclarator                 initd0
C statementlabel                 statf0
C Idtbl                          idtbl0
C checkdeclaration               checl0
C enumdeclarator                 enumd0
C gentoboolean                   gento0
C isarith                        isari0
C processifdef                   procg0
C Dirtop                         dirto0
C constantexpr                   const0
C expression                     expre0
C outstmt                        outst0
C checkfunctiondeclaration       checm0
C convtype                       convt0
C dostatement                    dosta0
C enterll                        entev0
C Intmodeptr                     intmo0
C Doublemodeptr                  doubl0
C Zinitlen                       zinit0
C makesym                        makes0
C breakstatement                 break0
C expr10                         expr10
C externaldefinition             exter0
C structorunionspecifier         struh0
C Symbol                         symbo0
C Nsymline                       nsymm0
C Inbuf                          inbuf0
C Ibp                            ibpaa0
C collectquotedstring            collf0
C notstatementend                notst0
C outname                        outna0
C arrayinit                      array0
C displayoper                    dispn0
C fatalerr                       fatal0
C findsym                        finds0
C scalarinit                     scala0
C Symlen                         symle0
C Pointermodeptr                 point0
C genindex                       genin0
C Ckfile                         ckfil0
C ckfndef                        ckfnd0
C displayop                      dispm0
C enteriddecl                    entet0
C isaggregate                    isagg0
C removedefinition               remov0
C statement                      state0
C Level                          level0
C Mem                            memaa0
C Objno                          objno0
C arithexcep                     arith0
C compoundstatement              compo0
C continuestatement              conti0
C dgetsym                        dgets0
C initdeclaratorlist             inite0
C outmode                        outmo0
C processdebug                   procf0
C savemode                       savem0
C Nsymptr                        nsymp0
C Labelmodeptr                   label0
C Shortunsmodeptr                shoru0
C allocstruct                    allod0
C structinit                     strug0
C Symtext                        symte0
C cpreprocessor                  cprep0
C process                        proce0
C recordsym                      recor0
C Unsignedmodeptr                unsig0
C Longunsmodeptr                 longu0
C enterkw                        enteu0
C outproccallarg                 outps0
C allocatestorage                alloc0
C displaysymbol                  dispp0
C alignmode                      align0
C initialize                     initi0
C nextistype                     nexti0
C skipwhitespace                 skipw0
C Shortmodeptr                   short0
C Modulename                     modul0
C getactualparameters            getac0
C gotostatement                  gotos0
C switchstatement                switc0
C Outfile                        outfi0
C ckfnend                        ckfne0
C convconst                      convc0
C dumpmode                       dumpm0
C ispointer                      ispoi0
C primary                        prima0
C Infile                         infil0
C Longmodeptr                    longm0
C comparemode                    compa0
C modifyparammode                modif0
C sizeofmode                     sizeo0
C Ctlsk                          ctlsk0
C collectactualparameter         colle0
C outinitstart                   outip0
C Pptbl                          pptbl0
C Smtbl                          smtbl0
C Modesavect                     modev0
C ckfnarg                        ckfna0
C Semsk                          semsk0
C Procrtnv                       procr0
C getdefinition                  getde0
C putlong                        putlo0
C getformalparameters            getfo0
C putbacknum                     putbb0
C Ctlsp                          ctlsp0
C Modetable                      modet0
C genconvert                     genco0
C processifndef                  proch0
C structdeclarator               strud0
C abstractdeclarator             abstr0
C deallocexpr                    deall0
C gobbleuntilelseorendif         gobbl0
C outinit                        outin0
C outproc                        outpr0
C putlitval                      putli0
C ssdealloc                      ssdea0
C typename                       typen0
C whilestatement                 while0
C Symline                        symli0
C Linenumber                     linen0
C Semsp                          semsp0
C Errorsym                       error0
