MARGINS オプションは、各コンパイラー入力レコードのどの部分に PL/I ステートメント を入れるかを指定します。 また、SOURCE オプションまたは INSOURCE オプションが適用される場合は、 リストをフォーマット設定する ANS 制御文字 の位置も指定します。 コンパイラーは、これらの限界外にあるデータは処理しませんが、 ソース・リストには入れます。
PL/I ソースがソース入力レコードから取り出される際、レコードの最初の データ・バイトが、その直前のレコードの最後のデータ・バイトのすぐ後にくる ように取り出されます。 変数レコードの場合、ブランクが必要であれば、必ず各レコードのマージン間 に明示的にブランクを挿入するようにしなければなりません。
.-2-. .-72-. .-MARGINS--(--+-m-+--,--+-n--+--+------+--)-. | '-,--c-' | >>-+-NOMARGINS---------------------------------+---------------><
省略形: MAR
可変長レコードは、最大レコード長になるように効果的にブランクが 埋め込まれます。
これ以外の文字を使用するとエラーになり、ブランクに置き換えられます。
ソース・レコードの最大長より大きい値の c は使用しないで ください。使用すると、リストのフォーマットが予測できないものになります。 この問題を避けるには、可変長レコードのソース・マージンの左側に 紙送り制御文字を置きます。
%PAGE や %SKIP ステートメントを使用する代わりの方法として、MARGINS(,,c) を指定することもできます (「PL/I 言語解説書」で説明しています)。
固定長レコードの IBM 提供のデフォルトは MARGINS(2,72) です。 可変長レコードと不定長レコードの IBM 提供のデフォルトは MARGINS(10,100) です。 このデフォルトは、プリンター制御文字がないことを指定します。
プログラム内の 1 次入力のデフォルトを指定変更するには、MARGINS オプションを 使用します。2 次入力のマージンは 1 次入力の場合と同じでなければなりません。
NOMARGINS オプションは、前に出現した MARGINS オプションのインスタンスを抑制します。このオプションの目的は、ご使用のシステムのコンパイル時間オプションをデフォルト設定にできるようにすることで、このコンパイル時間オプションは、変数ソース・フォーマット・ファイルが使用可能になっている間、固定フォーマット・ソース設定用に調整された MARGINS オプションを使用します。
コンパイラーに渡されたパラメーター・ストリングの一部として使用する場合は、通常、NOMARGINS オプションを指定します。このコンパイラーは、%PROCESS の中にオプションを見付けると、NOMARGINS を無視します。