* 構造 [#f309c15c]
-辞書=エントリの集合
-エントリ=条件式+出力
-キー内ではJavaScriptで真偽判定の式を書ける
-出力の中にはJavaScriptを混ぜることができる
-エントリを検索してヒットしたエントリを探すロジックがキモ
-エントリ登録順に検索
-条件式がTrueとなったエントリがヒットする
-区切り文字(|)=改行、タブ、スペース
* サンプル(こんな記述がしたい!) [#w1c3d56c]
- ミドルは「イベント名、Ref0、Ref1...」という引数セットでエントリを捜す
- _call(引数配列) でエントリを探して実行、その結果を返す
- 条件式およびエントリ内では _Args[] という変数が有効
- ミドル側で_R[]にリファレンス、_Eにイベント名を入れる
- _がつくのはシステム変数、関数
- 条件式はJavaScriptとして真偽判定
- 出力式内の{}はJavaScriptとして実行、値を出力に混ぜる
#pre{{
*@OnBoot
起動しました。
}}
- 行頭に*のあるものがエントリ。その後改行があり、出力の羅列。次のエントリまでつづく。
- 条件式内の@は _Args[0]=="OnBoot" の省略記法
#pre{{
*@OnMinuteChange && _R[1]==0
{_R[0]}時になりました。
}}
#pre{{
}}
#pre{{
*@RandomTalk
@nooverlap
** ほげほげ
** へもへも
}}
- ** は現在の条件式のまま新しいエントリを登録
- 複数のエントリがヒットした場合はどれか一つをランダムに選択
- エントリの直後の行が@で始まる場合はそのエントリに対するオプション
#pre{{
}}