RPG

94. ILE変換のシフト文字エラーを回避するには?

RPG III の中の記述で漢字のシフト文字 (0x0e, 0x0f) を定義するために2バイトで
'><' を作成してから、左1バイトを MOVELで取り出して 0x0e を取得して、
右1バイトを MOVE で取り出して 0x0f を作成するという手法はよく行われる手法である。

0001.00      C                     MOVE '  '      OEOF    2 
0002.00      C                     MOVELOEOF      OE      1 
0003.00      C                     MOVE OEOF      OF      1 

しかし、このRPGソースを CVTRPGSRCコマンドによってILE-RPGに変換すると
不正な文字としてコンパイル・エラーの原因となってしまう。
SEU でも不正文字として見なされてしまう。
そこで '><' の部分を X'0E0F' で、下記のように置き換えればコンパイル・エラーを回避することができる。
これは EnterpriseServer Ver3.0 の TONAKAI によるCGI への移行でも使用されている。

0001.00 C                   MOVE      X'0E0F'       OEOF              2 
0002.00 C                   MOVEL     OEOF          OE                1 
0003.00 C                   MOVE      OEOF          OF                1