Пример #1
0
        private ExpressionWrapper CreateNumericExpression(object numericValue, string parameter, Type dataType)
        {
            if (_usedParameters.ContainsKey(parameter))
            {
                return(_usedParameters[parameter]);
            }

            if (!_numericLiteralValues.ContainsKey(parameter))
            {
                _numericLiteralValues.Add(parameter, numericValue);
            }

            var wrapper = new ExpressionWrapper
            {
                Expression       = Expression.Parameter(Expression.Constant(numericValue).Type, parameter),
                IsNumericLiteral = true
            };

            _usedParameters.Add(parameter, wrapper);
            return(wrapper);
        }
        private static void GetMutators(this ModelConfigurationNode node, Dictionary <ExpressionWrapper, List <MutatorConfiguration> > result)
        {
            if (node.Mutators != null)
            {
                foreach (var pair in node.Mutators)
                {
                    var key = new ExpressionWrapper(pair.Key, false);
                    List <MutatorConfiguration> list;
                    if (!result.TryGetValue(key, out list))
                    {
                        result.Add(key, list = new List <MutatorConfiguration>());
                    }
                    list.Add(pair.Value);
                }
            }

            foreach (var child in node.Children)
            {
                child.GetMutators(result);
            }
        }
Пример #3
0
 [NotNull] protected abstract TResult Visit([NotNull] ExpressionWrapper expr);
 protected override BaseStatement Visit(ExpressionWrapper expr)
 {
     using (AppendLine("Expr"))
         return(base.Visit(expr));
 }
Пример #5
0
 [NotNull] protected virtual BaseStatement Visit([NotNull] ExpressionWrapper expr)
 {
     return(new ExpressionWrapper(Visit(expr.Expression)));
 }
Пример #6
0
 protected override IEnumerable <BaseStatement> Visit(ExpressionWrapper expr)
 {
     return(new ExpressionDecomposition(_names).Visit(expr.Expression));
 }
Пример #7
0
 protected override bool Visit(ExpressionWrapper expr)
 {
     return(_check.Visit(expr.Expression));
 }