Esempio n. 1
0
        public override Dynamic BinaryOperation(BinaryOperator _operator, Dynamic operand)
        {
            switch (_operator)
            {
            case BinaryOperator.Plus:
                return(new String(value + operand));

            case BinaryOperator.Times:
                return(new String(StringUtil.Repeat(value, operand.AsInt32)));

            case BinaryOperator.LessThan:
                return(Boolean.FromBool(string.Compare(value, operand.ToString()) < 0));

            case BinaryOperator.LessThanOrEqual:
                return(Boolean.FromBool(string.Compare(value, operand.ToString()) <= 0));

            case BinaryOperator.GreaterThan:
                return(Boolean.FromBool(string.Compare(value, operand.ToString()) > 0));

            case BinaryOperator.GreaterThanOrEqual:
                return(Boolean.FromBool(string.Compare(value, operand.ToString()) >= 0));

            case BinaryOperator.StartsWith:
                return(Boolean.FromBool(value.StartsWith(operand.ToString())));

            case BinaryOperator.EndsWith:
                return(Boolean.FromBool(value.EndsWith(operand.ToString())));

            case BinaryOperator.Contains:
                return(Boolean.FromBool(value.Contains(operand.ToString())));

            case BinaryOperator.Matches:
                return(Boolean.FromBool(StringUtil.GetRegex(operand.ToString()).IsMatch(value)));

            default:
                return(base.BinaryOperation(_operator, operand));
            }
        }
Esempio n. 2
0
 protected override int UnsafeCompareTo(Dynamic other)
 {
     return(value.CompareTo(other.ToString()));
 }
Esempio n. 3
0
 protected override bool UnsafeEquals(Dynamic other)
 {
     return(value == other.ToString());
 }