>localの命令をモジュール内から呼び出すのにモジュール名をつける必要があります。
「localの命令」というものはありません。
localの使い方が間違っているのと、それに対してHSPが syntax error を出さないことに問題があると思います。
追記:
>#deffunc local hoge1
において、
>hoge1
これに対しては正常にエラーを出していましたが、
>hoge1@hsp
こちらが通ってしまうことが問題だと思います。
通さずにエラーとするべきではないでしょうか?
追記2:
たびたび失礼します。
hsp31b6.txt にて更新履歴を見てみましたが、local オプションの具体的な使用例がありませんね。
βユーザー間で交わされる local を使ったスクリプトの多くは、ユーザー定義命で初期化済みの変数を定義するのに使ったりしています。
#module
#deffunc hoge local n
mes "n は最初はいつでも "+ n +" です."
n = rnd(100)
mes "n に "+ n +" を代入したよ"
return
#global
repeat 10: hoge: loop
ただ、global と対で考えたときに、local 指定の命令は外部からそのままでは呼び出せないため、モジュールファイルを配布する際、モジュール内だけで使用するようなユーザー定義命令に local を指定しておくことで、ユーザーが呼び出せないようにするという用途にも使えそうな...
#module "mod"
#define global hoge(%1) piyo@mod = %1: static_hoge@mod piyo@mod
#deffunc local static_hoge var s
mes s
return
#global
hoge 1
hoge "a"
; n = 1: static_hoge a // 外部から呼び出すことを禁止みたいな
不具合かどうかはちょっと分からないですね...。
## localって何となく使ってきましたが、どこかに使い方載っていましたっけ?