Example #1
0
        public static Expression Reduce(Expression condition, bool strict)
        {
            Logger.Log($"Reducing condition {condition}", Indentation.Five);

            var reducer = new ConditionReducer(strict);

            var newNode = MethodReplacer.Replace(condition);

            var reduced = reducer.Visit(newNode);

            if (condition == reduced)
            {
                Logger.Log($"Expression '{condition}' could not be reduced any further", Indentation.Six);
            }

            return(reduced);
        }
        public static Expression Replace(Expression expr)
        {
            var replacer = new MethodReplacer();

            return(replacer.Visit(expr));
        }