コンパイル・エラーの修正に有用なコンパイラー・リストの主要なセクションは以下のとおりです。
ソース・セクションにあるインライン診断メッセージはコンパイラーが すぐにフラグを付けることができるエラーを示します。 その他のエラーはコンパイル時に追加の情報が受け取られてからフラグが 付けられます。 これらのエラーにフラグを付けるメッセージは、ソース・セクションおよび 追加のメッセージ・セクションにあります。
コンパイル・エラーの訂正を援助するために、また特にユーザーが RPG の初心者の場合、 リストに第 2 レベルのメッセージを組み込みたい場合が あります。 これを実行するためには、どちらかの作成コマンドで OPTION(*SECLVL) を指定します。これにより、第 2 レベルのテキストがメッセージ要約にリストされた メッセージに追加されます。
最後に、コンパイラー・リストがプログラムのレコードであることを忘れないでください。したがって、プログラムのテスト中にエラーを見付けた場合には、 ソースが思ったとおりにコード化されていることを検査するために、 このリスト出力を使用することができます。 ソースの他に確認したいリスト出力の一部に以下のものが含まれて います。
突き合わせフィールドで RPG サイクルを使用している場合には、これを すべての突き合わせフィールドの長さが正しいか、正しい位置にあるかを確認する のに使用することができます。
リテラル・テキストまたはフィールド名と一緒に開始位置および終了位置を リストします。 これを使用して、出力仕様書のエラーを確認してください。
ALTSEQ と FTRANS レコードおよびテーブルがリストされます。NLSS 通知およびテーブルがリストされます。 テーブルおよび配列が明示的に識別されます。これを使用して 正しい順序でコンパイル時データを指定したこと、およびコンパイラーに対し SRTSEQ および LANGID パラメーターの正しい値を指定したことを確認してくだ さい。
2 つのタイプのインライン診断メッセージがあります。 フィンガーとノンフィンガーです。フィンガー・メッセージは、 どこでエラーが起きたかを正確に示します。 図 34 は、フィンガー・インライン診断メッセージの例を示したものです。
行 <--------------------------ソースの仕様 ----------------------------------><------ 注記 -----> DO PAGE 変更 SRC SEQ 番号 ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 NUM 行 日付 ID 番号 63 C SETOFF _12___ 003100 ======> AAHH ======> CCCCCC *RNF5051 20 A 003100 結果の標識の項目が正しくありません。省略時の値としてブランクが使用されます。 *RNF5051 20 B 003100 結果の標識の項目が正しくありません。省略時の値としてブランクが使用されます。 *RNF5053 30 C 003100 結果の標識の項目が指定された操作に対してブランクです。
この例では、標識が 71 〜 72 桁目または 73 〜 74 桁目ではなく間違って 72 〜 73 桁目 に入れられています。 3 つのフィンガー 'aa'、'bb'、および 'cccccc' がエラーのある行の一部を識 別します。 実際の欄はメッセージによってさらに説明される変数によって、 強調表示されます。この場合には、メッセージ RNF5051 は、'aa' および 'bb' で印が付けられた フィールドには正しい標識が入っていないことを示しています。 正しい標識がないために、コンパイラーはフィールドがブランクであると見なし ます。 しかし、SETOFF 命令が標識を必要とするので、 'cccccc' およびメッセージ RNF5053 によって指摘されたように別のエラーが起こります。
エラーは見付かった順序でリストされます。 一般的に、 しばしば他のエラーの原因となるため最初のいくつかの 重大度 30 および 40 のエラーの訂正に重点を置くべきです。
ノンフィンガー・インライン診断メッセージもまたエラーを示します。 しかし、これらはただちにエラーの行に続いて出されるわけではありません。 図 35 は、ノンフィンガー・インライン診断メッセージの例を示したものです。
行 <--------------------------ソースの仕様 ----------------------------------><------ 注記 -----> DO PAGE 変更 SRC SEQ 番号 ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 NUM 行 日付 ID 番号 1 D FLD1 S +5 LIKE(FLD2) 000100 2 D FLD2 S D 000200 *RNF3479 20 1 000100 指定されたデータ・タイプのフィールドでは長さ調整はできません。
この例では、FLD1 は FLD2 と同じように 5 バイト以上の長さで定義されます。後から FLD2 は日付として定義されますが、これは FLD1 の定義において 長さの調整を無効にします。 メッセージ RNF3479 は、リストの 1 行目を指して 出されます。SEU 順序番号 (000100) も与えられますが、これは、エラーのソース行をより早く見つけるのを 助けるためであることに注意してください (また、SEU 順序番号はリスト出力行 1 にも入っています)。
追加の診断メッセージのセクションは複数のコード行の検討で見付かる エラーを指定します。 これらのメッセージは、問題のあるコード内には置かれません。 一般的には、ソースのその部分の検査時にコンパイラーは、 何か問題があることは分かりません。 しかし、可能な場合には、リスト出力行番号および SEU 順序番号または (メッセージに関連するソース行の) ステートメント番号がメッセージ行に入れられます。
SEU 分割 / ブラウズ・セッション (F15) によって、出力待ち行列の コンパイラー・リストをブラウズすることができます。 ソース・コードに必要な変更を加えながら、 前のコンパイルの結果を表示することができます。
コンパイラー・リストのブラウズ中に、エラーを走査し、エラーのあるこれらの ソース・ステートメントを訂正することができます。 エラーを走査するには、ブラウズ・セッションの SEU コマンド行 に F *ERR を入力します。 最初の (または次の) エラーがある行は強調 表示され、同じメッセージの第 1 レベル・テキストが画面の最下部に現れます。最下部のメッセージにカーソルを置き F1 (ヘルプ) キーを押すことによって、 第 2 レベル・テキストを見ることができます。
可能な時は、リスト中のエラー・メッセージは、エラーのある行の SEU 順序 番号を指定します。 順序番号は、メッセージ・テキストの直前にあります。
コンパイラー・リストのブラウズについての詳細な情報は、「AS/400 適用業務開発ツールセット AS/400 用 原始ステートメント入力ユーティリティー 使用者の手引きと参照」を 参照してください。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.