#author("2018-01-17T05:15:16+09:00","","")
[[簡単言語]]
**NO_603 [#b6955c97]
マクロ使って文短縮〜♪
 #module mod_label i_name,i_ID,i_l_value
 ;i_nameラベル変数の名前
 ;i_nameラベル変数のID
 ;i_nameラベル変数の値、コマンド番号を格納する(だったようなw)
 #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
 	return
 ;getter
 #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
 #modfunc local set_i_l_value var _p4set_value
 	i_l_value = _p4set_value
 	return
 #modfunc local dump
 mes "dump_A"+i_l_value
 mes "dump_B"+i_ID
 return
 #global
 #module label_manage
 #deffunc local set_ID_sw_zero
 ;	global fv_ID
 	fv_ID=0
 	return
 #deffunc local x_label_search_init str _p_name,int _p_ID,int _p_l_value,local loc_r
 	loc_r=label_search_from_ID_non_error_mes(_p_ID)
 	if loc_r==-1{
 		newmod o_label,mod_label,_p_name,_p_ID,_p_l_value
 		fv_ID++
 		return
 	}
 	dialog "your ID already rgst:"+_p_ID,1
 	return
 #defcfunc local label_search_from_ID_non_error_mes int _3p_ID,local loc_i,local loc_get_index
 	for loc_i,0,fv_ID,1
 		loc_get_index=get_i_ID@mod_label(o_label.loc_i)
 ;		mes "ID"+get_i_ID@mod_variable(o_var.loc_i)
 		if loc_get_index==_3p_ID:return loc_i
 	next
 	return -1
 #defcfunc local label_search_from_ID int _3p_ID,local loc_i,local loc_get_index
 	for loc_i,0,fv_ID,1
 		loc_get_index=get_i_ID@mod_label(o_label.loc_i)
 ;		mes "ID"+get_i_ID@mod_variable(o_var.loc_i)
 		if loc_get_index==_3p_ID:return loc_i
 	next
 	dialog "don't find from labelID"+_3p_ID,1
 	return -1
 #defcfunc local is_hit_after_label_search str _4p_name,int _4p_i
 	if _4p_i==-1:return -1
 	rr_name=get_i_name@mod_label(o_label._4p_i)
 	if rr_name==_4p_name:return 1
 	dialog "don't hit from labelID"+_4p_i,1
 ;	dialog ""+rr_name,1
 	return -1
 #defcfunc local pre_get_x_label_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)
 #defcfunc local get_x_label_value str __p_name,int _p3b_ID,local loc_sch,local loc_hit
 	loc_sch=label_search_from_ID@label_manage(_p3b_ID)
 	loc_hit=is_hit_after_label_search@label_manage(__p_name,loc_sch)
 	if (loc_sch!=-1){
 	 	if (loc_hit!=-1){
 			return pre_get_x_label_value@label_manage(__p_name,loc_sch)
 		}
 	}
 	return -1
 #deffunc local pre_set_x_label_value str __p_name,int __p_ID,var __p4set,local r_name
 	r_name=get_i_name@mod_label(o_label.__p_ID)
 	logmes ""+__p4set
 	logmes ""+r_name
 	if r_name!=__p_name:return -1
 	set_i_l_value@mod_label o_label.__p_ID,__p4set
 	return
 #deffunc local set_x_label_value str _p3c_name,int _p3c_ID,var _p3c_4set,local loc_sch_b,local loc_hit_b
 	loc_sch_b=label_search_from_ID@label_manage(_p3c_ID)
 	loc_hit_b=is_hit_after_label_search@label_manage(_p3c_name,loc_sch_b)
 	if (loc_sch_b!=-1){
 	 	if (loc_hit_b!=-1){
 			pre_set_x_label_value@label_manage _p3c_name,loc_sch_b,_p3c_4set
 		}
 	}
 	return -1
 #deffunc local dump
 	dump@mod_label o_label.0
 	dump@mod_label o_label.1
 return
 #global
 #module mod_variable v_i_name,v_i_ID,v_i_v_value
 #modinit str p_name,int p_ID,int p_v_value
 	v_i_name=p_name
 	v_i_ID=p_ID
 	v_i_v_value=p_v_value
 	return
 #modcfunc local get_i_name
 	return v_i_name
 #modcfunc local get_i_ID
 	return v_i_ID
 #modcfunc local get_i_v_value
 	return v_i_v_value
 #modfunc local set_i_v_value var _p4set_value
 	v_i_v_value = _p4set_value
 	return
 #modfunc local dump
 mes "dump_A"+v_i_v_value
 mes "dump_B"+v_i_ID
 return
 #global
 #module variable_manage
 #deffunc local set_ID_sw_zero
 	fv_ID=0
 	return
 #deffunc local x_var_search_init str _p_name,int _p_ID,int _p_v_value,local loc_r
 	loc_r=var_search_from_ID_non_error_mes(_p_ID)
 	if loc_r==-1{
 		newmod o_var,mod_variable,_p_name,_p_ID,_p_v_value
 		fv_ID++
 		return
 	}
 	dialog "your ID already rgst:"+_p_ID,1
 	return
 #deffunc local x_var_init str _p_name,int _p_ID,int _p_v_value
 	newmod o_var,mod_variable,_p_name,_p_ID,_p_v_value
 ;	mes get_i_ID@mod_variable(o_var.fv_ID)
 	fv_ID++
 	return
 #defcfunc local var_search_from_ID_non_error_mes int _3p_ID,local loc_i,local loc_get_index
 	for loc_i,0,fv_ID,1
 		loc_get_index=get_i_ID@mod_variable(o_var.loc_i)
 ;		mes "ID"+get_i_ID@mod_variable(o_var.loc_i)
 		if loc_get_index==_3p_ID:return loc_i
 	next
 	return -1
 #defcfunc local var_search_from_ID int _3p_ID,local loc_i,local loc_get_index
 	for loc_i,0,fv_ID,1
 		loc_get_index=get_i_ID@mod_variable(o_var.loc_i)
 ;		mes "ID"+get_i_ID@mod_variable(o_var.loc_i)
 		if loc_get_index==_3p_ID:return loc_i
 	next
 	dialog "don't find from varID"+_3p_ID,1
 	return -1
 #defcfunc local is_hit_after_var_search str _4p_name,int _4p_i
 	if _4p_i==-1:return -1
 	rr_name=get_i_name@mod_variable(o_var._4p_i)
 	if rr_name==_4p_name:return 1
 	dialog "don't hit from varID"+_4p_i,1
 ;	dialog ""+rr_name,1
 	return -1
 #deffunc local set_x_var_value str _p3c_name,int _p3c_ID,var _p3c_4set,local loc_sch_b,local loc_hit_b
 	loc_sch_b=var_search_from_ID@variable_manage(_p3c_ID)
 	loc_hit_b=is_hit_after_var_search@variable_manage(_p3c_name,loc_sch_b)
 	if (loc_sch_b!=-1){
 		if (loc_hit_b!=-1){
 			pre_set_x_var_value@variable_manage _p3c_name,loc_sch_b,_p3c_4set
 		}
 	}
 	return -1
 #defcfunc local pre_get_x_var_value str __p_name,int __p_ID,local r_name
 	r_name=get_i_name@mod_variable(o_var.__p_ID)
 	if r_name!=__p_name:return -1
 	return get_i_v_value@mod_variable(o_var.__p_ID)
 #deffunc local pre_set_x_var_value str __p_name,int __p_ID,var __p4set,local r_name
 	r_name=get_i_name@mod_variable(o_var.__p_ID)
 	logmes ""+__p4set
 	logmes ""+r_name
 	if r_name!=__p_name:return -1
 	set_i_v_value@mod_variable o_var.__p_ID,__p4set
 	return
 #defcfunc local get_x_var_value str __p_name,int _p3b_ID,local loc_sch,local loc_hit
 	loc_sch=var_search_from_ID@variable_manage(_p3b_ID)
 	loc_hit=is_hit_after_var_search@variable_manage(__p_name,loc_sch)
 	if (loc_sch!=-1){
 		if (loc_hit!=-1){
 			return pre_get_x_var_value@variable_manage(__p_name,loc_sch)
 		}
 	}
 	return -1
 #deffunc local dump
 	dump@mod_variable o_var.0
 	dump@mod_variable o_var.1
 return
 #global
 dim pc_stack,500
 n_pc_stack=0
 hoge_pc=1
 
 dim num_stack,500
 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
 #define switch_set_B my_pc_B
 #define eq_B(%1) case %1:my_pc_B++:
 #define eq_B_one(%1,%2) case %1:my_pc_B++:%2:goto *sw_begin:
 #define eq_B_two(%1,%2,%3):\
 case %1:my_pc_B++:%2:goto *sw_begin:case %1+1:my_pc_B++:%3:goto *sw_begin:
 #define eq_B_three(%1,%2,%3,%4):\
 case %1:my_pc_B++:%2:goto *sw_begin:case %1+1:my_pc_B++:%3:goto *sw_begin:\
 case %1+2:my_pc_B++:%4:goto *sw_begin:
 #define cmd_fin :my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin
 ;goto *l_def_A
 ;goto l_def(A)
 ;l_def(E):
 ;*l_def_B
 ;x_label_init@mod_label 1,"a",1 ;0
 ;x_label_init@mod_label 0,"aa1",11 ;1
 ;x_label_init@mod_label 0,"ab1",13 ;2
 ;x_label_init@mod_label 0,"ax1a",15 ;3
 dim one_code,256
 x=0
 f_stop=0
 //	ボタンによって選択される選択肢のID
 selected_btnext="a"
 
 #enum nop=0
 #enum en_get_my_label
 #enum en_button_A
 #enum en_button_B
 #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
 }
 *sw_begin
 	await 1
 ;	logmes "BEGIN"
 goto *sbr_end
 *sbr_l_search
 	if flag_on_line_search==1{
 		pc_stack.hoge_pc=my_line:hoge_pc++
 	}
 	return
 *sbr_lab_search
 	if flag_on_label_search==1{
 		if label_pc==num_stack.my_line{
 			if my_pc_B==1{;logmes "途中C":
 				my_pc_B=1:label_pc++:goto *sw_begin	}// label
 		}
 	}
 	return
 *sbr_do
 	if flag_on_do==1{
 ;		logmes "途中D"
 ;		logmes ""+num_stack.my_line
 ;		logmes "pc"+cmd_pc
 		if cmd_pc==num_stack.my_line{
 ;		logmes "途中inE1"
 			my_pc_B=1:cmd_pc++:goto *sw_begin
 		}
 	}
 	return
 ;*flag_clear
 ;	on_flag_on_line_search=0
 ;	on_flag_on_label_search=0
 ;	on_flag_on_do==0
 ;	return
 	
 *sbr_end
 
 
 
 // case 1:
 // def label
 my_line=int(__LINE__)
 ;	on_flag_on_line_search=1
 ;	on_flag_on_label_search=1
 ;	on_flag_on_do=1
 
 	gosub *sbr_l_search
 	gosub *sbr_do
 
 	if flag_on_label_search==1{
 		if label_pc==num_stack.my_line{	logmes "途中A"
 			switch my_pc_B			
 				eq_B_three 1,cp1="a",cp2=1,cp3=label_pc
 				eq_B 4:x_label_search_init@label_manage cp1,cp2,cp3:goto *sw_begin
 				eq_B 5:logmes "途中B":my_pc_B=1:label_pc++:goto *sw_begin
 			swend
 		}	
 	}
 	
 ;	gosub *flag_clear
 	
 // case 2:
 // cls 0
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			logmes "途中inE2"
 			if my_pc_B==1:cr_com=en_cls0:cmd_fin
 		}
 	}
 	
 // case 3:
 // objsize
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1=120,cp2=24
 				eq_B 3:cr_com=en_objsize:cmd_fin
 			swend
 		}
 	}		
 // case 4:
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 // read label
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			logmes "inE4"
 			switch my_pc_B
 				eq_B_two 1,cp1="aa1",cp2=11
 				eq_B 3:cr_com=en_get_my_label:
 					goto *com_sw: goto *sw_begin
 			swend
 		}
 	}	
 // button	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			logmes "inE5"
 			switch my_pc_B
 				eq_B 4:cp1="X足す1":goto *sw_begin
 				eq_B 5:bt_pc_1=my_label: goto *sw_begin
 				eq_B 6:cr_com=en_button_A:cmd_fin
 			swend
 		}
 	}
 // case 5:
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 // read label	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="ab1",cp2=12
 				eq_B 3:cr_com=en_get_my_label:
 					goto *com_sw: goto *sw_begin
 			swend
 		}
 	}	
 // button
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B 4:cp1="X引く1":goto *sw_begin
 				eq_B 5:bt_pc_2=my_label: goto *sw_begin
 				eq_B 6:cr_com=en_button_B:cmd_fin
 			swend
 		}
 	}
 // case 6:
 // pos
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1=150,cp2=0
 				eq_B 3:cr_com=en_pos:cmd_fin
 			swend
 		}
 	}
 // case 7:
 // mes
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B 1:cp1="ボタンを押してください":goto *sw_begin
 				eq_B 2:cr_com=en_mes:cmd_fin
 			swend
 		}
 	}	
 // case 8:
 // stop
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			if my_pc_B==1:cr_com=en_stop:cmd_fin
 		}
 	}	
 // case 9:"aa1"
 // def label
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_do
 	
 	if flag_on_label_search==1{
 		if label_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_three 1,cp1="aa1",cp2=11,cp3=label_pc
 				eq_B 4:x_label_search_init@label_manage cp1,cp2,cp3:goto *sw_begin
 			swend
 		}
 		if label_pc==num_stack.my_line{
 ;x_var_search_init@variable_manage "x",1,2
 			switch my_pc_B
 				eq_B_three 5,cp1="x",cp2=10,cp3=0
 				eq_B 8:x_var_search_init@variable_manage cp1,cp2,cp3:goto *sw_begin
 			swend
 		}
 		if label_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_three 9,cp1="y",cp2=20,cp3=0
 				eq_B 12:x_var_search_init@variable_manage cp1,cp2,cp3
 					my_pc_B=1:label_pc++:goto *sw_begin
 			swend
 		}
 	}
 // case 10:
 // calc
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	//	変数値取得
 	if flag_on_do==1{
 ;	v1=get_x_var_value@variable_manage("x",1)
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="x",cp2=10
 				eq_B 3:reg1=get_x_var_value@variable_manage(cp1,cp2):logmes ""+reg1:goto *sw_begin
 			swend
 			switch my_pc_B
 				eq_B_two 4,cp1="y",cp2=20
 				eq_B 6:reg2=get_x_var_value@variable_manage(cp1,cp2):goto *sw_begin
 			swend
 ;			switch my_pc_B
 ;				eq_B 1:reg1=x:goto *sw_begin
 ;				eq_B 2:reg2=y:goto *sw_begin
 ;			swend
 		}
 	}	
 	//	演算
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B 7:reg3=reg1+1:goto *sw_begin
 				eq_B 8:reg2+=2:goto *sw_begin
 				eq_B 9:cr_com=en_calc:goto *com_sw: goto *sw_begin
 			swend
 		}
 	}	
 	//	代入
 	if flag_on_do==1{
 ;	set_x_var_value@variable_manage "x",1,v1
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_three 10,cp1="x",cp2=10,cp3=reg3
 				eq_B 13:set_x_var_value@variable_manage cp1,cp2,cp3:goto *sw_begin
 			swend
 			switch my_pc_B
 				eq_B_three 14,cp1="y",cp2=20,cp3=reg2
 				eq_B 17:set_x_var_value@variable_manage cp1,cp2,cp3:
 					logmes "通過check B":cmd_fin
 			swend
 		}
 	}
 // case 11:
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 
 // read label	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="ax1a",cp2=21
 				eq_B 3:cr_com=en_get_my_label:
 					goto *com_sw: goto *sw_begin
 			swend
 		}
 	}	
 	
 // goto
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			if my_pc_B==4:logmes ""+my_label:cp1=my_label:cr_com=en_goto::cmd_fin
 		}
 	}
 // case 12:"ab1"
 // def label
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_do
 	
 	if flag_on_label_search==1{
 		if label_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_three 1,cp1="ab1",cp2=12,cp3=label_pc
 				eq_B 4:x_label_search_init@label_manage cp1,cp2,cp3:goto *sw_begin
 				eq_B 5:my_pc_B=1:label_pc++:goto *sw_begin
 			swend
 		}
 	}
 // case 13:
 // calc
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	//	変数値取得
 	if flag_on_do==1{
 ;	v1=get_x_var_value@variable_manage("x",1)
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="x",cp2=10
 				eq_B 3:reg1=get_x_var_value@variable_manage(cp1,cp2):logmes ""+reg1:goto *sw_begin
 			swend
 			switch my_pc_B
 				eq_B_two 4,cp1="y",cp2=20
 				eq_B 6:reg2=get_x_var_value@variable_manage(cp1,cp2):goto *sw_begin
 			swend
 ;			switch my_pc_B
 ;				eq_B 1:reg1=x:goto *sw_begin
 ;				eq_B 2:reg2=y:goto *sw_begin
 ;			swend
 		}
 	}	
 	//	演算
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B 7:reg3=reg1-1:goto *sw_begin
 				eq_B 8:reg2-=2:goto *sw_begin
 				eq_B 9:cr_com=en_calc:goto *com_sw: goto *sw_begin
 			swend
 		}
 	}	
 	//	代入
 	if flag_on_do==1{
 ;	set_x_var_value@variable_manage "x",1,v1
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_three 10,cp1="x",cp2=10,cp3=reg3
 				eq_B 13:set_x_var_value@variable_manage cp1,cp2,cp3:goto *sw_begin
 			swend
 			switch my_pc_B
 				eq_B_three 14,cp1="y",cp2=20,cp3=reg2
 				eq_B 17:set_x_var_value@variable_manage cp1,cp2,cp3:
 					logmes "通過check B"
 					my_pc_B=1:cmd_pc++:goto *sw_begin
 			swend
 		}
 	}
 // case 14
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 // read label
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="ax1a",cp2=21
 				eq_B 3:cr_com=en_get_my_label:cmd_fin
 			swend
 		}
 	}	
 // goto
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			if my_pc_B==4:logmes ""+my_label:cp1=my_label:cr_com=en_goto:cmd_fin
 		}
 	}
 // case 15:"ax1a"
 // def label
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_do
 	
 	if flag_on_label_search==1{
 		if label_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_three 1,cp1="ax1a",cp2=21,cp3=label_pc
 				eq_B 4:x_label_search_init@label_manage cp1,cp2,cp3:goto *sw_begin
 				eq_B 5:my_pc_B=1:label_pc++:goto *sw_begin
 			swend
 		}
 	}
 // case 16
 // cls 0
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			if my_pc_B==1:cr_com=en_cls0:cmd_fin
 		}
 	}
 // case 17
 // objsize
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1=120,cp2=24
 				eq_B 3:cr_com=en_objsize:cmd_fin
 			swend
 		}
 	}		
 // case 18
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 // read label
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="a",cp2=1
 				eq_B 3:cr_com=en_get_my_label:
 					goto *com_sw: goto *sw_begin
 			swend
 		}
 	}	
 // button
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B 4:cp1="NEXT":goto *sw_begin
 				eq_B 5:bt_pc_1=my_label: goto *sw_begin
 				eq_B 6:cr_com=en_button_A:cmd_fin
 			swend
 		}
 	}
 // case 19
 // pos
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1=150,cp2=0
 				eq_B 3:cr_com=en_pos:cmd_fin
 			swend
 		}
 	}
 // case 20
 // mes
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			switch my_pc_B
 				eq_B_two 1,cp1="x",cp2=10
 				eq_B 3:reg1=get_x_var_value@variable_manage(cp1,cp2):logmes ""+reg1:goto *sw_begin
 			swend
 			switch my_pc_B
 				eq_B_two 4,cp1="y",cp2=20
 				eq_B 6:reg2=get_x_var_value@variable_manage(cp1,cp2):goto *sw_begin
 			swend
 			switch my_pc_B
 			eq_B 7:cp1="Xの値は"+reg1+"です":goto *sw_begin
 			eq_B 8:cr_com=en_mes:cmd_fin
 			swend
 		}
 	}	
 // case 21
 // stop
 my_line=int(__LINE__)
 	gosub *sbr_l_search
 	gosub *sbr_lab_search
 	
 	if flag_on_do==1{
 		if cmd_pc==num_stack.my_line{
 			if my_pc_B==1:cr_com=en_stop:cmd_fin
 		}
 	}	
 //if flag_on_label_search==1:mes 6:goto *_2do
 //	pc_stack dump	
 if flag_on_line_search==1{
 	mes "dump"
 	repeat 30
 	logmes ""+cnt+" "+pc_stack.cnt
 	loop
 
 	repeat 30
 	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{
 ;	logmes "B"
 	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_value@label_manage(cp1,cp2):goto *sw_begin
 case en_button_A:	button cp1,*bt_hoge_1:swbreak
 case en_button_B:	button cp1,*bt_hoge_2: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:	goto *sw_begin
 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@mod_label(cp1,cp2)
 ;	my_label=get_x_label_l_value@mod_label("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
 *sw_end
 	stop