データ名の競合の回避

一部のデータ名は、外部コンテキストで使用されると短縮されます。

本来予約語になる可能性のある名前をアイテムに付与できるようにするため、COBOL データ名の始めに「#」文字を使用できます (#Move など)。名前が外部化されると、「#」記号は名前から削除されます。そのため同じコンテキストに、先頭に「#」記号があるかどうかだけが違う 2 つの COBOL 名がある場合、それらの名前が両方外部化されるとエラーになります。

名前が外部化されるコンテキストの例としては、クラス内のインスタンスまたは静的データであるフィールド、列挙に関連付けされたレベル 78 定数などが挙げられます。たとえば、以下の列挙定義ではエラーが発生します。

Enum-id MyEnum.
  78 Red value 1.
  78 #Red value 2.
End enum.