The COPY statement incorporates text into a COBOL compilation group. 
                   
               
            
 
            
            
               General Format
 
               	  
               	  
 
               
              
            
            
               Directives
 
               	  
               	 
                
                  		
                  - In addition to Compiler directives which provide flagging and modify the reserved word list, the following directives may
                     impact either the syntax or the semantics described in this section. 
                     		  
                      
                        			 
                        -  COPYEXT - specifies the filename extension to be used for locating copy files. 
                           			 
                        
-  COPYLBR - specifies that library-names are equivalent to 
                           				.lbr files. 
                           			 
                        
-  COPYLIST - causes the result of a COPY statement to be included in the listing file. 
                           			 
                        
-  FOLD-COPY-NAME - allows the Compiler to find a copy library member when the library name on disk and the text-name in the
                           COPY statement do not use the same upper-case and lower-case letters for the library member name. 
                           			 
                        
-  OLDCOPY - changes the handling of COPY statements to match the ANS'68 and OS/VS COBOL LANGLVL(1) rules. 
                           			 
                        
 
  
            
            
               Syntax Rules
 
               	  
                
                  	 
                  - If more than one COBOL library is available while the source is passed through the COBOL system, text-name must be qualified
                     by the library-name identifying the COBOL library in which the text associated with text-name resides. 
                     		
                     This restriction is removed. 
                        		
                      
- The COPY statement must be preceded by a space and terminated by the separator period. 
                     	 
                  
-  Pseudo-text-1 must not be null, nor can it consist solely of either the character space(s) or comment lines. 
                     	 
                  
- Pseudo-text-2 can be null. 
                     	 
                  
- Character-strings within pseudo-text-1 and pseudo-text-2 can be continued. However, both characters of a pseudo-text delimiter
                     must be on the same line. (See the topic 
                     		Continuation of Lines in the chapter 
                     		Language Fundamentals.) 
                     	 
                  
- Word-1 or word-2 can be any single COBOL word. 
                     	 
                  
- A COPY statement can occur in the compilation group anywhere a character-string or a separator can occur except that a COPY
                     statement must not occur within another COPY statement. 
                     	 
                  
- Text-name defines a unique external file-name which conforms to the rules for user-defined words. 
                     		
                     External-file-name-literal is an alphanumeric literal that conforms to the operating system rules for file-names. It can be
                        specified with or without enclosing quotation marks. 
                        		
                      Text-names and unquoted external-file-name-literals are always converted to upper case. 
                        		
                      
- Library-name-literal is an alphanumeric literal that conforms either to the operating system rules for file-names or to the
                     operating system rules for device identifiers. It can be specified with or without enclosing quotation marks. 
                     		
                     Library-name-literals not inside quotation marks are always converted to upper case. 
                        		
                      
- The SUPPRESS phrase is used to suppress the printing of the contents of the copy member on the source listing. 
                     	 
                  
-  
                     		 If the word COPY appears in a comment-entry or in the place where a comment entry can appear, it is considered part of the
                        comment-entry. If the word COPY appears in a comment-entry or in the place where a comment entry can appear, it is considered part of the
                        comment-entry.A COPY statement that appears in a comment-entry is processed. 
                        		
                      
- External-file-name-literal and library-name-literal, when enclosed in quotation marks, may contain the $, #, and @ characters.
                     
                     	 
                  
- Partial-word-1 must consist of one text-word. 
                     	 
                  
- Partial-word-2 must consist of zero or one text-word. 
                     	 
                  
- Neither a nonnumeric literal nor a national literal can be specified as partial-word-1 or partial-word-2. 
                     	 
                  
- Library text must conform to the rules for COBOL reference format. 
                     	 
                  
- A concatenation expression must not be specified for external-file-name-literal, library-name-literal, literal-1 or literal-2.
                     
                     	 
                  
  
            
            
               General Rules
 
               	  
                
                  	 
                  - The compilation of a compilation group containing COPY statements is logically equivalent to the processing of all COPY statements
                     before the processing of the resultant compilation group. 
                     	 
                  
- The effect of processing a COPY statement is that the library text associated with text-name is copied into the source text,
                     logically replacing the entire COPY statement, beginning with the reserved word COPY and ending with the punctuation character
                     period, inclusive. 
                     	 
                  
- If the REPLACING phrase is not specified, the library text is copied unchanged. 
                     		
                     If the REPLACING phrase is specified, the library text is copied and each properly matched occurrence of pseudo-text-1, identifier-1,
                        literal-1, word-1 and partial-word-1 in the library text is replaced by the corresponding pseudo-text-2, identifier-2, literal-2,
                        word-2 or partial-word-2. 
                        		
                      
- For purposes of matching, identifier-1, literal-1 and word-1 are treated as pseudo-text containing only identifier-1, literal-1
                     or word-1, respectively. 
                     	 
                  
- The comparison operation to determine text replacement occurs in the following manner: 
                     		
                      
                        		  
                        - The leftmost library text-word which is not a separator comma or a separator semicolon is the first text-word used for comparison.
                           Any text-word or space preceding this text-word is copied into the source text. Starting with the first text-word for comparison
                           and first pseudo-text-1, identifier-1, word-1, literal-1 or partial-word-1 that was specified in the REPLACING phrase, the
                           entire REPLACING phrase operand that precedes the reserved word BY is compared to an equivalent number of contiguous library
                           text-words. 
                           		  
                        
- Pseudo-text-1, identifier-1, word-1, or literal-1 match the library text if, and only if, the ordered sequence of text-words
                           that forms pseudo-text-1, identifier-1, word-1, or literal-1 is equal, character for character, to the ordered sequence of
                           library text-words. 
                           		  
                        
- When the LEADING phrase is specified, partial-word-1 matches the library text only if the contiguous sequence of characters
                           that forms partial-word-1 is equal, character for character, to an equal number of contiguous characters starting with the
                           leftmost character position of a library text-word. When the TRAILING phrase is specified, partial-word-1 matches the library
                           text only if the contiguous sequence of characters that forms partial-word-1 is equal, character for character, to an equal
                           number of contiguous characters, ending with the rightmost character position of a library text-word. 
                           		  
                        
- The following rules apply for the purpose of matching: 
                           			 
                            
                              				
                              - Each occurrence of a separator comma, semicolon, or space in pseudo-text-1 or in the library text is considered to be a single
                                 space. Each sequence of one or more space separators is considered to be a single space. 
                                 				
                              
- Except when used in nonnumeric or national literals, each lower-case letter is equivalent to the corresponding upper-case
                                 letter as specified for the COBOL character set. 
                                 				
                              
- Text-words within a debugging line participate in the matching as if the "D" did not appear in the indicator area. 
                                 				
                              
- Each operand and operator of a concatenation expression is a separate text-word. 
                                 				
                              
 
- If no match occurs, the comparison is repeated with each next successive pseudo-text-1, identifier-1, word-1, literal-1, or
                           pseudo-text-1, if any, in the REPLACING phrase until either a match is found or there is no next successive REPLACING operand.
                           
                           		  
                        
- When all the REPLACING phrase operands have been compared and no match has occurred, the leftmost library text-word is copied
                           into the source text. The next successive library text-word is then considered as the leftmost library text-word, and the
                           comparison cycle starts again with the first pseudo-text-1, identifier-1, word-1, literal-1, or partial-word-1 specified in
                           the REPLACING phrase. 
                           		  
                        
- Whenever a match occurs between pseudo-text-1, identifier-1, word-1, or literal-1 and the library text, the corresponding
                           pseudo-text-2, identifier-2, word-2, or literal-2 is placed into the source text. 
                           			 
                           When a match occurs between partial-word-1 and the library text-word, the library text-word is placed into the resultant text
                              with the matched characters either replaced by partial-word-1 or deleted when partial-word-2 consists of zero text-words.
                              
                              			 
                            The library text-word immediately following the rightmost text-word that participated in the match is then considered as the
                              leftmost text-word. The comparison cycle starts again with the first pseudo-text-1, identifier-1, word-1, literal-1 or partial-word-1
                              specified in the REPLACING phrase. 
                              			 
                            
- The comparison operation continues until the rightmost text-word in the library text has either participated in a match or
                           been considered as a leftmost library text-word and participated in a complete comparison cycle. 
                           		  
                        
 
- A comment line occurring in either the library text or pseudo-text-1 is interpreted, for purposes of matching, as a single
                     space. Comment lines appearing in either pseudo-text-2 or library text are copied into the source text unchanged. 
                     	 
                  
- The text produced as a result of the complete processing of a COPY statement must not contain a COPY statement. 
                     		
                     This text can contain a COPY statement provided neither this contained COPY nor the already expanded COPY includes the REPLACING
                        phrase. However, recursive COPY statements (where a library-text is referred to by a COPY statement within it) are not allowed.
                        
                        		
                      COPY statements may be nested in this way to any level. One of the COPY statements in this structure may include the REPLACING
                        phrase, and the replacements specified are in effect for all subsidiary COPY statements. 
                        		
                      
- The syntactic correctness of the library text cannot be independently determined. 
                     		
                      
                        		   Except for COPY statements, Except for COPY statements,
 the syntactic correctness of the entire COBOL compilation group cannot be determined until all COPY statements have been completely
                        processed. 
                        		
                      
- If the REPLACING phrase is specified, the library text must not contain an EXEC HTML statement. Violation of this rule may
                     result in unexpected behavior and syntax errors. 
                     	 
                  
- Each text-word copied from the library but not replaced, or only partially replaced, is copied so as to start in the same
                     area of the line in the resultant source text as it begins in the line within the library. However, if a text-word copied
                     from the library begins in area A but follows another text-word, which also begins in area A of the same line, and if replacement
                     of a preceding text-word in the line by replacement text of greater length occurs, the following text-word begins in area
                     B if it cannot begin in area A. Each text-word in pseudo-text-2 that is to be placed into the resultant source text begins
                     in the same area of the resultant source text as it appears in pseudo-text-2. Each identifier-2, literal-2, and word-2 that
                     is to be placed into the resultant source text begins in the same area of the resultant source text as the leftmost library
                     text-word that participated in the match would appear if it had not been replaced. 
                     		
                     If additional lines are introduced into the source text as a result of a COPY statement, each text-word introduced appears
                        on a debugging line if the copy statement begins on a debugging line, or if the text-word being introduced appears on a debugging
                        line in library text. When a text-word specified in the BY phrase is introduced, it appears on a debugging line if the first
                        library text-word being replaced is specified on a debugging line. Except in the preceding cases, only those text-words that
                        are specified on debugging lines where the debugging line is within pseudo-text-2 appear on debugging lines in the resultant
                        source text. If any literal specified as literal-2 or within pseudo-text-2 or library text is of too great a length to be
                        accommodated on a single line without continuation to another line in the resultant source text and the literal is not being
                        placed on a debugging line, additional continuation lines are introduced which contain the remainder of the literal. If replacement
                        requires that the continued literal be continued on a debugging line, the compilation group is in error. 
                        		
                      
- For purposes of compilation, text-words after replacement are placed in the source text according to the rules for reference
                     format as described in the section 
                     		Reference Format in the chapter 
                     		Language Fundamentals. 
                     	 
                  
- If the unit identifier is not explicitly specified, the default drive is used. (The default is operating system-dependent.)
                     
                     	 
                  
- The OLDCOPY Compiler directive causes the entire entry to be replaced by the information identified by text-name, except that
                     the data-name preceding the COPY statement replaces the corresponding data-name in the text-name. 
                     	 
                  
- If certain conventions are followed in library text, parts of names, for example the prefix portion of data-names, can be
                     changed with the REPLACING phrase. To use this type of "partial word replacement" the portion of the words to be modified
                     must be enclosed in one of the following ways: 
                     		
                      
                        		  
                        - In pairs of left and right parentheses. For example, (ABC) 
                           		  
                        
- Within colons. For example 
                           			 :XYZ: 
                           		  
                        
 Note: The LEADING and TRAILING phrases can also be used for partial word replacement. The LEADING and TRAILING phrases are supported
                        by the MF dialect and ISO2002, however, they are not included in the ANSI '85 COBOL standard. 
                        		
                      
  
            
            
               Examples
 
               	  
               	 
               Examples of the following are provided in the chapter 
                  		Examples in your 
                  		Language Reference - Additional Topics: 
                  	 
               
 
               	 
                
                  		
                  - Using the OLDCOPY Compiler directive to achieve ANSI'68 or LANGLVL(1) behavior. See the topic 
                     		  COPY (ANSI'68 or LANGLVL(1) Variation) 
                     		
                  
- Using the COPY statement with partial word replacement supported by ANSI'85 rules. See the section 
                     		  Example Using ANSI'85 with Special Characters in the topic 
                     		  COPY (Partial Word Replacement) 
                        		   
                     		
                  
- Using the COPY statement with partial word replacement supported by ISO2000 rules. See the section 
                     		  Example Using ISO2002 and MF Dialects in the topic 
                     		  COPY (Partial Word Replacement)