CLISTの構文
レコード形式と文字セット
CLISTはJCL同様に1行80バイトの固定長の区分データセットにメンバーとして作ります。CLISTの規則では1つのステートメントは最大32756バイトまで許されるため可変長データセットに作成することも可能ですが、エディターの使い勝手(頻繁な左右スクロール)を考えると80バイト・レコードが無難でしょう。
CLIST内のステートメントはアルファベットの大文字を使います。変数名には小文字を使うこともできますが、日本では多くのユーザーが小文字の代わりにカタカナを使う文字セットを使用するので、基本的には英大文字、数字、記号文字を使うと考えていいでしょう。
ステートメントの構文
基本的には自由形式です。何桁目から何を書かねばならない、という決まりはありません。またレコードの右端8桁は(シーケンス番号が振られているものとして)無視されるため、固定長80バイトレコードのメンバーの場合、各行の1~72桁目の間に記述する必要があります。有効桁の範囲内であれば、命令やパラメーターをどこから書いてもかまいません。
ステートメントは記述順に上から下へ向かって順番に解釈されて実行されます。
ステートメントの継続
ステートメントが長く1行に書ききれない時は、次の行に継続することができます。JCLと違ってカンマではなく+もしくは-文字で継続することを示します。CLISTでは命令やパラメーターの途中で区切ることもできます。
1 2 3 4 5 |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 LISTCAT - ALL LIST+ ALC STATUS |
-記号は次の行の先行ブランクをステートメントに含め、+記号は次の行の先行ブランクを無視します。必要に応じて使い分けますが、+記号だけを覚えておいてもいいでしょう。
ラベル
ステートメントにはラベルを付けることができます。ラベルは英字で始まる31文字までの英数字+#$@_で、直後にコロン:を付けます。通常ラベルは不要ですが、GOTOなどで他のステートメントから直接ジャンプするような場合に飛び先を示すために使われます。ラベルは単独で使用できず必ず何らかの命令を伴う必要があります。しかし、継続記号を使ってラベルだけを記述したようにすることもできます。
1 2 3 4 |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 LABEL1: IF A=100 THEN … LABEL2: + LISTALC STATUS |
ブランク行
CLISTを見やすくするため空白だけの行を入れることができます。
1 2 3 4 |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 LISTCAT ALL LISTALC STATUS |
コメント
コメントは2つあります。1つはコメント行で、ステートメント全体がコメントになります。もう1つがステートメント内コメントです。いずれもコメントの始まりは/*です。/*の後にコメント文字列を記述します。
1 2 3 4 5 6 7 8 9 |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 /* THIS IS COMMENT LINE ← 行全体がコメント LISTALC STATUS /* SHOW ALLOCATED DATASETS ← 行末にコメントを付ける /* SHOW ALLOCATED DATASETS */ LISTALC STATUS ← 行頭にコメントを付ける LISTALC /* SHOW ALLOCATED DATASETS */ STATUS ← 中間にコメントを付ける /* SHOW ALLOCATED + ← コメントを次行に継続 DATASETS */ LISTALC STATUS |
ステートメントの前や中間にコメントを付ける場合は、コメント文字列を/*と*/で囲みます。行全体と行末コメントでは*/によるコメントクローズは不要ですが、常に/*と*/で囲んでおけばどのような位置にもコメントを入れることができます。コメント内で改行し次の行へ継続させることもできます。