04.REXX お約束ごとと命令群

By 高尾 - Posted: 2008/11/05 Last updated: 2010/06/17 - Leave a Comment

変数とリテラル

REXXの変数は独特です。変数名は英字で始めます。続く文字は数字か、_です。 大文字小文字の区別はありません。そして、VARIABLEと最初に変数名を書くと、その値も”VARIABLE”です。もちろん、他の言語と同様に代入式で値を変更できます。
VARIABLE = “hoge”
変数に型はありません。すべてが文字列だと思ってください。特定の演算時に、型変換されます。

リテラル(特定の値)は、” か、 ‘ で囲みます。エスケープしたい時は、二回続けます。
VARIABLE = “He is “”strong”””

最後に文字で表せない場合、16進数表記や2進数表記が可能です。

VARIABLE = ‘0d0a’x /* おなじみ、CRLF */
VARIABLE = ‘0000 1101 0000 1010’b

配列

変数に.をつけると配列として扱われます。
ARRAY.1 = “asa”
ここでARRAYの部分を「幹(ステム)」と呼びます。これだけを指定すると、配列全体を意味します。
ARRAY. = 0

もちろん、添え字部分は変数が許されます。
I = 1
say ARRAY.I
添え字は、データは1から始まります。0には、配列の大きさが入ります。したがって配列を扱うループは次のように書きます。

DO I=1 TO ARRAY.0
say ARRAY.I
END

ラベル

関数の名前や、GOTO相当のSIGNAL命令でジャンプする先などにつけます。決めた名前の後ろに : をつけます。

say add(1,2)
exit

add: procedure
parse arg a,b
return a + b

改行が命令の切れ目です。続けたいときは , を最後につけます。
VARIABLE = ,
“hoge”

逆に一行に複数の命令を書きたいときは、 ; で区切ります。
VARIABLE = “hoge” ; say VARIABLE

プログラム中のコメントは、
/* */ 中に書きます。これは、改行しても有効です。
/*

*/

命令群

ARG, CALL, DO, DROP, END, EXIT, IF, INTERPRET, ITERATE, LEAVE, NOP, NUMERIC, OPTIONS, PARSE, PROCEDURE, PULL, PUSH, QUEUE, RETURN, SAY, SELECT, SIGNAL, TRACE
の23個くらいしかありません。
Posted in REXX入門 • • Top Of Page