|
BBv2で使用される条件式には以下のようなものがある。
| 条件式 | 評価値 |
|---|---|
| a | aに空でない文字列が含まれていれば真 |
| a = b | aとbの要素がすべて同じ場合に真 |
| a != b | aとbの要素に同じでないものが含まれる場合に真 |
| a < b | 辞書順でaがbより小さい場合に真 |
| a <= b | 辞書順でaがb以下の場合に真 |
| a > b | 辞書順でaがbより大きい場合に真 |
| a >= b | 辞書順でaがb以上の場合に真 |
| a in b | aの要素が全てbに含まれる場合に真 |
| ! cond | condが偽の場合に真 |
| a && b | aが真かつbが真の場合に真 |
| a || b | aが真またはbが真の場合に真 |
| ( cond ) | condが真の場合に真 |
ここで、aとbは文字列のリスト、変数、ルールの戻り値のいずれかであり、condは条件式である。
なお、「=」、「!=」、「<」、「<=」、「>」、「>=」の6つの比較演算において、一方のリストのサイズが他方よりも短い場合、短いリストの後方に空文字列の要素続いているかのように振舞う。
演算子の優先順位は以下のようになっている。上の方ほど優先順位は高い。
switch文や組み込みルールGLOBなどで行われるパターンマッチングには次に示すパターンの組み合わせが使われる。
| パターン | 意味 |
|---|---|
| ? | 任意の1文字 |
| * | サイズ0以上の任意の文字列 |
| [文字クラス] | 文字クラスにマッチする1文字 |
| [^文字クラス] | 文字クラスにマッチしない1文字 |
| \c | 文字c |
ここで文字クラスは以下の組み合わせである。
| パターン | 意味 |
|---|---|
| c | 文字c |
| a-b | 文字aから文字bまでの範囲 |