自由形式ステートメント
ソースの先頭行に **FREE が含まれている場合、ソースは完全自由形式であり、1 桁目から行末までの任意の桁に自由形式ステートメントを指定することができます。 行の長さに制限はありません。
そうでない場合は、ソースは桁制限付きであり、自由形式ステートメントは 8 桁目から 80 桁目までにコーディングされます。 6-7 桁目はブランクでなければなりません。
ほとんどの場合、自由形式ステートメントは、 CTL-OPT、DCL-F、DCL-DS、READE、または DCL-PROC などの命令コードで始まります。
場合によっては、命令コードの指定は不要です。
- 演算ステートメントでは、ステートメントの最初にある名前 が自由形式演算内でサポートされている命令コードのいずれかと同じでない限り、 EVAL 命令コードおよび CALLP 命令コードは省略されます。 例えば、代入のターゲットの名前が READ である場合は、EVAL 命令コード が必要です。
- サブフィールドの定義では、サブフィールドの名前が自由形式演算内でサポートされている 命令コードのいずれかと同じでない限り、DCL-SUBF 命令コードは省略可能です。
- パラメーターの定義では、パラメーターの名前が自由形式演算内でサポートされている 命令コードのいずれかと同じでない限り、DCL-PARM 命令コードは省略可能です。
自由形式ステートメントはセミコロンで終わります。
通常、自由形式の行で // の後にあるすべてのテキスト は注記と見なされます。 ただし、// が文字リテラルの中にある場合は、リテラルの一部であると見なされます。 次の例では、 1 、 2 、 および 4 は注記ですが、 3 は、// がリテラルの中にあるため注記ではありません。
注記ではないコードの後に続いて同じ行にある // は、行末コメントと呼ばれることもあります。
2 および 4 の注記
は行末コメントです。
// comment 1
DCL-S string // comment 2
CHAR(10);
string = 'abc // not-comment 3 +
'def'; // comment 4
自由形式演算内での使用をサポートされている命令コードのリストについては、 命令コードを参照してください。
各タイプの自由形式ステートメントについては、以下を参照してください。