public bool Match(CodeExpression expression)
        {
            StringCompare other = expression as StringCompare;

            return((other != null) &&
                   RuleExpressionWalker.Match(_binaryExpressionBasedOnComparisonType, other._binaryExpressionBasedOnComparisonType) &&
                   RuleExpressionWalker.Match(_secondStringExpression, other._secondStringExpression) &&
                   RuleExpressionWalker.Match(_firstStringExpression, other._firstStringExpression) &&
                   RuleExpressionWalker.Match(_compareMethodInvocationExpression, other._compareMethodInvocationExpression) &&
                   RuleExpressionWalker.Match(_caseSensitiveExpression, other._caseSensitiveExpression));
        }
        public CodeExpression Clone()
        {
            StringCompare result = new StringCompare();

            result._compareMethodInvocationExpression     = RuleExpressionWalker.Clone(_compareMethodInvocationExpression);
            result._firstStringExpression                 = RuleExpressionWalker.Clone(_firstStringExpression);
            result._secondStringExpression                = RuleExpressionWalker.Clone(_secondStringExpression);
            result._binaryExpressionBasedOnComparisonType = RuleExpressionWalker.Clone(_binaryExpressionBasedOnComparisonType);
            result._caseSensitiveExpression               = RuleExpressionWalker.Clone(_caseSensitiveExpression);

            return(result);
        }