set_get_labelモジュールに続いて
manage_labelモジュールの名前も変更します
タイプがめんどくさい命令名になった気もしますが
直接呼ばれる可能性は低いので大丈夫でしょう
ちなみにcallマクロとbackマクロは
このモジュールを使う場合何度も呼び出す可能性があるので、そのままです
変な名前をつけると、使ったあと読みにくそうですからね
init_at_manage_label
変数の初期化処理
call(p1)
gosubのようにサブルーチンを呼び出します
p1:呼び出すサブルーチンのラベル
back
call命令でジャンプした場所に戻る命令
FILE名:FILE_manage_label_0_5.hsp
#include "FILE_set_get_label_0_2.hsp" #module manage_label #deffunc init_at_manage_label now=-1 init_at_set_get_label return #deffunc set_at_manage_label now++ set_label_at_set_get_label now return #deffunc back_of_st_at_manage_label get_label_at_set_get_label now now-- return #define global ctype inner_call(%1,%2):\ tmp_l@set_get_label=*%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 #global |
テストコード
#include "FILE_manage_label_0_5.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 件のコメント:
コメントを投稿