#author("2018-01-05T14:32:23+09:00","","")
[[簡単言語]]

**NO_493 [#gc3eb39e]

毎回*sw_beginに戻らなくていいっかってことで~
goto文減らしました

 #module mod_label i_name,i_ID,i_l_value
 #modinit str p_name,int p_ID,int p_l_value
 	i_name=p_name
 	i_ID=p_ID
 	i_l_value=p_l_value
 	o_num++
 	return
 #deffunc local first_set
 		fv_ID=0
 		o_num=0
 	return
 #modcfunc local get_i_name
 	return i_name
 #modcfunc local get_i_ID
 	return i_ID
 #modcfunc local get_i_l_value
 	return i_l_value
 #deffunc local x_label_init str _p_name,int _p_l_value
 	newmod o_label,mod_label,_p_name,fv_ID,_p_l_value
 	fv_ID++
 	return fv_ID-1
 #defcfunc local get_x_label_l_value str __p_name,int __p_ID,local r_name
 	r_name=get_i_name@mod_label(o_label.__p_ID)
 	if r_name!=__p_name:return -1
 	return get_i_l_value@mod_label(o_label.__p_ID)
 #global
 
 first_set@mod_label
 #module mod_free_label i_name,i_ID,i_l_value
 #modinit str p_name,int p_ID,int p_l_value
 	i_name=p_name
 	i_ID=p_ID
 	i_l_value=p_l_value
 	o_num++
 	return
 #deffunc local first_set int p_dim_length
 	dim many_id_dim,p_dim_length
 		fv_ID=0
 		o_num=0
 	return
 #modcfunc local get_i_name
 	return i_name
 #modcfunc local get_i_ID
 	return i_ID
 #modcfunc local get_i_l_value
 	return i_l_value
 #modcfunc local get_i_dim_length
 	return length(i_dim)
 #deffunc local x_label_init str _p_name,int _p_l_value,int p_index
 	many_id_dim.p_index=fv_ID
 	newmod o_label,mod_free_label,_p_name,fv_ID,_p_l_value
 	fv_ID++
 	return fv_ID-1
 #defcfunc local get_x_label_l_value str __p_name,int p_index,local r_name,local r_index
 ;__p_IDを使わなくして、p_indexを使うようになった
 	r_index=many_id_dim.p_index
 	r_name=get_i_name@mod_free_label(o_label.r_index)
 	if r_name!=__p_name:return -1
 	return get_i_l_value@mod_free_label(o_label.r_index)
 #deffunc local dump
 	repeat o_num
 	logmes "name "+cnt+":"+get_i_name@mod_free_label(o_label.cnt)
 	logmes "ID "+cnt+":"+get_i_ID@mod_free_label(o_label.cnt)
 	logmes "value "+cnt+":"+get_i_l_value@mod_free_label(o_label.cnt)
 	loop
 	return
 #global
 
 first_set@mod_free_label 256
 
 dim pc_stack,1000
 n_pc_stack=0
 hoge_pc=1
 
 dim num_stack,1000
 repeat length(num_stack)
 num_stack.cnt=-1
 loop
 
 //	line search のみ有効
 flag_on_do=0
 flag_on_line_search=1
 flag_on_label_search=0
 
 #define ctype l_avoid(%1) goto *l_a_%1
 #define ctype catch_l_avoid(%1)*l_a_%1
 #define ctype l_def(%1)*l_def_%1
 #define ctype l_def_go(%1) *l_def_%1
 ;goto *l_def_A
 ;goto l_def(A)
 ;l_def(E):
 ;*l_def_B
 ;x_label_init 1,"a",1 ;0
 ;x_label_init 0,"aa1",11 ;1
 ;x_label_init 0,"ab1",13 ;2
 ;x_label_init 0,"ax1a",15 ;3
 dim one_code,1000
 x=0
 f_stop=0
 //	ボタンによって選択される選択肢のID
 selected_btnext="a"
 
 #enum nop=0
 #enum en_get_my_label
 #enum en_get_my_free_label
 #enum en_button_A
 #enum en_button_B
 #enum en_button_C
 #enum en_button_D
 #enum en_button_E
 #enum en_button_F
 #enum en_cls0
 #enum en_objsize
 #enum en_pos
 #enum en_mes
 #enum en_stop
 #enum en_goto
 #enum en_calc
 
 my_pc=1
 my_pc_B=1
 flag_on_l_search=1 
 goto *@f
 *search_l_end
 flag_on_l_search=0
 	goto *sw_begin
 *@
 	flag_on_line_search=1
 if 0{
 	*count_b
 	flag_on_line_search=0
 	flag_on_label_search=1
 	flag_on_do=0
 	label_pc=1
 }
 if 0{
 	*count_c
 	flag_on_line_search=0
 	flag_on_label_search=0
 	flag_on_do=1
 	cmd_pc=1
 	dump@mod_free_label
 	repeat 32
 	logmes ""+cnt+":"+many_id_dim@mod_free_label.cnt
 	loop
 }
 if 0{
 *line_flag
 	if flag_on_line_search==1{
 		pc_stack.hoge_pc=my_line:hoge_pc++
 	}
 	return
 *null_label_flag_chk	
 	if flag_on_label_search==1{
 		if label_pc==num_stack.my_line{
 			if my_pc_B==1{my_pc_B=1:label_pc++:goto *sw_begin	}
 		}
 	}
 	return
 #define mac_null_label_flag_chk:\
 	if flag_on_label_search==1{	if label_pc==num_stack.my_line{	if my_pc_B==1{my_pc_B=1:label_pc++:goto *sw_begin:\
 	}	}	}
 
 *null_do_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			my_pc_B=1:cmd_pc++:goto *sw_begin
 		}
 	}
 	return
 #define mac_null_do_flag_chk:\
 	if flag_on_do==1{	if cmd_pc==num_stack.my_line{	my_pc_B=1:cmd_pc++:goto *sw_begin:\
 	}	}
 #define ctype mac_regst_label(%1):\
 	if flag_on_label_search==1{	if label_pc==num_stack.my_line{		if my_pc_B==1{my_pc_B++:cp1=%1:\
 		}	if my_pc_B==2{my_pc_B++:cp2=label_pc:logmes "label:"+label_pc:\
 		}	if my_pc_B==3{my_pc_B++:x_label_init@mod_label cp1,cp2:logmes ""+cp2+":label_no:"+stat:\
 		}	if my_pc_B==4{my_pc_B=1:label_pc++:goto *sw_begin:\
 		}	}	}
 #define ctype mac_regst_free_label(%1,%2):\
 	if flag_on_label_search==1{	if label_pc==num_stack.my_line{		if my_pc_B==1{my_pc_B++:cp1=%1:\
 	}	if my_pc_B==2{my_pc_B++:cp2=label_pc:logmes "label:"+label_pc:\
 	}	if my_pc_B==3{my_pc_B++:cp3=%2:\
 	}	if my_pc_B==4{my_pc_B++:x_label_init@mod_free_label cp1,cp2,cp3:logmes ""+cp2+":label_no:"+stat:\
 	}	if my_pc_B==5{my_pc_B=1:label_pc++:goto *sw_begin:\
 	}	}	}
 ;	label:1
 ;	label_no:1
 ;	label:11
 ;	label_no:2
 ;	label:15
 ;	label_no:3
 ;	label:19
 ;	label_no:4
 }
 
 
 *sw_begin
 	await 1
 	
 //case 1:	
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_regst_label("a")	//1
 	mac_null_do_flag_chk
 //case 2:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//2
 ;			mes 13
 			logmes ""+num_stack.my_line
 			if my_pc_B==1{cr_com=en_cls0:
 				my_pc_B=1:cmd_pc++:goto *com_sw	}
 ;			cmd_pc++:	
 ;			cr_com=en_cls0:
 			goto *com_sw
 			goto *sw_begin
 		}
 	}
 	
 //case 3:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//3
 			if my_pc_B==1{my_pc_B++:cp1=120	}
 			if my_pc_B==2{my_pc_B++:cp2=24	}
 			if my_pc_B==3{cr_com=en_objsize:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin
 			}
 		}
 	}	
 //case 4:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//4
 			logmes "inE4"
 			if my_pc_B==1{my_pc_B++:cp1="aa1"	}
 			if my_pc_B==2{my_pc_B++:cp2=1	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 	
 //case 5:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//5
 ;			logmes "inE5"
 			if my_pc_B==1{my_pc_B++:cp1="X足す1"	}
 			if my_pc_B==2{my_pc_B++:bt_pc_1=my_label	}
 			if my_pc_B==3{cr_com=en_button_A
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 	
 //case 6:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//6
 			if my_pc_B==1{my_pc_B++:cp1="ab1"	}
 			if my_pc_B==2{my_pc_B++:cp2=2	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case 7:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//7
 			if my_pc_B==1{my_pc_B++:cp1="X引く1"	}
 			if my_pc_B==2{my_pc_B++:bt_pc_2=my_label	}
 			if my_pc_B==3{cr_com=en_button_B
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 	
 //case B1
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//B1
 			if my_pc_B==1{my_pc_B++:cp1="ac1"	}
 			if my_pc_B==2{my_pc_B++:cp2=3	}
 			if my_pc_B==3{cr_com=en_get_my_free_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case B2
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//B2
 			if my_pc_B==1{my_pc_B++:cp1="X足す2"	}
 			if my_pc_B==2{my_pc_B++:bt_pc_3=my_label: logmes "bt3"+bt_pc_3	}
 			if my_pc_B==3{cr_com=en_button_C
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case B3
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//B3
 			if my_pc_B==1{my_pc_B++:cp1="ad1"	}
 			if my_pc_B==2{my_pc_B++:cp2=5	}
 			if my_pc_B==3{cr_com=en_get_my_free_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case B4
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//B4
 			if my_pc_B==1{my_pc_B++:cp1="X引く2"	}
 			if my_pc_B==2{my_pc_B++:bt_pc_4=my_label: logmes "bt4"+bt_pc_4	}
 			if my_pc_B==3{cr_com=en_button_D
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case 8:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//8
 			if my_pc_B==1{my_pc_B++:cp1=150	}
 			if my_pc_B==2{my_pc_B++:cp=0	}
 			if my_pc_B==3{cr_com=en_pos
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case 9:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//9
 			if my_pc_B==1{my_pc_B++:cp1="ボタンを押してください"	}
 			if my_pc_B==2{cr_com=en_mes
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 10:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//10
 			if my_pc_B==1{cr_com=en_stop
 				logmes "in stop A"
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 11:"aa1"
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_regst_label("aa1")	//11
 	mac_null_do_flag_chk
 //case 12:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//12
 			logmes "inE5calc"
 			if my_pc_B==1{x+=1:my_pc_B=1:cmd_pc++:cr_com=en_calc:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 13:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//13
 			logmes "inE5"
 			if my_pc_B==1{my_pc_B++:cp1="ax1a"	}
 			if my_pc_B==2{my_pc_B++:cp2=3	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 
 //case 14:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//14
 			logmes "inE5"
 			if my_pc_B==1{logmes ""+my_label:my_pc_B=1:cp1=my_label:cr_com=en_goto:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 15:"ab1"
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_regst_label("ab1")	//15
 	mac_null_do_flag_chk
 //case 16:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//16
 			logmes "inE5"
 			if my_pc_B==1{x-=1:my_pc_B=1:cmd_pc++:cr_com=en_calc:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 17:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//17
 			logmes "inE5"
 			if my_pc_B==1{my_pc_B++:cp1="ax1a"	}
 			if my_pc_B==2{my_pc_B++:cp2=3	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 18
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//18
 			logmes "inE5"
 			if my_pc_B==1{logmes ""+my_label:my_pc_B=1:cp1=my_label:cr_com=en_goto:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 	
 //case C1:"ac1"
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_regst_free_label("ac1",3)	//C1
 	mac_null_do_flag_chk
 //case C2
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//C2
 			logmes "inE5"
 			if my_pc_B==1{x+=2:my_pc_B=1:cmd_pc++:cr_com=en_calc:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case C3:
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//C3
 			logmes "inE5"
 			if my_pc_B==1{my_pc_B++:cp1="ax1a"}
 			if my_pc_B==2{my_pc_B++:cp2=3	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case C4
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//C4
 			logmes "inE5"
 			if my_pc_B==1{logmes ""+my_label:my_pc_B=1:cp1=my_label:cr_com=en_goto:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 	
 //case C5:"ad1"
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_regst_free_label("ad1",5)	//C5
 	mac_null_do_flag_chk
 //case C6
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//C6
 			logmes "inE5 C6"
 			if my_pc_B==1{x-=2:my_pc_B=1:cmd_pc++:cr_com=en_calc:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case C7
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//C7
 			logmes "inE5"
 			if my_pc_B==1{my_pc_B++:cp1="ax1a"	}
 			if my_pc_B==2{my_pc_B++:cp2=3	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case C8
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//C8
 			logmes "inE5"
 			if my_pc_B==1{logmes ""+my_label:my_pc_B=1:cp1=my_label:cr_com=en_goto:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 19:"ax1a"
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_regst_label("ax1a")	//19
 	mac_null_do_flag_chk
 //case 20
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//20
 			if my_pc_B==1{cr_com=en_cls0:
 				my_pc_B=1:cmd_pc++:goto *com_sw	:goto *sw_begin}
 		}
 	}
 //case 21
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//21
 			if my_pc_B==1{my_pc_B++:cp1=120	}
 			if my_pc_B==2{my_pc_B++:cp2=24	}
 			if my_pc_B==3{cr_com=en_objsize:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin
 			}
 		}
 	}	
 //case 22
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//22
 			logmes "inE20"
 			if my_pc_B==1{my_pc_B++:cp1="a"	}
 			if my_pc_B==2{my_pc_B++:cp2=0	}
 			if my_pc_B==3{cr_com=en_get_my_label:
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 	
 //case 23
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//23
 			logmes "inE5"
 			if my_pc_B==1{my_pc_B++:cp1="NEXT"	}
 			if my_pc_B==2{my_pc_B++:bt_pc_1=my_label	}
 			if my_pc_B==3{cr_com=en_button_A
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case 24
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//24
 			if my_pc_B==1{my_pc_B++:cp1=150	}
 			if my_pc_B==2{my_pc_B++:cp=0	}
 			if my_pc_B==3{cr_com=en_pos
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}
 //case 25
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//25
 			if my_pc_B==1{my_pc_B++:cp1="Xの値は"+x+"です"	}
 			if my_pc_B==2{cr_com=en_mes
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //case 26
 my_line=int(__LINE__)	//x行でcaseみたいな処理
 	gosub *line_flag
 	mac_null_label_flag_chk
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{	//26
 			if my_pc_B==1{cr_com=en_stop
 			logmes "L0:"+get_x_label_l_value@mod_label("a",0)
 			logmes "L1:"+get_x_label_l_value@mod_label("aa1",1)
 			logmes "L2:"+get_x_label_l_value@mod_label("ab1",2)
 			logmes "L3:"+get_x_label_l_value@mod_label("ax1a",3)
 				logmes "in stop A"
 				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
 		}
 	}	
 //if flag_on_label_search==1:mes 6:goto *_2do
 //	pc_stack dump	
 if flag_on_line_search==1{
 	mes "dump"
 	repeat 100
 	logmes ""+cnt+" "+pc_stack.cnt
 	loop
 
 	repeat 100
 	if pc_stack.cnt!=0{
 		num_stack(pc_stack.cnt)=cnt
 	}
 	loop
 
 	repeat 500
 	logmes ""+cnt+":"+num_stack.cnt
 	loop
 }
 ;mes 6
 ;	goto *sw_begin	
 ;}
 if flag_on_line_search==1{
 	goto *count_b
 }
 if flag_on_label_search==1{
 	goto *count_c
 }
 mes "stop"
 stop
 
 *com_sw
 switch cr_com
 case en_get_my_label:	my_label=get_x_label_l_value@mod_label(cp1,cp2):swbreak
 case en_get_my_free_label:	my_label=get_x_label_l_value@mod_free_label(cp1,cp2):swbreak
 case en_button_A:	button cp1,*bt_hoge_1:swbreak
 case en_button_B:	button cp1,*bt_hoge_2:swbreak
 case en_button_C:	button cp1,*bt_hoge_3:swbreak
 case en_button_D:	button cp1,*bt_hoge_4:swbreak
 case en_button_E:	button cp1,*bt_hoge_5:swbreak
 case en_button_F:	button cp1,*bt_hoge_6:swbreak
 case en_cls0:	cls 0:swbreak
 case en_objsize:objsize cp1,cp2:swbreak
 case en_pos:	pos cp1,cp2:swbreak
 case en_mes:	mes ""+cp1:swbreak
 case en_stop:	f_stop=1:swbreak
 case en_calc:	swbreak
 case en_goto:	cmd_pc=cp1:goto *sw_begin
 swend
 if f_stop==1:f_stop=0:stop
 goto *sw_begin
 
 *get_my_label
 	my_label=get_x_label_l_value(cp1,cp2)
 ;	my_label=get_x_label_l_value("a",0)
 	goto *sw_begin
 *bt_hoge_1
 ;	mes my_pc
 ;	mes bt_pc_1
 	cmd_pc=bt_pc_1
 	goto *sw_begin
 *bt_hoge_2
 	cmd_pc=bt_pc_2
 	goto *sw_begin
 *bt_hoge_3
 	cmd_pc=bt_pc_3
 	goto *sw_begin
 *bt_hoge_4
 	mes "hoge4"+bt_pc_4
 	cmd_pc=bt_pc_4
 	goto *sw_begin
 *bt_hoge_5
 	cmd_pc=bt_pc_5
 	goto *sw_begin
 *bt_hoge_6
 	cmd_pc=bt_pc_6
 	goto *sw_begin
 *sw_end
 	stop