EVALR (式の評価、右寄せ)
自由形式構文 | EVALR{(MR) } 結果 = 式 |
コード | 演算項目 1 | 拡張演算項目 2 | ||||
---|---|---|---|---|---|---|
EVALR (M/R) | 割り当てステートメント |
EVALR 命令コードは、結果=式の形式の割り当てステートメントを評価 します。 式が評価されると、結果が結果の中で右寄せされます。 したがって、結果をリテラルまたは定数とすることはできず、固定長 の文字、図形、または UCS-2 のフィールド名、配列名、配列要素、データ構造、 データ構造サブフィールド、または %SUBST 組み込み関数を使用したストリングと しなければなりません。 式のタイプは結果のタイプと同じでなければなりません。 結果は右寄せ され、必要に応じて、左側がブランクで埋め込まれるか、左側で切り捨てられます。
注: EVAL 命令と異なり、EVALR の結果のタイプは文字、図形、または UCS-2 に
しかできません。
また、固定長の結果フィールドしか使用できませんが、%SUBST に
は、この組み込み関数が式の左の部分を成すのであれば、可変長フィールドを
含むことができます。
結果が指標のない配列や 配列 (*) として指定された配列を表す場合に は、演算での配列の指定に説明されている規則に従って、 結果のそれぞれの要素に式の値が割り当てられます。 そうでない場合には、式が一度評価されて、その値が配列またはサブ配列のそ れぞれの要素に入れられます。
式の概要については、式を参照してください。数値式の精度に関する 規則については、数値演算の精度の規則を参照してください。これは、式に 除算命令が入っている場合、または EVALR が いずれかの命令拡張を使用する場合には、特に重要です。
図 1. EVALR 命令
*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++
D Name S 20A
/FREE
eval Name = 'Kurt Weill';
// Name is now 'Kurt Weill '
evalr Name = 'Johann Strauss';
// Name is now ' Johann Strauss'
evalr %SUBST(Name:1:12) = 'Richard';
// Name is now ' Richard Strauss'
eval Name = 'Wolfgang Amadeus Mozart';
// Name is now 'Wolfgang Amadeus Moz'
evalr Name = 'Wolfgang Amadeus Mozart';
// Name is now 'fgang Amadeus Mozart'
/END-FREE