Esempio n. 1
0
        private IClause ParseExact(BinaryExpression expression, ClauseContext context)
        {
            var left  = _lookup.Parse(expression.Left, context);
            var right = _lookup.Lookup(expression.Right).Parse(expression.Right, context);
            var op    = _lookup.Parse(expression.NodeType, left, right);

            var clause = new MutableClause(op)
                         .WrapParentheses();

            return(clause);
        }
        public IClause Parse(Expression expression, ClauseContext context)
        {
            var value = (expression as ConstantExpression).Value;

            if (context == ClauseContext.Select)
            {
                return(new Clause(value.ToString()));
            }
            var param = Parameter.CreateNew(value);

            return(new Clause(param.Name, param));
        }
        public IClause ParseExact(MethodCallExpression expression, ClauseContext context)
        {
            var functionName = _funcResolver.Resolve(expression.Method);
            var argClause    = new SeparatedClause(",".ToClause());

            foreach (var arg in expression.Arguments)
            {
                argClause.AppendSeparated(_lookup.Parse(arg, context));
            }

            var clause = new MutableClause(argClause).WrapParentheses().PrependText(functionName);

            return(clause);
        }
Esempio n. 4
0
        private IClause ParseExact(BinaryExpression binaryExpression, ClauseContext context)
        {
            Expression other;
            
            if (binaryExpression.Left is ConstantExpression)
            {
                other = binaryExpression.Right;
            }
            else
            {
                other = binaryExpression.Left;
            }

            var nullCheck = binaryExpression.NodeType == Equal ? " IS NULL" : " IS NOT NULL";

            var otherClause = _lookup.Parse(other, context);
            var clause = new MutableClause().Append(otherClause).AppendText(nullCheck).WrapParentheses();

            return clause;
        }
Esempio n. 5
0
 public LambdaClause Expression(LambdaExpression expression, ClauseContext context)
 {
     _clause = _parser.Parse(expression, context);
     return(this);
 }
Esempio n. 6
0
 public IClause Parse(Expression expression, ClauseContext context)
 {
     return(ParseExact(expression as BinaryExpression, context));
 }
Esempio n. 7
0
        public IClause Parse(Expression expression, ClauseContext context)
        {
            var parser = Lookup(expression);

            return(parser.Parse(expression, context));
        }
 public IClause Parse(Expression expression, ClauseContext context)
 {
     return(ParseExact(expression as MemberExpression));
 }
 public IClause Parse(Expression expression, ClauseContext context)
 {
     return(ParseExact((MethodCallExpression)expression, context));
 }
Esempio n. 10
0
 public IClause Parse(UnaryExpression expression, ClauseContext context)
 {
     return(_lookup.Parse(expression.Operand, context));
 }
Esempio n. 11
0
 IClause IExpressionParser.Parse(Expression expression, ClauseContext context)
 {
     return(Parse(expression as UnaryExpression, context));
 }
Esempio n. 12
0
 public IClause Parse(LambdaExpression expression, ClauseContext context)
 {
     return(_lookup.Parse(expression.Body, context));
 }