簡単言語

NO_651

サンプルです
かたまりごとにラベルと変数を付属させようと思いまして
付属するのがポインタに出来ればそっちのがいいんですが^^;

#module sub_m_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
;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
logmes "dump "+i_ID
logmes "dump "+i_name
logmes "dump "+i_l_value
return
#modfunc local get4op var p_r
p_r=""+i_ID+":"+i_name+":"+i_l_value
return
#global
//////////////////////////////////////////////////
#module sub_m_var 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 get_v4op var p_r
p_r=""+v_i_ID+":"+v_i_name+":"+v_i_v_value
return
#global
//////////////////////////////////////////////////
#module m_block_stock max_l_data,l_data,max_var_data,var_data
#modinit
  newmod one_label_dat,sub_m_label,"null",0,0
  newmod one_var_dat,sub_m_var,"null",0,0
  max_l_data=-1
  max_var_data=-1
  return
#modfunc local add_label_data str _p_name,int _p_ID,int _p_l_value
  newmod one_label_dat,sub_m_label,_p_name,_p_ID,_p_l_value
  max_l_data++:if max_l_data==0:max_l_data++
  return
#modfunc local add_var_data str _p_name,int _p_ID,int _p_l_value
  newmod one_var_dat,sub_m_var,_p_name,_p_ID,_p_l_value
  max_var_data++:if max_var_data==0:max_var_data++
  return
#modfunc local dump
  tmp=""
  repeat max_l_data+1
  get4op@sub_m_label one_label_dat.cnt,tmp
  logmes ""+tmp
  loop
  tmp=""
  repeat max_var_data+1
  get_v4op@sub_m_var one_var_dat.cnt,tmp
  logmes ""+tmp
  loop
  return
#global
*m_block_dump
  newmod block_var,m_block_stock
  add_label_data@m_block_stock block_var.0,"a",1,1
  add_var_data@m_block_stock block_var.0,"x",10,5
  dump@m_block_stock block_var.0
  stop