プリプロセッサーまたはコンパイラーがエラーまたはエラーの可能性を 検出すると、メッセージが生成されます。 プリプロセッサーが生成したメッセージは、プリプロセッサーが処理した ステートメントのリストの直後のリストに印刷されます。 %NOTE ステートメントを使用すると、プリプロセス段階でユーザー独自の メッセージを生成できます。 このようなメッセージは、特定の置換が何回行われたかを示すのに 使用できます。 コンパイラーが生成したメッセージはリストの最後に印刷されます。
メッセージを生成しないコンパイルであっても、コンパイラー・メッセージがリストされるはずの行に、「コンパイラー・メッセージはありません (no compiler messages)」というメッセージが含まれます。
メッセージは次のフォーマットで示されます。
PPPnnnnI X
PPP はメッセージの発信元を識別する接頭部 (例えば、IBM という 接頭部の場合は PL/I コンパイラー)、nnnn は 4 桁のメッセージ番号、X は重大度コードを示します。 メッセージはすべて重大度により格付けされます。重大度コードは、I、W、 E、S、および U です。
各コンパイル・ジョブまたはジョブ・ステップごとにコンパイラーは、 操作がどの程度成功または失敗したかをオペレーティング・システムに 示すための戻りコードを生成します。z/OS の場合、このコードはステップの終わり メッセージに 現れますが、その前には各ステップ別のジョブ制御ステートメントと ジョブ・スケジューラー・メッセージのリストが入っています。
表 5 は、重大度コードおよび同等な戻りコードの説明です。
|
重大度コード |
戻りコード |
メッセージ のタイプ |
説明 |
|---|---|---|---|
|
I |
0000 |
通知 |
コンパイルされたプログラムは正常に実行されます。 非効率になる可能性のあるコードや、その他の注意すべき条件がある と、コンパイラーはユーザーに通知します。 |
|
W |
0004 |
警告 |
構文的には有効でも、ステートメントにエラー (警告対象) がある 場合があります。 コンパイルされたプログラムは正常に実行されても、予期に反する結果 になったり、著しく非効率になったりする場合があります。 |
|
E |
0008 |
エラー |
コンパイラーにより修正されたエラー。 コンパイルされたプログラムは正常に実行されても、予期に反する結果 になる場合があります。 |
|
S |
0012 |
重大 |
コンパイラーにより修正されないエラー。 プログラムがコンパイルされ、オブジェクト・モジュールが 生成されても、そのモジュールを使用してはなりません。 |
|
U |
0016 |
回復不能 |
コンパイルを強制終了させるエラー。 オブジェクト・モジュールは正常には作成されません。 |
|
注:
コンパイラー・メッセージはこれらの重大度レベルにより
グループ別に印刷されます。 |
|||
コンパイラーは、表 6 に示すように、FLAG オプションで 指定されたメッセージの重大度に等しいかより大きい重大度を持つメッセージだけを リストします。
| メッセージのタイプ | オプション |
|---|---|
| 通知 | FLAG(I) |
| 警告 | FLAG(W) |
| エラー | FLAG(E) |
| 重大エラー | FLAG(S) |
| 回復不能エラー | 常にリストされる |
各メッセージのテキスト、説明、およびプログラマーに推奨する処置については、「Enterprise PL/I メッセージおよびコード」を参照してください。