ソース コードに加えられた変更によって、ユーザーが選択した COBOL 方言またはデータ名との間で競合が生じる可能性があります。ここでは、そのような問題を回避するための注意点を説明します。
ユーザーのコードが、プリプロセッサで使用する必要がある機能をサポートしていない方言に準拠している場合には、考慮すべき事項が 2 つあります。1 つは、その方言に準拠しないコードがフラグ付けされる点、もう 1 つは必要な予約語が辞書に格納されていない可能性がある点です。
フラグ付けの問題を解決するには、コンパイラで、プリプロセッサが挿入した行にフラグを付けないようにします。すべての必要な予約語を使用できるようにするには、プリプロセッサで $SET 文を生成して ANS85 などの指令を指定できるようにします。
ただし、この方法では予期しない副作用が発生します。一部の文の動作が変わり、有効であったデータ名が予約語となり受け付けられなくなる可能性があります。
解決策の 1 つとして、どの語が実際に必要かを調べ、ADDRSV 指令を使用して実際に必要な語のみを追加するという方法があります。たとえば、予約語 FUNCTION が必要な場合は、ADDRSV(FUNCTION) 指令を使用して追加することができます。ただし、この場合も、ユーザー コードで FUNCTION がデータ名として宣言されていると、問題が発生することになります。最善の解決方法は、ADDSYN 指令を使用し、FUNCTION の代わりにユーザーが使用しそうもない語を選択することです。
たとえば、指令 ADDSYN "FUNCTION" = "PREPGEN--FUNCTION" を生成した後、コードを生成する際に FUNCTION ではなく PREPGEN--FUNCTION を使用します。
プリプロセッサがそれ自体で使用するためにデータを作成する必要がある場合は、ユーザーが選択しそうもない名前を選択してください。上記の場合では、USERID のみでは問題が発生する可能性がありますが、PREPGEN--USERID のような名前を選択すれば、ユーザーが選択した名前と競合する可能性は少なくなります。
UNIX では大文字と小文字が区別されます。呼び出し文で大文字と小文字を正しく使用する必要があります。たとえば、プログラムの名前が xxx.cbl である場合、CALL (XXX) という文は RTS173 エラーを返します。