*DECK DB$DSTX 
PROC DB$DSTX
  
  
      THE ENTRIES IN THIS LIST DEFINE THE RESERVED WORDS THAT WILL BE 
      KNOWN TO THE SCANNER. THE FORMAT OF EACH ENTRY IS - 
  
      COLUMN     USAGE
  
      1-30       RESERVED WORD OR SYMBOL. IT WILL BE RECOGNIZED ONLY AS 
                 ENTERED HERE. IF AN ABBREVIATION IS DESIRED, IT MUST BE
                 ENTERED SEPARATELY WITH THE SAME LEXICAL ID (SEE COLUMN
                 36). EACH RESERVED WORD MUST START IN COLUMN 1.
                 EACH RESERVED WORD OR SYMBOL MUST BE LISTED IN ORDER 
                 BY THE DISPLAY CODE VALUE OF THE FIRST CHARACTER OF THE
                 RESERVE WORD OR SYMBOL AND THEN BY THE EXPECTED USE OF 
                 THE RESERVED WORD OR SYMBOL. 
  
      31         AN ASTERISK IN THIS COLUMN INDICATES THE RESERVED WORD 
                 IS ALSO A COMMAND VERB.
  
      36         AN OCTAL FIVE DIGIT NUMBER, THE LOW THREE DIGITS OF
                 WHICH DEFINE THE LEXICAL ID FOR THE RESERVED WORD. IF
                 TWO ENTRIES HAVE THE SAME LEXICAL IDS, THEIR RESERVED
                 WORDS ARE SYNONYMOUS. NOTE THAT IF SYNONYMS EXIST FOR A
                 COMMAND VERB, EACH OF THE EQUIVALENT KEYWORDS MUST HAVE
                 A LABELLED SYNTAX SECTION. THE CONCEPT OF A SYNONYM
                 APPLIES ONLY TO A CHECK LIKE $STATUS.
                 LEXICAL IDS BELOW 400 ARE USED FOR RESERVED WORDS THAT 
                 CAN ALSO BE CONSIDERED AND USED AS NAMES.
  
      46         AN OCTAL FIVE DIGIT NUMBER, OPTIONAL, ASSUMED ZERO IF
                 OMITTED. THIS VALUE IS THE P1 VALUE FOR A KEYWORD. 
                 P1 = 1  MEANS THIS KEYWORD IS A COMMAND VERB (USED IN
                         ROUTINE DB$DS29).
  
  
ALL                                00010
AR                                 00020
CDCS                               00030
DOWN                          *    00040     00001
DMPFL                         *    00045     00001
IDLE                          *    00050     00001
JOB                                00060
JOBS                               00070
NO                                 00100
RETAIN                        *    00122     00001
RETURN                        *    00124     00001
ROLL                          *    00125     00001
SB                                 00126
SC                                 00130
ST                            *    00134     00001
STATUS                        *    00140     00001
TERM                          *    00150     00001
UP                            *    00160     00001
VN                                 00165
YES                                00170
+                                  00400
-                                  00410
=                                  00420
.                                  00430
+ 
*CALL DSMJPDCLS 
+ 
 #
* *   DB$DSTX - OPERATOR SYNTAX COMMAND CRACKER  PAGE  1
* *   P A MURRAY (JOVEC)                         DATE  02/18/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE OPERATOR COMMANDS TYPED IN AT THE
*     CONSOLE.
* 
* DC  ENTRY CONDITIONS
* 
*     NONE
* 
* DC  EXIT CONDITIONS 
* 
*     THE COMMAND IS PROCESSED
* 
* DC  CALLING ROUTINES
* 
*     DB$STD        SYNTAX TABLE DRIVER 
* 
* DC  CALLED ROUTINES 
* 
*     ALL INPUT SEMANTIC ROUTINES 
* 
* DC  DESCRIPTION 
* 
*     READ IN AN INPUT TOKEN AND JUMP TO THE APPROPRIATE SECTION. CALL
*     ANY SEMANTIC ROUTINES SPECIFIED (AS INDICATED BY AN * FOLLOWED BY 
*     THE ROUTINE NAME) AND ISSUE DIAGNOSTICS IF NECESSARY. READ IN NEXT
*     INPUT TOKEN AND REPEAT THE ABOVE PROCESS. 
 #
  
  
  
  
#EJECT# 
      :STARTSYNTAX  :01            #---S T A R T S Y N T A X-----------#
                                   #                                   #
                                   # THIS **MUST** BE THE FIRST SYNTAX #
                                   # SECTION SO IT WILL GET CONTROL.   #
                                   #                                   #
                                   # THIS IS THE START OF THE SYNTAX   #
                                   # ANALYSIS FOR OPERATOR COMMANDS.   #
                                   # THE SINGLE CHARACTER SPECIAL COM- #
                                   # MANDS ARE HANDLED IN THIS SECTION #
                                   # AND ALL OTHER COMMANDS HAVE THEIR #
                                   # OWN SYNTAX SECTION.               #
                                   # THIS SECTION ENFORCES THE RULE OF #
                                   # WHICH COMMANDS ARE ALLOWABLE IN   #
                                   # AND OUT OF *SUSPEND* MODE.        #
                                   # THE FOLLOWING ARE VALID IN        #
                                   # *SUSPEND* MODE -                  #
                                   #   YES   NO   +   -                #
                                   # THE FOLLOWING COMMANDS ARE VALID  #
                                   # WHEN NOT IN *SUSPEND* MODE -      #
                                   #   +   -   .   (ALL NORMAL CMDS)   #
  
            $+            10 /     # CHECK FOR *+* COMMAND             #
            *DB$DS01         / 99  # ADVANCE DISPLAYED PAGE            #
  
        :10 $-            20 /     # CHECK FOR *-* COMMAND             #
            *DB$DS02         / 99  # BACK UP ONE DISPLAYED PAGE        #
  
        :20 *DB$DS08      40 /     # DB$YES IF IN *SUSPEND* MODE       #
            $YES          30 /     # CHECK FOR *YES* RESPONSE          #
            *DB$DS04         / 99  # CONFIRMATION *YES* RESPONSE       #
  
        :30 $NO                    # CHECK FOR *NO* RESPONSE           #
            D001          99 /     # DIAGNOSE AWAITING YES/NO RESPONSE #
            *DB$DS03         / 99  # CONFIRMATION RESPONSE *NO*        #
  
        :40 $.            50 /     # CHECK FOR *.* COMMAND             #
            *DB$DS05         / 99  # CYCLE COMMAND/OPTION LIST         #
  
        :50 *DB$DS09         /     # INITIALIZE FOR NEW COMMAND        #
            *DB$DS29      98 /     # CHECK FOR COMMAND VERB            #
            +KEY          98 /     # CHECK FOR KEYWORD                 #
            +SUBS            / 99  # EXECUTE DIRECTIVE SUBSECTION      #
  
        :98 +SNW                   # ADVANCE TOKEN FOR INSERTION       #
            D201             / 99  # DIAGNOSE UNKNOWN COMMAND/OPTION   #
  
        :99 *DB$STDR               # RETURN TO CALLER OF DB$STD        #
  
                                   #---E N D---S T A R T S Y N T A X---#
#EJECT# 
  
      :DMPFL   :01                 #---D M P F L-----------------------#
                                   #                                   #
            EOT                    # DMPFL MUST APPEAR BY ITSELF       #
            D008          NO /     # DIAGNOSE *DMPFL* MUST APPEAR ALONE#
  
            *DB$DS34      NO /     # REQUEST CONFORMATION IF PREVIOUS  #
                                   # DMPFL.  DUMP FIELD LENGTH IF      #
                                   # CONFIRMED.                        #
  
                                   #---E N D---D M P F L--------------# 
  
  
  
  
      :DOWN  :01                   #---D O W N-------------------------#
                                   #                                   #
                                   # SYNTAX FOR COMMAND *DOWN*         #
  
            SCARCDCS      NO /     # ANALYZE SC, AR, AND CDCS PARAMS   #
            *DB$DS06         /YES  # DOWN THE OBJECT                   #
  
                                   #---E N D---D O W N-----------------#
  
  
  
      :EOT  :01                    #---E O T---------------------------#
                                   #                                   #
                                   # *YES* IF AT END OF TRANSMISSION   #
  
            +EOT          10 /YES  # CHECK FOR REAL END OF TRANSMISSION#
  
        :10 $.            NO /     # CHECK FOR OPTIONAL TERMINATOR     #
            +EOT                   # DOES REAL EOT FOLLOW TERMINATOR   #
            D005                   # DIAGNOSE TEXT IGNORED AFTER EOT   #
            +SNC             /YES  # SKIP TO REAL EOT                  #
  
                                   #---E N D---E O T-------------------#
#EJECT# 
  
      :IDLE  :01                   #---I D L E-------------------------#
                                   #                                   #
                                   # SYNTAX FOR COMMAND *IDLE*         #
  
            SCARCDCS      NO /     # ANALYZE SC, AR, AND CDCS PARAMS   #
            *DB$DS07         /YES  # IDLE THE OBJECT                   #
  
                                   #---E N D---I D L E-----------------#
  
  
  
  
  
      :NAME  :01                   #---N A M E-------------------------#
                                   #                                   #
                                   # RETURNS *YES* IF THE NEXT TOKEN   #
                                   # IS IN THE CORRECT FORMAT TO BE A  #
                                   # NAME. NOTE A KEYWORD WILL QUALIFY #
                                   # AS A NAME.                        #
  
            +NAME         10 /YES  # CHECK FOR A REGULAR NAME          #
  
        :10 *DB$DS24      NO /     # DB$YES IF RESERVED NAME/WORD      #
            +SNW             /YES  # ADVANCE ACCEPTABLE KEYWORD        #
  
                                   #---E N D---N A M E-----------------#
  
  
  
  
  
      :NAMEID  :01                 #---N A M E I D---------------------#
                                   #                                   #
                                   # THIS SECTION  IS CALLED AFTER THE #
                                   # OPTIONS *AR* OR *SC* ARE FOUND.   #
                                   # IT ACCEPTS A NAME OR AN ID VALUE  #
                                   # AND SAVES IT. THE CALLER THEN     #
                                   # PICKS UP THE VALUE FROM THE ITEM  #
                                   # IN WHICH THE VALUE WAS SAVED.     #
  
            $=                     # CHECK FOR REQUIRED EQ SIGN        #
            D202          NO /     # DIAGNOSE MISSING EQ SIGN AFTER... #
            NAME          10 /     # CHECK FOR NAME                    #
            *DB$DS18         /YES  # STORE NAME VALUE, CLEAR ID        #
  
        :10 +INT                   # CHECK FOR INTEGER ID              #
            D204          NO /     # DIAGNOSE INVALID ID/NAME          #
            *DB$DS17               # STORE ID VALUE, CLEAR NAME        #
            D010          NO /YES  # IF ID IS ZERO ISSUE DIAGNOSTIC    #
            *DB$DS17               # STORE ID VALUE, CLEAR NAME        #
            D204          NO /YES  # IF ID IS ZERO ISSUE DIAGNOSTIC    #
  
                                   #---E N D---N A M E I D-------------#
#EJECT# 
  
 #
* *   SCARCDCS - VALIDATE SC, AR, VN, OR CDCS    PAGE  1
* *   M. E. STERMER                              DATE  11/04/80 
* 
* DC  PURPOSE 
* 
*     VALIDATE SCHEMA, AREA, VERSION OR CDCS PARAMETERS 
* 
* DC  ENTRY CONDITIONS
* 
*     NONE
* 
* DC  EXIT CONDITIONS 
* 
* D   NORMAL
* 
*     THE VALUE FOR SCHEMA, AREA, VERSION OR CDCS HAS BEEN VALIDATED. 
* 
* D   ABNORMAL
* 
*     THE SCHEMA, AREA VERSION COMBINATION IS NOT VALID.
*     ISSUE DIAGNOSTIC AND RETURN NO. 
* 
*     IF THE *VN* PARAMETER WAS NOT ENTERD AND THERE ARE MORE THAN ONE
*     SCHEMA, AREA COMBINATION, ISSUE DIAGNOSTIC THAT THE VERSION NAME
*     IS NEEDED TO QUALIFY SCHEMA, AREA.  RETURN NO.
* 
*     IF ANY PARAMETER WAS ENTERED MORE THAN ONCE, ISSUE DIAGNOSTIC AND 
*     RETURN NO.
* 
*     IF PARAMETER *CDCS* WAS ENTERED WITH SOME OTHER PARAMETER, ISSUE
*     DIAGNOSTIC AND RETURN NO. 
* 
* DC  CALLING ROUTINES
* 
*     DOWN - INITIATE DOWN OF AN OBJECT 
*     IDLE - INITIATE IDLE OF AN OBJECT 
*     UP   - INITIATE UP OF AN OBJECT 
* 
* DC  CALLED ROUTINES 
* 
*     DB$DDGN - ISSUE DIAGNOSTICS (CALLED VIA DXXX) 
*     DB$DS11 - SET FLAG FOR OPTION *AR*
*     DB$DS12 - SET FLAG FOR OPTION *CDCS*
*     DB$DS14 - SET FLAG FOR OPTION *SC*
*     DB$DS15 - SAVE THE AREA NAME OR ID
*     DB$DS16 - SAVE THE SCHEMA NAME OR ID
*     DB$DS19 - VALIDATE VERSION NAME 
*     DB$DS35 - SET FLAG FOR OPTION *VN*
*     DB$DS36 - VALIDATE NAME AS 7 CHARACTERS " A - 9 " 
*     DB$DS37 - SAVE THE VERSION NAME 
*     EOT     - CHECK FOR *.* OR THE END OF TRANSMISSION
*     NAMEID  - CHECK FOR VALID NAME OR ID
*     SNW     - SWITCH TO NEXT TOKEN
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     IF PARAMETER *CDCS* IS ENTERED
*     THEN
*       IF NOT END OF TRANSMISSION
*       THEN
*         ISSUE DIAGNOSTIC 006. 
*         RETURN NO.
*       ELSE
*         SET *CDCS* PARAMETER FLAG.
* 
*     IF PARAMETER *AR* IS ENTERED
*     THEN
*       IF *AR* FLAG IS ALREAY SET
*       THEN
*         ISSUE DIAGNOSTIC 205. 
*         RETURN NO.
*       ELSE
*         SET *AR* FLAG.
*         IF ENTRY IS A NAME OR ID
*         THEN
*           SAVE THE NAME OR ID VALUE FOR AREA. 
*         ELSE
*           RETURN NO.
* 
*     IF PARAMETER *SC* IS ENTERED
*     THEN
*       IF *SC* FLAG IS ALREADY SET 
*       THEN
*         ISSUE DIAGNOSTIC 205. 
*         RETURN NO.
*       ELSE
*         SET *SC* FLAG.
*         IF ENTRY IS A NAME OR ID
*         THEN
*           SAVE THE NAME OR ID VALUE FOR SCHEMA. 
*         ELSE
*           RETURN NO.
* 
*     IF PARAMETER *VN* IS ENTERED
*     THEN
*       IF *VN* FLAG IS ALREADY SET 
*       THEN
*         ISSUE DIAGNOSTIC 205. 
*         RETURN NO.
*       ELSE
*         SET *VN* FLAG.
*         IF ENTRY IS A VALID NAME OF LQ 7 CHARACTERS 
*                   AND THE DISPLAY CODE VALUE FOR THE CHARACTERS ARE 
*                   GR "00"O AND LQ "44"O 
*         THEN
*           SAVE THE NAME FOR THE VERSION NAME. 
* 
*         ELSE
*           ISSUE DIAGNOSTIC 204
*           RETURN NO.
* 
*     IF NOT *SC* OR *AR* OR *VN* OR (*CDCS* BY ITSELF) 
*     THEN
*       SWITCH TO NEXT TOKEN. 
*       ISSUE DIAGNOSTIC 201. 
*       RETURN NO.
* 
*     IF EOT
*     THEN
*       IF SCHEMA, AREA, VERSION COMBINATION IS VALID 
*         OR CDCS IS VALID
*       THEN
*         RETURN YES. 
*       ELSE
*         RETURN NO.
* 
*     ELSE
*       CHECK FOR NEXT PARAMETER. 
* 
 #
  
  
  
      :SCARCDCS  :01               #---S C A R C D C S-----------------#
                                   #                                   #
                                   # RETURNS *YES* IF A VALID          #
                                   # COMBINATION OF *SC*, *AR*, AND    #
                                   # *CDCS* PARAMETERS HAS BEEN        #
                                   # ENTERED. IF *CDCS*, IT MUST BE    #
                                   # ALONE. *SC* AND *AR* MAY BE       #
                                   # COMBINED, BUT *AR* MAY NOT APPEAR #
                                   # WITHOUT AN *SC* PARAMETER. THIS   #
                                   # SECTION IS PRIMARILY FOR THE      #
                                   # SUPPORT OF THE COMMON OPTIONS OF  #
                                   # THE *UP*, *IDLE*, AND *DOWN*      #
                                   # COMMANDS.                         #
  
            $CDCS         10 /     # CHECK FOR KEYWORD *CDCS*          #
            EOT 
            D006          NO /     # DIAGNOSE *CDCS* MUST BE ALONE     #
            *DB$DS12         /YES  # FLAG SET FOR *CDCS* PARAMETER     #
  
        :10 $AR           20 /     # CHECK FOR KEYWORD *AR*            #
            *DB$DS11               # SET FLAG FOR *AR* PARAMETER       #
            D205          NO /     # DIAGNOSE DUPLICATE PARAMETER      #
            NAMEID        NO /     # ACCEPT NAME OR ID                 #
            *DB$DS15         / 40  # SAVE *AR* PARAMETER VALUE         #
  
        :20 $SC           30 /     # CHECK FOR KEYWORD *SC*            #
            *DB$DS14               # SET FLAG FOR *SC* PARAMETER       #
            D205          NO /     # DIAGNOSE DUPLICATE PARAMETER      #
            NAMEID        NO /     # ACCEPT NAME OR ID VALUE           #
            *DB$DS16         / 40  # SAVE *SC* PARAMETER VALUE         #
  
        :30 $VN           35 /     # CHECK FOR OPTIONAL *VN* PARAMETER #
            *DB$DS35               # SET FLAG FOR *VN* PARAMETER       #
            D205          NO /     # DIAGNOSE DUPLICATE PARAMETER      #
            $=                     # CHECK FOR REQUIRED EQ SIGN        #
            D202          NO /     # DIAGNOSE MISSING EQ SIGN AFTER... #
            EOT           33 /     # CHECK FOR MISSING NAME            #
            D204          NO /     # DIAGNOSE ILLEGAL VERSION NAME     #
        :33 +SNW             /     # ADVANCE NEXT TOKEN TO DB$CWRD     #
            *DB$DS36               # CHECK FOR VALID VERSION NAME      #
            D207          NO /     # DIAGNOSE ILLEGAL VERSION NAME     #
            *DB$DS37         / 40  # SAVE *VN* PARAMETER VALUE         #
  
        :35 +SNW                   # ADVANCE UNRECOGNIZED TOKEN        #
            D201             / NO  # DIAGNOSE UNKNOWN COMMAND/OPTION   #
  
        :40 EOT           10 /     # CHECK FOR END OF TRANSMISSION     #
            *DB$DS19      NO /YES  # VALIDATE COMBINATION OF SC, AR    #
  
                                   #---E N D---S C A R C D C S---------#
#EJECT# 
  
        :RETAIN  :01               #---R E T A I N---------------------#
                                   #                                   #
            SCSBCS        NO /     # ANALYZE *SC* AND *SB* PARAMETERS  #
            *DB$DS30      NO /YES  # RETAIN THE OBJECT                 #
  
                                   #---E N D---R E T A I N-------------#
  
  
  
        :RETURN  :01               #---R E T U R N---------------------#
                                   #                                   #
            SCSBCS        NO /     # ANALYZE *SC* AND *SB* PARAMETERS  #
            *DB$DS31      NO /YES  # RETURN THE OBJECT                 #
  
                                   #---E N D---R E T U R N-------------#
  
  
  
  
        :SCSBCS  :01               #---S C S B C S---------------------#
                                   #                                   #
                                   # RETURNS *YES* IF A VALID COMB OF  #
                                   # *SC* AND *SB* PARAMETERS.  *SB*   #
                                   # MUST APPEAR WITH AN *SC* PARAMETER#
                                   #                                   #
          :05 $SC         10 /     # CHECK FOR KEYWORD *SC*            #
              *DB$DS14             # SET FLAG FOR *SC* PARAMETER       #
              D205        NO /     # DIAGNOSE DUPLICATE PARAMETER      #
              NAMEID      NO /     # ACCEPT NAME OR ID VALUE           #
              *DB$DS16       / 30  # SAVE *SC* PARAMETER               #
  
          :10 $SB         20 /     # CHECK FOR KEYWORD *SB*            #
              $=                   # CHECK FOR REQUIRED EQ SIGN        #
              D202        NO /     # DIAGNOSE MISSING EQ SIGN AFTER... #
              NAME                 # CHECK FOR LEGAL SB NAME           #
              D204        NO /     # DIAGNOSE ILLEGAL NAME             #
              *DB$DS32             # SAVE *SB* PARAMETER VALUE         #
              D205        NO / 30  # DIAGNOSE DUPLICATE PARAMETER      #
  
          :20 +SNW                 # ADVANCE UNRECOGNIZED TOKEN        #
              D201           / NO  # DIAGNOSE UNKNOWN COMMAND/OPTION   #
  
          :30 EOT         05 /     # CHECK FOR END-OF-TRANSMISSION     #
              *DB$DS33             # VALIDATE APPEARANCE OF *SC* PARAM #
              D009        NO / YES # DIAGNOSE MISSING *SC* PARAMETER   #
  
                                   #---E N D---S C S B C S-------------#
  
  
      :ROLL    :01                 #---R O L L-------------------------#
                                   #                                   #
              EOT         37 /     # ROLL BY ITSELF - ASSUME YES       #
              *DB$DS38       / YES # SET -ROLLABLE- TRUE               #
          :37 $YES        39 /     #                                   #
              *DB$DS38       / YES # SET -ROLLABLE- TRUE               #
          :39 $NO         41 /     #                                   #
              *DB$DS39       / YES # SET -ROLLABLE- FALSE              #
                                   #                                   #
          :41 +SNW                 # ADVANCE UNRECOGNIZED TOKEN        #
              D201           / NO  # DIAGNOSE UNKNOWN COMMAND/OPTION   #
                                   #                                   #
                                   #---E N D---R O L L----------------# 
#EJECT# 
  
      :ST      :01                 #---S T-------(ABBREVIATION)--------#
  
            STATUS        NO /YES  # SAME AS COMMAND *STATUS*          #
  
  
      :STATUS  :01                 #---S T A T U S---------------------#
                                   #                                   #
                                   # SYNTAX FOR COMMAND *STATUS*       #
  
            $JOB          20 /     # CHECK FOR OPTION *JOB*            #
            $=                     # REQUIRED EQ SIGN                  #
            D202          NO /     # DIAGNOSE MISSING EQ SIGN AFTER... #
            NAME          15 / 13  # CHECK FOR A NAME                  #
  
        :15 +SNW             / 17  # ADVANCE NON NAME                  #
  
        :17 D206             / NO  # DIAGNOSE INVALID JOB NAME         #
  
        :13 *DB$DS22       NO/     # DB$YES IF VALID JOBNAME           #
            EOT                    # CHECK FOR END OF TRANSMISSION     #
            D007          NO /     # DIAGNOSE *JOB* MUST BE ONLY OPTION#
            *DB$DS26         /YES  # PROCESS STATUS FOR THAT JOB       #
  
        :20 $JOBS         30 /     # CHECK FOR OPTION *JOBS*           #
            *DB$DS13               # SAVE OPTION *JOBS*                #
            D205          NO / 90  # DIAGNOSE DUPLICATE OPTION         #
  
        :30 $SC           40 /     # CHECK FOR OPTION *SC*             #
            *DB$DS14               # SAVE OPTION *SC*                  #
            D205          NO /     # DIAGNOSE DUPLICATE OPTION         #
            *DB$DS21      90 /     # DB$YES IF NEXT TOKEN IS *=*       #
            NAMEID        NO /     # ACCEPT SCHEMA NAME OR ID          #
            *DB$DS16         / 90  # SAVE SCHEMA NAME/ID               #
  
        :40 $AR           45 /     # CHECK FOR OPTION *AR*             #
            *DB$DS11               # SAVE OPTION *AR*                  #
            D205          NO /     # DIAGNOSE DUPLICATE OPTION         #
            NAMEID        NO /     # ACCEPT AREA NAME/ID               #
            *DB$DS15         / 90  # SAVE AREA NAME/ID                 #
  
        :45 $VN           50 /     # CHECK FOR OPTIONAL *VN* PARAMETER #
            *DB$DS35               # SET FLAG FOR *VN* PARAMETER       #
            D205          NO /     # DIAGNOSE DUPLICATE PARAMETER      #
            $=                     # CHECK FOR REQUIRED EQ SIGN        #
            D202          NO /     # DIAGNOSE MISSING EQ SIGN AFTER... #
            EOT           47 /     # CHECK FOR MISSING NAME            #
            D204          NO /     # DIAGNOSE ILLEGAL VERSION NAME     #
        :47 +SNW             /     # ADVANCE NEXT TOKEN TO DB$CWRD     #
            *DB$DS36               # CHECK FOR VALID VERSION NAME      #
            D207          NO /     # DIAGNOSE ILLEGAL VERSION NAME     #
            *DB$DS37         / 90  # SAVE *VN* PARAMETER VALUE         #
  
        :50 $ALL          99 /     # CHECK FOR OPTION *ALL*            #
            *DB$DS10         / 90  # SAVE OPTION *ALL*                 #
  
        :90 EOT           20 /     # CONTINUE UNTIL END OF TRANSMISSION#
            *DB$DS19               # VALIDATE SC, AR COMBINATION       #
                          NO /     #DIAGNOSE BAD PARAM COMBINATION     #
            *DB$DS27               # FORM LIST OF STATUS INFORMATION   #
            D003          NO /YES  # DIAGNOSE BAD PARAM COMBINATION    #
  
        :99 +SNW                   # ADVANCE UNRECOGNIZED OPTION       #
            D201             / NO  # DIAGNOSE UNKNOWN COMMAND/OPTION   #
  
                                   #---E N D---S T A T U S-------------#
#EJECT# 
  
      :TERM  :01                   #---T E R M-------------------------#
                                   #                                   #
                                   # SYNTAX FOR COMMAND *TERM*         #
  
            EOT                    # CHECK FOR END OF TRANSMISSION     #
            D004          NO /     # DIAGNOSE *TERM* ACCEPTS NO PARAMS #
            *DB$DS28      YES/     # EXECUTION OF *TERM* COMMAND       #
            *DB$DS12         /     # FLAG SET FOR *CDCS* PARAMETER     #
            *DB$DS07         /YES  # IDLE THE OBJECT                   #
  
                                   #---E N D---T E R M-----------------#
  
  
  
  
  
      :UNKNOWN  :01                #---U N K N O W N-------------------#
                                   #                                   #
                                   # THIS SYNTAX SECTION IS USED TO    #
                                   # TRAP COMMAND OPTIONS FOR WHICH    #
                                   # SYNGEN CODE EXISTS, BUT THE EXE-  #
                                   # CUTION ROUTINES ARE NOT YET       #
                                   # IMPLEMENTED. A DIAGNOSTIC IS      #
                                   # ISSUED, AND THE SYNTAX PHASE IS   #
                                   # TERMINATED.                       #
  
            D201                   # DIAGNOSE UNKNOWN COMMAND/OPTION   #
            *DB$STDR               # TERMINATE SYNTAX PHASE            #
  
                                   #---E N D---U N K N O W N-----------#
  
  
  
  
  
      :UP  :01                     #---U P-----------------------------#
                                   #                                   #
                                   # SYNTAX FOR COMMAND *UP*           #
  
            SCARCDCS      NO /     # ANALYZE SC, AR, AND CDCS PARAMS   #
            *DB$DS20         /YES  # UP THE OBJECT                     #
  
                                   #---E N D---U P---------------------#
  
  
  
  
  
END 
