Exemplo n.º 1
0
        private KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahFloat target)
        {
            switch (op)
            {
            case KecaknoahILCodeType.Negative:
                return((-Value).AsKecaknoahInteger());

            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.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);
            }
        }
Exemplo n.º 2
0
 private KecaknoahObject ExpressionOperation(KecaknoahILCodeType op, KecaknoahFloat target)
 {
     switch (op)
     {
         case KecaknoahILCodeType.Negative:
             return (-Value).AsKecaknoahInteger();
         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.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;
     }
 }