Clist to Tag COBOL code

 

CLIST TO TAG COBOL CODE AT 73-82 COLS
 
ISREDIT MACRO (PARM1) NOPROCESS                                         
ISPEXEC CONTROL ERRORS RETURN                                           
ISREDIT PROCESS RANGE V                                                 
IF &LASTCC >= 16 THEN EXIT CODE(&LASTCC)                                
  ISREDIT (CMD) = RANGE_CMD                                             
ISREDIT FIND 'IDENTIFICATION DIVISION' ALL                              
/********************************************************************** 
/********* VALIDATING THAT IT IS A COBOL PROGRAM BEFORE                 
/********************************************************************** 
IF &LASTCC NE 0 THEN +                                                  
DO                                                                      
SET &ZEDSMSG = &STR(NOT VALID COBOL)                                    
ISPEXEC SETMSG MSG(ISRZ001)                                             
GOTO ENDCLIST                                                           
END                                                                     
/********************************************************************** 
/********* CHECKING LENGTH OF TAGNAME                                   
/********************************************************************** 
IF &LENGTH(&PARM1) > 8 THEN +                                           
DO                                                                      
SET &ZEDSMSG = &STR(INVALID TAG NAME)                                   
ISPEXEC SETMSG MSG(ISRZ001)                                             
GOTO ENDCLIST                                                           
END                                                                     
/********************************************************************** 
/*STORING FIRST AND LAST LINE NUMBERS                                   
/********************************************************************** 
ISREDIT (FIRST) = LINENUM .ZFRANGE                                      
ISREDIT (LAST) = LINENUM .ZLRANGE                                       
/********************************************************************** 
/*GETTING TOTAL NO OF LINES                                             
/********************************************************************** 
SET TOT_LINES=&LAST - &FIRST + 1                                        
 IF &STR(&CMD) =  THEN +                                                
   DO                                                                   
    SET &ZEDSMSG = &STR(LINE COMMAND 'V' PENDING)                       
    ISPEXEC SETMSG MSG(ISRZ001)                                         
    EXIT CODE(12)                                                       
   END                                                                  
 IF &STR(&CMD) = &STR(V) THEN +                                         
   DO                                                                   
     IF &PARM1= THEN +                                                  
        DO                                                              
            SET &ZEDSMSG = &STR(NO TAG SPECIFIED)                       
            ISPEXEC SETMSG MSG(ISRZ001)                                 
        END                                                             
     IF &PARM1 NE THEN +                                                
        DO                                                              
         SET &ROWNO=&FIRST                                              
           DO WHILE &ROWNO<&EVAL(&LAST+1)                               
                 /*WRITE LINENUM-- &ROWNO RC--&ERR                      
                 ISREDIT LINE &EVAL(&ROWNO) = LINE + <73 &PARM1>        
             SET ROWNO= &EVAL(&ROWNO +1)                                
           END                                                          
            SET &ZEDSMSG = &STR(LINES TAGGED)                           
            ISPEXEC SETMSG MSG(ISRZ001)                                 
        END                                                             
        ISREDIT RESET                 
        ISREDIT LOCATE .ZFRANGE       
    END                               
 EXIT CODE(1)                         
 END                                  
 ENDCLIST: +                          
 ISREDIT LOCATE .ZFRANGE              
 ISREDIT RESET                        
 EXIT CODE(1)                         
 END