*DECK SYNGN60 
PROC SYNGN60
*CALL LEXID 
          + 
*CALL SUB60 
          + 
*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               # -STDYES- IF IN CORRECT OVERLAY    #
            WRONGOVERLAY     /     # LOAD IN CRM/CDCS SYNTAX OVERLAY   #
            *CHKNXID      10 /     # IS NEXT WORD A DIRECTIVE OR EOT   #
            D514                   # DIAG DISPLAY WITHOUT PARAMETERS   #
            LOST          NO /     # ERROR EXIT                        #
                                   #                                   #
        :10 *SET60           /     # INIT FOR FILE ACCESS COMMAND      #
            *DE$INI          /     # INIT FOR DISPLAY/EXTRACT          #
            $UPON         20 /     # CHECK FOR -UPON- OPTION           #
            LFN                    # LOOK FOR LEGAL LFN                #
            LOST          NO /     # ILLEGAL LFN - SKIP TRANSMISSION   #
            *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  #
                                   #                                   #
        :20 $FROM         25 /     # CHECK FOR -FROM- OPTION           #
            LFN                    # LOOK FOR LEGAL LFN                #
            LOST          NO /     # ILLEGAL LFN - SKIP TRANSMISSION   #
            *SETDISFROM            # PROCESS -FROM- OPTION             #
            LOST          NO /     # ERROR IN -FROM- CLAUSE            #
                                   #                                   #
        :25 *SAVPTR          /     # SAVE PTR TO START OF NEW -SAME-   #
            $SAME         30 /     # IF -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-  #
                                   #                                   #
        :30 *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           40 /     # CHECK FOR -AS- OPTION             #
            NDATA-ATTRIB  99 /     # PROCESS RENAME OF EXPRESSION      #
                                   #                                   #
        :40 *DISPTBL      99 /     # SAVE ENTRY IN -DTABLE- (, DESATT1)#
            *CHKNXID      30 /     # CHECK FOR END OF DIRECTIVE        #
                                   #                                   #
            *NAVICHK      99 /     # CHECK NAVIGATION ROUTE            #
            *DISPEND      99 /     # FINISH UP -DTABLE-                #
            *MOVSAME      YES/YES  # SAVE NEW -SAME- INPUT BUFFER      #
                                   #                                   #
        :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                #-------- E V A L U A T E ----------#
                                   #                                   #
        :05 *CKOVLY                # CHECK IF IN PROPER OVERLAY        #
            WRONGOVERLAY     /     # EXIT, WRONG OVERLAY               #
        :10 *SET60           /     # INITIALIZE IMF TABLES             #
            *EV$INI          /     # INITIALIZE *EVALUATE*             #
        :15 DATA-ATTRIB            # IDENTIFY AND SAVE ATTRIBS OF NAME #
            D44           99 /     # UNDEFINED DATA NAME; EXIT         #
        :20 *SAVEVA                # SAVE EVALUATE ENTRY               #
            D144          99 /     # ILLEGAL TYPE OF DATA NAME; EXIT   #
            *CHKNXID      15 /     # TEST IF NEXT WORD IS DIRECTIVE    #
            *SETPOIN         /     # CLEAR SM$GROUPID                  #
            *NAVICHK      99 /YES  # CHECK NAVIGATION STRATEGY         #
        :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                #------E X T R A C T----------------#
                                   #                                   #
            *CKIMFOV               # -STDYES- IF IN CORRECT OVERLAY    #
            WRONGOVERLAY     /     # LOAD IN CRM/CDCS SYNTAX OVERLAY   #
                                   #                                   #
            *SET60           /     # INIT FOR FILE ACCESS COMMAND      #
            *DE$INI          /     # INIT FOR DISPLAY/EXTRACT          #
            $UPON                  # LOOK FOR -UPON- CLAUSE            #
            D022                   # DIAGNOSE INVALID SYNTAX           #
            LOST          NO /     # ERROR EXIT - SKIP TRANSMISSION    #
            LFN                    # LOOK FOR VALID LFN                #
            LOST          NO /     # ERROR EXIT                        #
            *BUDFIT          /     # INIT FOR -UPON LFN-               #
                                   #                                   #
            $WITH         05 /     # CHECK FOR -WITH DIRECTORY- CLAUSE #
            WITHDIR                #                                   #
            LOST          NO /     # ERROR IN -WITH DIRECTORY- CLAUSE  #
                                   #                                   #
        :05 ARITHEXPRESS           # CRACK EXPRESSION                  #
            LOST          NO /     # ERROR IN EXPRESSION               #
            *GET15           /     # ALLOCATE 15-WORD EXTRACT TABLE    #
                                   #                                   #
        :10 *CHKFIGS               # CHECK FIGURATIVE SUBSCRIPTS       #
            D944          99 /     # INVALID USE OF FIG SUBSCRIPT      #
                                   #                                   #
            $AS           20 /     # CHECK FOR -AS- OPTION             #
            NDATA-ATTRIB  99 /     # PROCESS RENAME OF EXPRESSION      #
                                   #                                   #
        :20 *BUDEXTR      99 /     # BUILD EXTRACT AND -DESATT1- ENTRY #
            *CHKNXID      30 /     # CHECK IF AT END OF DIRECTIVE      #
            *NAVICHK      99 /     # CHECK NAVIGATION ROUTE            #
            *NEWLFNLINK      /YES  # LINK NEW LFN INTO -LFNLIST-       #
                                   #                                   #
        :30 *SVDESLIST             # SAVE AND ZERO -DESLIST-           #
            ARITHEXPRESS           # CRACK EXPRESSION                  #
            *RSDESLIST    99 /     # RESTORE -DESLIST- BEFORE ERR EXIT #
            *RSDESLIST       / 10  # RESTORE -DESLIST-                 #
                                   #                                   #
        :99 *RLSALL          /     # RELEASE -DESLIST- TABLE SPACE     #
            LOST          NO / NO  # ERROR EXIT                        #
                                   #                                   #
                                   #------E N D---E X T R A C T--------#
  
  
  
  
      :FOLLOW   :01                #----------- F O L L O W -----------#
                                   #                                   #
            $DEFAULT      05 /     # CHECK FOR KEYWORD -DEFAULT-       #
            *FOL$OFF      YES/     # TERMINATE -FOLLOW- DIRECTIVE      #
        :05 *FOL$INI         /     # INITIALIZE -FOLLOW- DIRECTIVE     #
            +NAME         10 /     # CK FOR ACCESS PATH NAME           #
            *STO$AP       60 /     # GET/STORE ACCESS PATH AND ATTRIBS #
        :10 $MEMBER       15 /     # IF MEMBER CLAUSE                  #
            +NAME                  # COSET NAME MUST FOLLOW            #
            D513          60 /     # ILL. SYNTAX - NAME NOT FOUND      #
            *STO$MEM      60 / 10  # GET/STORE COSET AND ATTRIBUTES    #
        :15 $OWNER        20 /     # IF OWNER CLAUSE                   #
            +NAME                  # COSET NAME MUST FOLLOW            #
            D513          60 /     # ILL. SYNTAX - NAME NOT FOUND      #
            *STO$OWN      60 / 10  # GET/STORE COSET AND ATTRIBUTES    #
        :20 *SEGMCHK      60 /     # INSURE NO SEGMENTATION IN PATH    #
        :50 *FOL$END         /YES  # STORE NAVIGATION STRATEGY         #
        :60 *FOL$OFF               # TERMINATE -FOLLOW- DIRECTIVE      #
            LOST          NO / NO  # ELIMINATE TRANSMISSION            #
                                   #                                   #
                                   #------ E N D --- F O L L O W ------#
      :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 CRM/CDCS SYNTAX OVERLAY   #
                                   #                                   #
            *SET60           /     # INIT FOR DATA BASE ACCESS         #
            *IF$INI          /     # SET BASCODE FOR -IF-              #
                                   #                                   #
            *SAVPTR          /     # SAVE PTR TO START OF NEW -SAME-   #
            CONDITION              # ANALYZE AND STORE CONDITION       #
            LOST          NO /     # ERROR IN CONDITION                #
            *SETIFTBL              # FLAG TYPE OF *IF-S* SUBJECT       #
            *MOVSAME               # SAVE NEW -SAME- INPUT BUFFER      #
            *CKFILL       10 /     # *NO* - EVALUATE NOW               #
            *NAVICHK               # DETERMINE NAVIGATION              #
            LOST          NO /YES  # ERROR IN NAVIGATION STRATEGY      #
                                   # *YES* - EVAL IN EXECUTION OVLY    #
        :10 *IFTEMP       15 /     # EVAL TEMPORARY CONDITION          #
            *RLSBASC      YES/YES  # IF TRUE, REL BASC TBL MEM & EXIT  #
        :15 *RLSBASC               # IF FALSE, REL BASC TBL MEMORY AND #
            *SETNEXT      YES/YES  # FLAG NEXT TRANSMISSN AS PREDICATE #
                                   #                                   #
                                   #------E N D ------I F--------------#
  
      :INSERT   :01 
            WRONGOVERLAY     / YES
                                                                        002610
      :INVOKE  :01
            WRONGOVERLAY     /YES 
  
      :LOOKUP   :01 
            WRONGOVERLAY     / YES
  
      :MODIFY   :01                #-------M O D I F Y-----------------#
                                   #                                   #
                                   # THE MODIFY DIRECTIVE MODIFIES     #
                                   # VALUES OF DATA ITEMS INSIDE       #
                                   # EXISTING RECORDS AND/OR           #
                                   # TEMPORARY ITEMS                   #
                                   #                                   #
            *CKIMFOV               # STDYES IF IN CORRECT SMR OVERLAY  #
            WRONGOVERLAY     /     # LOAD CORRECT OVERLAY              #
            *SET60           /     # INITIALIZE IMF TABLES & BASICTABLE#
            *MOD$INI         /     # INITIALIZE FOR *MODIFY*           #
                                   #                                   #
            MOVE-CLAUSE            # IF PRESENT,CRACK *MOVE* CLAUSE    #
                                   # AND BUILD THE MOVE TABLE          #
            LOST          NO /     # ERRONEOUS MOVE CLAUSE             #
            USI-CLAUSE             # BUILD *USING/SETTING* LIST AND    #
                                   # POINT BASIC TABLE TO IT           #
            LOST          NO /     # ILLEGAL DATA OR FROM FILE NAME    #
            MOVE-CLAUSE            # MOVE MAY FOLLOW USING,AND IF SO,  #
                                   # CRACK CLAUSE AND BUILD TABLE      #
            LOST          NO /     # ERRONEOUS MOVE CLAUSE             #
            SMR-FINIS              # CHECK FOR VALID DIRECTIVE AND     #
                                   # COMPLETE PROCESSING               #
            LOST          NO / YES #                                   #
                                   #-------E N D----M O D I F Y--------#
  
  
  
  
      :MOVE     :01                #------------ M O V E --------------#
                                   #                                   #
            *CKOVLY                # CHECK TO INSURE PROPER OVERLAY    #
            WRONGOVERLAY     /     #                                   #
            *SET60           /     # INITIALIZE IMF TABLES & BASICTABLE#
            *MOV$INI         /     # INITIALIZE *MOVE*                 #
        :05 ARITHEXPRESS  99 /     # ANALYIZE AND STORE ARITH EXPRESN  #
        :07 *MVEXP        99 /     # SAVE INFO ABOUT FROM FIELD        #
            -TO                    # CHECK FOR OPTIONAL *TO*           #
        :10 DATA-ATTRIB            # IDENTIFY AND SAVE ATTRIBS OF NAME #
            D375          99 /     # INVALID *MOVE* DESTINATION        #
            *MOVEXEC      99 / 50  # ISOLATE AREA, BUILD MOVE TABLE    #
                                   #                                   #
        :15 $AND          20 / 05  # CHECK FOR KEYWORD -AND-           #
                                   #                                   #
        :20 *EXPRINIT              # INITIALIZE FOR EXPRESSION ANALYSIS#
            $-                     # CHECK FOR *-*                     #
            -+            35 /     # CHECK FOR *+*                     #
            *UNARYOP               # STACK UNARY MINUS ON OP STACK     #
        :35 +LIT          10 /     # CHECK FOR A LITERAL               #
            *STORLIT               # STORE LITERAL AND RETURN DESCRPTN #
            *ENDEXPRESS   NO / 07  # COMPLETE EXPRESSION ANALYSIS      #
                                   #                                   #
        :50 *CHKNXID      15 /     # CHECK IF NEXT WORD IS A DIRECTIVE #
            *NAVICHK      99 /     # ESTABLISH NAVIGATION STRATEGY     #
            *SETPOIN      YES/YES  # CLEAR SM$GROUPID                  #
        :99 LOST          NO / NO  # ERROR EXIT                        #
                                   #                                   #
                                   #------ 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                #-------R E M O V E-----------------#
                                   #                                   #
                                   # THE *REMOVE* DIRECTIVE PERMANENTLY#
                                   # REMOVES ONE (OR MORE) RECORD(S)   #
                                   # FROM THE DATABASE DEPENDING ON    #
                                   # THE DATA GIVEN IN THE USING       #
                                   # CLAUSE                            #
                                   #                                   #
            *CKIMFOV               # STDYES IF IN CORRECT SMR OVERLAY  #
            WRONGOVERLAY     /     # LOAD CORRECT OVERLAY              #
            *SET60           /     # INITIALIZE IMF TABLES & BASICTABLE#
            *REM$INI         /     # INITIALIZE FOR REMOVE             #
                                   #                                   #
            USI-CLAUSE             # BUILD USING/SETTING LIST AND      #
                                   # AND POINT BASICTABLE TO IT        #
            LOST          NO /     #                                   #
            SMR-FINIS              # CHECK FOR VALID DIRECTIVE AND     #
                                   # COMPLETE PROCESSING               #
            LOST          NO / YES #                                   #
                                   #                                   #
                                   #-------E N D---R E M O V E---------#
  
      :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                #-------S T O R E-------------------#
                                   #                                   #
                                   # THE *STORE* DIRECTIVE ADDS A NEW  #
                                   # RECORD TO THE DATA BASE AND       #
                                   # SUPPLIES VALUES WITH WHICH THE    #
                                   # NEW RECORD IS PRESET.             #
                                   #                                   #
            *CKIMFOV               # STDYES IF IN CORRECT SMR OVERLAY  #
            WRONGOVERLAY     /     # LOAD CORRECT OVERLAY              #
            *SET60           /     # INITIALIZE IMF TABLES & BASICTABLE#
            *STO$INI         /     # INITIALIZE *STORE* DIRECTIVE      #
                                   #                                   #
            MOVE-CLAUSE            # CHECK AND PROCESS *MOVE* CLAUSE,  #
                                   # IF PRESENT                        #
            LOST          NO /     # ERRONEOUS *MOVE* CLAUSE           #
            $SETTING      15 /     # *SETTING* CLAUSE IS OPTIONAL      #
            *SETSET          /     # INITIALIZE *SETTING* CLAUSE       #
        :05 DATA-ATTRIB            # GET DATA NAMES                    #
            D389                   # DATANAMES MUST FOLLOW *SETTING*   #
            LOST          NO /     #                                   #
            *SAVDATA               # SAVE *SETTING* ENTRY IN TABLE     #
            LOST          NO /     # ERRONEOUS *SETTING* ENTRY         #
            *CHKNAME      10 / 05  # IF ANOTHER NAME, PROCESS IT       #
        :10 $FROM         15 /     # IF *SETTING* DATA ON A FILE       #
            LFN                    # CHECK FOR VALID FILE NAME         #
            LOST          NO /     # ERRONEOUS FILE NAME GIVEN         #
            *SETFROM               # LINK-UP FILE FIT                  #
            LOST          NO /     # ERROR, MULTIPLE FROM FILES        #
        :15 MOVE-CLAUSE            # MOVE MAY BE AFTER SETTING         #
                                   #                                   #
            LOST          NO /     # ERRONEOUS MOVE CLAUSE             #
            SMR-FINIS              # INSURE VALID DIRECTIVE GIVEN      #
                                   # AND COMPLETE PROCESSING           #
            LOST          NO /YES  #                                   #
                                   #-------E N D---S T O R E-----------#
  
  
  
  
  
      :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 
            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                                         #
#                                                                      #
#----------------------------------------------------------------------#
  
  
  
  
      :MOVE-CLAUSE  :01            #-------M O V E - C L A U S E-------#
                                   #                                   #
                                   # *MOVE-CLAUSE* HANDLES THE *MOVE*  #
                                   # FOUND IN THE *STORE* AND *MODIFY* #
                                   # DIRECTIVES.  IT IS NOT A          #
                                   # DIRECTIVE SO A NEW BASIC TABLE    #
                                   # ENTRY AND CMM GROUPID ARE NOT     #
                                   # ALLOCATED BUT FURTHER PROCESS-    #
                                   # ING IS VERY SIMILAR TO THAT OF    #
                                   # THE *MOVE* DIRECTIVE.             #
                                   #                                   #
            $MOVE         YES/     # IF *MOVE* DOES NOT EXIST, EXIT    #
            *SETMOVE      NO /     # INITIALIZE FOR MOVE               #
        :05 ABEXPR        NO /     # CRACK ARITH OR BOOL EXPRESSION    #
            *MVEXP        NO /     # SAVE INFO ABOUT FROM FIELD        #
            $TO                    #                                   #
            D392          NO /     # *TO* MUST SEPARATE EXPR AND DEST  #
        :10 DATA-ATTRIB   NO /     # PICK UP DEST.MUST BE VALID NAME   #
            *MOVEXEC      NO /     # BUILD ENTRY IN MOVE TABLE         #
            *CHKNAME      15 / 10  # CHECK FOR ANOTHER DATA NAME       #
        :15 $AND          YES/ 05  # *AND* INDICATES ANOTHER EXPR      #
                                   #                                   #
                                   #---E N D---M O V E - C L A U S E---#
  
  
  
  
      :NDATA-ATTRIB :01            #------N D A T A - A T T R I B------#
                                   #                                   #
                                   # HANDLES THE RENAME OF A DISPLAY   #
                                   # OR EXTRACT ITEM                   #
                                   #                                   #
            +NAME                  # LOOK FOR LEGAL NAME               #
            +SNW                   # ADVANCE ILLEGAL NAME              #
            D513          NO /     # DIAGNOSE ILLEGAL DATANAME         #
                                   #                                   #
            *NEWATTRIB       /     # SET FLAGS TO INDICATE RENAME      #
            *RESETNAM        /     # RESET FIELDNAME TABLE             #
            *ITMNAM       NO /     # STORE ITEM NAME IN FIELDNAME TABLE#
            *CHKAS                 # CHECK LEGALITY OF -AS-            #
            D419          NO /YES  # ILLEGAL USE OF -AS- OPTION        #
                                   #                                   #
                                   #--E N D---N D A T A - A T T R I B--#
  
  
  
  
  
  
      :SMR-FINIS   :01             #-------S M R - F I N I S-----------#
                                   #                                   #
                                   # *SMR-FINIS* DOES THE VALIDITY     #
                                   # CHECKS FOR THE *STORE/MOD/REMOVE* #
                                   # DIRECTIVES; STORES THE ACCESS     #
                                   # PATH, AND SETS THE VETO/          #
                                   # PASS OPTION.                      #
                                   #                                   #
            *GET$AP                # FIND PATH FROM USING/SETTING LIST #
            D535          NO /     # ILLEGAL PATH                      #
            *CHKSMR       NO /     # VALIDITY CHECK FOR STOR/MOD/REM   #
            *NAVICHK      NO /     # STORE NAVIGATION STRATEGY         #
            $VETO                  # CHECK FOR *VETO* OPTION           #
            $PASS         YES/     # CHECK FOR *PASS* OPTION           #
            *SETPV        YES/YES  # OPTION GIVEN, SET PROPER FLAG     #
                                   #                                   #
                                   #----E N D---S M R - F I N I S------#
  
  
  
  
      :USI-CLAUSE :01              #--------U S I - C L A U S E--------#
                                   #                                   #
                                   # *USI-CLAUSE* PROCESSES THE *USING/#
                                   # SETTING* COMBINATION CLAUSE IN    #
                                   # THE *MODIFY* AND *REMOVE*         #
                                   # DIRECTIVES.  THE USING CLAUSE     #
                                   # MAY COME BEFORE, AFTER, OR        #
                                   # BETWEEN SETTING CLAUSES           #
                                   #                                   #
                                   # SETTING MAY COME BEFORE           #
            $SETTING      10 /     # AND/OR AFTER USING                #
            *SETUSISET       /     # INTITIALIZE *SETTING* CLAUSE      #
        :05 DATA-ATTRIB            # GET DATA ITEMS;  SETTING LIST MUST#
            D389          NO /     # CONTAIL LEGAL DATANAME(S)         #
            *SAVDATA      NO /     # SAVE THIS SETTING ITEM IN LIST    #
            *CHKNAME      10 / 05  # IF ANOTHER, ADD IT TO SETTING LIST#
                                   # IF USING NOT PRESENT, SECOND      #
        :10 $USING        20 /     # SETTING NOT ALLOWED               #
            *SETUSI          /     # INITIALIZE *USING* CLAUSE         #
        :11 DATA-ATTRIB            # PICK UP SEARCH KEY                #
            D390          NO /     # ILLEGAL SEARCH KEY                #
            *SAVEUSI      NO /     # ADD ENTRY FOR SEARCH KEY          #
            *CHKNAME      12 / 11  # *USING* MAY SPECIFY MORE ITEMS    #
        :12 $SETTING      20 /     # PROCESSING TRAILING SETTING       #
            *SETUSISET       /     # INITIALIZE *SETTING*              #
        :15 DATA-ATTRIB            # GET SETTING ITEMS (DATANAMES)     #
            D389          NO /     # ILLEGAL SETTING ITEMS             #
            *SAVDATA      NO /     # BUILD SETTING ENTRY IN TABLE      #
            *CHKNAME      20 / 15  # IF MORE ITEMS, GO BACK AND PROCESS#
                                   #                                   #
        :20 $FROM         YES/     # SEE IF DATA ON FROM FILE          #
            LFN           NO /     # ANALYZE AND SAVE FILE NAME        #
            *SETFROM      NO /YES  # LINK-UP FILE FIT                  #
                                   #                                   #
                                   #----E N D---U S I - C L A U S E----#
  
      :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 
