|
ぽてとです。
$_MBの説明については、開発履歴に書いてありますので、多少参考になるかもしれません。
開発履歴から抜粋
■2012/02/18 ver0.472/0.04
・\マクロの記述形式で、新たに \マクロ名(パラメータ,パラメータ2,…)(パラメータB,パラメータB2,…) という書き方が可能になった。
※他にも書いてありますが長くなるので抜粋しました。
■以下は推測による解説
作者ではないので詳細な挙動は分かりませんが、私の推測による認識で説明させていただきます。推測であり間違っている可能性がありますので参考程度でお願いします。
$_Mは第1パラメータ群(〜20)です。
$_MBは第2パラメータ群(〜20)です。
Yu-risから見た$_Mと$_MBの違いは()()による1番目の括弧か2番目の括弧かの記述位置の違いを区別する違いでしかないと考えてます。
ERISでの使用方法では下記のように記述しています。
macro[name=CG.EXIST name2=cg.exist str="GOSUB[#=es._cg.exist PSTR=$_M];$_MB" def="''" sufb="=@_RINT(1);"]
ERISでの使用方法で第2パラメータ群を戻り値として使用を制限することでマクロの引数と戻り値の記述を簡易化する事に成功しています。
ERISでは下記のようにマクロを記述する事が出来るようにしています。
\マクロ名(引数1〜20)(戻り値1〜20)
今回の場合、実態の記述としては下記のように記述が可能となっています。
\CG.EXIST(CGファイル名)(@r)
※@r は戻り値を格納する変数です。
$_MBを端的に説明すると$_Mだけでは足りない人向けのマクロ専用拡張システム変数です。
これをERISでは戻り値専用に使用しているという事です。
※戻り値以外で使用している場所は見つかっていないのでそう考えています。
■補足
$_MBとSUFBを使用しない場合のERISマクロの記述を書くと下記のようになります。
\CG.EXIST(CGファイル名);INT[@r=@_RINT(1)]
や
INT[@r]
\CG.EXIST(CGファイル名)
@r=@_RINT(1)
■最後に
内容については私の推測による回答ですので間違っている個所、過不足のある個所などが多分にあると思います。
その点についてはご容赦お願いします。
以上、お役に立てればと思います。
|
|
|