ARG (引数)

ARG 関数は、プログラムまたは内部ルーチンに対する引数ストリングに関する情報、あるいは引数ストリングを 戻します。

構文図を参照するビジュアルシンタックスダイアグラムをスキップする ARG( n,オプション )

n を指定しないと、プログラムまたは内部ルーチンに渡される引数の数が返ります。

n だけを指定した場合は、n 番目の引数ストリングが戻されます。 引数ストリングが存在しない場合には、ヌル・ストリングが戻されます。 n は、正の整数でなければなりません。

option を指定すると、ARG は n 番目の引数ストリングがあるかどうか調べます。 有効なオプションを以下に示します。 (大文字で強調表示された文字だけが必要であり、 後続の文字はすべて無視されます。)
Exists
n番目の引数が存在する場合、つまりルーチンが呼び出された際に明示的に指定された場合、 1 を返します。 それ以外の場合は、0 が戻ります。
Omitted
n番目の引数が省略された場合、つまりルーチンが呼び出された際に明示的に指定されなかった場合、 1 が返されます。 それ以外の場合は、0 が戻ります。

/*  following "Call name;" (no arguments) */
ARG()         ->    0
ARG(1)        ->    ''
ARG(2)        ->    ''
ARG(1,'e')    ->    0
ARG(1,'O')    ->    1

/*  following "Call name 'a',,'b';" */
ARG()         ->    3
ARG(1)        ->    'a'
ARG(2)        ->    ''
ARG(3)        ->    'b'
ARG(n)        ->    ''    /* for n>=4 */
ARG(1,'e')    ->    1
ARG(2,'E')    ->    0
ARG(2,'O')    ->    1
ARG(3,'o')    ->    0
ARG(4,'o')    ->    1
注:
  1. 引数文字列の数は、明示的な引数文字列が存在しない場合に ARG(n,'e')1 または 0 を返す最大の数値n です。 つまり、これは、明示的に指定された最後の引数ストリングの位置です。
  2. コマンドとして呼び出されるプログラムの場合、引数ストリングは 1 つまたは無しです。 名前だけで呼び出されるプログラムの場合は、引数ストリングは無しで、 コマンドにその他 (ブランクを含む) が付く場合は、引数ストリングは 1 個になります。
  3. ユーザーは、ARG または PARSE ARG 命令を用いて、引数ストリングを検索 して、プログラムまたは内部ルーチンに対してそれらを直接分析する こともできます。 (ARG 、PARSE、および構文解析を参照)