継続の規則

継続させることができるフィールドは次のとおりです。
  • 変更の始まり任意の自由形式ステートメント変更の終わり
  • 制御仕様書のキーワード・フィールド
  • ファイル記述仕様のキーワード・フィールド
  • 定義仕様書のキーワード・フィールド
  • 演算仕様書の拡張演算項目 2 フィールド
  • 出力仕様の定数/編集語フィールド
  • 定義またはプロシージャー仕様書の名前フィールド
継続に関する一般的な規則は次のとおりです。
  • 継続記入行は継続される仕様 (6 桁目の H、F、D、C、または O) に関して有 効な行でなければなりません。
  • 仕様を複数の行に渡って継続するとき、リテラルまたは名前を分割 する場合を除いて、特殊文字を使用してはなりません。 例えば、 以下のペアは等価です。 最初のペアで、正符号 (+) は行の末尾に現れていても、 演算子です。2 番目のペアでは、 正符号は継続文字です。
    C                   eval      x = a + b
    C                   eval      x = a +
    C                                 b
    
    C                   eval      x = 'abc'
    C                   eval      x = 'ab+
    C                                  c'   
  • 継続された行の間にはブランク行、空の仕様行、または注記行だけを使用する ことができます。
  • 完全なトークンの後で継続を行うことができます。 トークンとは次のものを指します。
    • 名前 (例えば、キーワード、ファイル名、フィールド名)
    • 括弧
    • 区切り文字 (:)
    • 式の演算子
    • 組み込み関数
    • 特殊語
    • リテラル
  • リテラルの途中で継続させることもできます。
    • 文字、日付、時刻、およびタイム・スタンプ・リテラルの場合
      • ハイフン (-) は、継続されたフィールドの最初に使用可能な位置に継続があ ることを指示します。
      • プラス (+) は、継続されたフィールドの最初の位置あるいはそれ以降の最初 のブランクでない文字に継続があることを指示します。
    • 図形リテラルの場合
      • ハイフン (-) またはプラス (+) のいずれかを使用して継続を指示すること ができます。
      • リテラルの各セグメントはシフトアウトおよびシフトイン文字によって 囲まなければなりません。
      • 図形リテラルをアセンブルした場合には、最初のシフトアウトおよび最後 のシフトイン文字だけが含まれます。
      • 図形リテラルに使用される継続文字とは無関係に、リテラルは継続記入行の シフトアウト文字の後の最初の文字から継続されます。 シフトアウト文字の前にあるスペースは無視されます。
    • 数値リテラルの場合
      • 継続文字は使用されません。
      • 数値リテラルは、継続されたフィールドの継続記入行の数字または小数点か ら継続されます。
      • 変更の始まり数値リテラルの継続は自由形式ステートメント内では許可されません。変更の終わり
    • 16 進数リテラルおよび UCS-2 リテラルの場合
      • ハイフン (-) またはプラス (+) のいずれかを使用して継続を指示することがで きます。
      • リテラルは次の行の最初のブランクでない文字から継続されます。
  • 継続は、自由形式の記入項目の名前の中でも行うことができます。
    • 定義およびプロシージャー仕様書の名前記入項目の中で。 名前記入項目内の 名前の継続についての詳細は、定義およびプロシージャー仕様書の名前フィールドを参照してください。
    • ファイルおよび定義仕様書のキーワード記入項目の中で。
    • 演算の拡張演算項目 2 の中で。
    修飾名は、以下のようにピリオドで分割することができます。
     C                   EVAL      dataStructureWithALongName.
     C                               subfieldWithAnotherLongName = 5

    名前をピリオドで分割しない場合は、部分名の終わりでブランクを挿入せずに、 省略記号 (...) をコーディングします。

    *.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8
    DName++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++
    D                                     Keywords-cont++++++++++++++++++++++++
    * 長名を含む 10 文字のフィールドを定義します。
    * 2 番目の定義は、長名を含む変数のアドレスに初期化された
    * ポインターです。
    D QuiteLongFieldNameThatCannotAlwaysFitInOneLine...
    D                 S             10A
    D Ptr             S               *   inz(%addr(QuiteLongFieldName...
    D                                               ThatCannotAlways...
    D                                               FitInOneLine))
    D ShorterName     S              5A
    
    *.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8
    CL0N01Factor1+++++++Opcode(E)+Extended-factor2+++++++++++++++++++++++++++++
    C                             Extended-factor2-++++++++++++++++++++++++++++
    * 式の中で長名を使用します。
    * 必要な場合にはいつでもこの名前を分割できることに留意しておいてください。
    C                   EVAL          QuiteLongFieldName...
    C                                 ThatCannotAlwaysFitInOneLine = 'abc'
    
    * 名前は以下の方法で分割できます。
    C                   EVAL          P...
    C                                 tr = %addr(Shorter...
    C                                 Name)