ソースコードに加えられた変更は、ユーザーが選択した COBOL 方言やデータ名と競合する可能性があります。 注意深く選択することで、問題の発生を容易に回避することができます。
ユーザーのコードが、プリプロセッサが利用するのに必要な機能をサポートしていない方言に準拠している場合には、考慮すべき事項が 2 つあります。 まず、準拠していないコードにはフラグがつけられます。次に、必要な予約語が辞書にない可能性があります。
フラグの問題を解決するには、コンパイラで、プリプロセッサが挿入した行にフラグをつけないようにします。 すべての必要な予約語を使用できるようにするには、プリプロセッサが行設定、たとえば、ANS85 指令を生成できるようにします。
ただし、この方法では予期しない副作用が発生します。いくつかの文の動作が変わり、有効であったデータ名が予約語となり受け付けられなくなる可能性があります。
1 つの方法として、どの語が実際に必要かを調べ、ADDRSV 指令を使用して実際に必要な語のみを追加するという方法があります。 たとえば、予約語 FUNCTION が必要な場合は、ADDRSV(FUNCTION) 指令を使用して追加することができます。 ただし、この場合もユーザーコードで FUNCTION をデータ名として宣言している場合には、問題が発生する可能性があります。最もよい解決方法は ADDSYN 指令を使用し、FUNCTION のかわりにユーザーが使用しそうもない語を選択することです。
たとえば、指令 ADDSYN "FUNCTION" = "PREPGEN--FUNCTION" を生成し、コードを生成するときに FUNCTION ではなく PREPGEN--FUNCTION を使用します。
注: ADDSYN を使用すると、それ以降にそのソースを処理するプリプロセッサで混乱が発生する可能性があります。
プリプロセッサがそれ自体で使用するため、データを作成する必要がある場合は、ユーザーが選択しそうもない名前を選択してください。 上記の場合では、PREPGEN--USERID のような名前を選択すれば、ユーザーが選択した名前と競合する可能性は少なくなります。ただし、USERID のみでは問題が発生する可能性があります。