Пример #1
0
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     if (target.ExtraType == "TimeSpan")
     {
         var t = ((KecaknoahTimeSpan)target).timespan;
         switch (op)
         {
             case KecaknoahILCodeType.Plus:
                 return new KecaknoahTimeSpan(timespan + t);
             case KecaknoahILCodeType.Minus:
                 return new KecaknoahTimeSpan(timespan - t);
             default:
                 return KecaknoahNil.Instance;
         }
     }
     else
     {
         switch (op)
         {
             case KecaknoahILCodeType.Equal:
                 return KecaknoahBoolean.False;
             case KecaknoahILCodeType.NotEqual:
                 return KecaknoahBoolean.True;
             default:
                 return KecaknoahNil.Instance;
         }
     }
 }
Пример #2
0
        protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
        {
            if (target.ExtraType == "DynamicObject")
            {
                var t = target as KecaknoahDynamicObject;
                switch (op)
                {
                case KecaknoahILCodeType.Equal: return((t == target).AsKecaknoahBoolean());

                case KecaknoahILCodeType.NotEqual: return((t != target).AsKecaknoahBoolean());

                default: return(base.ExpressionOperation(op, target));
                }
            }
            else
            {
                switch (op)
                {
                case KecaknoahILCodeType.Equal: return(KecaknoahBoolean.False);

                case KecaknoahILCodeType.NotEqual: return(KecaknoahBoolean.True);

                default: return(base.ExpressionOperation(op, target));
                }
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="op"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
        {
            if (target.Type == TypeCode.Int64)
            {
                return(ExpressionOperation(op, (KecaknoahInteger)target));
            }
            else if (target.Type == TypeCode.Double)
            {
                return(ExpressionOperation(op, (KecaknoahFloat)target));
            }
            else
            {
                switch (op)
                {
                case KecaknoahILCodeType.Equal:
                    return(KecaknoahBoolean.False);

                case KecaknoahILCodeType.NotEqual:
                    return(KecaknoahBoolean.True);

                default:
                    return(KecaknoahNil.Instance);
                }
            }
        }
Пример #4
0
 private KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahInteger target)
 {
     switch (op)
     {
         case KecaknoahILCodeType.Negative:
             return (-Value).AsKecaknoahFloat();
         case KecaknoahILCodeType.Plus:
             return (Value + target.Value).AsKecaknoahFloat();
         case KecaknoahILCodeType.Minus:
             return (Value - target.Value).AsKecaknoahFloat();
         case KecaknoahILCodeType.Multiply:
             return (Value * target.Value).AsKecaknoahFloat();
         case KecaknoahILCodeType.Divide:
             return (Value / target.Value).AsKecaknoahFloat();
         case KecaknoahILCodeType.Modular:
             return (Value % target.Value).AsKecaknoahFloat();
         case KecaknoahILCodeType.Equal:
             return (Value == target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.NotEqual:
             return (Value != target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.Greater:
             return (Value > target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.Lesser:
             return (Value < target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.GreaterEqual:
             return (Value >= target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.LesserEqual:
             return (Value <= target.Value).AsKecaknoahBoolean();
         default:
             return KecaknoahNil.Instance;
     }
 }
Пример #5
0
        private KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahInteger target)
        {
            switch (op)
            {
            case KecaknoahILCodeType.Negative:
                return((-Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Plus:
                return((Value + target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Minus:
                return((Value - target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Multiply:
                return((Value * target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Divide:
                return((Value / target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.And:
                return((Value & target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Or:
                return((Value | target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Xor:
                return((Value ^ target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Modular:
                return((Value % target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.LeftBitShift:
                return((Value << (int)target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.RightBitShift:
                return((Value >> (int)target.Value).AsKecaknoahInteger());

            case KecaknoahILCodeType.Equal:
                return((Value == target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.NotEqual:
                return((Value != target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.Greater:
                return((Value > target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.Lesser:
                return((Value < target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.GreaterEqual:
                return((Value >= target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.LesserEqual:
                return((Value <= target.Value).AsKecaknoahBoolean());

            default:
                return(KecaknoahNil.Instance);
            }
        }
Пример #6
0
 /// <summary>
 /// このオブジェクトに対して二項式としての演算をします。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">2項目の<see cref="KecaknoahObject"/></param>
 /// <returns></returns>
 protected internal virtual KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     switch(op)
     {
         case KecaknoahILCodeType.Equal:
             return Equals(target).AsKecaknoahBoolean();
         case KecaknoahILCodeType.NotEqual:
             return (!Equals(target)).AsKecaknoahBoolean();
         default:
             throw new InvalidOperationException($"この{nameof(KecaknoahObject)}に対して式操作は出来ません。");
     }
 }
Пример #7
0
 /// <summary>
 /// このオブジェクトに対して二項式としての演算をしようとしても大体nilです。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">2項目の<see cref="KecaknoahObject"/></param>
 /// <returns></returns>
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     switch (op)
     {
         case KecaknoahILCodeType.Equal:
             return (dynamic)this == (dynamic)target;
         case KecaknoahILCodeType.NotEqual:
             return (dynamic)this != (dynamic)target;
         default:
             return KecaknoahNil.Instance;
     }
 }
Пример #8
0
 /// <summary>
 /// このオブジェクトに対して二項式としての演算をしようとしても大体nilです。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">2項目の<see cref="KecaknoahObject"/></param>
 /// <returns></returns>
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     switch (op)
     {
         case KecaknoahILCodeType.Equal:
             return (ExtraType == target.ExtraType).AsKecaknoahBoolean();
         case KecaknoahILCodeType.NotEqual:
             return (ExtraType != target.ExtraType).AsKecaknoahBoolean();
         default:
             return Instance;
     }
 }
Пример #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="op"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
        {
            if (op == KecaknoahILCodeType.Not)
            {
                return((!Value).AsKecaknoahBoolean());
            }
            if (target.Type == TypeCode.Boolean)
            {
                var t = (KecaknoahBoolean)target;
                switch (op)
                {
                case KecaknoahILCodeType.AndAlso:
                    return((Value && t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.OrElse:
                    return((Value || t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.And:
                    return((Value & t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.Or:
                    return((Value | t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.Xor:
                    return((Value ^ t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.Equal:
                    return((Value == t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.NotEqual:
                    return((Value != t.Value).AsKecaknoahBoolean());

                default:
                    return(KecaknoahNil.Instance);
                }
            }
            else
            {
                switch (op)
                {
                case KecaknoahILCodeType.Equal:
                    return(False);

                case KecaknoahILCodeType.NotEqual:
                    return(True);

                default:
                    return(KecaknoahNil.Instance);
                }
            }
        }
Пример #10
0
        /// <summary>
        /// このオブジェクトに対して二項式としての演算をしようとしても大体nilです。
        /// </summary>
        /// <param name="op">演算子</param>
        /// <param name="target">2項目の<see cref="KecaknoahObject"/></param>
        /// <returns></returns>
        protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
        {
            switch (op)
            {
            case KecaknoahILCodeType.Equal:
                return((dynamic)this == (dynamic)target);

            case KecaknoahILCodeType.NotEqual:
                return((dynamic)this != (dynamic)target);

            default:
                return(KecaknoahNil.Instance);
            }
        }
Пример #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="op"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
        {
            if (target.Type == TypeCode.String)
            {
                var t = (KecaknoahString)target;
                switch (op)
                {
                case KecaknoahILCodeType.Plus:
                    return((Value + t.Value).AsKecaknoahString());

                case KecaknoahILCodeType.Equal:
                    return((Value == t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.NotEqual:
                    return((Value != t.Value).AsKecaknoahBoolean());

                case KecaknoahILCodeType.Greater:
                    return((Value.CompareTo(t.Value) > 0).AsKecaknoahBoolean());

                case KecaknoahILCodeType.Lesser:
                    return((Value.CompareTo(t.Value) < 0).AsKecaknoahBoolean());

                case KecaknoahILCodeType.GreaterEqual:
                    return((Value.CompareTo(t.Value) >= 0).AsKecaknoahBoolean());

                case KecaknoahILCodeType.LesserEqual:
                    return((Value.CompareTo(t.Value) <= 0).AsKecaknoahBoolean());

                default:
                    return(KecaknoahNil.Instance);
                }
            }
            else
            {
                switch (op)
                {
                case KecaknoahILCodeType.Equal:
                    return(KecaknoahBoolean.False);

                case KecaknoahILCodeType.NotEqual:
                    return(KecaknoahBoolean.True);

                default:
                    return(KecaknoahNil.Instance);
                }
            }
        }
Пример #12
0
        private KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahFloat target)
        {
            switch (op)
            {
            case KecaknoahILCodeType.Negative:
                return((-Value).AsKecaknoahFloat());

            case KecaknoahILCodeType.Plus:
                return((Value + target.Value).AsKecaknoahFloat());

            case KecaknoahILCodeType.Minus:
                return((Value - target.Value).AsKecaknoahFloat());

            case KecaknoahILCodeType.Multiply:
                return((Value * target.Value).AsKecaknoahFloat());

            case KecaknoahILCodeType.Divide:
                return((Value / target.Value).AsKecaknoahFloat());

            case KecaknoahILCodeType.Modular:
                return((Value % target.Value).AsKecaknoahFloat());

            case KecaknoahILCodeType.Equal:
                return((Value == target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.NotEqual:
                return((Value != target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.Greater:
                return((Value > target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.Lesser:
                return((Value < target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.GreaterEqual:
                return((Value >= target.Value).AsKecaknoahBoolean());

            case KecaknoahILCodeType.LesserEqual:
                return((Value <= target.Value).AsKecaknoahBoolean());

            default:
                return(KecaknoahNil.Instance);
            }
        }
Пример #13
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="op"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
        {
            if (target.Type == TypeCode.Boolean)
            {
                var t = (KecaknoahBoolean)target;
                switch (op)
                {
                    case KecaknoahILCodeType.Not:
                        return (!Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.AndAlso:
                        return (Value && t.Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.OrElse:
                        return (Value || t.Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.And:
                        return (Value & t.Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.Or:
                        return (Value | t.Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.Xor:
                        return (Value ^ t.Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.Equal:
                        return (Value == t.Value).AsKecaknoahBoolean();
                    case KecaknoahILCodeType.NotEqual:
                        return (Value != t.Value).AsKecaknoahBoolean();
                    default:
                        return KecaknoahNil.Instance;
                }
            }
            else
            {
                switch (op)
                {
                    case KecaknoahILCodeType.Equal:
                        return False;
                    case KecaknoahILCodeType.NotEqual:
                        return True;
                    default:
                        return KecaknoahNil.Instance;
                }
            }

        }
Пример #14
0
 private KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahInteger target)
 {
     switch (op)
     {
         case KecaknoahILCodeType.Plus:
             return (Value + target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Minus:
             return (Value - target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Multiply:
             return (Value * target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Divide:
             return (Value / target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.And:
             return (Value & target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Or:
             return (Value | target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Xor:
             return (Value ^ target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Modular:
             return (Value % target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.LeftBitShift:
             return (Value << (int)target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.RightBitShift:
             return (Value >> (int)target.Value).AsKecaknoahInteger();
         case KecaknoahILCodeType.Equal:
             return (Value == target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.NotEqual:
             return (Value != target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.Greater:
             return (Value > target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.Lesser:
             return (Value < target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.GreaterEqual:
             return (Value >= target.Value).AsKecaknoahBoolean();
         case KecaknoahILCodeType.LesserEqual:
             return (Value <= target.Value).AsKecaknoahBoolean();
         default:
             return KecaknoahNil.Instance;
     }
 }
Пример #15
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="op"></param>
 /// <param name="target"></param>
 /// <returns></returns>
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     if (target.Type == TypeCode.String)
     {
         var t = (KecaknoahString)target;
         switch (op)
         {
             case KecaknoahILCodeType.Plus:
                 return (Value + t.Value).AsKecaknoahString();
             case KecaknoahILCodeType.Equal:
                 return (Value == t.Value).AsKecaknoahBoolean();
             case KecaknoahILCodeType.NotEqual:
                 return (Value != t.Value).AsKecaknoahBoolean();
             case KecaknoahILCodeType.Greater:
                 return (Value.CompareTo(t.Value) > 0).AsKecaknoahBoolean();
             case KecaknoahILCodeType.Lesser:
                 return (Value.CompareTo(t.Value) < 0).AsKecaknoahBoolean();
             case KecaknoahILCodeType.GreaterEqual:
                 return (Value.CompareTo(t.Value) >= 0).AsKecaknoahBoolean();
             case KecaknoahILCodeType.LesserEqual:
                 return (Value.CompareTo(t.Value) <= 0).AsKecaknoahBoolean();
             default:
                 return KecaknoahNil.Instance;
         }
     }
     else
     {
         switch (op)
         {
             case KecaknoahILCodeType.Equal:
                 return KecaknoahBoolean.False;
             case KecaknoahILCodeType.NotEqual:
                 return KecaknoahBoolean.True;
             default:
                 return KecaknoahNil.Instance;
         }
     }
 }
Пример #16
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="op"></param>
 /// <param name="target"></param>
 /// <returns></returns>
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     if (target.Type == TypeCode.Int64)
     {
         return ExpressionOperation(op, (KecaknoahInteger)target);
     }
     else if (target.Type == TypeCode.Double)
     {
         return ExpressionOperation(op, (KecaknoahFloat)target);
     }
     else
     {
         switch (op)
         {
             case KecaknoahILCodeType.Equal:
                 return KecaknoahBoolean.False;
             case KecaknoahILCodeType.NotEqual:
                 return KecaknoahBoolean.True;
             default:
                 return KecaknoahNil.Instance;
         }
     }
 }
 /// <summary>
 /// 二項演算をします。
 /// 実際には単項演算子でも適用されるため、-(<see cref="KecaknoahILCodeType.Negative"/>)と
 /// !(<see cref="KecaknoahILCodeType.Not"/>)にも対応出来ます。
 /// <see cref="KecaknoahILCodeType"/>内にはその他の演算も含まれていますが、
 /// 複合演算子はILレベルで処理されるので対応する意味はありません。
 /// ちなみに<see cref="KecaknoahObject"/>との演算方法はどのように実装しても構いません。
 /// Kecaknoah内部では<see cref="KecaknoahObject.Type"/>の比較と内部のValueプロパティによる比較となっています。
 /// thisで比較すると99%falseになってしまうので注意してください。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">対象のインスタンス</param>
 /// <returns></returns>
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target) => base.ExpressionOperation(op, target);
Пример #18
0
 /// <summary>
 /// 値を伴わないコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 internal void PushCode(KecaknoahILCodeType codeType)
 {
     codes.Add(new KecaknoahILCode {
         Type = codeType
     });
 }
Пример #19
0
 /// <summary>
 /// 整数値を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, long value)
 {
     codes.Add(new KecaknoahILCode {
         Type = codeType, IntegerValue = value
     });
 }
Пример #20
0
 /// <summary>
 /// 二項演算をします。
 /// 実際には単項演算子でも適用されるため、-(<see cref="KecaknoahILCodeType.Negative"/>)と
 /// !(<see cref="KecaknoahILCodeType.Not"/>)にも対応出来ます。
 /// <see cref="KecaknoahILCodeType"/>内にはその他の演算も含まれていますが、
 /// 複合演算子はILレベルで処理されるので対応する意味はありません。
 /// ちなみに<see cref="KecaknoahObject"/>との演算方法はどのように実装しても構いません。
 /// Kecaknoah内部では<see cref="KecaknoahObject.Type"/>の比較と内部のValueプロパティによる比較となっています。
 /// thisで比較すると99%falseになってしまうので注意してください。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">対象のインスタンス</param>
 /// <returns></returns>
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     return base.ExpressionOperation(op, target);
 }
Пример #21
0
 /// <summary>
 /// 浮動小数点数値を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, double value)
 {
     codes.Add(new KecaknoahILCode {
         Type = codeType, FloatValue = value
     });
 }
Пример #22
0
 /// <summary>
 /// 文字列を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, string value)
 {
     codes.Add(new KecaknoahILCode {
         Type = codeType, StringValue = value
     });
 }
Пример #23
0
 protected internal override KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     if (target.ExtraType == "DynamicObject")
     {
         var t = target as KecaknoahDynamicObject;
         switch (op)
         {
             case KecaknoahILCodeType.Equal: return (t == target).AsKecaknoahBoolean();
             case KecaknoahILCodeType.NotEqual: return (t != target).AsKecaknoahBoolean();
             default: return base.ExpressionOperation(op, target);
         }
     }
     else
     {
         switch (op)
         {
             case KecaknoahILCodeType.Equal: return KecaknoahBoolean.False;
             case KecaknoahILCodeType.NotEqual: return KecaknoahBoolean.True;
             default: return base.ExpressionOperation(op, target);
         }
     }
 }
Пример #24
0
 /// <summary>
 /// このオブジェクトに対して二項式としての演算をします。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">2項目の<see cref="KecaknoahObject"/></param>
 /// <returns></returns>
 protected internal virtual KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     throw new InvalidOperationException($"この{nameof(KecaknoahObject)}に対して式操作は出来ません。");
 }
Пример #25
0
 /// <summary>
 /// 真偽値を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, bool value)
 {
     codes.Add(new KecaknoahILCode { Type = codeType, BooleanValue = value });
 }
Пример #26
0
 /// <summary>
 /// 文字列を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, string value)
 {
     codes.Add(new KecaknoahILCode { Type = codeType, StringValue = value });
 }
Пример #27
0
 /// <summary>
 /// 浮動小数点数値を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, double value)
 {
     codes.Add(new KecaknoahILCode { Type = codeType, FloatValue = value });
 }
Пример #28
0
 /// <summary>
 /// 整数値を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, long value)
 {
     codes.Add(new KecaknoahILCode { Type = codeType, IntegerValue = value });
 }
Пример #29
0
 /// <summary>
 /// 真偽値を伴うコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 /// <param name="value">値</param>
 internal void PushCode(KecaknoahILCodeType codeType, bool value)
 {
     codes.Add(new KecaknoahILCode {
         Type = codeType, BooleanValue = value
     });
 }
Пример #30
0
 /// <summary>
 /// 値を伴わないコードを追加します。
 /// </summary>
 /// <param name="codeType">追加する<see cref="KecaknoahILCodeType"/></param>
 internal void PushCode(KecaknoahILCodeType codeType)
 {
     codes.Add(new KecaknoahILCode { Type = codeType });
 }
Пример #31
0
 /// <summary>
 /// このオブジェクトに対して二項式としての演算をします。
 /// </summary>
 /// <param name="op">演算子</param>
 /// <param name="target">2項目の<see cref="KecaknoahObject"/></param>
 /// <returns></returns>
 protected internal virtual KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahObject target)
 {
     throw new InvalidOperationException($"この{nameof(KecaknoahObject)}に対して式操作は出来ません。");
 }