簡単言語

NO_590_DOC

;変数(普通の)を取得/代入するモジュールを作ろうと思ったんですが
;ラベルの処理はどうなったか忘れたのでw
;復習を兼ねてコメント書いてみました
#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
;モジュールのメンバ変数に値を代入。変数とか言って
;代入する命令がないので、定数を格納するかんじだったか、とりあえずで作ってほっといたかw
#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
;getter
#deffunc local 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
;ラベルインスタンス作成 オブジェクト名(配列になる)モジュール名
;インスタンスの名前(引数) ID(IDを作るたびに++引数で指定するわけではない) 値(引数)たぶんコマンド番号
#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)
;IDが引数のインスタンスの名前を取得
	if r_name!=__p_name:return -1
;返ってきた名前が引数で指定した名前と異なったらエラー
	return get_i_l_value@mod_label(o_label.__p_ID)
;返ってきた名前と引数で指定した名前が等しい インスタンスの値(たぶんコマンド番号)を返す
#global

;変数をIDだけでも名前だけで識別してるわけでもなく
;IDを渡して返ってきた名前と引数で指定した名前が等しい時 指定が正しい。としています
;IDだけだと間違いやすく
;名前だけだと検索するのに時間がかかるので
;取得はめんどくさいですが
;二つのやり方のいいとこどりとなっています

#なんか とりあえず出来て動いてそのままほったらかしぽw

#想像と現実の乖離みたいなw