*DECK SYNGN03 
PROC SYNGN03
*CALL LEXID 
          + 
*CALL SUB03 
          + 
*CALL SYNGN00 
      :ACCESS   :01 
            WRONGOVERLAY     / YES
  
      :ALTER    :01 
            WRONGOVERLAY     / YES
  
      :BREAK    :01 
            WRONGOVERLAY     / YES
  
      :COMPILE  :01 
            WRONGOVERLAY     / YES
  
      :CREATE   :01 
            WRONGOVERLAY     / YES
  
      :DATE     :01 
            WRONGOVERLAY     / YES
  
      :DEFINE   :01 
            WRONGOVERLAY     / YES
  
      :DELETE   :01 
            WRONGOVERLAY     / YES
  
      :DESCRIBE :01 
            WRONGOVERLAY     / YES
  
      :DETAIL   :01 
            WRONGOVERLAY     / YES
  
      :DIRECTORY  :01 
            WRONGOVERLAY     / YES
  
      :DISPLAY  :01 
            WRONGOVERLAY     / YES
  
      :DUPLICATE   :01
            WRONGOVERLAY     / YES
  
      :ERASE    :01 
            WRONGOVERLAY     / YES
  
      :EVALUATE :01                #-------- E V A L U A T E ----------#
                                   #                                   #
        :05 *CKOVLY                # CHECK IF IN PROPER OVERLAY        #
            WRONGOVERLAY     /     # EXIT, WRONG OVERLAY               #
        :10 *ENDBASC      99 /     # *NO IF BASIC FILEPASS DIR RECEIVED#
            *RESETEV               # RESET FOR ANOTHER *EVALUATE*      #
            BEFAFT        NO /     # CRACK BEFORE/AFTER CLAUSE         #
        :15 DATA-ATTRIB            # IDENTIFY AND SAVE ATTRIBS OF NAME #
            D44           99 /     # UNDEFINED DATA NAME; EXIT         #
        :20 *SAVEVAL      99 /     # SAVE THIS EVALUATE DIRECTIVE      #
            *CHKNXID      15 /     # TEST IF NEXT WORD IS DIRECTIVE    #
            *EVAL         YES/YES  # PROCESS REPORT EVALUATE           #
        :99 LOST          NO / NO  # ELIMINATE TRANSMISSION            #
                                   #                                   #
                                   #----- E N D  E V A L U A T E ------#
  
      :EXECUTE  :01 
            WRONGOVERLAY     / YES
  
      :EXHIBIT  :01 
            WRONGOVERLAY     / YES
  
      :EXTRACT  :01 
            WRONGOVERLAY     / YES
  
      :FOLLOW   :01 
            WRONGOVERLAY     / YES
  
       :FOOTING  :1, *ENDBASC, LOST, NO / +INT, D111, LOST, NO /
                     *FTLEVEL, D108, LOST, NO 
              :02,ATLINE,NO,/,ISEXPR,NO,/,*CHKNXID,02,/,*LASTPTR,NO,/,
                      YES 
  
      :FORMAT   :01 
            WRONGOVERLAY     / YES
  
       :HEADING  :1, *ENDBASC, LOST, NO / +INT, D111, LOST, NO /
                      *HDLEVEL, D108, LOST, NO
              :02,ATLINE,NO,/,$ON,05,/,$ALL,D22,NO
              :03,-PAGES,*ALLPG,D161,NO 
              :04,ISEXPR,NO,/,*CHKNXID,02,/,*LASTPTR,NO,/,YES 
              :05,$ALL,04,/,03
  
      :IF       :01 
            WRONGOVERLAY     / YES
  
      :INSERT   :01 
            WRONGOVERLAY     / YES
                                                                        001640
      :INVOKE   :01                                                     001650
            WRONGOVERLAY     / YES                                      001660
  
      :LOOKUP   :01 
            WRONGOVERLAY     / YES
  
      :MODIFY   :01 
            WRONGOVERLAY     / YES
  
                                   #----M O V E------------------------#
                                   #                                   #
      :MOVE    :01                 #                                   #
            *CKOVLY                # *YES* IF IN PROPER OVRLY FOR MOVE #
            WRONGOVERLAY     /     #                                   #
        :05 *ENDBASC               #                                   #
                                   #                                   #
            LOST          NO /     #                                   #
            *RESETMV               # RESET FOR ANOTHER *MOVE*          #
            BEFAFT        NO       # CHECK FOR *BEFORE* OR *AFTER*     #
                                   #                                   #
        :10 ARITHEXPRESS  NO /     # ANALYZE AND STORE ARITH EXPRESSION#
            *MVEXP        NO /     # *MOVE* AN EXPRESSION              #
            -TO                    # CHECK FOR OPTIONAL KEYWORD *TO*   #
                                   #                                   #
        :15 DATA-ATTRIB            # IDENTIFY AND SAVE ATTRIBS OF NAME #
            D375                   # INVALID *MOVE* DESTINATION        #
            LOST          NO /     #                                   #
            *MVNM                  # *MOVE* A NAME                     #
            D021                   # DIAGNOSTIC - DESTINATION NOT A    #
                                   # DEFINED ITEM                      #
            LOST          NO       #                                   #
                                   #                                   #
        :20 *CHKNXID      25 /     # CHECK IF NEXT WORD IS A DIRECTIVE #
            *EVAL         YES      # PROCESS A REPORT STYLE *MOVE*     #
                                   #                                   #
        :25 $AND          15 / 10  # CHECK FOR KEYWORD *AND*           #
                                   #                                   #
                                   #----E N D---M O V E----------------#
  
      :OS       :01 
            WRONGOVERLAY     / YES
  
      :PAGE-NUMBER  :01 
            WRONGOVERLAY     / YES
  
      :PAGE-SIZE:01 
            WRONGOVERLAY     / YES
  
      :PERFORM :01                 #-------P E R F O R M---------------#
                                   #                                   #
                                   # THIS SECTION HANDLES ONLY THE     #
                                   # CONTINUATION OF A *PERFORM* WHICH #
                                   # IS RETURNING FROM AN EXECUTION    #
                                   # OVERLAY.  IF A REAL *PERFORM* IS  #
                                   # ENCOUNTERED, *WRONGOVERLAY* WILL  #
                                   # SEND US TO THE OVERLAY QUALIFIED  #
                                   # TO CRACK A *PERFORM* DIRECTIVE.   #
  
            *ENDBASC               # RELEASE BASIC-TABLE SPACE         #
            LOST          NO /
            *PERINIT      05 /     # INITIALIZE FOR *PERFORM*          #
            WRONGOVERLAY     /YES  # LOAD REAL *PERFORM* OVERLAY       #
  
        :05 *PERBEGIN     YES/     # CONTINUE A *PERFORM*              #
            PERLOOP          /YES  # ENTER *PERFORM* LOOP              #
                                   #                                   #
                                   #----E N D-----P E R F O R M--------#
  
      :PREFACE  :01 
            WRONGOVERLAY     / YES
  
      :PREPARE  :01 
            WRONGOVERLAY     / YES
  
      :PREVIEW  :01 
            WRONGOVERLAY     / YES
  
      :RECAP    :01 
            WRONGOVERLAY     / YES
  
      :RECORDING  :01 
            WRONGOVERLAY     / YES
  
      :RECOVERY :01 
            WRONGOVERLAY     / YES
  
      :REMOVE   :01 
            WRONGOVERLAY     / YES
  
      :RETURN   :01 
            WRONGOVERLAY     / YES
  
      :REWIND   :01 
            WRONGOVERLAY     / YES
  
      :SELECT   :01 
            WRONGOVERLAY     / YES
  
      :SEPARATOR  :01 
            WRONGOVERLAY     / YES
  
      :SORT     :01 
            WRONGOVERLAY     / YES
  
      :SPECIFY  :01 
            WRONGOVERLAY     / YES
  
      :STORE    :01 
            WRONGOVERLAY     / YES
  
      :SUMMARY   :01               #------S U M M A R Y----------------#
                                   #                                   #
                                   # THIS SECTION IGNORES THE *SUMMARY*#
                                   # DIRECTIVE SINCE THE REAL CRACKING #
                                   # OF *SUMMARY* IS DONE BY *HALFSYN* #
                                   # AT *PREPARE* TIME, AND SHOULD BE  #
                                   # IGNORED AT ALL OTHER TIMES.       #
  
            PRESUM        NO /YES  # TRY TO IGNORE THE *SUMMARY*       #
                                   #                                   #
                                   #-----E N D----S U M M A R Y--------#
  
      :TABS     :01 
            WRONGOVERLAY     / YES
  
      :TIME     :01 
            WRONGOVERLAY     / YES
  
      :TITLE    :01 
            WRONGOVERLAY     / YES
  
      :UNIVERSAL  :01 
            WRONGOVERLAY     / YES
  
      :UPDATE   :01 
            WRONGOVERLAY     / YES
  
      :USE  :01 
            WRONGOVERLAY     / YES
  
      :VERIFY   :01 
            WRONGOVERLAY     / YES
  
      :VERSION  :01 
            WRONGOVERLAY     / YES
  
      :VETO     :01 
            WRONGOVERLAY     / YES
  
      :VIA      :01 
            WRONGOVERLAY     / YES
  
      :WHERE    :01                #----W H E R E----------------------#
            *ISIT77                # IF WE ARE NOT PROCESSING RESTRICTS#
            D077          NO /YES  # THEN THIS IS A USER INITIATED CALL#
                                   # FOR *WHERE* WHICH IS ILLEGAL.     #
                                   #----E N D----W H E R E-------------#
  
#----------------------------------------------------------------------#
#                                                                      #
#        O T H E R   S Y N T A X   S E C T I O N S                     #
#        IN ALPHABETICAL ORDER                                         #
#                                                                      #
#----------------------------------------------------------------------#
  
      :ATLINE:01,$AT,03,/,$LINE,D22,NO
              :02,+INT,05,/,*LINENO,LOST,NO,/,
                 $BEYOND,04,/,*CKBYD,LOST,NO,/,YES                       QU3A344
             :03,$LINE,YES,/,02 
          :04,*BEYOFF,LOST,NO,/,YES 
          :05,+NAME,D143,LOST,NO,/,*RESETNAM,/,*ITMNAM,NO,/,
                *GETNAME,D44,LOST,NO,/, 
                       *SLINENO,LOST,NO,/,$BEYOND,YES,/,D163,LOST,NO
  
      :BEFAFT:10                                                         QY40105
              +SNW, *EVALAFT                  # RECOGNIZES BEFORE/AFTER# QY40105
            / $ANY, 20                        # IF NOT -ANY- CHECK -NO-# QY40105
            / *EVAPTR2                        # SET -ANY- FLAG         # QY40105
            / REPKEY2, D282, LOST, NO         # CHECK KEYS FOR -ANY-   # QY40105
            / 40                              # SET CODE AND BUILD KEY # QY40105
          :20                                                            QY40105
              $NO, 30                         # IF NOT -NO- DO GENERAL # QY40105
            / *EVANO, REPKEY3, D283, LOST, NO # SET -NO- FLAG. CHK KEYS# QY40105
            / 40                              # SET CODE AND BUILD KEY # QY40105
          :30                                                            QY40105
              REPKEY1, 35                     # CHECK KEYS W/O TAG NO. # QY40105
            / 40                              # SET CODE AND BUILD KEY # QY40105
          :35                                                            QY40105
              REPKEY2, D284, LOST, NO         # CHECK KEYS W/ TAG NO.  # QY40105
            / *EVAPTR1                        # SET CODE FOR THE KEY   # QY40105
            / +INT, D265, LOST, NO            # GET THE TAG NUMBER     # QY40105
            / 50                              # BUILD THE KEY          # QY40105
          :40                                                            QY40105
              *EVAPTR1                        # SET CODE FOR THE KEY   # QY40105
          :50                                                            QY40105
              *EVAPTR3, YES                   # BUILD THE KEY FOR THE  # QY40105
                                              # DEFAULT CATALOG        # QY40105
      :REPKEY1:10                             # KEYS THAT CANT BE USED # QY40105
               $RECAP                         # WITH -ANY-, -NO-, OR   # QY40105
               $REPORTS                       # WITH TAG NUMBERS       # QY40105
               $TITLE                                                    QY40105
               NO                                                        QY40105
             / YES                                                       QY40105
      :REPKEY2:10                             # KEYS THAT MUST HAVE TAG# QY40105
               $BREAK                         # NUMBER OR -ANY-        # QY40105
               $DETAIL                                                   QY40105
               $FOOTING                                                  QY40105
               $HEADING                                                  QY40105
               REPKEY3                                                   QY40105
               NO                                                        QY40105
             / YES                                                       QY40105
      :REPKEY3:10                             # KEYS THAT CAN HAVE -NO-# QY40105
               $SELECT                        # -ANY- OR TAG NUMBER    # QY40105
               NO                                                        QY40105
             / YES                                                       QY40105
  
      :CENTER  :01                 # SYNTAX CHECKING IN POSITIONING OF #
                                   # REPORT ITEMS.                     #
            $CENTERED     05 /     # CHECK FOR *CENTERED*              #
            *CENTRON
  
        :05 $IN           25 /     # IF AN *IN* IS ENCOUNTERED, FORCE  #
                                   # THE OCCURRENCE OF THE KEYWORDS    #
                                   # *COLUMN*, *NEXT* OR *TAB*.        #
            $TABS         10 / 50  # CHECK FOR *TABS*                  #
  
        :10 $COLUMNS      15 / 40  # CHECK FOR *COLUMN*                #
  
        :15 $NEXT         20 / 45  # CHECK FOR *NEXT*                  #
  
        :20 D022                   # OTHERWIZE DIAGNOSE INVALID SYNTAX #
            LOST             / NO 
  
        :25 $COLUMNS      30 / 40  # IF NO *IN* OCCURS, CHECK FOR      #
                                   # *COLUMN*                          #
  
        :30 $NEXT         35 / 45  # CHECK FOR *NEXT*                  #
  
        :35 $TABS         55 / 50  # CHECK FOR *TABS*                  #
  
        :40 +INT                   # PROCESS COLUMN                    #
            D051          NO /
            *COLMNO       NO /YES 
  
        :45 -TABS                  # PROCESS NEXT                      #
            *NEXTAB       NO /YES 
  
        :50 +INT                   # PROCESS TABS                      #
            D051          NO /
            *TABNO        NO /YES 
  
        :55 *INCRCTR      NO /YES  # IF NO OCCURRENCE USE DEFAULTS     #
  
  
          :ISEXPR:01,-IS,ARITHEXPRESS,NO,/,*STOATTR,CENTER,NO,/,YES 
  
      :PRESUM:1,   -IS, $TEXT, 2/  3
             :2,   LFN, NO/ 
             :3,   $FROM, D110, NO/  LFN, NO/  YES
END 
