2008年7月30日水曜日

軽量版、gotoを使用したサブルーチン:ver04

軽量版、gotoを使用したサブルーチン の命令も
衝突しにくいように書き換えました

FILE名:FILE_manage_label_mini_0_4.hsp
#include "FILE_set_get_label_mini_0_2.hsp"
#module manage_label
#deffunc init_at_manage_label
now=-1
init_at_set_get_label_mini
return
#deffunc set_at_manage_label
now++
set_label_at_set_get_label_mini now
return
#deffunc back_of_st_at_manage_label
get_label_at_set_get_label_mini now
now--
return
#define global ctype inner_call(%1,%2):\
tmp_l@set_get_label_mini=*%2:set_at_manage_label:goto %1:*%2
#define global ctype call(%1)%tlabel_call inner_call(%1,%n)
#define global back:\
back_of_st_at_manage_label:goto tmp_r@set_get_label_mini
#global


テストコード
#include "FILE_manage_label_mini_0_4.hsp"
init_at_manage_label
call(*s_a)
mes "OK"

stop
*s_a
mes "a"
call(*s_b)
call(*s_d)
back
*s_b
mes "b"
call(*s_c)
back
*s_c
mes "c"
back
*s_d
mes "d"
back

0 件のコメント: