スクリプト中の〈マクロ名〉の文字面を〈文字列〉に置き換えます。
†いわゆるマクロ機能です。マクロ機能とは、定義に従って、文中の文字列を別の文字列に置き変える機能です。
同じ文字列を繰り返し記述するような場合、マクロを使用すると簡潔に記述でき、修正も楽になります。
マクロ定義は、スクリプトの中のどこにあってもかまいません。ただし、使用する前に定義しておく必要があります。
†マクロ定義には、言語指定コードを含めることができます。
プログラム例
DEFINE 食べ物 果物,肉,魚
SCENE 食べ物
は、
SCENE 果物 肉,魚
と書いたことと同じ意味。
マクロ定義の中に別のマクロの参照を含めることもできます。以下の例は、マクロが2レベルにネストしている例です。16レベルまでのネストが可能です。
プログラム例
DEFINE 果物 オレンジ,バナナ
DEFINE 食べ物 果物 肉,魚
SCENE 食べ物
は、
SCENE オレンジ バナナ,肉,魚
と書いたことと同じ意味。
〈文字列〉の中に“;”を含めると、複数の文を1つのマクロ名として定義することができます。
プログラム例
DEFINE 表示切換 DISAPPEAR 旧;APPEAR
表示切換 新
は、
DISAPPEAR 旧;APPEAR 新
と書いたことと同じ意味。
大域変数〈変数名〉を宣言します。初期値として0が設定されます。
VARIABLE文はスクリプトの中のどこにあってもかまいません。ただし、変数を使用する前に宣言する必要があります。
変数の〈型〉の指定には、以下の記号を使います。
〈型〉:
B バイト型
C 文字型
I 整数型
F 浮動小数型
S シンボル型
G 汎用型
†〈型〉の指定の省略時は汎用型となります。
配列変数は以下の形式で定義します。〈要素数〉は、1から1048576までの値です。
〈変数名〉:〈型〉[〈要素数〉]
プログラム例
#“カウンタ”という整数型変数と、“画面数”という50個の要
#素からなるシンボル型配列の宣言。
#“画面数”は“画面数[0]~画面数[49]”として利用する。
VARIABLE カウンタ:I,画面数:S[50]
局所変数〈変数名〉を宣言します。初期値として0が設定されます。
LOCAL文は手続き内のどこにあってもかまいません。ただし、変数を使用する前に宣言する必要があります。
変数の型、配列の指定方法は、VARIABLE文と同じです。
◆配列変数の〈要素数〉は、1から4096までの値です。
可変セグメントを宣言します。初期値は空に設定されますので、SETSEG文やCOPYSEG文により既存のセグメントの内容を設定して使用します。
SEGMENT文はスクリプトの中のどこにあってもかまいません。ただし、変数を使用する前に宣言する必要があります。
配列とした場合は、セグメント名の直後に、0~499の番号を付けた名称の要素数個のセグメント、およびシンボル型の配列変数が定義されます。シンボル型の配列変数には各セグメントが順番に設定されます。〈要素数〉は、1から500までの値です。
例: SEGMENT A[12]
は以下と同様となります。
SEGMENT A0,A1,A2,…,A11
VARIABLE A:S[12]
SET A[0]= A0
SET A[1]= A1
::
SET A[12]= A11
†A0~A11は新規に定義される可変セグメントで既存のセグメントではありません。
手続き名をシンボル型の変数や、手続き呼び出しの引数として使用する場合、その手続きはあらかじめ定義されている必要があります。このため、SCRIPT文により、あらかじめ手続き名を宣言しておきます。
CALL文、EXECUTE文などの手続き名を指定していることが明らかな文や、式中での手続き呼び出しでは、特にSCRIPT文によりあらかじめ手続き名を定義しておく必要はありません。
例:
SCRIPT F1
::
SET FN = F1
::
CALL F3(FN,100)
::
FUNC F1( )
::
END
FUNC F3(F:S,V:I)
::
END