*COMDECK  CSP 
          TITLE  CSP  -  CONDITIONAL SKIP PROCESSING
**        CSP  -  CONDITIONAL SKIP PROCESSING 
* 
*         IFE,IF,ELSE,SKIP, AND WHILE USE CSP TO SKIP 
*         THE TABLE OF POSSIBLE TERMINATORS (TERMT) HAS BEEN
*         SETUP BEFORE CSP WAS CALLED.  IT WILL BE USED BY CCLSCS 
*         TO DEFINE WHICH VERBS ARE TO TERMINATE SKIPPING.
* 
*         EXIT  - CONTROL STATEMENT FILE ADVANCED TO PASS THE 
*                 SKIPPED STATEMENTS AND THEN CCL EXITS.
* 
  
 CSP      SUBR               ENTRY/EXIT 
 CSP1     BSS 
          RJ     =XCCLSCS 
          NZ     X5,EXIT     EXIT IF ALL CARDS SKIPPED
  
*         CCLSCS ADVANCED THE C.S.F. UNTIL IT FOUND A VERB WHICH IS 
*         EQUAL TO ONE OF THE SKIP TERMINATORS (STORED IN TERMT).  THE
*         STATEMENT IS IN SCATBF1.  CSP MUST CALL CCLGNP TO OBTAIN
*         THE LABEL TO COMPARE IT TO THE TERMINATING LABEL. 
*         HOWEVER, IF THE COMMAND IS ELSEIF, THE EXPRESSION MUST
*         BE EVALUATED BEFORE THE LABEL CAN BE CHECKED. 
  
          SA1    ANSVRB 
          SA2    =0LELSEIF
          BX7    X1-X2
          SX6    B1 
          NZ     X7,CSP1.1   IF NOT ELSEIF
  
          SA7    IACICF      CLEAR INTERACTIVE PROCESSING FLAGS 
          SA6    PROCESS
          RJ     =XCCLEVX    EVALUATE ELSEIF EXPRESSION 
  
 CSP1.1   BSS 
          RJ     =XCCLGNP    GET NEXT PARAMETER 
          NZ     X5,CSP3     IF ERROR 
  
          SA5    LABEL
          SA4    ANSSTR 
          BX0    X4-X5
          ZR     X0,CSP2     IF MATCHING LABEL FOUND
  
*         THE LABELS DO NOT MATCH.  SKIPPING IS TO CONTINUE.
*         HOWEVER SINCE THIS STATEMENT MAY HAVE BEEN A TERMINATOR 
*         CCLSCS DID NOT WRITE IT IN THE DAYFILE.  IF SKIPPED 
*         CARDS ARE TO BE PRINTED DO SO NOW.
  
          SA1    CCPRSK 
          ZR     X1,CSP1     IF NOT TO BE PRINTED 
          SX7    MOJD        SELECT JOB DAYFILE, NOT TERMINAL 
          SA7    MSGOPT 
  
          RJ     =XCCLDSB    DAYFILE THE STATEMENT BUFFER 
  
          JP     CSP1        CONTINUE SKIPPING
  
*         THE LABELS MATCH, THIS STATEMENT IS THE END OF SKIPPING 
*         PRINT THIS STATEMENT IN THE DAYFILE WITHOUT THE SKIP
*         PREFIX EVEN IF SKIPPED CARDS NOT LISTED (WE JUST EXECUTED IT).
  
 CSP2     BSS 
          MX1    0           DO NOT PREFIX
          SX7    MOSJD       SELECT SYSTEM, JOB DAYFILES, NOT TERM
          SA7    MSGOPT 
          RJ     =XCCLDSB 
  
          JP     CSPX        RETURN - SKIPPING COMPLETE 
  
*         THE STATEMENT WHICH WAS A POTENTIAL TERMINATOR CONTAINED
*         AN ERROR.  THE ERROR MESSAGE HAS ALREADY BEEN ISSUED BY 
*         CCLGNP.  HOWEVER THE STATEMENT ITSELF HAS NOT BEEN
*         ISSUED TO THE DAYFILE.  DO SO NOW.
  
 CSP3     BSS 
          SX3    MSG124      $THE PREVIOUS ERR MSG. APPLIES TO FOLLOW.$ 
          RJ     STRMGA      ASSEMBLE AND ISSUE ABORT MESSAGE 
  
          SX7    MOSJDT      SET FOR SYSTEM DAYFILE DISPLAY 
          SA7    MSGOPT 
          MX1    0           DO NOT ADD SKIP PREFIX 
          RJ     =XCCLDSB 
  
          JP     EXIT2       ABORT
