NO_499

サンプルスクリプトです
483 の改造
ラベル定義のタイミングでマクロ反映させました
LINE定義のタイミングでマクロ定義実行出来るかも
ここまで来たらアレですねw
変数名と添え字をマクロで管理出来るかもw

分類名と変数名と添え字をセットで管理しなきゃなので
モジュール化したほうがいいかも

dim var4stock_define_value,100,16
repeat 100
i=cnt
repeat 16
var4stock_define_value.i.cnt=-1
loop
loop
var4stock_define_value_counter=0
	if flag_on_define==1{
			#define value_a 0
			#define value_aa1 1
;				var4stock_define_value.label_pc.0=0
	}
//case 1:	
my_line=int(__LINE__)	//x行でcaseみたいな処理
	if flag_on_line_search==1{
		pc_stack.hoge_pc=my_line:hoge_pc++
	}
	if flag_on_label_search==1{
		if label_pc==num_stack.my_line{
			logmes "途中A"
			mes "途中A"
			if my_pc_B==1{my_pc_B++:cp1=1:goto *sw_begin	}
			if my_pc_B==2{my_pc_B++:cp2="a":goto *sw_begin	}
			if my_pc_B==3{my_pc_B++:cp3=label_pc:goto *sw_begin	}
			if my_pc_B==4{my_pc_B++:x_label_init cp1,cp2,cp3:goto *sw_begin	}
			if my_pc_B==5{
				logmes "途中B":my_pc_B=1:label_pc++:goto *sw_begin	}// label
			}
	}
	if flag_on_do==1{
		logmes "途中D"
		logmes ""+num_stack.my_line
		logmes "pc"+cmd_pc
		if cmd_pc==num_stack.my_line{	//1
		mes "途中inE1"
			my_pc_B=1:cmd_pc++:goto *sw_begin
		}
	}
//case 4:
my_line=int(__LINE__)	//x行でcaseみたいな処理
	if flag_on_line_search==1{
		pc_stack.hoge_pc=my_line:hoge_pc++
	}
	if flag_on_label_search==1{
		if label_pc==num_stack.my_line{
			def_call_counter=0
			var4stock_define_value.label_pc.def_call_counter=value_aa1
			def_call_counter++
;			var4stock_define_value.label_pc.0=value_aa1	// これも可
		}
	}
	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	}// label
		}
	}
;	if flag_on_define_call==1{
;		def_call_counter=0
;		var4stock_define_value.label_pc.def_call_counter=value_aa1
;		def_call_counter++
;		var4stock_define_value.label_pc.0=value_aa1	// これも可
;	}
	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":goto *sw_begin	}
			if my_pc_B==2{my_pc_B++:cp2=var4stock_define_value.cmd_pc.0: goto *sw_begin	}
			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みたいな処理
	if flag_on_line_search==1{
		pc_stack.hoge_pc=my_line:hoge_pc++
	}
	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	}
		}
	}
	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":goto *sw_begin	}
			if my_pc_B==2{my_pc_B++:bt_pc_1=my_label: goto *sw_begin	}
			if my_pc_B==3{cr_com=en_button_A
				my_pc_B=1:cmd_pc++:goto *com_sw: goto *sw_begin	}
		}
	}