; stkfncdテスト
; 
80 mes STRING ,
err ONERROR
;
; [?〜]?
lt VAR ,
rt VAR ,
	[N
	1
	0 ]N ; エラーになる

	[N
	1 ,
	0 ]N ; 大丈夫

	lt LTOP =
	[L
	WHILE
		L12 goto
	WEND
	L12:
	]L ; エラーになる
	lt LTOP= ; これがないとエラーが残るから
	
	[L
	WHILE
		BREAK
	WEND
	]L ; 大丈夫

	rt RTOP =
	lt LTOP =
	[R
	1 2 FOR
		L2 goto
	NEXT
	L2:
	]R ; エラーになる
	lt LTOP= ; これがないとエラーが残るから
	rt RTOP= ; これがないとエラーが残るから

	[R
	1 2 FOR
		BREAK
	NEXT
	]R ; 大丈夫
;
GETCH $1b == IF. END
;
; ARYDUMP
	( 10 ).    ar1 ARY.B ,
	( 5 5 ).   ar2 ARY.W ,
	( 5 5 5 ). ar3 ARY.L ,
	     20 str1 STRING  ,
	"s\0tr" str2 STRINGS ,
	5 ARYDUMP
;
GETCH $1b == IF. END
;
; VARDUMP/SYSDUMP
i VAR 0 =
{
	i VAR i %% ++ =
	j VAR 10 =
	"i=" PRINTS i PRINTN10 CRLF
	"j=" PRINTS j PRINTN10 CRLF
	{
		i VAR i %% 2 + =
		0 16 VARDUMP
		1 16 VARDUMP
		SYSDUMP
		"i=" PRINTS i PRINTN10 CRLF
		"j=" PRINTS j PRINTN10 CRLF
	}
	0 16 VARDUMP
	1 16 VARDUMP
}
0 16 VARDUMP
;
GETCH $1b == IF. END
;
; NSTKDUMP
	1 2 3 1 NSTKDUMP ; 3 2 1
;
GETCH $1b == IF. END
;
; LSTKDUMP
; 各ラベルの積まれ方に注目してください
	L1
	1 2 FOR.
	    REPEAT
		WHILE
			2 SWITCH
			    2 CASE
				1 LSTKDUMP
			SEND
			BREAK
		WEND
	    1 UNTIL
	NEXT
	goto ; L1 goto
	"ここには来ない\n" PRINTS
L1:
;
GETCH $1b == IF. END
;
; RSTKDUMP
	1 2 FOR
		1 RSTKDUMP
	NEXT
;
GETCH $1b == IF. END
;
; TRACE
3 TRACE ; print TOKEN 固定位置
	a VAR 0 =
	a . ++ =
	"a=" PRINTS a PRINTN10 CRLF
4 TRACE ; print nstack
	1 2 3 <->
0 TRACE
;
GETCH $1b == IF. END
;
; COMLIST
COMLIST
END
;
err:
	"errno=" PRINTS ERRNO PRINTN10 SPC
	mes . ERRNO ERRMES PRINTS CRLF
	LNEXT ERESUME
