========== ========== ========== ==========
     for文追加プラグイン
========== ========== ========== ==========

【最終更新日】2018/01/27 04:51
【  名  称  】for文追加プラグイン
【  種  別  】ティラノスクリプト用の外部プラグイン
【 製 作 者 】荻原（おぎはら）
【 開発環境 】64bit版Windows10, ティラノスクリプトv460, ティラノライダーv200 
【 動作環境 】上記開発環境にて確認
【 連 絡 先 】Twitterまでどうぞ（@tempura17654）
【 配 布 元 】http://tempura9357.blog.fc2.com
【ライセンス】MIT

---------- ----------



◇ 概要 ◇

ティラノスクリプトでfor文を扱えるようにするプラグインです。

for文というのはループ（繰り返し）処理を行うための文法で、
プログラミングでは基礎的なテクニックのひとつです。
しかしティラノスクリプトの正規タグでは、この文法をサポートしていません。

そこでこのプラグインは、
for文を扱うための4つのタグをティラノスクリプトに追加します。
このプラグインを導入すると、
・[for]
・[foreach]
・[breakfor]
・[nextfor]
の4つのタグを使えるようになります。



◇ ファイル構成 ◇

for
 ├ for.js
 ├ init.ks
 ├ _SAMPLE.ks
 └ _README.txt



◇ 導入方法 ◇

解凍して出てきた「for」フォルダを、
「data/others/plugin/」下にコピーしてください。
その後、first.ksに以下のタグを記述してください。

    [plugin name=for]



◇ pluginタグに指定できるパラメータ ◇

-



◇ タグリファレンス ◇

◆ [for] for文の開始
    
    || 概要
    
    for文（ループ処理）の記述を開始します。
    for タグと nextfor タグの間に記述された処理をループさせることができます。
    
    name属性で指定された変数にfrom属性からto属性までの数を入れながらループします。
    （つまり、name属性で指定した変数をループ処理の中で使うことができます。）
    
    to属性の代わりに len 属性を用いて、繰り返す回数を直接指定することもできます。
    
    for文の終わりには必ず nextfor タグを記述してください。
    
    for文は入れ子に対応しています。
    
    for文のなかに jump タグを記述するなどして
    nextfor･breeakfor タグを踏まずにfor文を抜け出すようなことがあると、
    スタック（ゴミ）が溜まっていき、セーブデータを圧迫します。
    その場合は clearstack の記述を検討してください。
    
    また、from属性やto属性の数値に関わらず
    「何回ループ処理を行ったか」という数値がtf.indexに格納されます。
    name属性で指定した変数に加え、こちらもループ処理の中で使うことができます。
    
    || 指定できるパラメータ
    
    name  【必須】ループする際に番号を格納していく変数の名前を指定します。
    from  ループを開始する数値を整数で指定します。デフォルトは0。
    to    ループを終了する数値を整数で指定します。デフォルトは3。
          fromより大きくなければいけません。
    len   ループ処理を行う回数を直接指定します。
          これを指定した場合、to属性は無視されます。
    deep  【入れ子にする場合は必須】何段階目のfor文か、数値で指定します。
           初期値は0なので、0は省略できます。入れ子にするたびに1、2と増やしていってください。
    
    || サンプルコード
    
    [plugin name=for]
    [for name=f.i from=1 to=5]
    「[emb exp=f.i]」
    [nextfor]
    -[p]
    [for name=f.i from=3 len=3]
    「[emb exp=f.i]」
    [nextfor]
    -[p]

◆ [foreach] foreach文の開始
    
    || 概要
    
    foreach文（ループ処理）の記述を開始します。
    foreach文はfor文の仲間です。ループ処理を行うところはfor文と同様ですが、
    「array属性で指定した配列の各要素を、name属性で指定した変数に格納しながらループする」
    というところに特徴があります。
    その点以外はfor文とまったく同じ挙動をします。
    
    || 指定できるパラメータ
    
    array 【必須】ループする配列を指定します。
    name  【必須】ループする際に配列の要素を格納していく変数の名前を指定します。
    from   ループを開始する数値を整数で指定します。デフォルトは0。
    to     ループを終了する数値を整数で指定します。
    len    ループ処理を行う回数を直接指定します。
           これを指定した場合、to属性は無視されます。
           ※何も指定しなかった場合、配列の長さが初期値となります。
    deep  【入れ子にする場合は必須】何段階目のfor文か、数値で指定します。
           初期値は0なので、0は省略できます。入れ子にするたびに1、2と増やしていってください。
    
    || サンプルコード
    
    [plugin name=for]
    [iscript]
    f.array = [0,1,2,3,4,5,6,7,8,9]
    [endscript]
    [foreach name=f.item array=f.array]
    「[emb exp=f.item]」
    [nextfor]
    -[p]
    [foreach name=f.item array=f.array from=2 to=4]
    「[emb exp=f.item]」
    [nextfor]
    -[p]
    [foreach name=f.item array=f.array from=3 len=5]
    「[emb exp=f.item]」
    [nextfor]
    -[p]
    [foreach name=f.item array=f.array from=7 len=5]
    「[emb exp=f.item]」
    [nextfor]
    -[p]
    [foreach name=f.item array=f.array from=999]
    「[emb exp=f.item]」
    [nextfor]
    -[p]

◆ [breakfor] for文を抜け出す
    
    || 概要
    
    for タグと nextfor タグの間に記述することができます。
    たとえfor文の途中であっても、このタグにぶつかった時点でfor文を抜け出します。
    
    || 指定できるパラメータ
    
    ありません。
    
    ||サンプルコード
    
    [plugin name=for]
    [for name=f.i from=1 to=5]
    「[emb exp=f.i]」
    [breakfor cond=f.i>2]
    [nextfor]
    -[p]

◆ [nextfor] for文を終了する
    
    || 概要
    
    for文を閉じます。for文の終わりに必ず記述する必要があります。
    このタグにぶつかった時点でループを継続するかどうかチェックします。
    ループを継続する場合はname属性で指定した変数を1増加させてから
    for タグの位置まで巻き戻りますが、
    ループを打ち切る場合は次のタグに進みます。
    
    || 指定できるパラメータ
    
    deep  【入れ子にする場合は必須】何段階目のfor文か、数値で指定します。
           初期値は0なので、0は省略できます。入れ子にするたびに1、2と増やしていってください。
    
    || サンプルコード
    
    なし。



◇ FAQ・既知のバグ等 ◇

-



◇ 履歴 ◇

2018/01/27 04:51 [clearstack]が正常に動作しなくなる問題を修正。
                 入れ子にした場合正常に動作しなくなるケースがあった問題を、
                 [for][foreach][nextfor]タグにdeepパラメータを追加する方法によって修正。
2018/01/04 23:36 配布開始
