RS2C-wiki

構文の決まり

最終更新:

rs2c

- view
メンバー限定 登録/ログイン

文字の扱い

全角と半角

RailSimIIの定義文以外でも、プログラミング・スクリプティングでは基本的に半角英数字を使います
全角を用いるのはコメント文やファイル名の文字列を記述するときです。
コメント文を除けば全角文字の記述には必ず「"(ダブルクォーテーション・ダブルクォート)」で囲みます。

※RailSimIIではオブジェクト・スイッチ名を全角文字で定義できるので、「"~"」で囲む場合に全角が使用できると考えれば良いでしょう。
※「"~"」の中に「"」を含めることはできません。また途中で改行することもできません。

大文字と小文字

RailSimIIのプロパティ名などは文字の大小が厳密に区別されUser's Referenceにあるとおりでなければなりません。
ファイル名では、Windowsの仕様で文字の大小は区別されません。ただし、英数字の全角・半角に注意しましょう。

セミコロン

プロパティの記述の最後には必ずセミコロン(;)を記述します。

Joint3D"MainBody"{                //←セミコロン不要
    AttachCoord=(0.0, 0.0, 0.0);  //←セミコロン必要(プロパティ)
}                               //←セミコロン不要



カッコの扱い

いろいろなカッコ

カッコの文字は種類があります。数学などのカッコとは用法が異なり、入れ子状になってもカッコの種類を変えることはありません。
数学:{(1+2)*(3+4)}*5   数学では外側のカッコほど大きいものを用いる
RS2:((1+2)*(3+4))*5   RS2ではカッコの大きさを変えることはない

RailSImIIの定義では以下のようなカッコを用います
  • 大カッコ「[ ]」
    • RailSimIIでは使用しません
  • 中カッコ「{ }」
    • オブジェクト名やクラスのの始まりと終わりを示す
    • 条件分岐の始まりと終わりを示し、その中にアクションなどを記述する
  • 小カッコ「( )」
    • 座標系のプロパティの設定に用いる → (x, y, z)または(z, y)

カッコを閉じる

カッコを開いた後は、必ず閉じなければなりません。
閉じ忘れると、その行よりずっと下でエラーが発生することがあり、原因特定が難しくなる場合があります。

改行と空白(タブ文字)

User's Reference 空白の扱い と同様です

空白とタブ文字

中カッコで囲まれるごとに行の先頭へ半角スペースやタブ文字を挿入すると、読みやすくなります。
空白が大目に必要な場合は、半角スペースよりタブ文字を使うと楽です。
Object3D"DoorR"{
    ModelFileName="DoorRight.x";
    ModelScale=1.0;
    Joint3D"MainBody"{
        AttachCoord=(0.0, 0.0, 0.0);
    }
}

空白を入れると良い場所

半角イコール「=」の前後
PluginName = "○○系";
オブジェクト名などとその名前の間
Object3D "オブジェクト名"
コロン「,」の直後
NoShadow = 1, 2, 3, 4;
カッコとその内容の間
Coord = ( 8.40, 0.43 );

また、タブ文字と半角スペースは相互で同等に扱われるので、タブ文字はプロパティなどの設定内容の位置をそろえる場合にも用います。
PluginHeader{
    RailSimVersion =  2.03;
    PluginType =      Train;
    PluginName =      "○○系";
    PluginAuthor =    "hoge";
}

補足

プロパティの終わりにはセミコロンをつけ、カッコは必ず閉じる必要があります。
実はこのような記述構造では、文法上は改行と必要以上の空白等は必要ありませんし、逆に多くても問題ありません。
単に人間が見やすくするために改行・空白の挿入をしているだけです。RailSimIIも例外なくこれに当てはまります。
ただし、文字列や、意味のある単語(予約語)の途中で改行することはできません。

見づらいが文法的には正しい
PluginHeader{RailSimVersion=2.00;PluginType=Train;PluginName="○○系";PluginAuthor="hoge";}

/*---プロパティ名などには改行や空白は挿入できません---*/
PluginHeader{
RailSimVersion=
2.00;
PluginType=
Train;
PluginName=
"○○系";
PluginAuthor=
"hoge";
}

見やすい記述
PluginHeader{
    RailSimVersion = 2.00;
    PluginType = Train;
    PluginName = "○○系";
    PluginAuthor = "hoge";
}

改行をしないと大変見づらくなりまが、行数を減らす目的や見やすくするために、改行の数を調整する場合もあります。
空白・タブ文字などを用いれば、それなりに見やすくなります。
//項目が少ないので1行にまとめてしまう例
DefineSwitch "車体色"{ Entry = "白"; Entry = "ステンレス"; }

//文字列が長いのでプロパティ設定の途中で改行する
Description = 
"よかったのか?ホイホイ入線してきて。 俺は単独運用だってかまわないで食っちまう車両なんだぜ";
目安箱バナー