プリプロセッサの記述 - 概要

制約事項: この統合プリプロセッサはネイティブ COBOL 用にのみサポートされます。

本トピックでは、統合プリプロセッサを記述する方法、およびプリプロセッサとコンパイラ間で情報を受け渡すために使用するインターフェイスについて説明します。

プリプロセッサは COBOL 以外の言語でも作成できますが、ここでは COBOL での作成を前提として説明します。

統合プリプロセッサ インターフェイスの動作は、プリプロセッサによる前処理を編集形態の 1 つと捉えるシンプルな概念に基づきます。プリプロセッサは、ソース コードの各行を次のいずれかとしてマークします。

COBOL プログラムのコンパイル時、コンパイラは、ソース ファイルを直接読み取るのではなく、プリプロセッサを呼び出してプリプロセッサからコードを 1 行ずつ受け取ります。

IDE でのバックグラウンド構文チェック中にプリプロセッサが正しく機能するためには、そのプリプロセッサが「複数のプリプロセッサ」セクションに記載されているプリプロセッサのスタッキング プロトコルに準拠している必要があります。

デバッガーの動作は、オブジェクト コードの各行がどのようにソース コードの各行に変換されているかに依存します。上記のように、プリプロセッサによってソース コードの各行が分類されるため、オブジェクト コードがソース コードに一致しない場合でも、両者の行マッピングの有効性は維持されます。

重要: バックグラウンド解析機能には、スタックされたプリプロセッサが必要です。プリプロセッサがスタックされていない場合、エディター ビューでエラーのリアルタイム更新は行われません。また、エラーが発生する可能性もあります。

スタックされていないプリプロセッサを使用する場合は、バックグラウンド解析を [Preferences] ダイアログ ボックスでオフにする必要があります。それには、[Window > Preferences > Micro Focus > COBOL > Editor] を選択し、[Background parsing] を選択解除します。

プリプロセッサのテスト

プリプロセッサ プログラムは、デバッグする他のプログラムと同様にコンパイルする必要があります。

プリプロセッサ プログラムをデバッグ用にコンパイルした後、コンパイラ自体をデバッグ (つまり COBOL をデバッグ) するように、デバッガーを使用できます。コンパイラをデバッグ用にコンパイルすることはないため、コンパイラはデバッグされませんが、デバッグ用にコンパイルされたプリプロセッサなど、コンパイラが呼び出すプログラムはすべてデバッグされます。

WHEN/CATCH/ELSE/END-??? トークンを含む、前処理された生成文をデバッグする場合、デバッガーでは、これらのトークン自体をステップ実行するのではなく、最初の文を後で実行します。これは、プリプロセッサが動詞のステップ実行および停止を明示的に要求している場合も同様です。ステップ実行できるのは、前処理されたコード内にある実際の動詞のみです。