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; } }
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); } }
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; } }