*DECK DB$BSTX 
PROC DB$BSTX
  
ALLOCATE                      *    00010               00003
DUMP                          *    00020               00002
FILE                               00030
IS                                 00040
IDENTIFIER                         00050
JOURNAL                       *    00060     00003
LOG                                00070
NAME                               00100
PRU                                00110
PRUS                               00110
QUICK                         *    00120     00002
RESTART                       *    00130
RECOVERY                           00140
SCHEMA                        *    00150     00001     00001
SIZE                          *    00160
TRANSACTION                   *    00170
.                                  00200
+ 
*CALL BSMJPDCLS 
+ 
 #
* *   START - CONTROL SYNTAX ANALYSIS            PAGE  1
* *   P. A. MURRAY                               DATE  08/21/80 
* 
* DC  PURPOSE 
* 
*     TO CONTROL THE FLOW OF SYNTAX ANALYSIS IN DB$BSTX.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     NEXWORD CONTAINS THE FIRST WORD OF THE INPUT STACK. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - DB$BS99 IS CALLED TO END SYNGEN PROCESSING AND RETURN
*              CONTROL TO DB$B10B.
* 
*     ABNORMAL - (1) IF THE INPUT FILE IS EMPTY, DB$BS01 IS CALLED TO 
*                   END SYNTAX SCANNING.
* 
*                (2) IF THE FIRST WORD IS NOT -SCHEMA-, DB$BS02 IS
*                   CALLED TO END SYNTAX SCANNING.
* 
*                (3) IF AN INVALID SOURCE WORD IS DETECTED, DIAGNOSTIC
*                   118 IS ISSUED.
* 
* DC  CALLING ROUTINES
* 
*     DB$B10B - MAIN ROUTINE IN (1,0) OVERLAY OF DBREC (INITIATES 
*               DB$STD) 
* 
* DC  CALLED ROUTINES 
* 
*     ALLOCATE - CRACK ALLOCATE ENTRY 
*     DB$BS01  - END SCAN -- EMPTY INPUT FILE 
*     DB$BS02  - END SCAN -- ILLEGAL FIRST WORD ON INPUT
*     DB$BS30  - CHECK IF CURRENT WORD IS -SCHEMA-
*     DB$BS99  - END SYNTAX ANALYSIS
*     DUMP     - CRACK DUMP ENTRY 
*     GETDIR   - SKIP TO DIRECTIVE OR EOT 
*     GETSC    - SKIP TO -SCHEMA- OR EOT
*     SCHEMA   - CRACK SCHEMA ENTRY 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*      1 - CHECK IF AT EOT AND IF SO, CALL DB$BS01 TO END SYNTAX
*        SCANNING.  CHECK IF THE FIRST WORD IS -SCHEMA- AND IF NOT, CALL
*        DB$BS02 TO END SYNTAX SCANNING.
*      2 - CALL SCHEMA TO CRACK THE SCHEMA CLAUSE.  IF ANY ERRORS WERE
*        DETECTED BY SCHEMA, GO TO 3.  OTHERWISE, GO TO 4.
*      3 - CALL GETSC TO SKIP TO THE NEXT -SCHEMA- OR EOT.  IF -SCHEMA- 
*        IS DETECTED, GO TO 2.  IF EOT IS DETECTED, CALL DB$BS99 TO END 
*        SYNTAX ANALYSIS. 
*      4 - CHECK IF THE NEXT WORD IS -DUMP- OR -ALLOCATE-.  IF NONE OF
*        THESE ARE FOUND, GO TO 7.
*      5 - ISSUE A +SUBS TO CALL THE CORRESPONDING SECTION.  IF ANY 
*        ERRORS WERE DETECTED BY +SUBS, GO TO 6.  SKIP OVER THE OPTIONAL
*        PERIOD.  GO TO 4.
*      6 - CALL GETDIR TO SKIP TO THE NEXT DIRECTIVE OR EOT.  IF EOT IS 
*        FOUND, CALL DB$BS99 TO END SYNTAX ANALYSIS.  IF A DIRECTIVE IS 
*        FOUND, CALL DB$BS30 TO DETERMINE IF THE DIRECTIVE IS -SCHEMA-
*        AND IF SO, GO TO 2.  OTHERWISE, GO TO 5. 
*      7 - CHECK IF THE NEXT WORD IS -SCHEMA- AND IF SO, GO TO 2.  CHECK
*        IF AT EOT AND IF NOT, ISSUE DIAGNOSTIC 118 AND GO TO 6.
*        OTHERWISE, CALL DB$BS99 TO END SYNTAX ANALYSIS.
* 
 #
  
  
:START    :05  +EOT             10
            /  *DB$BS01             # END SCAN - EMPTY INPUT FILE      #
  
          :10  $SCHEMA
               *DB$BS02             # END SCAN - ILLEGAL 1ST WORD      #
  
          :15  SCHEMA           20
            /                   25
  
          :20  GETSC                # SKIP TO NEXT -SCHEMA- DIRECTIVE  #
               *DB$BS99 
            /                   15
  
          :25  $DUMP
               $ALLOCATE        40
          :30  +SUBS            35
            /  -.               25
  
          :35  GETDIR               # SKIP TO NEXT DIRECTIVE           #
               *DB$BS99 
            /  *DB$BS30         30  # IS CURRENT WORD -SCHEMA-         #
            /                   15
  
          :40  $SCHEMA          45
            /                   15
  
          :45  +EOT       D322  35  # INVALID SOURCE WORD              #
            /  *DB$BS99             # NORMAL EXIT                      #
#EJECT# 
 #
* *   ALLOCATE - CRACK ALLOCATE ENTRY            PAGE  1
* *   P. A. MURRAY                               DATE  08/21/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE ALLOCATE ENTRY.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -ALLOCATE- HAS BEEN DETECTED AND STORED INTO CURWORD. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - (1) IF ANY ERRORS WERE DETECTED BY SIZE, TRANSACTION,
*                   JOURNAL, QUICK, OR RESTART, RETURN -NO-.
* 
* 
*                (2) IF SIZE IS NOT SPECIFIED FOR THE JOURNAL LOG FILE, 
*                   ISSUE DIAGNOSTIC 303 AND RETURN -NO-. 
* 
*                (3) IF NO ALLOCATE OPTION WAS SPECIFIED, ISSUE 
*                   DIAGNOSTIC 305.  RETURN IS -YES-. 
* 
* DC  CALLING ROUTINES
* 
*     START - CONTROL SYNTAX ANALYSIS 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS20     - SET UP ENTRY IN EXECUTION TABLE 
*     DB$BS31     - CHECK IF AN ALLOCATE OPTION WAS SPECIFIED 
*     DB$BS50     - TEST AND SET JOURNAL LOG FLAG 
*     JOURNAL     - CRACK JOURNAL CLAUSE
*     QUICK       - CRACK QUICK RECOVERY CLAUSE 
*     RESTART     - CRACK RESTART CLAUSE
*     SIZE        - CRACK SIZE CLAUSE 
*     TRANSACTION - CRACK TRANSACTION CLAUSE
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*      1 - CALL DB$BS20 TO SET UP A NEW ENTRY IN THE EXECUTION TABLE. 
*      2 - CHECK IF THE NEXT WORD IS -JOURNAL- AND IF NOT, GO TO 4. 
*        SKIP OVER OPTIONAL WORDS -LOG FILE-. CALL DB$BS50 TO CHECK IF
*        JOURNAL LOGGING IS SPECIFIED FOR THE SCHEMA, IF JOURNAL WAS
*        PREVIOUSLY SPECIFIED, AND TO SET THE JOURNAL LOG FLAG IN THE 
*        EXECUTION TABLE. CHECK IF THE NEXT WORD IS -SIZE- AND IF NOT,
*        GO TO 3. CALL SIZE TO CRACK THE SIZE CLAUSE. IF ANY ERRORS 
*        WERE DETECTED BY SIZE, RETURN -NO-. GO TO 2. 
*      3 - CALL JOURNAL TO CRACK THE JOURNAL CLAUSE.  CHECK IF THE NEXT 
*        WORD IS SIZE AND IF NOT, ISSUE DIAGNOSTIC 303 AND RETURN -NO-. 
*        CALL SIZE TO CRACK THE SIZE CLAUSE.  IF ANY ERRORS WERE
*        DETECTED BY SIZE, RETURN -NO-, OTHERWISE GO TO 2.
*      4 - CHECK IF THE NEXT WORD IS EITHER -TRANSACTION-, -RESTART-, OR
*        -QUICK-.  IF IT IS NEITHER OF THESE, GO TO 5.  ISSUE A +SUBS TO
*        CALL THE CORRESPONDING SECTION.  IF ANY ERRORS WERE DETECTED BY
*        +SUBS, RETURN -NO-.  OTHERWISE, GO TO 2. 
*      5 - CALL DB$BS31 TO CHECK THAT AT LEAST ONE ALLOCATE OPTION WAS
*        SPECIFIED.  IF NONE WERE SPECIFIED, ISSUE DIAGNOSTIC 305.
*        RETURN -YES-.
* 
 #
  
  
:ALLOCATE :05  *DB$BS20 
          :10  $JOURNAL         20
            /  -LOG 
               -FILE
               *DB$BS50 
                                    # CHECK IF JUST SIZE WAS SPECIFIED #
                                    # (NO NAME)                        #
            /  $SIZE            15
            /  SIZE             NO
            /                   10
  
                                    # CHECK FOR A JOURNAL NAME FOLLOWED#
                                    # BY THE SIZE                      #
          :15  JOURNAL          NO
            /  $SIZE      D303  NO  # KEYWORD -SIZE- IS MISSING        #
            /  SIZE             NO
            /                   10
  
          :20  $TRANSACTION 
               $RESTART 
               $QUICK           25
            /  +SUBS            NO
            /                   10
  
          :25  *DB$BS31   D305      # ONE OPTION MUST BE SPECIFIED     #
            /  YES
#EJECT# 
 #
* *   DUMP - CRACK DUMP ENTRY                    PAGE  1
* *   P. A. MURRAY                               DATE  08/19/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE DUMP ENTRY.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -DUMP- HAS BEEN DETECTED AND STORED INTO CURWORD. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - (1) IF -JOURNAL- WAS NOT SPECIFIED, ISSUE DIAGNOSTIC 
*                   300 AND RETURN -NO-.
* 
*                (2) IF ANY ERRORS WERE DETECTED BY JOURNAL, RETURN IS
*                   -NO-. 
* 
* DC  CALLING ROUTINES
* 
*     START - CONTROL SYNTAX ANALYSIS 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS20 - SET UP ENTRY IN THE EXECUTION TABLE 
*     DB$BS50 - TEST AND SET JOURNAL LOG FILE FLAG
*     JOURNAL - CRACK JOURNAL CLAUSE
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*      1 - CALL DB$BS20 TO SET UP A NEW ENTRY IN THE EXECUTION TABLE. 
*      2 - CHECK IF THE NEXT WORD IS -JOURNAL-.  IF NOT, ISSUE
*        DIAGNOSTIC 300 AND RETURN -NO-.
*      3 - CALL DB$BS50 TO CHECK IF JOURNAL LOGGING IS SPECIFIED FOR
*        THE SCHEMA, IF JOURNAL WAS PREVIOUSLY SPECIFIED, AND TO SET
*        THE JOURNAL LOG FLAG IN THE EXECUTION TABLE. 
*      4 - SKIP OVER OPTIONAL WORDS -LOG FILE-.  CALL JOURNAL TO CRACK
*        THE JOURNAL CLAUSE.  IF ANY ERRORS WERE DETECTED BY JOURNAL, 
*        RETURN -NO-.  OTHERWISE, RETURN -YES-. 
* 
 #
  
:DUMP     :05  *DB$BS20 
               $JOURNAL   D300  NO  # KEYWORD -JOURNAL- IS MISSING     #
            /  *DB$BS50 
            /  -LOG 
               -FILE
               JOURNAL          NO
            /  YES
#EJECT# 
 #
* *   GETDIR - SKIP TO DIRECTIVE OR EOT          PAGE  1
* *   P. A. MURRAY                               DATE  08/21/80 
* 
* DC  PURPOSE 
* 
*     SKIP TO THE NEXT DIRECTIVE (SCHEMA, DUMP, OR ALLOCATE) OR EOT,
*     WHICHEVER COMES FIRST.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     AN INVALID SOURCE WORD HAS BEEN DETECTED. 
* 
* DC  EXIT CONDITIONS 
* 
*     RETURN IS -YES- IF A DIRECTIVE WAS DETECTED.  RETURN IS -NO- IF 
*     EOT WAS DETECTED. 
* 
* DC  CALLING ROUTINES
* 
*     START - CONTROL SYNTAX ANALYSIS 
* 
* DC  CALLED ROUTINES 
* 
*     NONE
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*      1 - CHECK IF NEXT WORD IS EITHER -SCHEMA-, -DUMP-, OR -ALLOCATE-.
*        IF ANY OF THESE ARE FOUND, RETURN -YES-. 
*      2 - CHECK IF AT EOT AND IF SO, RETURN -NO-.  OTHERWISE, ISSUE A
*        +SNW TO SKIP TO THE NEXT WORD AND GO TO 1. 
* 
 #
  
:GETDIR   :05  $SCHEMA
               $DUMP
               $ALLOCATE        10
            /  YES
  
          :10  +EOT       +SNW  05
            /  NO 
#EJECT# 
 #
* *   GETSC - SKIP TO -SCHEMA- OR EOT            PAGE  1
* *   P. A. MURRAY                               DATE  08/21/80 
* 
* DC  PURPOSE 
* 
*     SKIP TO THE NEXT -SCHEMA- OR EOT, WHICHEVER COMES FIRST.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     AN INVALID SCHEMA NAME HAS BEEN DETECTED. 
* 
* DC  EXIT CONDITIONS 
* 
*     RETURN IS -YES- IF -SCHEMA- WAS DETECTED.  RETURN IS -NO- IF EOT
*     WAS DETECTED. 
* 
* DC  CALLING ROUTINES
* 
*     START - CONTROL SYNTAX ANALYSIS 
* 
* DC  CALLED ROUTINES 
* 
*     NONE
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*      1 - CHECK IF THE NEXT WORD IS -SCHEMA- AND IF SO, RETURN -YES-.
*      2 - CHECK IF AT EOT AND IF SO, RETURN -NO-.  OTHERWISE, ISSUE A
*        +SNW TO SKIP TO THE NEXT WORD AND GO TO 1. 
* 
 #
  
:GETSC    :05  $SCHEMA          10
            /  YES
  
          :10  +EOT       +SNW  05
            /  NO 
#EJECT# 
 #
* *   JOURNAL - CRACK JOURNAL CLAUSE             PAGE  1
* *   P. A. MURRAY                               DATE  08/15/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE JOURNAL CLAUSE.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -JOURNAL- HAS BEEN DETECTED AND STORED INTO CURWORD.
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - IF THE JOURNAL LOG FILE NAME IS AN INVALID NAME, ISSUE 
*                DIAGNOSTIC 122 AND RETURN -NO-.
* 
* DC  CALLING ROUTINES
* 
*     ALLOCATE - CRACK ALLOCATE ENTRY 
*     DUMP     - CRACK DUMP ENTRY 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS14 - VALIDATE JOURNAL LOG FILE NAME
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     SKIP OVER OPTIONAL WORDS -NAME IS-.  CHECK THAT A NAME
*     FOLLOWS.  IF NOT, SKIP TO THE NEXT WORD, ISSUE DIAGNOSTIC 122 AND 
*     RETURN -NO-.  CALL DB$BS14 TO VALIDATE THE JOURNAL LOG FILE 
*     NAME.  RETURN -YES-.
* 
 #
  
:JOURNAL  :05  -NAME
               -IS
               +NAME
               +SNW       D122  NO  # LOG FILE NAME INVALID            #
            /  *DB$BS14 
               YES
#EJECT# 
 #
* *   QUICK - CRACK QUICK RECOVERY CLAUSE        PAGE  1
* *   P. A. MURRAY                               DATE  12/10/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE QUICK RECOVERY FILE CLAUSE.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -QUICK- HAS BEEN DETECTED AND STORED INTO CURWORD.
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - (1) IF AN INVALID NAME IS SPECIFIED FOR THE QRF NAME,
*                   SKIP TO THE NEXT WORD, ISSUE DIAGNOSTIC 122, AND
*                   RETURN -NO-.
* 
*                (2) IF THE KEYWORD -SIZE- IS MISSING, ISSUE DIAGNOSTIC 
*                   303 AND RETURN -NO-.
* 
*                (3) IF ANY ERRORS WERE DETECTED BY SIZE, RETURN -NO-.
* 
* DC  CALLING ROUTINES
* 
*     ALLOCATE - CRACK ALLOCATE ENTRY 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS12 - VALIDATE QUICK RECOVERY FILE NAME 
*     SIZE    - VALIDATE SIZE CLAUSE
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     SKIP OVER OPTIONAL WORDS -RECOVERY FILE NAME IS-.  CHECK THAT A 
*     NAME FOLLOWS.  IF NOT, SKIP TO THE NEXT WORD, ISSUE DIAGNOSTIC
*     122, AND RETURN -NO-.  CALL DB$BS12 TO VALIDATE THE QRF 
*     NAME. 
* 
*     CHECK IF THE NEXT WORD IS -SIZE- AND IF NOT, ISSUE DIAGNOSTIC 303 
*     AND RETURN -NO-.  CALL SIZE TO VALIDATE THE SIZE CLAUSE.  IF ANY
*     ERRORS WERE DETECTED BY SIZE, RETURN -NO-.  OTHERWISE, RETURN 
*     -YES-.
* 
 #
  
  
:QUICK    :05  -RECOVERY
               -FILE
               -NAME
               -IS
               +NAME
               +SNW       D122  NO  # INVALID QRF NAME                 #
            /  *DB$BS12 
  
               $SIZE      D303  NO  # KEYWORD -SIZE- IS MISSING        #
            /  SIZE             NO
            /  YES
#EJECT# 
 #
* *   RESTART - CRACK RESTART CLAUSE             PAGE  1
* *   P. A. MURRAY                               DATE  08/15/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE RESTART CLAUSE.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -RESTART- HAS BEEN DETECTED AND STORED INTO CURWORD.
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - IF THE RESTART IDENTIFIER FILE NAME IS INVALID, ISSUE
*              DIAGNOSTIC 122 AND RETURN -NO-.
* 
* DC  CALLING ROUTINES
* 
*     ALLOCATE - CRACK ALLOCATE ENTRY 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS13 - VALIDATE RESTART IDENTIFIER FILE NAME 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     SKIP OVER OPTIONAL WORDS -IDENTIFIER FILE NAME IS-.  CHECK THAT A 
*     NAME FOLLOWS.  IF NOT, SKIP TO THE NEXT WORD, ISSUE DIAGNOSTIC
*     122, AND RETURN -NO-.  CALL DB$BS13 TO VALIDATE THE RESTART 
*     IDENTIFIER FILE NAME.  RETURN -YES-.
* 
 #
  
:RESTART  :05  -IDENTIFIER
               -FILE
               -NAME
               -IS
               +NAME
               +SNW       D122  NO  # RESTART FILE NAME IS INVALID     #
            /  *DB$BS13 
               YES
#EJECT# 
 #
* *   SCHEMA - CRACK SCHEMA ENTRY                PAGE  1
* *   P. A. MURRAY                               DATE  08/18/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE SCHEMA ENTRY.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -SCHEMA- HAS BEEN DETECTED AND STORED INTO CURWORD. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - IF THE SCHEMA NAME IS INVALID, ISSUE DIAGNOSTIC 101 AND
*                RETURN -NO-. 
* 
* DC  CALLING ROUTINES
* 
*     START - CONTROL SYNTAX ANALYSIS 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS10 - VALIDATE SCHEMA NAME
*     DB$BS20 - SET UP ENTRY IN THE EXECUTION TABLE 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     CALL DB$BS20 TO SET UP A NEW ENTRY IN THE EXECUTION TABLE.
*     SKIP OVER OPTIONAL WORDS -NAME IS-.  CHECK THAT A NAME FOLLOWS. 
*     IF NOT, ISSUE DIAGNOSTIC 101 AND RETURN -NO-.  CALL DB$BS10 TO
*     VALIDATE THE SCHEMA NAME.  RETURN -YES-.
* 
 #
  
:SCHEMA   :05  *DB$BS20 
               -NAME
               -IS
               +NAME      D101  NO  # SCHEMA NAME INVALID              #
            /  *DB$BS10         NO
            /  YES
#EJECT# 
 #
* *   SIZE - VALIDATE SIZE CLAUSE                PAGE  1
* *   P. A. MURRAY                               DATE  08/20/80 
* 
* DC  PURPOSE 
* 
*     TO VALIDATE THE SYNTAX OF THE SIZE CLAUSE.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -SIZE- HAS BEEN DETECTED AND STORED INTO CURWORD. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - (1) IF AN INVALID INTEGER IS SPECIFIED FOR SIZE, SKIP
*                   TO THE NEXT WORD, ISSUE DIAGNOSTIC 304 AND RETURN 
*                   -NO-. 
* 
*                (2) IF THE SIZE IS INVALID, ISSUE DIAGNOSTIC 304.
*                   RETURN IS -YES-.
* 
* DC  CALLING ROUTINES
* 
*     ALLOCATE - CRACK ALLOCATE ENTRY 
*     QUICK    - CRACK QUICK RECOVERY CLAUSE
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS70 - VALIDATE AND STORE SIZE 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     SKIP OVER OPTIONAL WORD -IS-.  CHECK THAT AN INTEGER FOLLOWS AND
*     IF NOT, SKIP TO THE NEXT WORD, ISSUE DIAGNOSTIC 304, AND RETURN 
*     -NO-.  CALL DB$BS70 TO VALIDATE AND STORE THE SIZE.  IF THE SIZE
*     IS INVALID, ISSUE DIAGNOSTIC 304.  RETURN -YES-.
* 
 #
  
:SIZE     :05  -IS
               +INT 
               +SNW       D304  NO  # INVALID SIZE                     #
            /  *DB$BS70   D304      # INVALID SIZE                     #
            /  -PRUS
               YES
#EJECT# 
 #
* *   TRANSACTION - CRACK TRANSACTION CLAUSE     PAGE  1
* *   P. A. MURRAY                               DATE  08/14/80 
* 
* DC  PURPOSE 
* 
*     TO CRACK THE SYNTAX OF THE TRANSACTION CLAUSE.
* 
* DC  ENTRY CONDITIONS
* 
* D   ASSUMPTIONS 
* 
*     KEYWORD -TRANSACTION- HAS BEEN DETECTED AND STORED INTO CURWORD.
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL - RETURN IS -YES-. 
* 
*     ABNORMAL - IF THE TRANSACTION RECOVERY FILE NAME IS INVALID, SKIP 
*              TO THE NEXT WORD, ISSUE DIAGNOSTIC 122, AND RETURN -NO-. 
* 
* DC  CALLING ROUTINES
* 
*     ALLOCATE - CRACK ALLOCATE ENTRY 
* 
* DC  CALLED ROUTINES 
* 
*     DB$BS11 - VALIDATE TRF NAME 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     SKIP OVER OPTIONAL WORDS -RECOVERY FILE NAME IS-.  CHECK THAT A 
*     NAME FOLLOWS.  IF NOT, SKIP TO THE NEXT WORD, ISSUE DIAGNOSTIC
*     122 AND RETURN -NO-.  CALL DB$BS11 TO VALIDATE THE TRF NAME.
*     RETURN -YES-. 
* 
 #
  
:TRANSACTION  :05  -RECOVERY
               -FILE
               -NAME
               -IS
               +NAME
               +SNW       D122  NO  # TRF NAME IS INVALID              #
            /  *DB$BS11 
               YES
END 
