*DECK CSSYNTX                                                            FIRST
PROC CSSYNTX                                                             FIRST
*CALL SCSYNCOM                                                           FIRST
+                                                                        FIRST
CHKDBI               ,  CHECK THAT DBI IS VALID                          Z
CHKCY                ,  CHECK FOR CYCLES AND REINITIALIZE VARIABLES      E
CLEAR                ,  CLEAR INCOMPLETE ENTRIES                         AD 
CSINIT               ,  INITIALIZE VARIABLES BEFORE PROCESSING           E
CSEND                ,  CHAIN ENTRIES AND TERMINATE PROCESSING           E
SAVDBINM             ,  SAVE DBI NAME                                    E
SAVCSNM              ,  SAVE CONSTRAINT NAME                             E
SAVRECNM             ,  SAVE RECORD NAME                                 E
SETRELTN             ,  SET FLAG - RELATION ENTRY PRESENT                E
SRCDBI               ,  SET FLAG - SOURCE DBI                            O
STLINENBR            ,  STORE SOURCE LINE NUMBER                         AM 
TRGDBI               ,  SET FLAG - TARGET DBI                            O
+                                                                        FIRST
:CSBEGIN :01                                                             FIRST
                   *CSINIT   15                                          FIRST
                                                                         FIRST
    :05  $RELATION           10                                          FIRST
         /         *SETRELTN *CSEND                                      FIRST
                                                                         FIRST
    :10  $CONSTRAINT         20                                          M
                                                                         FIRST
    :15            -NAME                                                 FIRST
                   -IS                                                   FIRST
                   +NAME     D500      SKIPF     05                      FIRST
         /         *SAVCSNM                                              AD 
                   CSBODY    *CLEAR    SKIPF1    05                      BI 
         /         *CHKCY    05 
                                                                         M
    :20            +EOT      SKIPF     05                                M
         /         *CSEND 
                                                                         FIRST
                                                                         FIRST
:CSBODY  :01                                                             FIRST
    :05            DBINAME   NO                                          FIRST
         /         *SRCDBI
                   *CHKDBI                                               X
         $DEPENDS  D504      NO 
         /         -ON
                   DBINAME   NO                                          FIRST
         /         *TRGDBI                                               AH 
                   *CHKDBI                                               AH 
         $.        SKIPF     *CLEAR                                      BI 
         /         YES                                                   AH 
                                                                         FIRST
                                                                         FIRST
:DBINAME :01                                                             FIRST
                   +NAME     D403      NO                                L
         /         *STLINENBR 
                   *SAVDBINM
         $OF                                                             FIRST
         $IN       YES                                                   W
         /         +NAME     D106      NO                                L
         /         *SAVRECNM YES                                         W
                                                                         FIRST
                                                                         FIRST
:SKIPF   :01                                                             FIRST
                   D200                                                  FIRST
                                                                         FIRST
    :05            +EOT      10                                          FIRST
         /         *CSEND                                                FIRST
                                                                         FIRST
    :10  $.        +SNW      05                                          FIRST
         /         D195      NO                                          FIRST
                                                                         FIRST
                                                                         FIRST
:SKIPF1  :01                                                             FIRST
                   D415                                                  FIRST
                                                                         FIRST
    :05            +EOT      10                                          FIRST
         /         *CSEND                                                FIRST
                                                                         FIRST
    :10  $.        +SNW      05                                          FIRST
         /         D195      NO                                          FIRST
END                                                                      J
