SEU で COBOL 構文検査機能を使用する

COBOL 構文検査機能を SEU で使用するには、STRSEU コマンドの TYPE (CBLLE) パラメーターを指定します。 COBOL 構文検査機能は、新しい行を入力したり既存の行を変更する際に、エラーがないかどうか各行を検査します。 誤ったソース・ステートメントが識別され、エラー・メッセージが表示されるので、 プログラムをコンパイルする前にそのエラーを訂正できます。

ソース行を入力したり変更を加えるときはいつでも、 ソース・コードの他の行は構文検査単位の一部として構文検査されます。 単一の構文検査の単位の長さは、次のように、入力または変更された行から拡張することによって判別されます。

COBOL 構文検査機能は、入力または変更を加えた 1 文だけを、 先行または後続する文から独立して検査するので、 各ソース・ステートメント内の構文エラーだけが検出されます。 未定義名および名前の参照間違いなどの、相互関係のエラーは検出されません。 それらのエラーは、プログラムがコンパイルされるときに ILE COBOL コンパイラーによって検出されます。

反対に、変更されたのが見出し部のオプショナルの段落であるコメント記入項目の一部となっている文である場合、 構文検査機能は、その文脈では任意の組み合わせの文字が入力可能であることを認識できません。 文の内容を有効な COBOL ステートメントとして識別しようとするため、 エラーを何度も生成してしまう可能性があります。 これは、段落名と同じ行で始まる単一文としてコメント記入項目を入力することにより、 または一連の複数のコメント行に置き換えることにより、回避することができます。

構文検査の単位にエラーがある場合、エラーがあると識別された単位の部分は反転表示されます。 画面下部のメッセージは、単位内の最初のエラーについてのものです。

構文検査は、ソース・コードが入力されるたびに行われます。 入力行の内容が不完全なステートメントであるなら、そのたびにエラー・メッセージが生成されます。 これらのエラー・メッセージは、例にあるように、ステートメントが完了すると消えます。

図 4. 不完全なステートメントに対して生成される COBOL 構文検査機能のエラー・メッセージ
  桁 . . . . . :      1  71          編集                     TESTLIB/QCBLLESRC
 SEU==> _____________________________________________________________   ADDATOB
 FMT CB ......-A+++B+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        ****************  データの始め  ***************************************
0000.10        IDENTIFICATION DIVISION.
0000.20        PROGRAM-ID. ADDATOB.
0000.30        ENVIRONMENT DIVISION.
0000.40        CONFIGURATION SECTION.
0000.50          SOURCE-COMPUTER. IBM-ISERIES.
0000.60          OBJECT-COMPUTER. IBM-ISERIES.
0000.70        DATA DIVISION.
0000.80        WORKING-STORAGE SECTION.
0000.90        01  A     PIC S9(8) VALUE 5.
0001.00        01  B     PIC S9(8) VALUE 10.
0001.10        PROCEDURE DIVISION.
0001.20        MAINLINE.
0001.30           MOVE A
'''''''
        ****************  データの終わり  *************************************

F3= 終了   F4= プロンプト   F5= 最新表示   F9= コマンドの複写   F10= カーソル
F11= 切り替え      F16= 検索の反復     F17= 変更の反復     F24= キーの続き
COBOL 予約語または特殊文字 'TO' が必要である。'TO' と見なされます。           +
図 5. COBOL 構文検査機能のエラー・メッセージはステートメントの完了後消える
  桁 . . . . . :   1  71            編集                      TESTLIB/QCBLLESRC
 SEU==> _____________________________________________________________   ADDATOB
 FMT CB ......-A+++B+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        ***************  データの始め  ****************************************
0000.40        IDENTIFICATION DIVISION.
0000.50        PROGRAM-ID. ADDATOB.
0000.60        ENVIRONMENT DIVISION.
0000.70        CONFIGURATION SECTION.
0000.80          SOURCE-COMPUTER. IBM-ISERIES.
0000.90          OBJECT-COMPUTER. IBM-ISERIES.
0000.91        DATA DIVISION.
0000.92        WORKING-STORAGE SECTION.
0000.93        01  A     PIC S9(8) VALUE 5.
0000.94        01  B     PIC S9(8) VALUE 10.
0001.00        PROCEDURE DIVISION.
0001.10        MAINLINE.
0002.00            MOVE A
0003.00            TO B.
'''''''
        ***************  データの終わり **************************************
F3= 終了  F4= プロンプト F5= 最新表示   F9= コマンドの複写   F10= カーソル
F11= 切り替え    F16= 検索の反復    F17= 変更の反復      F24= キーの続き

最初の行が入力された段階でエラー・メッセージが生成されますが、2 番目の行が入力されてステートメントが完了すると消えます。

ILE COBOL ソース・コードの構文検査には、次の規則が適用されます。