*DECK SYNGN06 
PROC SYNGN06
*CALL LEXID 
          + 
*CALL SUB06 
          + 
*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                #------D I S P L A Y----------------#
                                   #                                   #
            *CKIMFOV               # CHECK IF IN PROPER OVERLAY        #
            WRONGOVERLAY     /     # LOAD IN IMF SYNTAX OVERLAY        #
                                   #                                   #
            *SET40                 # INIT FOR FILE ACCESS COMMAND      #
            *ALGRPID         /     # ALLOCATE A CMM GROUP ID           #
            $UPON         10 /     # CHECK FOR -UPON- OPTION           #
            LFN                    # CHECK FOR LEGAL LFN               #
            LOST          NO /     # ILLEGAL LFN - LEAVE DIRECTIVE     #
            *BUDFIT                # PROCESS -UPON FILE- OPTION        #
                                   #                                   #
            $WITH         10 /     # THE -WITH DIRECTORY- CLAUSE IS    #
            WITHDIR                # ALLOWED ONLY IF -UPON- GIVEN      #
            LOST          NO /     # ERROR IN -WITH DIRECTORY- CLAUSE  #
                                   #                                   #
        :10 $FROM         20 /     # WAS -FROM- OPTION CHOSEN          #
            LFN                    # IS -FROM- LFN LEGAL               #
            LOST          NO /     # ILLEGAL LFN - LEAVE DIRECTIVE     #
            *SETDISFROM            # PROCESS -FROM- OPTION             #
            LOST          NO / 40  # ERROR IN -FROM- CLAUSE -- EXIT    #
                                   #                                   #
        :20 $KEY          40 /     # CHECK FOR KEY OPTION              #
            $IN           30 /     # IS IT -KEY IN-                    #
            LFN                    # CHECK FOR LEGAL -KEY IN- LFN      #
            LOST          NO /     # ERROR EXIT                        #
            *SETKEY1               # SAVE -KEY IN- LFN INFO            #
            LOST          NO / 40  # ERROR EXIT                        #
                                   #                                   #
        :30 DATA-ATTRIB            # MUST BE DATANAME OR LITERAL       #
            LOST          NO /     # UNDEFINED NAME                    #
            *SETKEY2               # SAVE KEY LITERAL OR DATANAME      #
            LOST          NO /     # ERROR EXIT                        #
                                   #                                   #
        :40 *SAVPTR          /     # SAVE PTR TO START OF NEW -SAME-   #
            $SAME         50 /     # WAS -SAME- OPTION GIVEN           #
            *CHKNXID               # ONLY DIRECTIVE OR EOT ALLOWED NEXT#
            D022                   # INVALID SYNTAX                    #
            LOST          NO /     # ERROR EXIT                        #
            *GETSAME               # SWITCH OVER TO -SAME- INPUT BUFFER#
            LOST          NO /     # ERROR EXIT                        #
            *RECSAME      YES/     # EXIT NOW IF RECORDING THE -SAME-  #
                                   #                                   #
        :50 *SVDESLIST             # SAVE AND ZERO -DESLIST-           #
            ARITHEXPRESS           # CRACK EXPRESSION                  #
            *RSDESLIST    99 /     # ERROR IN EXPRESSION               #
            *RSDESLIST             # RESTORE -DESLIST- POINTER         #
                                   #                                   #
            *CHKFIGS               # CHECK FIGURATIVE SUBSCRIPTS       #
            D944          99 /     # INVALID USE OF FIG SUBSCRIPT      #
                                   #                                   #
            $AS           60 /     # IF -AS- SPECIFIED                 #
            NDATA-ATTRIB  99 /     # PROCESS RENAME OF EXPRESSION      #
                                   #                                   #
        :60 *DISPTBL      99 /     # SAVE ENTRY IN -DTABLE-            #
            *CHKNXID      50 /     # CHECK FOR END OF DIRECTIVE        #
                                   #                                   #
        :70 *DISPEND         /     # FINISH UP -DTABLE-                #
            *MOVSAME      YES/YES  # SAVE IN -SAME- ARRAY              #
                                   #                                   #
        :99 *RLSALL                # RELEASE -DESLIST- TABLE SPACE     #
            LOST          NO / NO  # SKIP THIS TRANSMISSION            #
                                   #                                   #
                                   #------E N D---D I S P L A Y--------#
  
      :DUPLICATE   :01
            WRONGOVERLAY     / YES
  
      :ERASE    :01 
            WRONGOVERLAY     / YES
  
      :EVALUATE :01 
            WRONGOVERLAY     / YES
  
      :EXECUTE  :01 
            WRONGOVERLAY     / YES
  
      :EXHIBIT  :01 
            WRONGOVERLAY     / YES
  
      :EXTRACT :01                 #---E X T R A C T-------------------#
                                   #                                   #
            *CKIMFOV               # CHECK IF IN PROPER OVERLAY        #
            WRONGOVERLAY     /     # LOAD IN IMF SYNTAX OVERLAY        #
                                   #                                   #
        :10 *SET40           /     # INIT. FOR FILE ACCESS DIRECTIVE   #
            *ALGRPID         /     # ALLOC A CMM GROUP ID              #
            $UPON                  # *UPON* ALWAYS REQUIRED            #
            D022                   # DIAGNOSE INVALID SYNTAX           #
            LOST          NO /
            LFN                    # CHECK FOR VALID LFN               #
            LOST          NO /
            *BUDFIT          /     # INITIALIZE FOR *EXTRACT* LFN      #
                                   #                                   #
            $WITH         15 /     # CHECK FOR -WITH DIRECTORY- CLAUSE #
            WITHDIR                #                                   #
            LOST          NO /     # ERROR IN -WITH DIRECTORY- CLAUSE  #
                                   #                                   #
        :15 ARITHEXPRESS           # CRACK EXPRESSION                  #
            LOST          NO /
            *GET15           /     # ALLOCATE 15-WORD BLOCK            #
  
        :20 *CHKFIGS               # CHECK FIGURATIVE SUBSCRIPTS       #
            D944          70 /     # INVALID USE OF FIG SUBSCRIPT      #
            $AS           30 /     # CHECK FOR RENAME OPTION           #
            NDATA-ATTRIB  70 /     # PROCESS RENAME OF EXTRACT ITEM    #
  
        :30 *BUDEXTR      70 /     # BUILD *EXTRACT* TABLE ENTRY       #
  
        :40 *CHKNXID      50 /     # CHECK IF AT END OF DIRECTIVE      #
            *NEWLFNLINK      /YES  # LINK NEW LFN INTO *LFNLIST*       #
  
        :50 *SVDESLIST       /     # SAVE AND ZERO *DESLIST*           #
            ARITHEXPRESS           # CRACK EXPRESSION                  #
            *RSDESLIST    70 /     # RESTORE *DESLIST* BEFORE ERR EXIT #
            *RSDESLIST       / 20  # RESTORE *DESLIST*                 #
  
        :70 *RLSALL          /     # RELEASE *EXTRACT* TABLE SPACE     #
            LOST             / NO 
                                   #                                   #
                                   #-----E N D-----E X T R A C T-------#
  
      :FOLLOW   :01 
            WRONGOVERLAY     / YES
  
      :FOOTING  :01 
            WRONGOVERLAY     / YES
  
      :FORMAT   :01 
            WRONGOVERLAY     / YES
  
      :HEADING  :01 
            WRONGOVERLAY     / YES
  
      :IF   :01                    #----------I F----------------------#
                                   #                                   #
            *CKIMFOV               # -STDYES- IF IN CORRECT OVERLAY    #
            WRONGOVERLAY     /     # LOAD IN IMF SYNTAX OVERLAY        #
                                   #                                   #
            *SET40                 # INITIALIZE FOR FILE ACCESS        #
            *ALGRPID         / 10  # ALLOCATE CRM GROUP ID FOR THIS    #
                                   # DIRECTIVE AND SAVE IN BASICTABLE  #
        :10 *SAVPTR          /     # SAVE PTR TO START OF NEW -SAME-   #
            CONDITION              # ANALYZE AND STORE BOOLEAN EXPR    #
            LOST          NO /     # ERROR IN CONDITION                #
            *SETIFTBL              # FLAG TYPE OF *IF-S* SUBJECT       #
            *MOVSAME               # SAVE CONDITION IN *SAME* ARRAY    #
            *CKFILL       20 /     # *NO* - EVALUATE NOW               #
                                   # *YES* - EVAL IN EXECUTION OVLY    #
            +EOT          YES/     # EXIT IF MORE DIRECTIVES IN XMISSN #
            *SETNEXT      YES/     # FLAG THAT *IF* CONTROLS NEXT      #
                                   # TRANSMISSION                      #
        :20 *IFTEMP                # EVALUATE CONDITION - *NO* IF FALSE#
            *RLSBASC      30 /     # RELEASE BASICTABLE MEMORY         #
            *RLSBASC      YES/     # RELEASE MEMORY AND EXIT           #
                                   #                                   #
                                   # CONDITION WAS FALSE               #
        :30 +EOT          40 /     # IF *IF* LAST IN TRANSMISSION      #
            *SETNEXT      YES/     # IF SO, FLAG THAT *IF* CONTROLS    #
                                   # NEXT TRANSMISSION AND EXIT        #
        :40 *CHKNOTE      50 /     # *YES* IF *NOTE* ENCOUNTERED       #
            NOTE             /     # SKIP OVER COMMENT TO EOT          #
            *SETNEXT      YES/     # *IF* WILL STILL CONTROL NEXT XMISN#
        :50 $IF           60 / 01  # SKIP UNTIL NEXT *IF*...           #
        :60 +EOT                   # OR END OF TRANSMISSION            #
            +SNW          70 /     # CHECK ONE WORD AT A TIME          #
            *CLRNEXT         /YES  # *IF* DOESN-T CONTROL NEXT XMISSN  #
        :70 *CHKNOTE      50 /     # IF *NOTE* AFTER OTHER DIRECTIVE   #
            NOTE             /     # REACHED END OF TRANSMISSION       #
            *CLRNEXT         /YES  # *IF* DOESN-T CONTROL NEXT XMISSN  #
                                   #                                   #
                                   #----------E N D---I F--------------#
  
      :INSERT   :01 
            WRONGOVERLAY     / YES
                                                                        002330
      :INVOKE   :01                                                     002340
            WRONGOVERLAY     / YES                                      002350
  
      :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 
            WRONGOVERLAY     / YES
  
      :VERSION  :01 
            WRONGOVERLAY     / YES
  
      :VETO     :01 
            WRONGOVERLAY     / YES
  
      :VIA  :01                    #----V I A--------------------------#
            +NAME                  # LOOK FOR NAME FOLLOWING VIA       #
            +SNW     D316 NO /     # IF NO NAME, GIVE DIAGNOSTIC       #
            *VIA     D316 NO / YES # LOOK FOR MATCHING RELATION AND    #
                                   # SET VIAPOINT IF SUCCESSFULL.      #
                                   #----E N D---V I A------------------#
  
      :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                                         #
#                                                                      #
#----------------------------------------------------------------------#
  
      :NDATA-ATTRIB :01            #---N D A T A - A T T R I B---------#
                                   #                                   #
                                   # HANDLES THE RENAME OF EXTRACT ITEM#
  
            +NAME                  # CHECK FOR LEGAL NAME              #
            +SNW                   # ADVANCE ILLEGAL NAME              #
            D064          NO /     # DIAGNOSE ILLEGAL DATA NAME        #
            *NEWATTRIB       /     # SET FLAGS FOR RENAME EXTRACT ITEM #
            *RESETNAM        /     # RESET FIELDNAME TABLE             #
            *ITMNAM       NO /     # STORE ITEM NAME IN FIELDNAME TBL  #
            *CHKAS                 # CHECK LEGALITY OF -AS-            #
            D419          NO /     # ILLEGAL USE OF -AS- OPTION        #
            $(            YES/     # CHECK FOR LEFT PAREN              #
            $ALL                   # CHECK FOR FIGUATIVE SUBSCRIPT *ALL#
            D064          NO /     # DIAGNOSE ILLEGAL DATANAME         #
            $)                     # CHECK FOR CLOSE PAREN             #
            D062          NO /YES  # DIAGNOSE PARENTHESIS IMBALANCE    #
                                   #                                   #
                                   #---E N D---N D A T A - A T T R I B-#
  
      :WITHDIR  :01                #------W I T H D I R----------------#
                                   #                                   #
                                   # THE -WITH DIRECTORY- CLAUSE SAYS  #
                                   # WHETHER OR NOT TO BUILD A DIREC-  #
                                   # TORY FOR THE FILE CREATED BY THIS #
                                   # DISPLAY/EXTRACT COMMAND, OVER-    #
                                   # RIDING THE -DIRECTORY- COMMAND    #
                                   # TEMPORARILY.                      #
                                   #                                   #
            $DIRECTORY             #                                   #
            D430          NO /     # ERROR IF REQUIRED KEYWORD MISSING #
                                   #                                   #
            $OFF          10 /     # DIRECTORY TURNED OFF IF KEYWORD   #
            *DIROVOFF        / YES # -OFF- GIVEN                       #
                                   #                                   #
        :10 -ON                    # KEYWORD -ON- IS OPTIONAL          #
            *DIROVON         / YES # DIRECTORY TURNED ON BY DEFAULT    #
                                   #                                   #
                                   #---E N D---W I T H D I R-----------#
END 
