Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


継続行

複数の行を必要とする文、項目、節、または句は、 次の行 (コメント行や意図的なブランク行以外の行) の領域 B に続けることができます。継続前の行は 継続される行であり、 継続後の行は継続行です。継続行の領域 A は、ブランクでなければなりません。

標識域 (7 桁目) がハイフン (-) でない場合、先行する行の最後の文字の後にスペースがあるとみなされます。

以下のものは継続できません。

ただし、16 進表記の英数字リテラルおよび国別リテラルは、16 進表記での文字表現の種類に関係なく、継続することができます。

開始のリテラル区切り文字を構成する文字は、すべて同じ行になければなりません。例えば、Z"G"N"NX"、または X"

疑似テキスト区切り文字の区切り文字を構成する文字 "==" は、両方とも同じ行に置かれている必要があります。

ある行の標識域にハイフンがある場合、 その継続行の最初のブランク以外の文字は、 間にスペースを置かずに、 その継続される行の最後のブランク以外の文字のすぐ後に続きます。

英数字リテラルおよび国別リテラルの継続

英数字リテラルおよび国別リテラルは、そのリテラルの内容に DBCS 文字が含まれていない場合にのみ、 継続することができます。

次の規則は、以下のように DBCS 文字を含まない英数字リテラル、および国別リテラルに適 用されます。

  • 継続行が、英数字リテラルまたは国別リテラルを含み終了の引用符がない場合、その継 続される行の末尾 (72 桁目まで) にあるスペースはすべてリテラルの一部とみなされま す。継続行の標識域には、ハイフンを指定しなければならず、 ブランク以外の最初の文字は引用符でなければなりません。 リテラルの継続は、その引用符のすぐ後の文字から始まります。
  • 英数字リテラルまたは国別リテラルが、72 桁目の最後の文字に単一引用符を持つ場合、 継続行は 2 つの連続した引用符で開始されなければなりません。これによって、単一引用符がリテラルの値の一部となります。

    英数字リテラルまたは国別リテラルの継続される行にある最後の文字が、領域 B にある 単一引用符である場合、継続行は単一の引用符で始めることができます。これは、1 つのリテラルが行にまたがって継続しているとみなされず、 2 つの連続したリテラルとみなされます。

区切り文字で引用符の代わりにアポストロフィが使用されている場合にも、同じ規則が適用されます。

リテラルを継続して、ある行とその継続行が 1 つのリテラルを構成するようにするには、次のようにします。

  • それぞれの継続行の標識域でハイフンをコーディングします。
  • 継続される行のすべての桁 (72 桁目まで) を使用して、 リテラルの値をコーディングします (継続される行を、スペースが続く単一引用符で終了してはなりません)。
  • それぞれの継続行のリテラルの先頭文字の前で引用符をコーディングします。
  • 最後の継続行を、単一引用符にスペースを続けて終了します。

以下の例では、作成されるリテラルの数およびサイズを示しています。

|...+.*..1....+....2....+....3....+....4....+....5....+....6....+....7..
000001               "AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDDEEEEEEEEEE
      -              "GGGGGGGGGGHHHHHHHHHHIIIIIIIIIIJJJJJJJJJJKKKKKKKKKK
      -    "LLLLLLLLLLMMMMMMMMMM"
  • リテラル 000001 は、長さ 120 バイトの 1 つの英数字リテラルと解釈されます。継続される行の開始の引用符と最高 72 桁までの間の文字は、 リテラルの一部としてカウントされます。
|...+.*..1....+....2....+....3....+....4....+....5....+....6....+....7..
000003              N"AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDDEEEEEEEEEE
      -              "GGGGGGGGGG"
  • リテラル 000003 は、国別文字位置 60、長さ 120 バイトの 1 つの国別リテラルと解釈されます。 継続される行の開始の引用符マークと終了の引用符マークとの間にあるすべての文字は、 リテラルの一部としてカウントされます。 1 バイト文字が入力されていますが、リテラルの値は国別文字として保管されます。
|...+.*..1....+....2....+....3....+....4....+....5....+....6....+....7..
000005     "AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDDEEEEEEEEEE
      -    "GGGGGGGGGGHHHHHHHHHHIIIIIIIIIIJJJJJJJJJJKKKKKKKKKK
      -    "LLLLLLLLLLMMMMMMMMMM"
  • リテラル 000005 は長さが 140 バイトの 1 つのリテラルと解釈されます。 継続される行は引用符で終了しないため、 それぞれの継続される行の最後のブランクはリテラルの一部としてカウントされます。
|...+.*..1....+....2....+....3....+....4....+....5....+....6....+....7..
000010     "AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDDEEEEEEEEEE"
      -    "GGGGGGGGGGHHHHHHHHHHIIIIIIIIIIJJJJJJJJJJKKKKKKKKKK"
      -    "LLLLLLLLLLMMMMMMMMMM"
  • リテラル 000010 は 3 つの別個のリテラルとして解釈されます。 それぞれの長さは 50、50、および 20 バイトです。 引用符の後にスペースが続くと、継続される行を終了します。 引用符の中の文字だけが、リテラルの一部としてカウントされます。 リテラル 000010 は、非レベル 88 データ項目の VALUE 節として有効ではありません。

リテラルのそれぞれの連続部分の長さが領域 B の長さより短い連続リテラルをコーディングするには、連続部分の最後の文字が 72 桁になるように始まりの桁を調整してください。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)