*DECK SYNGN12 
PROC SYNGN12
*CALL LEXID 
          + 
*CALL SUB12 
          + 
*CALL SYNGN00 
      :ACCESS   :01 
            WRONGOVERLAY     / YES
  
      :ALTER :01                   #---A L T E R-----------------------#
                                   #                                   #
            *ENDBASC      05 /     # RELEASE MEMORY FOR BASIC TABLES   #
            *TLCHECK               # COMPARE XMISSION LENGTHS          #
            D313          05 /     # ERROR IF CATALOG TL LESS THAN TL  #
            LFN           05 /     # CHECK LFN AND STORE IF OK         #
            *ALTEREX      NO /YES  # EXECUTE *ALTER* DIRECTIVE         #
  
        :05 LOST          NO /     # SKIP REST OF TRANSMISSION         #
                                   #                                   #
                                   #---E N D---A L T E R---------------#
  
      :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                  #----E R A S E----------------------#
  
            *ENDBASC               # RELEASE MEMORY USED FOR BASIC TBLS#
            LOST          NO /     # IGNORE REST OF TRANSMISSION.      #
                                   # RELEASE TABLE SPACE USED BY BASIC #
                                   # DIRECTIVE.  STDNO.                #
            *EREXINI               # INIT. ERASELENGTH.  FLAG NO REPORT#
                                   # OR SESSION.                       #
            $REPORTS      20 /     # LOOK FOR REPORT OPTION            #
            LFN           NO /     # CHECK VALID REPORT NAME PRESENT   #
            +EOT          15 /     # CHECK FOR END OF TRANSMISSION     #
            D096          NO       # "ALL" MISSING                     #
        :15 *TLCHECK               # COMPARE XMISSION LENGTHS          #
            D313                   # ERROR IF CATALOG TL LESS THAN TL  #
            LOST          NO /     # SKIP REST OF TRANSMISSION         #
            $ALL                   # CHECK FOR "ALL"                   #
            SYNREP        NO /     # CHECK OUT "REPORT" OPTIONS        #
            *ERASEXR      NO / YES # DO ACTUAL ERASING OF REPORT STUFF #
  
        :20 $SESSIONS     30 /     # LOOK FOR "SESSION" OPTION         #
            SYNSESS       NO /     # CHECK OTHER SESSION OPTIONS       #
            *ERASEX  D119 NO / YES # DO ACTUAL ERASING OF SESSION STUFF#
  
        :30 $DESCRIBE     40 /     # LOOK FOR DESCRIBE OPTION          #
            LFN           NO /     # CHECK VALID FILE NAME PRESENT     #
            *ERASE$DESCR  NO / YES # DO ACTUAL ERASING OF DESCRIBE     #
                                   # DIRECTORY.                        #
  
        :40 +EOT          42 /     # SEE IF ANYTHING FOLLOWING ERASE   #
            D361          NO /     # ERROR -- NOTHING THERE            #
        :42 *CHKNAME               # DATA NAME MUST NOT BE KEYWORD, ETC#
            D118     LOST NO /     # ERROR -- INVALID DATA NAME        #
            DATA-ATTRIB            # LOCATE ATTRIBUTE STORAGE OF MAME  #
            LOST          NO /     # (SEE COMMENT ON FIRST "LOST")     #
            *ERASENAME             # DE-LINK NAME ENTRY AND FREE SPACE #
            D104                   # LITERAL CANT BE ERASED            #
            LOST          NO /     # (SEE COMMENT ON FIRST "LOST")     #
            +EOT          40 /YES  # LOOP IF ANOTHER DATANAME TO ERASE #
                                   #----E N D---E R A S E--------------#
  
      :EVALUATE :01 
            WRONGOVERLAY     / YES
  
      :EXECUTE  :01 
            WRONGOVERLAY     / YES
  
      :EXHIBIT  :01                #----E X H I B I T------------------#
  
            *EXHOVL                # STDYES IF RIGHT OVERLAY, ELSE NO  #
            WRONGOVERLAY  NO /     # CHANGE OVERLAY IF NECESSARY       #
  
            *ENDBASC               # RELEASE MEMORY USED FOR BASIC TBLS#
            LOST          NO /     # IGNORE REST OF TRANSMISSION.      #
                                   # RELEASE TABLE SPACE USED BY BASIC #
                                   # DIRECTIVE.  STDNO.                #
            *EREXINI               # INIT. ERASELENGTH.  FLAG NO REPORT#
                                   # OR SESSION.                       #
            $REPORTS      20 /     # LOOK FOR $REPORTS$ OPTION         #
            *SAVCP1A               # SAVE CURRENT P1 VALUE IN LFNINDEX.#
            +NAME         12 /     # LOOK FOR REPORT NAME              #
            *CHKLFN  D101 NO /     # CHECK REPORT NAME VALIDITY        #
            +EOT                   # CHECK FOR END OF TRANSMISSION     #
            SYNREP        NO /     # CHECK OUT "REPORTS" OPTION        #
        :12 *EXHIBIR         / YES # EXHIBIT REPORT NAMES AVAILABLE IN #
                                   # CURRENT CATALOG.                  #
  
        :20 $SESSIONS     30 /     # LOOK FOR "SESSIONS"               #
            +NAME         22 /     # LOOK FOR A SESSION-ID             #
            *STORESI D049 NO /     # STORE SESSION-ID                  #
            +INT          22 /     # LOOK FOR A DIRECTIVE-ID           #
            *STORECW D205 NO /     # STORE DIRECTIVE-ID                #
            $TO           22 /     # LOOK FOR "TO" (IMPLIES 2ND ID)    #
            +INT     D112 NO /     # LOOK FOR 2ND DIRECTIVE-ID         #
            *STORECW D205 NO /     # STORE SECOND DIRECTIVE-ID         #
        :22 *EXHIBIS D119 NO / YES # EXHIBIT SESSION-IDS AND DIRECTIVES#
  
        :30 $ACCESS       40 /     # LOOK FOR *ACCESS$ OPTION          #
            +NAME         36 /     # CHECK IF ACCESS PATH NAME GIVEN   #
            *ONEAPTH      NO /YES  # EXHIBIT SPECIFIED ACCESS PATH     #
  
        :36 *ALLAPTH         /YES  # EXHIBIT ALL ACCESS PATHS TO ALL   #
                                   # RECORDS                           #
  
        :40 $COSETS       50 /     # LOOK FOR $COSET$ OPTION           #
            +NAME         45 /     # CHECK IF COSET NAME GIVEN         #
            *ONECSET      NO /YES  # EXHIBIT SPECIFIED COSET           #
  
        :45 *ALLCSET         /YES  # EXHIBIT ALL COSETS                #
  
        :50 D367                   # DIAGNOSE INVALID EXHIBIT OPTION   #
            LOST             / NO 
  
  
                                   #----E N D---E X H I B I T----------#
  
      :EXTRACT  :01 
            WRONGOVERLAY     / YES
  
      :FOLLOW   :01 
            WRONGOVERLAY     / YES
  
      :FOOTING  :01 
            WRONGOVERLAY     / YES
  
      :FORMAT :01                  #---F O R M A T---------------------#
                                   #                                   #
            *ENDBASC      05 /     # RELEASE MEMORY FOR BASIC TABLES   #
            *TLCHECK               # COMPARE XMISSION LENGTHS          #
            D313          05 /     # ERROR IF CATALOG TL LESS THAN TL  #
            LFN           05 /     # CHECK LFN AND STORE IF OK         #
            *FORMATEX     NO /YES  # EXECUTE *FORMAT* DIRECTIVE        #
  
        :05 LOST          NO /     # SKIP REST OF TRANSMISSION         #
                                   #                                   #
                                   #---E N D---F O R M A T-------------#
  
      :HEADING  :01 
            WRONGOVERLAY     / YES
  
      :IF       :01 
            WRONGOVERLAY     / YES
  
      :INSERT   :01 
            WRONGOVERLAY     / YES
                                                                        002490
      :INVOKE   :01                                                     002500
            WRONGOVERLAY     / YES                                      002510
  
      :LOOKUP   :01 
            WRONGOVERLAY     / YES
  
      :MODIFY   :01 
            WRONGOVERLAY     / YES
  
      :MOVE     :01 
            WRONGOVERLAY     / YES
  
      :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 
            WRONGOVERLAY     / YES
  
      :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                 #             V E R I F Y           #
            *UPDMODE               # CHECK IF READ-ONLY OR UPDATE MODE #
            D307, LOST,   NO /     # ERROR EXIT FOR READ-ONLY MODE     #
            *VERINIT         /     # INITIALIZE POINTERS FOR VERIFY AND#
                                   # CLEAR PREVIOUS VERIFY, IF ANY     #
            *CHKNXID      05 /     # IF NEXT IS NOT DIRECTIVE          #
            *VERRLS       YES      # RELEASE GROUP ID                  #
        :05 DATA-ATTRIB   10 / 15  # GET DATANAME                      #
        :10 D369                   # DATANAME ERROR, VERIFY LIST CLEARD#
            *VERRLS,LOST, NO /     # RELEASE VERIFY CM                 #
        :15 *VERSEM          /     # INSERT DATANAME IN VERIFY LIST    #
            *CHKNXID      05 /     # CHECK IF ANOTHER DATANAME         #
            *VERSEMX               # TERMINATE VERIFY PROCESSING       #
            D368          10 /YES  # NOT EXACTLY ONE AREA REFERENCED   #
                                   #    END      V E R I F Y           #
  
      :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                                         #
#                                                                      #
#----------------------------------------------------------------------#
  
  
      :SYNREP  :01                 #----S Y N R E P--------------------#
  
                                   # THIS TABLE PROCESSES THE PART OF  #
                                   # A TRANSMISSION FOLLOWING THE      #
                                   # KEYWORD "REPORT".                 #
            $MOVE                  # CHECK FOR KEYWORD "MOVE"          #
            $EVALUATE     10 /     # CHECK FOR KEYWORD "EVALUATE"      #
            *STORELX D131 NO /     # STORE REPORT DIRECTIVE CODE       #
            +EOT          20 / YES # IF END OF TRANSMISSION THEN RETURN#
  
        :20 $BEFORE       30 /     # CHECK FOR KEYWORD "BEFORE"        #
            *STOREBE      40 /     # FLAG BEFORE OPTION USE.  STDNO.   #
        :30 $AFTER        40 /     # CHECK FOR KEYWORD "AFTER"         #
            *STOREAF               # FLAG AFTER OPTION USE.  STDNO.    #
        :40 $ANY          50 /     # CHECK FOR KEYWORD "ANY"           #
            *STOREAL               # FLAG ANY OPTION USE.  STDNO.      #
        :50 +EOT          60 / YES # IF END OF TRANSMISSION THEN RETURN#
  
        :60 $NO           10 /     # CHECK FOR KEYWORD "NO"            #
            $SELECT  D157    /     # CHECK FOR KEYWORD "SELECT"        #
            *STONSEL      YES/     #                                   #
        :10                        # CHECK FOR LEGAL LAYOUT DIRECTIVE  #
            $DATE                  #                                   #
            $DETAIL                #                                   #
            $FOOTING               #                                   #
            $HEADING               #                                   #
            $PAGE-NUMBER           #                                   #
            $PAGE-SIZE             #                                   #
            $PREFACE               #                                   #
            $RECAP                 #                                   #
            $SELECT                #                                   #
            $SUMMARY               #                                   #
            $TABS                  #                                   #
            $TIME                  #                                   #
            $TITLE                 #                                   #
            $REPORTS               #                                   #
            $BREAK                 #                                   #
                          NO /     #                                   #
            *STORELX D131 NO /     # STORE REPORT DIRECTIVE CODE       #
            +INT          YES/     # LOOK FOR LEVEL NUMBER             #
            *STORELV D108 NO / YES # STORE LEVEL NUMBER IF VALID       #
  
                                   #----E N D---S Y N R E P------------#
  
  
                   # SYNSESS CHECKS THE SYNTAX COMMON TO EXHIBIT AND
                     ERASE, WITH RESPECT TO THE SESSION OPTION.#
      :SYNSESS:1,  +NAME, D114, NO / *STORESI, D049, NO / 
                   +EOT, 2 / D096, NO 
              :2,  $ALL, 3 / YES
              :3,  +INT, D206, NO / 
                   *STORECW, D205, NO / $TO, YES / +INT, D112, NO / 
                   *STORECW, D205, NO / YES 
                   $TO, YES/  +INT, D112, NO/  *STORECW   YES 
  
END 
