RPG

392. EVAL の紹介

ILE-RPG に移行すると最初に多くなる特徴的な演算命令が EVAL である。
EVAL とは ILE-RPGだけの演算命令で = という意味で値を変数(フィールド)に代入することを
意味する。

             EVAL SURYO = 2800

という記述はフィールドSURYO に 2800という値を代入するという意味である。
これは

             Z-ADD 2800        SURYO

と同じである。
文字フィールドの場合でも同じく EVAL を使用することができて

             EVAL NAME = '京都'

という演算は文字フィールド: NAME に「京都」という文字列を左寄せで
代入することを意味する。
これは

             MOVEL'京都'      NAME

と同じである。
数字フィールドの Z-ADDによる代入も文字フィールドの MOVELによる代入も
ひとつの EVAL で表すことができる。
EVAL をフリー・フォーマットで記述する場合はEVALの記述は不要で

  /FREE
     SURYO = 2800;
     NAME  = '京都';
  /END-FREE

のようにEVALを省略して記述することができるので記述は直感的でわかりやすくなる。
EVALは演算命令としてはやや不自然であるがフリー・フォーマットにすれば
消えてしまうという一時的な命令にように見える。