YAYA as SAORI†
摂理氏作、yaya.dllをSAORIとして呼び出すモジュールです。
YAYA以外のSHIORIからYAYAの機能を使う事が可能になります。
デフォルトの状態ではYAYAのビルトイン(システム)関数のみ利用できます。
追加モジュールを導入することにより更に用途が広がります。YAYAの文法がわかる人はこの追加モジュールを自分で作成することができます。
ダウンロード†
追加モジュール†
解説サイト†
デモゴースト†
- 紺野さやめ
- 里々用デモゴースト。同梱されているSAORIのバージョンが古いため、入れ替え推奨。
モジュールの自作†
- 通常の辞書と同じように、yaya.txtに追記することで自由に追加できます。
慣習上「.aym」という拡張子(※aya moduleの略)にする事が多いですが、それ以外であっても動作に影響はありません。
- SAORIの引数は、モジュール内でREQ.ARGS[*]という配列に格納されています。
Argument0はREQ.ARGS[0]で、それ以降も同様です。
- SAORIの戻り値は、モジュール内でRES.RESULTおよびRES.VALUE*という変数に代入する事で返却します。
単数戻り値ResultはRES.RESULTに、複数戻り値Value*はそれぞれ一つずつRES.VALUE*に返却します。
RES.VALUE*は配列ではない事に注意してください。代入にはシステム関数EVALが便利であるかもしれません。
- もし引数が不正等の理由から、SAORIとしての機能が正常に実行出来なかった場合には、関数の戻り値として(SAORI戻り値ではなく)数値-1を返却します。
YAYA as SAORIシステム部が戻り値として-1を受け取ると、不正な呼び出しとしてエラーを通知します。
この時、YAYAのシステム関数LOGGINGを利用して、エラーが発生したSAORI関数名とエラーの説明をログに残す事が推奨されます。
- 関数名は自由に設定して構いませんが、「モジュール名.関数名」といった組成にすることには少なくとも二つ意味があります。
- 一つは、そうした組成の関数名について、YAYA as SAORIはモジュールのロード・アンロード用の仕組みを提供していることです。
モジュール名.関数名というピリオドを含む関数名が呼び出された時、YAYA as SAORIはモジュール名の部分を記憶します。
そして、同一のモジュール名を持つ関数が始めて呼ばれたときに、モジュール名.Loadという関数がないかを探し、あれば実行します。
また、yaya.dllがアンロードされるとき、モジュール名.Unloadという関数がないかを探し、あれば実行します。
モジュール全体にわたって共通のグローバル変数を利用するような場合には、初期化・後始末にこうした仕組みを利用できるでしょう。
- もう一つは、このようにモジュール名を関数名の前に冠しておくことで、いくらか関数名が重複しにくくなることです。
モジュールは異なる複数人が作成した物が共存することがありますし、当然一人で複数のモジュールを個別に作ることもあります。
そうした場合を想定してこのように命名しておけば、関数名が重複するリスクをある程度低めることができるでしょう。