*DECK SKIPCLA 
USETEXT SSTEXT
          PROC  SKIPCLASSIFY; 
  
#**       SKIPCLAS -  SKIP CLASSIFICATION UNTIL NON-BLANK AREA-A       #
#                                                                      #
#     CALLING SEQUENCE-                                                #
#         SKIPCLASSIFY:                                                #
#                                                                      #
#     DOES-                                                            #
#         SKIPS OVER THE INPUT SO THAT THE NEXT CALL TO TKNCLASSIFY    #
#         WILL YIELD A TOKEN STARTING IN AREA-A.                       #
  
          BEGIN 
  
  
*CALL BUG020C$
  
  
*CALL REPLBLK 
*CALL LISTCTL 
  
          XREF               # EXTERNAL PROCEDURES                     #
              BEGIN 
              PROC  ABORTSS;           # ABORT SSCANNER (DEBUG-ONLY)   #
              PROC  CBLIST;            # PRINT A LINE                 # 
              PROC  SETLINE;           # CALL NEWLINE, SET ENDCHRS/ACHR#
              END 
  
          BASED ARRAY AREA$A$ [1:9] S(1); 
              ITEM  AREA$A$WORD  C(0, 0,90);
          DEF  AREA$A  #C<7,4>AREA$A$WORD[1]#;
  
          ITEM  I            I;        # SCRATCH                       #
          ITEM  J            I;        # SCRATCH                       #
          ITEM  BLANK20      C(20) = " "; 
          ITEM  REPLACEACTIV B = FALSE; # USED TO NOTE IF REPLACE 
                                          STATEMENT ACTIVE             #
  
          XREF ITEM  REPLAC$MODE  B;   # TRUE IF REPLACE STMT ACTIVE   #
CONTROL EJECT;
  
          $BEGIN
          IF BUG020C$TKN  THEN
          CBLIST(LISTCTL"LINE", "SKIPCLA CALLED", 15);
          $END
  
#     IF WE HAVE -COPY- TARGET STRING (WITH NEXT TOKENS), WIPE IT OUT  #
  
          IF P<TSTRING> NQ 0  THEN
              BEGIN 
              $BEGIN
              C<0,140>T$STRING[0] = " ";         # CLEAN UP DEBUG TRACE#
              FOR I = 0 STEP 1 UNTIL (MAXFPTKNS - 1)/10  DO 
                  C<0,10>T$STRING[I] = "??????????";
              $END
              T$LSTRING = MAXFPTKNS - 1;
              FOR I = 1 STEP 1 UNTIL MAXFPTKNS  DO
                  BEGIN 
                  T$WO[I] = (I - 1)/10; 
                  T$CO[I] = I - 1 - 10*T$WO[I]; 
                  T$L[I] = 0;          # INDICATE NULL TOKEN           #
                  END 
              END 
  
#     IF WE HAVE A REPLACE STATEMENT ACTIVE                            #
  
          IF REPLAC$MODE
          THEN
              BEGIN 
              REPLAC$MODE = FALSE;
              REPLACEACTIV = TRUE;
              IF P<RTSTRNG> NQ 0
              THEN     #  CLEAN OUT TARGET STRING FILL W/NULL TOKENS   #
                  BEGIN 
                  RT$LSTRING = RTI$MAXARRAY - 1;
                  FOR I = 1 STEP 1 UNTIL RTI$MAXARRAY 
                  DO
                      BEGIN 
                      RT$WO[I] = (I-1)/10;
                      RT$CO[I] = I - 1 - 10*RT$WO[I]; 
                      RT$L[I] = 0;
                      END 
                  END 
              END 
  
  
#     SKIP TO THE NEXT NON-BLANK AREA A                                #
  
          P<AREA$A$> = LOC(BLANK20);
          FOR I=I WHILE AREA$A EQ "    "
           AND NOT ENDCHRS  DO
              BEGIN 
              FOR J=J WHILE PL$READY[PLI$NOTREADY]  DO
                  BEGIN 
                  PLI$NOTREADY = PL$NEXT[PLI$NOTREADY]; 
                  $BEGIN
                  IF PLI$NOTREADY EQ 0  THEN
                      ABORTSS("SKIPCLA-2"); 
                  $END
                  END 
              SETLINE;                 # CALL NEWLINE, SET ENDCHRS/ACHR#
              FOR J=J  WHILE PLI$NOTREADY NQ PLI$CURRENT AND NOT ENDCHRS
              DO
                  BEGIN 
                  $BEGIN
                  IF PLI$NOTREADY LQ 0  THEN
                      ABORTSS("SKIPCLA-1"); 
                  $END
                  PL$READY[PLI$NOTREADY] = TRUE;
                  PLI$NOTREADY = PL$NEXT[PLI$NOTREADY]; 
                  END 
              P<AREA$A$> = ADDRLIN; 
              END 
          IF REPLACEACTIV 
          THEN
              BEGIN 
              REPLACEACTIV = FALSE; 
              REPLAC$MODE = TRUE; 
              END 
          END # SKIPCLASSIFIER #
          TERM
