$ZLevel

$ZL[EVEL] は、Mが起動するスタックの中で、DOコマンド、XECUTEコマンド、外部関数によって引き起こされる"ネスティングレベル"を示している整数値を含みます。

$ZLEVELは初期値 ゼロ(0)を持ち、そして、DO、XECUTE、または外部関数などで1つずつ増える値を持ちます。1つのFORループを終了しないいくつかQUITは、$ZLEVELをデクリメントします。ZGOTOはまた$ZLEVELを減らすことができます。M標準規格に従って、FORコマンドは$ZLEVELを増加しません。Mルーチンは、SETやNEWコマンドで$ZLEVELを変更することはできません。

ZGOTOの引数で後で使用するレベルを捕獲するために、デバッグやエラー処理のメカニズムで$ZLEVELを使用してください。

例:

GTM>zprint ^zleve
zleve;
 do B
 write X,!
 quit
B
 goto C
 quit
C
 do D
 quit
D
 set X=$ZLEVEL
 quit
GTM>do ^zleve
4
GTM>

ダイレクトモードから実行されるこのプログラムは、$ZLEVELを4の値を生成します。もしシェルからこのプログラムを実行するならば、$ZLEVELの値は3(3)です。

inserted by FC2 system