ソースコード中の $SET文

多くのコンパイラ指令は、プログラムソースコード内で $SET 文を使用して指定することができます。このようにして指定されたコンパイラ指令で、$COBDIR/etc/cobopt または COBOPT に指定されているオプションを補足、または上書きできます。ただし、生成フェーズの指令は $SET 文を使用して指定することはできません。

$SET 文は、7 桁目に $ 文字を記述し、次の形式で指定します。

$SET directive["parameter"] ... 

パラメータの内容は次の通りです。

directive 『コンパイラへの指令』の章で説明しているコンパイラ指令のうち、フェーズ欄に「構文チェック」と記されている指令のいずれかを指定します。生成フェーズの指令は指定できません (フェーズ欄に「生成」と記されている指令)。
parameter directive の修飾語です。次のいずれかの形式で指定します。

"parameter"

または

(parameter)

parameter の前に等号 (=) を指定する形式は、$SET 文では使用できません。parameter に空白文字を含める場合は、二重引用符 ("") で囲む形式でなければなりません。かっこ ( ) で囲む形式では、空白文字を含めることができません。

... 同じ形式で、コンパイラ指令を更に後に指定できることを示します。

$ 文字は 7 桁目に記述する必要があります。7 桁目以外の場所に指定しても、コンパイラで認識されず、無意味なエラーメッセージが生成される可能性があります。ソースファイルの最初に指定する文字がコンパイラで認識されない場合は、いずれも同様のエラーが生成されます。また、$SET 文はの終わりにピリオド (.) をつけないでください。

複数の指令を指定する場合は、各指令を空白文字で区切る必要があります。$SET 文は、複数行にわたって指定することはできませんが、後に $SET 文を追加することができます。

作成したソースコードに、複数の $SET 文を指定することができます。$SET 文は、コード内のどこにでも指定することができます。方言制御用のコンパイラオプション、たとえば、ANS85 を指定する場合は、最初の $SET 文に指定する必要があります。つまり、ソースファイル内で、他の $SET 文を除いたどのソース文よりも先にこの文が処理されるようにします。方言制御用のオプションは、一旦ソースコードの先頭に指定すると、プログラム内で後からこの設定を解除することはできません。最初の $SET 以外の $SET に設定した指令は、その指令が設定された $SET 以降のコンパイルで有効になります。

あるプログラムだけが、ほかのプログラムでは使用されない特殊な通貨記号を使用している場合、プログラムの先頭に以下の行を追加します:

$set currency-sign"157"