「特定のトークを聞いた後は、自己紹介トークが増える」というケースを例にとった解説です。
まず、自己紹介トークのそれぞれに名前を付けます。
*自己紹介A :15才です。 *自己紹介B :バナナが好きです。 *自己紹介C :実は河童を見たことがあります。
AとBは最初から喋る自己紹介で、Cは特定のトークを見たあとに追加される、ということにします。
次に単語群を定義します。
@自己紹介バリエーション 自己紹介A 自己紹介B
とりあえずAとBだけを記述しておきます。
これをどう使うかというと、
*自己紹介 ((自己紹介バリエーション))
こんな感じ。
カッコが二重になってます。
まず、内側のカッコ(自己紹介バリエーション)が実行されます。 さっき書いた単語群@自己紹介バリエーションから、自己紹介Aまたは自己紹介Bのどちらかが選ばれます。
内側のカッコは置き換えられ、外側のカッコが残るので(自己紹介A)または(自己紹介B)のいずれかの状態になります。
今度は外側カッコが実行されます。(自己紹介A)であれば、*自己紹介Aの内容に置き換えられるわけです。
で、結果として*自己紹介は「15才です。」または「バナナが好きです。」のいずれかになります。
つまり、単語群@自己紹介バリエーションにトークの名前を設定しておき、トークを間接的に選ぶ形にしてあるわけです。
ここまではOK?
さて、今度はここに自己紹介Cを増やします。
下のトークが、自己紹介Cを喋るようになるきっかけであるとします。
* :かっぱっぱ。
下のように書き加えます。
* :かっぱっぱ。 (単語の追加、自己紹介バリエーション、自己紹介C)
単語の追加は、単語群に新しい単語を追加する命令です。
この例だと、単語群@自己紹介バリエーションに、新しい単語自己紹介Cが追加されます。
つまり、このトークを読んだあとは、
@自己紹介バリエーション 自己紹介A 自己紹介B 自己紹介C
こういう状態になってるわけです(イメージ的に)。
この状態で、さきほどの*自己紹介を実行すると、自己紹介トークが3パターンに増えてるわけです。
いかがなもんでしょ。
以下補足。