COBOL のコンパイラ指令の設定

コンパイラの動作は、指令を通じて制御することが可能です。たとえば、生成する出力やコンパイルするコード、コンパイルしたコードの実行時の動作などを制御できます。通常使用する必要がある指令は限られており、そのほとんどはデフォルト値を使用します。

重要: 一部の指令は、設定することで他の指令のデフォルト設定に影響します。たとえば、1 つの指令を設定することによって別の指令が自動的に設定解除される場合や、複数の指令の設定が相互に排他的である場合があります。

IDE では、プロジェクト内の 4 つのレベルでコンパイラ指令を設定できます。

  • プロジェクト設定レベル:プロジェクトのプロパティ ダイアログ ボックスから、[Micro Focus > Project Settings > COBOL] を選択します。

    このレベルで設定された指令は、現在のプロジェクトのすべてのプログラムに適用されます。

  • ビルド構成:プロジェクトのプロパティ ダイアログ ボックスから、[Micro Focus > Build Configurations] を選択します。

    このレベルで設定された指令は、特定のビルド構成でビルドされるプログラムに適用されます。ここで設定された指令は、[Project Settings] で設定された内容とマージされるか、それらの内容をオーバーライドします。

  • フォルダー レベル (ネイティブ COBOL のみ):フォルダーを右クリックし、[Properties] をクリックします。[COBOL] タブでフォルダー固有の設定を有効にし、その画面で指令を追加するか、[COBOL > SQL Preprocessor] タブおよび [COBOL > Additional Preprocessors] タブを開き、それらの画面でプリプロセッサ指令を追加します。

    ここで設定された指令は、そのフォルダー内のすべてのプログラムに適用されます。ビルド構成およびプロジェクトのプロパティで設定された内容とマージされるか、それらの内容をオーバーライドします。

  • プログラム レベル (ネイティブ COBOL のみ):プログラムを右クリックし、[Properties] をクリックします。[COBOL] タブでフォルダー固有の設定を有効にし、その画面で指令を追加するか、[COBOL > SQL Preprocessor] タブおよび [COBOL > Additional Preprocessors] タブを開き、それらの画面でプリプロセッサ指令を追加します。

    このレベルで設定された指令は、特定のプログラムに適用されます。フォルダーのプロパティ、ビルド構成、およびプロジェクトのプロパティで設定された内容とマージされるか、それらの内容をオーバーライドします。

    注: プリプロセッサがプロジェクトまたはビルド構成に対して有効になっていない場合にのみ、SQL プリプロセッサをファイル レベルで指定できます。

上位レベル (プロジェクト レベルが一番上でファイル レベルが一番下) から継承されたすべての指令を削除することで、上位レベルの指令とマージするプロセスをオーバーライドできます。COBOL プロパティ ページで、構成固有の設定を有効にしてから、[Override settings from a higher level (instead of merging)] を選択します。このオプションが選択されていない場合、上記で説明した通常の継承動作が継続されます。

ヒント: ファイルに対して適用されるすべての指令を表示するには、[Display a Compiler directives summary] アイコン ([Display a compiler directives summary inside the COBOL editor]) をクリックします。このオプションにより、ファイルに対して現在設定されているすべての指令の詳細を示す 2 行のサマリー (エディターの下部に表示) のオンとオフが切り替わります。このオプションが表示されない場合は、[Window > Preferences > COBOL > Editor] をクリックし、[Show compiler directives summary in editor] を選択します。このセクションの現在の背景色を選択し、パレットから新しい色を選択することで、このサマリーで使用する背景色を設定することもできます。

これらの各レベルで設定された指令は、.mfdirset ファイルに書き込まれます。これらのファイルはプロジェクトの異なるレベルに適用することもできます。詳細については、「指令セットの構成」を参照してください。

このほかにも、コマンド ラインでソース コードに設定を含める ($SET コマンドを使用) など、さまざまな方法でコンパイラ指令を設定できます。

IDE で指令を指定する際、各指令はスペースで区切り、引数は角かっこまたは引用符で囲んで指定します。たとえば、charset"ascii" dialect(MF) のように指定します。特定の指令で複数の引数を指定する場合は、スペースで区切ります。たとえば、outdd(sysout 121 r e) または ACTUAL-PARAMS"MyInterface ClassA ClassB" のように指定します。

重要: RDBMS を使用するアプリケーションでは、ビルド構成にいくつかの追加指令の設定が必要となる場合があります。