#author("2018-06-13T18:18:11+09:00","","")
#author("2018-06-13T18:19:25+09:00","","")
--Ruby本に載ってる簡単言語をHSPに翻訳しましたw

次はコレをCに翻訳したいですね

---+:カウンタを1増やす
--- -:カウンタを1減らす
--->:カウンタを右に移動する
---<:カウンタを左に移動する
---.:カウンタの数値の文字を出力
---,:カウンタに文字入力
---[:ループ開始
---]:ループ終了

 ;#runtime "hsp3cl"
 #module step_2byte_num o_string,o_dim,o_index,o_length
 #modinit int p_length
	o_string=""
	o_length=p_length
	o_index=0
	dim o_dim,o_length
	o_dim(o_length-1)=-1
	return
 #modfunc local set str value
	o_string=value
	return
 #modfunc local set_index int p
	o_index=p
	return
 #modfunc local multi_set
	o_length=strlen(o_string)
	repeat o_length
		o_dim.cnt=one_get(thismod)
		if o_dim.cnt==-1:o_length=cnt+1:break
	loop
	return
 #modcfunc local get int p
	return o_dim.p
 #modcfunc local indexed_get local loc_r
	loc_r = o_dim.o_index
	o_index++
	return loc_r
 #modcfunc local get_index
	return o_index
 #modcfunc local get_length
	return o_length
 //	数値を一文字返す
 #modcfunc local one_get
	if o_length>o_index{
		n=peek(o_string,o_index)
		if ((n>=129)&(n<=159) )|( (n>=224)&(n<=252)){
			o_index++
			n2=peek(o_string,o_index)
			o_index++
			num=n*256+n2
			return num
		}else{
			o_index++
			return n
		}
	}
	return -1
 #modcfunc each_with_index var p_c,var p_i,local loc_len
	loc_len=get_length@step_2byte_num(thismod)
	p_i=o_index
	p_c=indexed_get@step_2byte_num(thismod)
	if get_index@step_2byte_num(thismod) >= loc_len:return -1
	return 1
 #global
 sc= "++++++ [>++++++++++<-]>+++++."
 ;sc ="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++ ."
 ;sc+=">++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="++++++++++"
 ;sc+="+++++ .,"
 ;mes cur
 ;mB_init sc
 mB_init_num sc
 mB_run
 repeat 200
 logmes ""+(cnt)+":"+jumps@m_Brainf_ck.cnt
 loop

 #module m_stack o_array,o_index
 #modinit int p
	Empty=1
	NotEmpty=-1
	dim o_array, p
	o_index = 0
	return
 #modfunc local push int p
	o_array(o_index) = p
	o_index++
	return
 #modcfunc local pop
	o_index--
	if o_index < 0 {
		dialog "popしすぎです",1
		return 0
	}
	return o_array(o_index)
 #modcfunc local is_Empty
	if o_index==0:return 1
	return -1
 #global
 #module m_Brainf_ck; source,source_l
 #define button_block(%1="") %tbtn1 %i0  button %1,*%p:%tbtn2 goto *%i %i0:%tbtn1 *%o
 #define b_break             %tbtn2 goto *%p
 #define b_end               %tbtn2 *%o:stop:*%o
 ;#deffunc mB_init str p
 ;	sdim source,4000
 ;	source=p
 ;	source_l=strlen(source)
 ;	return
 #deffunc mB_init_num str p
	newmod o_Bf,step_2byte_num,$400
	set@step_2byte_num o_Bf,sc@
	multi_set@step_2byte_num o_Bf
	source_l=get_length@step_2byte_num(o_Bf)