protected virtual void EmitNot(NPathNotExpression notExpression)
 {
     Write("(not "); // do not localize
     EmitExpression(notExpression.Expression);
     Write(")");
 }
Example #2
0
		private SqlExpression EvalNot(NPathNotExpression notExpression)
		{
			SqlExpression expression = (SqlSearchCondition) EvalExpression(notExpression.Expression) ;
			SqlSearchCondition search = expression as SqlSearchCondition ;
			if (search != null)
				search.Negative = true;
			return expression;
		}
 protected virtual bool EvalNotExpression(object item, NPathNotExpression notExpression)
 {
     return !EvalExpression(item, notExpression.Expression);
 }
        private IValue ParseExpression()
        {
            if (tokenizer.GetCurrentToken().IsType("not"))
            {
                tokenizer.MoveNext(); // move past not
                NPathNotExpression not = new NPathNotExpression();
                not.Expression = ParseExpression();
                return not;
            }

            if (CurrentIsValue())
            {
                IValue operand = ParseValue();
                IValue expression = null;

                if (tokenizer.GetCurrentToken().IsType("between"))
                {
                    expression = ParseBetweenExpression(operand);
                    return expression;
                }

                if (tokenizer.GetCurrentToken().IsType("in"))
                {
                    expression = ParseInExpression(operand);
                    return expression;
                }

                if (tokenizer.GetCurrentToken().IsType("math") || tokenizer.GetCurrentToken().IsType("compare") /* ||
                    tokenizer.GetCurrentToken().IsType("boolop")*/)
                {
                    expression = ParseOperator(operand);

                    return expression;
                }

                if (tokenizer.GetCurrentToken().IsType(")"))
                {
                    expression = operand;
                    return expression;
                }

                if (tokenizer.GetCurrentToken().IsType("as"))
                {
                    expression = operand;
                    return expression;
                }

                if (tokenizer.GetCurrentToken().IsType("]"))
                {
                    expression = operand;
                    return expression;
                }

                if (tokenizer.GetCurrentToken().IsType("direction"))
                {
                    expression = operand;
                    return expression;
                }

                return operand;
            }

            throw GetUnknownTokenException();
        }