** 内容はSRC2.2.33のものです **
式
イベントコマンドやイベントラベルの引数は式とみなして値が評価・計算されます。式の要素として使えるのは下の4つです。
数値
文字列
変数
関数
数値
SRCでは数値として整数、浮動小数点数の両方を扱うことができます。数値の記述には半角文字を用います。マイナスの値も使うことができます。
例 0, 100, -12, 1.23
文字列
通常のプログラミング言語と異なり、SRCでは文字列を括弧等でくくる必要はありません。そのまま引数として使用できます。ただし、文字列がスペース等を含んでいる場合はダブルクォート「”」(半角文字)を使って文字列全体を括ってやる必要があります。
例 “全滅 敵”
「”」で囲まれた文字列に「$(式)」という文字列が含まれていた場合、その部分が式の値に置換されます。これにより式の値を利用した文字列を簡単に記述することができます。この機能を式置換と呼びます。
例 「第$(Wide(n))話」はnが3のとき「第3話」になる
式置換を行いたくない場合や文字列中に「”」を使いたい場合、上のように「”」で文字列を囲むことはできません。このような場合は文字列をバッククォート「`」(半角文字)を使って囲みます。
例 "
なおダブルクォート、バッククォートで囲まれた文字列中にある「#」はコメントの開始とは見なされません。
変数
変数とは各種の状態を記録するためのものです。自分で作成できるほか、様々な情報を得るためのシステム変数が用意されています。変数の詳細についてはこちらを参照して下さい。
関数
SRCではユニットやパイロットに関する情報を参照するための各種の関数がサポートされています。関数の詳細についてはこちらを参照して下さい。
演算子
式の値に対して各種の演算子を適用することができます。サポートされている演算子は次の通りです。
+加算
-減算
*乗算
/除算
**整数除算(2つの数値の商を計算し、結果を整数で返します)
^べき乗
Mod剰余
&文字列結合
=比較演算子
<>比較演算子(両辺の内容が等しくない場合に1、そうでなければ0。”!=”も同じ動作)
<比較演算子
<=比較演算子
>比較演算子
>=比較演算子
Not否定演算子(右辺の式が 0 でなければ 1、そうでなければ 0)
And比較演算子(両辺の式が両方とも 0 でなければ 1、そうでなければ 0)
Or比較演算子(両辺の式のいずれかが 0 でなければ 1、そうでなければ 0)
Like文字列比較演算子(左辺の文字列が右辺のパターンに一致すれば 1、そうでなければ 0)
文字列比較演算子Likeの右辺には文字列を比較するためのパターンを文字列で指定します。パターンには以下の特殊な文字パターンが使用可能です。
文字パターン一致する文字
?任意の1文字
*任意の数の文字
#任意の1文字の数字 (0-9)
[文字列]指定した文字列の中の任意の1文字
[!文字列]指定した文字列に含まれない任意の1文字
これらの文字パターンに使われている特殊文字自身を文字パターンに含めるにはその文字を括弧「[]」で括って下さい。
括弧「[]」を用いて文字列を指定する場合、文字同士を「-」で繋げる事によって特定の文字範囲を指定することが出来ます。例えば”[0-9]”という指定は”[0123456789]”と同じ意味になります。
例
"abcda" Like "a\*a"1を返します
"abcde" Like "a\*a"0を返します
"D" Like "[A-Z]"1を返します
"D" Like "[!A-Z]"0を返します
"a2b" Like "a#b"1を返します
"aCD13+X" Like "a[B-C][!E-G]##?X"1を返します
演算子とその項の間は必ず半角スペースを入れて下さい。スペースが含まれない場合はただの文字列と見なされます。
○ 1 + 5
× 1+5
演算子を使った式をコマンドの引数に使う場合は全体を半角括弧「()」でくくる必要があります。
例 Create サイキックバスター 0 ジェイ (Level(ロイド艦長) + 2) 3 4
各演算子は下のような結合優先順位を持っています。上にある演算子がより高い優先順位を持ちます。
^
* /
**
Mod
+ -
&
= <> < <= > >= Like
Not
And
Or
例えば 1 * 2 + 3 という式の場合、「*」のほうが「+」よりも優先順位が高いため、まず「1 * 2」が計算されます。次にその結果 2 を使って「2 + 3」が計算され、結果は 5 となります。
演算の優先順位を変えたい場合は半角括弧「()」を利用します。
例 (1 + 2) * (3 + 4)