算術演算を行い、結果を変数 <var> に格納します。
| ADD:<var>:<value> | <var> ← <var> + <value> | 加算 |
| SUB:<var>:<value> | <var> ← <var> - <value> | 減算 |
| MUL:<var>:<value> | <var> ← <var> * <value> | 乗算 |
| DIV:<var>:<value> | <var> ← <var> / <value> | 除算 |
| MOD:<var>:<value> | <var> ← <var> % <value> | 剰余 |
| AND:<var>:<value> | <var> ← <var> & <value> | ビット毎の論理積 |
| IOR:<var>:<value> | <var> ← <var> | <value> | ビット毎の論理和 |
| XOR:<var>:<value> | <var> ← <var> ^ <value> | ビット毎の排他的論理和 |
| NOT:<var>:<value> | <var> ← ~ <value> | ビット毎の論理否定 |
| LAND:<var>:<value> | <var> ← <var> AND <value> | 論理積 |
| LIOR:<var>:<value> | <var> ← <var> OR <value> | 論理和 |
| LNOT:<var>:<value> | <var> ← NOT <value> | 論理否定 |
| RND:<var>:<from>:<to> | <var> ← 範囲 <from>〜<to>の一様乱数値 |
|
|
乱数の種は SET:Seed:<seed> で設定できます。 |
上記演算に加え、下記に揚げたスタック演算が用意されています。
被演算数をスタックより POP し、結果をスタックに PUSH します。
| ADD | <push> ← <pop2> + <pop1> | 加算 |
| SUB | <push> ← <pop2> - <pop1> | 減算 |
| MUL | <push> ← <pop2> * <pop1> | 乗算 |
| DIV | <push> ← <pop2> / <pop1> | 除算 |
| MOD | <push> ← <pop2> % <pop1> | 剰余 |
| AND | <push> ← <pop2> & <pop1> | ビット毎の論理積 |
| IOR | <push> ← <pop2> | <pop1> | ビット毎の論理和 |
| XOR | <push> ← <pop2> ^ <pop1> | ビット毎の排他的論理和 |
| NOT | <push> ← ~ <pop1> | ビット毎の論理否定 |
| LAND | <push> ← <pop2> AND <pop1> | 論理積 |
| LIOR | <push> ← <pop2> OR <pop1> | 論理和 |
| LNOT | <push> ← NOT <pop1> | 論理否定 |
| EQ | <push> ← <pop2> == <pop1> | 等しい |
| NE | <push> ← <pop2> <> <pop1> | 等しくない |
| LT | <push> ← <pop2> < <pop1> | より小さい |
| LE | <push> ← <pop2> <= <pop1> | より小さいか等しい |
| GT | <push> ← <pop2> > <pop1> | より大きい |
| GE | <push> ← <pop2> >= <pop1> | より大きいか等しい |
| RND:<from>:<to> | <push> ← 範囲 <from>〜<to> の一様乱数値 |
| RND:<to> | <push> ← 範囲 0 〜<to> の一様乱数値 |
|
※ スタックから POP される順に <pop1> <pop2> です。 PUSH:x PUSH:y SUB POP:z …とした場合、z の内容は x - y になります。( y - x ではありません) |
| PUSH:<var> | 変数値または定数をスタックに積みます。 |
| POP[:<var>] | 変数にスタックから値を取り出します。 |
|
|
<var> を指定しない場合は、取り出した値は捨てられます。 |
| DUP | スタックトップを複製しスタックに積みます。 |
|
例 PUSH:a PUSH:b DUP POP:c POP:d POP:e …とした場合、c の内容は b に d の内容も b に e の内容で a になります。 |
| JT:<label> |
スタックを POP し、その内容が真であれば <label> にジャンプします。 |
| JF:<label> |
スタックを POP し、その内容が偽であれば <label> にジャンプします。 |
| 注意:サブルーチンまたはスコープをまたがってのスタック操作は出来ません。 |