REPLACING 句 (形式 2 と 3)
- ID-3 またはリテラル-1
- サブジェクト・フィールド。
- ID-5 またはリテラル-3
- 置き換えフィールド。
サブジェクト・フィールドおよび置き換えフィールドは、同じ長さでなければなりません。
置き換えには次の規則が適用されます。
- サブジェクト・フィールドが表意定数である場合には、サブジェクト・フィールドは 1 文字の非数字リテラルと見なされます。 検査される項目中の表意定数と等しい文字が、置き換えフィールドの 1 つの文字に置き換えられます。 置き換えフィールドは長さが 1 文字でなければなりません。
- 置き換えフィールドが表意定数である場合には、 そのフィールドはサブジェクト・フィールドと同じ長さであると見なされます。 検査される項目にあるサブジェクト・フィールドの重複しない各オカレンスは、 置き換えフィールドに置き換えられます。
- サブジェクト・フィールドおよび置き換えフィールドが文字ストリングである場合には、 検査される項目中に重複しないサブジェクト・フィールドが現れるたびに、それが置き換えフィールドで指定された文字ストリングに置き換えられます。
- 検査される項目の所定の文字位置で置き換えが一度行われた後は、 この INSPECT ステートメント実行中には、この文字位置に対する置き換えは行われません。
CHARACTERS 句を使用する場合、リテラル-3 または ID-5 の長さは 1 文字で、リテラル-2 または ID-4 の長さは 1 文字でなければなりません。
BEFORE 句も AFTER 句も指定されていない場合には、INSPECT REPLACING ステートメントの実行時に次の処置が取られます。
- CHARACTERS 句が指定されている場合、置き換えフィールドの 長さ は 1 文字でなければなりません。検査されるフィールドの各文字は、この置き換えフィールドによって置き換えられます。 このプロセスは左端の文字から開始され、右端の文字まで続けられます。
- ALL 句が指定されている場合、検査される項目中のサブジェクト・フィールドの重複しない各オカレンスは、置き換えフィールドによって置き換えられます。 これは左端の文字から開始され、右端の文字まで続けられます。
- LEADING 句が指定されている場合は、検査される項目中のサブジェクト・フィールドの重複しない一連の各オカレンスは置き換えフィールドによって置き換えられます。 ただしこれは、そのような左端のオカレンスが比較の開始点であり、該当する計数オペランドが関与できる最初の比較サイクルにこの開始点があることを前提にしています。
- FIRST 句が指定されている場合には、 検査される項目の中で左端にサブジェクト・フィールドの内容が現れたときに、それが置き換えフィールドによって置き換えられます。