; stkfncvテスト
100 emes STRING ,
;
; 上の段のローカル変数が参照出来るテスト
; V2.8で追加された機能
v1 VAR 1 =
v2 VAR 10 =
{
v1 VAR 2 =
	{
	"v1=" PRINTS v1 PRINTN10 CRLF ; 2
	"v2=" PRINTS v2 PRINTN10 CRLF ; 10
	v1 3 =
	}
	"v1  =" PRINTS v1    PRINTN10 CRLF ; 3
	"v2  =" PRINTS v2    PRINTN10 CRLF ; 10
	"v1%%=" PRINTS v1 %% PRINTN10 CRLF ; 1
	v1 %% 10 =
}
"v1=" PRINTS v1 PRINTN10 CRLF ; 10
;
GETCH $1b == IF. END
;
interia VAR 100 =
xyzr    VAR . 200 = VLOCK
Sinteria SVAR "100" =
Sxyzr    SVAR . "200" = VLOCK
{ ; ローカル
	( jiro ichiro ). VARS
	jiro   10 =
	ichiro 20 =
	( Sjiro Sichiro ). SVARS
	Sjiro   "10" =
	Sichiro "20" =
	jiro2   VAR 101 =
	ichiro2 VAR 201 =
	;
	( 1 2 3 4 5 ) ( interia 変数2 変わった数3 xyzr level5 ). VARS=
	( "1" "2" "3" "4" "5" ) ( Sinteria S変数2 S変わった数3 Sxyzr Slevel5 ). SVARS=
	;
	0 10 VARDUMP ; グローバル
	1 10 VARDUMP ; ローカル
	CRLF
	CRLF
	{
		jiro    VAR 100 =
		ichiro  VAR 200 =
		interia VAR 1000 =
		xyzr    VAR . 2000 = VLOCK
		Sjiro    SVAR "100" =
		Sichiro  SVAR "200" =
		Sinteria SVAR "1000" =
		Sxyzr    SVAR . "2000" = VLOCK
		"ローカル＆グローバル参照\n" PRINTS
		"   interia=" PRINTS interia    PRINTN10 CRLF
		" %%interia=" PRINTS interia %% PRINTN10 CRLF
		"  Sinteria=" PRINTS Sinteria    PRINTS CRLF
		"%%Sinteria=" PRINTS Sinteria %% PRINTS CRLF
		"上位段ローカル参照\n" PRINTS
		"  jiro2=" PRINTS   jiro2 PRINTN10 CRLF
		"ichiro2=" PRINTS ichiro2 PRINTN10 CRLF
		; グローバル変数アクセス
		interia %% 101 =. PRINTN10 CRLF
		Sinteria %% "101" =. PRINTS CRLF
		GETCH ,
		; グローバル変数が無いときにはエラーになる
		; 次のコメントをはずすと発生する。
		; 変数 %% PRINTN10 CRLF
		10 RND 5 > IF. }. ; **の付いている}に飛ぶ
		0 10 VARDUMP ; グローバル
		1 10 VARDUMP ; ローカル
		CRLF
		CRLF
	} ; **
	0 10 VARDUMP
	1 10 VARDUMP
	CRLF
	CRLF
}
; グローバルエリアでのグローバル参照（無意味）
"   interia=" PRINTS interia    PRINTN10 CRLF
" %%interia=" PRINTS interia %% PRINTN10 CRLF
"  Sinteria=" PRINTS Sinteria    PRINTS CRLF
"%%Sinteria=" PRINTS Sinteria %% PRINTS CRLF
;
GETCH $1b == IF. END
;
;
; LOCKされているのエラーが出る
;1 TRACE
err1 ONERROR
	xyzr 1 =
	Sxyzr "1" =
LNULL ONERROR
	xyzr VUNLOCK
	xyzr 1 =
	Sxyzr VUNLOCK
	Sxyzr "1" =
" xyzr=" PRINTS  xyzr PRINTN10 CRLF
"Sxyzr=" PRINTS Sxyzr PRINTS CRLF
1 10 VARDUMP
;
END
;
; エラートラップ
err1:
	"errno=" PRINTS ERRNO PRINTN10 SPC
	emes . ERRNO ERRMES PRINTS CRLF
	LNEXT ERESUME
