*DECK DB$RSTX 
PROC DB$RSTX
AREA                          *        1         1
AT                                     2
BEGIN                         *        3         1
END                           *        4         1
FOR                                    5
IS                                     6
JOB                           *        7         1
NAME                                  10
POINT                                 11
RECOVERY                      *       12         2
RUN-UNIT                      *       13         1
SCHEMA                        *       14
SELECT                                15       100
TIME                          *       20         2
VERSION                       *       21         1
.                                     22
+ 
*CALL RSMJPDCLS 
+ 
 #
* *   DB$RSTX - RECOVERY UTILITY SYNTAX CRACKER 
* *   P A MURRAY (JOVEC)                         DATE  02/18/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE DBRCN/DBRST INPUT PARAMETERS 
* 
* DC  ENTRY CONDITIONS
* 
*     NONE
* 
* DC  EXIT CONDITIONS 
* 
*     THE INPUT PARAMETERS ARE 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. 
 #
  
  
  
:SCHEMA :05   +EOT                10
          /              D200          #NO INPUT FILE#
                         *ABORT 
        :10   $SCHEMA 
                         D114          #NO SCHEMA NAME# 
                         *ABORT 
          /   -NAME 
              -IS 
              +NAME 
                         D101          #ILL-FORMED SCHEMA NAME# 
                         *ABORT 
          /   *SCHEMA                  #INITIALIZE SCHEMA TABLES# 
          /   $.
                         D102          #MISSING PERIOD# 
        :15   +EOT                20
          /   *ENDSCAN                 #TERMINATE PARAMETER INPUT#
        :17   D102                     #MISSING PERIOD# 
              22
        :20   $SELECT 
                         D201          #INVALID OR MISSING KEY-WORD#
                         +SNW          #SKIP TO NEXT RECORD#
                         15 
        :22   *SELECT                  #INIT FOR SELECT CLAUSE# 
          /   -FOR
              -RECOVERY 
        :25   $AREA 
              $VERSION
              $JOB
              $RUN-UNIT 
              $BEGIN
              $END
                         D201      #INVALID KEYWORD#
                         +SNW 
                         30 
          /   +SUBS                    #INTERPRET KEYWORD#
        :30   $SELECT    35 
          /   17                       #MISSING PERIOD# 
        :35   $.
              +EOT
                         25            #SELECT CLAUSE NOT COMPLETE# 
          /   15                       #SELECT COMPLETE#
  
:AREA   :05   -NAME 
              -IS 
              +NAME 
                         D106          #ILL-FORMED AREA NAME# 
                         +SNW 
                         NO 
          /   *AREA               NO   #VERIFY AND SAVE AREA NAME#
          /   YES 
:VERSION :05  -NAME 
              -IS 
              +NAME 
                         +SNW 
                         D129          # INVALID VERSION CLAUSE        #
                         NO 
          /   *VERSION            NO   # VERIFY AND SAVE VERSION NAME  #
          /   YES 
:JOB    :05   -NAME 
              -IS 
              +NAME 
                         +SNW 
                         D202          #ILL-FORMED JOBNAME# 
                         NO 
          /   *JOB                     #VERIFY AND SAVE JOBNAME#
                         D202          #ILL-FORMED OR REDUNDANT JOBNAME#
                         NO 
          /   YES 
:RUN-UNIT:05  -IS 
              +NAME 
                         +SNW 
                         D203          #ILL-FORMED RUN-UNIT-ID# 
                         NO 
          /    *RUNUNIT                #VERIFY AND SAVE RUN-UNIT-ID#
                         D203          #ILL FORMED OR REDUNDANT RUNUNIT#
                         NO 
          /   YES 
:BEGIN  :05   *TIMEKW             NO   #CHECK FOR VALID TIME FIELD-KW#
          /   -AT 
              $RECOVERY           10
          /   RECOVERY            NO   #SAVE RECOV POINT  NUMBER# 
          /   $TIME               YES  #EXIT IF TIME NOT SPECIFIED,TOO# 
          /   15                       #SAVE TIME CLAUSE# 
        :10   $TIME                    #SAVE TIME CLAUSE# 
                         D201 
                         +SNW 
                         NO 
        :15   TIME                 NO 
          /   YES 
:END    :05   BEGIN               NO   #END SYNTAX SAME AS BEGIN# 
          /   YES 
:TIME   :05   +INT
                         +SNW 
                         D204          #TIME FIELD IN ERROR#
                         NO 
          /   *TIME                    #SAVE TIME FIELD#
                         D204 
                         NO 
          /   YES 
:RECOVERY:05  -POINT
              +INT
                         +SNW 
                         D205          #RECOVERY POINT INVALID# 
                         NO 
          /   *RECOVERY                #SAVE RECOVERY POINT NUMBER# 
                         D205 
                         NO 
          /   YES 
END 
