コンパイラの動作は、指令を通じて制御することが可能です。たとえば、生成する出力やコンパイルするコード、コンパイルしたコードの実行時の動作などを制御できます。通常使用する必要がある指令は限られており、そのほとんどはデフォルト値を使用します。
IDE では、プロジェクト内の 4 つのレベルでコンパイラ指令を設定できます。
このレベルで設定された指令は、現在のプロジェクトのすべてのプログラムに適用されます。
このレベルで設定された指令は、特定のビルド構成でビルドされるプログラムに適用されます。ここで設定された指令は、[Project Settings] で設定された内容とマージされるか、それらの内容をオーバーライドします。
ここで設定された指令は、そのフォルダー内のすべてのプログラムに適用されます。ビルド構成およびプロジェクトのプロパティで設定された内容とマージされるか、それらの内容をオーバーライドします。
このレベルで設定された指令は、特定のプログラムに適用されます。フォルダーのプロパティ、ビルド構成、およびプロジェクトのプロパティで設定された内容とマージされるか、それらの内容をオーバーライドします。
上位レベル (プロジェクト レベルが一番上でファイル レベルが一番下) から継承されたすべての指令を削除することで、上位レベルの指令とマージするプロセスをオーバーライドできます。COBOL プロパティ ページで、構成固有の設定を有効にしてから、[Override settings from a higher level (instead of merging)] を選択します。このオプションが選択されていない場合、上記で説明した通常の継承動作が継続されます。
これらの各レベルで設定された指令は、.mfdirset ファイルに書き込まれます。これらのファイルはプロジェクトの異なるレベルに適用することもできます。詳細については、「指令セットの構成」を参照してください。
このほかにも、コマンド ラインでソース コードに設定を含める ($SET コマンドを使用) など、さまざまな方法でコンパイラ指令を設定できます。
IDE で指令を指定する際、各指令はスペースで区切り、引数は角かっこまたは引用符で囲んで指定します。たとえば、charset"ascii" dialect(MF) のように指定します。特定の指令で複数の引数を指定する場合は、スペースで区切ります。たとえば、outdd(sysout 121 r e) または ACTUAL-PARAMS"MyInterface ClassA ClassB" のように指定します。