【 R-CODE Operator 早見表 】





  演算

        算術演算を行い、結果を変数 <var> に格納します。

        <var>                変数名
        <value>                値(変数名もしくは定数)

        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               スタックトップを複製しスタックに積みます。

        JT:<label>        スタックを POP し、その内容が真であれば <label> にジャンプします。

        JF:<label>        スタックを POP し、その内容が偽であれば <label> にジャンプします。


        注意:サブルーチンまたはスコープをまたがってのスタック操作は出来ません。