COPY ステートメント - 形式 1 >>-COPY--テキスト名---------------------------------------------> >--+-----------------------------------------------+------------> '-+-OF-+--+-----------------------+--ファイル名-' '-IN-' | (1) | '-ライブラリー名- ------' >--+---------------+--+-------------------+--.----------------->< | (2) | '-REPLACING--| 句 |-' '-SUPPRESS------'
注:
テキスト名は、それが存在するライブラリー名およびファイル名によって修飾できます。 ファイル名を指定しないと、ファイル名として QCBLLESRC が想定されます。 コピー・メンバーがデフォルト・ファイル QCBLLESRC の中で見つからないと、次に QLBLSRC が検索されます。 ファイル名がライブラリー名によって修飾されていない場合には、ファイル名はライブラリー・リスト内のファイルに存在するものと見なされます。 ライブラリー名とファイル名の間には、スペースなしでハイフンを入れることが必要です。 たとえば、ライブラリー MYLIB 内のファイル MYFILE を修飾するには、MYLIB-MYFILE とコーディングします。
ライブラリー名、ファイル名、およびテキスト名は、プログラム名の形成に関する規則に従わなければなりません。
各 COPY ステートメントは、前にスペースがなければならず、分離文字ピリオドで終わらなければなりません。
COPY ステートメントは、文字ストリングまたは分離文字を指定できる場所であれば、 ソース・プログラム内のどこにでも指定できます。 ただし、COPY ステートメントを COPY ステートメントの中に指定してはなりません。 コピーされた結果のテキストの中に COPY ステートメントが含まれていてはなりません。
+----------------------------------IBM 拡張----------------------------------+
COPY ステートメントはネストすることができます。 ただし、ネストされた COPY ステートメントには REPLACING 句を含めることができず、REPLACING 句を指定する COPY ステートメントにはネストされた COPY ステートメントを含めることができません。
COPY ステートメントは、再帰を起こすことができません。 つまり、COPY メンバーは、その COPY メンバーについてのファイルの終わりに達するまで、 一連のネストされた COPY ステートメントの中で一度しか指定できません。
+------------------------------End of IBM 拡張-------------------------------+
ライブラリー・テキストおよび疑似テキストの中にデバッグ行があってもかまいません。 デバッグ行内のテキスト語には、 標識域に D が指定されなかった場合と同様にマッチング規則が適用されます。
デバッグ行が疑似テキストの中に指定されるのは、そのデバッグ行がソース・プログラムの中で、 始まりの疑似テキスト分離文字の後で、かつ対応する終わりの疑似テキスト分離文字の前から始まっている場合です。
COPY ステートメントがデバッグ行に指定された場合には、 コピーされるテキストは、テキスト内のコメント行が結果のソース・プログラムの中でコメント行となること以外は、 それがデバッグ行に指定された場合と同様に取り扱われます。
COPY という語をコメント記入項目の中、またはコメント記入項目を指定できる場所に指定すると、 それはコメント記入項目の一部と見なされます。
SOURCE-COMPUTER 段落に WITH DEBUGGING MODE 文節が指定されていない場合には、 すべての COPY および REPLACE ステートメントが処理された後、デバッグ行はコメント行のすべての特性を持つものと見なされます。
コメント行またはブランク行がライブラリー・テキストの中にあってもかまいません。 ラ イブラリー・テキスト内のコメント行またはブランク行は、未変更のまま結 果のソース・プログラムにコピーされますが、次の例外があります。ライブ ラリー・テキスト内のコメント行またはブランク行は、疑似テキスト -1 と 一致する一連のテキスト語の中にある場合にはコピーされ ません (置き換えおよび比較の規則を参照してください)。
COBOL ソース・プログラム全体が構文的に正しいかどうかは、すべての COPY ステートメントが完全に処理されるまでは判断できません。 これは、ライブラリー・テキストの構文の正しさが単独では判断できないためです。
ライブラリーからコピーされるライブラリー・テキストは、結果のプログラムにおいて、 ライブラリーの中にあったときと同じ区域に置かれます。 ライブラリー・テキストは、標準 COBOL 形式の規則に従っていなければなりません。