簡単言語_NO467toNO479

NO_470

なんか しばらくしたら 何を実装したかったか 忘れそうw

#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
	return
#modcfunc get_i_name
	return i_name
#modcfunc get_i_ID
	return i_ID
#modcfunc get_i_l_value
	return i_l_value
#deffunc x_label_init int sw_new_p,str _p_name,int _p_l_value
;	global fv_ID
	if sw_new_p==1{
		fv_ID=0
	}
	newmod o_label,mod_label,_p_name,fv_ID,_p_l_value
	fv_ID++
	return
#defcfunc get_x_label_l_value str __p_name,int __p_ID,local r_name
	r_name=get_i_name(o_label.__p_ID)
	if r_name!=__p_name:return -1
	return get_i_l_value(o_label.__p_ID)
#global

dim pc_stack,256
n_pc_stack=0
hoge_pc=1

dim num_stack,128
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
*sw_begin
	await 1
	
my_line=int(__LINE__)	//2行でcaseみたいな処理
if line_pc==my_line{	//1
	if flag_on_do==1{
		my_pc++:goto *sw_begin
	}
}
	if flag_on_line_search==1{
		pc_stack.hoge_pc=my_line:hoge_pc++
	}
	if flag_on_label_search==1{
		my_pc_B=1
		if my_pc_B==1{my_pc_B++:cp1=1	}
		if my_pc_B==2{my_pc_B++:cp2="a"	}
		if my_pc_B==3{my_pc_B++:cp3=1	}
		if my_pc_B==4{my_pc_B++:
			x_label_init cp1,cp2,cp3	}
		if my_pc_B==5{my_pc_B=1:my_pc++	}// label
	}
	
my_line=int(__LINE__)	//2行でcaseみたいな処理
if line_pc==my_line{	//2
	if flag_on_do==1{
;		cr_com=en_cls0:goto *com_sw	// *com_sw 未実装
	}
}
	if flag_on_line_search==1{
		pc_stack.hoge_pc=my_line:hoge_pc++
	}
	if flag_on_label_search==1{
	}
	
my_line=int(__LINE__)	//2行でcaseみたいな処理
if line_pc==my_line{	//3
	if flag_on_do==1{
		if my_pc_B==1{my_pc_B++:cp1=120:goto *sw_begin	}
		if my_pc_B==2{my_pc_B++:cp2=24: goto *sw_begin	}
;		if my_pc_B==3{cr_com=en_objsize:
;			my_pc_B=1:my_pc++:goto *com_sw	}// *com_sw 未実装
		my_pc++
	}
}
	if flag_on_line_search==1{
		pc_stack.hoge_pc=my_line:hoge_pc++
	}
	if flag_on_label_search==1{
	}
//	pc_stack dump	
repeat 5
logmes ""+cnt+" "+pc_stack.cnt
loop

repeat 5
if pc_stack.cnt!=0{
	num_stack(pc_stack.cnt)=cnt
}
loop

repeat 100
logmes ""+cnt+":"+num_stack.cnt
loop
stop
//
0 0
1 43
2 62
3 74
4 0
0:-1
1:-1
2:-1
3:-1
4:-1
5:-1
6:-1
7:-1
8:-1
9:-1
10:-1
11:-1
12:-1
13:-1
14:-1
15:-1
16:-1
17:-1
18:-1
19:-1
20:-1
21:-1
22:-1
23:-1
24:-1
25:-1
26:-1
27:-1
28:-1
29:-1
30:-1
31:-1
32:-1
33:-1
34:-1
35:-1
36:-1
37:-1
38:-1
39:-1
40:-1
41:-1
42:-1
43:1
44:-1
45:-1
46:-1
47:-1
48:-1
49:-1
50:-1
51:-1
52:-1
53:-1
54:-1
55:-1
56:-1
57:-1
58:-1
59:-1
60:-1
61:-1
62:2
63:-1
64:-1
65:-1
66:-1
67:-1
68:-1
69:-1
70:-1
71:-1
72:-1
73:-1
74:3
75:-1
76:-1
77:-1
78:-1
79:-1
80:-1
81:-1
82:-1
83:-1
84:-1
85:-1
86:-1
87:-1
88:-1
89:-1
90:-1
91:-1
92:-1
93:-1
94:-1
95:-1
96:-1
97:-1
98:-1
99:-1