FD MST-FILE.
COPY KOKYAKUM.
※顧客マスタレコード文(別プログラムソース)
01 MST-REC. 03 MST-KEY PIC X(01). 03 MST-NAME PIC N(20). 03 MST-JUSYO PIC N(30).
COPY(複写)文は,COBOL原始プログラムの中へ,原文を複写する.
【書き方1】
【書き方2】
【書き方3】
(1) | 翻訳時に二つ以上のCOBOL登録集を使用するとき,原文名-1はその原文を含むCOBOL登録集の登録集名で修飾しなければならない.
|
||||||
(2) | COPY文は,空白の後に続け,分離符の終止符でとめる. |
||||||
(3) | 仮原文-1は,一つ以上の原文語を含まなければならない. |
||||||
(4) | 仮原文-2は,一つ以上の原文語を含んでもよいし,何も含まなくてもよい. |
||||||
(5) | 仮原文-1と仮原文-2中の文字列は,正書法に従い,2行以上に渡って続けることができる. |
||||||
(6) | 語-1,語-2,語-3,語-4及び語-5は,“COPY”以外のCOBOLの一つの語ならば何でもよい. |
||||||
(7) | COPY文は,原始プログラム中で文字列又は右側の引用符以外の分離符が書けるところなら,どこに書いてもよい.ただし,COPY文の中にCOPY文を書いてはならない. |
||||||
(8) | 仮原文及び登録集原文中の原文語に対して,1〜324文字の長さが指定できる. |
||||||
(9) | 仮原文-1は,分離符のコンマ又は分離符のセミコロンだけから成っていてはならない. |
||||||
(10) | 語COPYを,注記項又は注記項の書けるところに書くと,注記項の一部とみなす.
|
||||||
(11) | 書き方2のCOPY文で複写する原文名-1は,次の条件を満たしていなければならない.そうでない場合には,COPY文の結果は規定されない.
|
||||||
(12) | 書き方2のCOPY文において,原文名-1中の利用者語が英数字で構成されているならば,語-3は英数字でなければならない.原文名-1の中の利用者語が日本語文字で構成されているならば,語-3は日本語文字でなければならない. |
||||||
(13) | 書き方2のCOPY文において,JOINING指定とREPLACING指定を同時に記述してはならない. |
||||||
(14) | このコンパイラでは,登録集名-2はXFDLIB又はXMDLIBでなければならない. |
(1) | COPY文を含む原始プログラムの翻訳は,論理的には,すべてのCOPY文を処理してから,原始プログラムの処理を行うことと同じとする. |
||||||||||||
(2) | COPY文を処理することにより,予約語COPYに始まり終止符で終わるCOPY文全体を原文名-1に対する登録集原文で論理的に置き換えて,原始プログラム中に複写する. |
||||||||||||
(3) | REPLACING(置換え)指定及びJOINING(結合)指定を省略すると,登録集原文はそのまま複写される.
|
||||||||||||
(4) | 登録集原文との比較では,一意名-1,定数-1又は語-1は,それぞれ一意名-1,定数-1又は語-1だけからなる仮原文とみなす. |
||||||||||||
(5) | 書き方1のCOPY文において,REPLACING指定による原文の置換えとそのための比較は,次の規則に従う.
|
||||||||||||
(6) | 登録集原文及び仮原文-1中に現れる注記行や空白行は,登録集原文の比較において無視される.また,もしあれば登録集原文及び仮原文-1中の一連の原文語は,正書法の規則に従う.仮原文-2中に現れる注記行や空白行は,仮原文-2が原文を置き換えた結果として原始プログラム中に置かれるときはいつでも,結果のプログラムにそのまま複写される.登録集原文中に現れる注記行や空白行は,結果のプログラムにそのまま複写される.ただし,注記行や空白行が仮原文-1と一致する一連の原文語中に現れるとき,注記行や空白行は複写されない. |
||||||||||||
(7) | デバッグ行は,登録集原文及び仮原文中に書ける.デバッグ行中の原文語を比較するときには,“D”が標識領域に書かれていないものとみなす.前の仮原文区切り記号の後でかつ対応する後の仮原文区切り記号の前の原始プログラムにデバッグ行が始まるならば,デバッグ行は,仮原文中に指定されたものとする.
|
||||||||||||
(8) | 登録集原文が文法規則に従っているかどうかは,原文だけでは決定できない.COPY文及びREPLACE文を除いて,COBOL原始プログラム全体が文法規則に従っているかどうかは,すべてのCOPY文及びREPLACE文が完全に処理されるまで決定できない. |
||||||||||||
(9) | 登録集から置き換えずに複写する各原文語は,その登録集中の行中に置かれていた領域と等しい結果のプログラム中の行中での領域から始まるように複写される.しかしながら,登録集から複写される原文語がA領域から始まり,更に同じ行のA領域から始まる他の原文語が続くとき,前の原文語がより大きな長さの原文によって置き換えがなされると,後の原文語がA領域から始めることができなければB領域から始める.結果のプログラムに置かれる仮原文-2中の各原文語は,仮原文-2中に現れたのと同じ結果のプログラムの領域から始める.結果のプログラムに置かれる各一意名-2,定数-2,語-2及び語-5は,それらと一致に関係した最左端の登録集原文語がその一意名-2,定数-2,語-2及び語-5によって置換えられなかったときに複写されたはずの結果のプログラムの領域から始める.
|
||||||||||||
(10) | 翻訳のために,置換え後の原文語は,正書法の規則に従って原始プログラム中に置く.仮原文-2の原文語を原始プログラムに複写するとき,空白は,原文語間にすでに空白(原始行の間の想定した空白を含む)が存在する場合にだけ追加される. |
||||||||||||
(11) | COPY文の処理の結果として,原始プログラム中に行が追加されると,追加される行の標識領域は,置き換えられる原文が始まる行と同じ文字を含む.ただし,その行が標識領域にハイフンを含むならば,追加される行の標識領域は,空白を含む.置き換えられる原文語が,デバッグ行でない追加される行に続けられる場合,ハイフンが追加される行の標識領域に置かれる. |
||||||||||||
(12) | 原文名及び登録集名は,プログラム名の構成規則に従って決定された後に,名前を識別するのに使われる. |
||||||||||||
(13) | 書き方2のCOPY文において,JOINING指定による原文の置換えは,次の規則に従う.
|
||||||||||||
(14) | 書き方2のCOPY文によって登録集原文語が置き換えられる場合,置き換えられる登録集原文及び置き換える文字列をそれぞれ語-1及び語-2として指定した書き方1のCOPY文を実行したものとして,一般規則(9),(10)及び(11)を適用する. |
||||||||||||
(15) | 登録集名-2が,XFDLIB又はXMDLIBであり,かつその登録集がプログラムの外部でオぺレーティングシステムに対して定義されていない(すなわち,その登録集が割り当てられていない)場合,原文名-1はファイル定義体又はフォーマット定義体(標準メッセージ定義体)として扱われる. |
||||||||||||
(16) | REPLACING指定又はJOINING指定を持つCOPY文からは,いかなるCOPY文も生成されてはならない. |
||||||||||||
(17) | SQL文を複写する場合,書き方3のCOPY文を使わなければならない. |