예제 #1
0
 /// <summary>
 /// Reduce produces a constraint from the operator and 
 /// any arguments. It takes the arguments from the constraint 
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
         stack.Push(new AttributeExistsConstraint(type));
     else
         stack.Push(new AttributeConstraint(type, stack.Pop()));
 }
예제 #2
0
 /// <summary>
 /// Reduce produces a constraint from the operator and 
 /// any arguments. It takes the arguments from the constraint 
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack"></param>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
         stack.Push(new ExactCountConstraint(expectedCount));
     else
         stack.Push(new ExactCountConstraint(expectedCount, stack.Pop()));
 }
		public override void Reduce(ConstraintBuilder.ConstraintStack stack)
		{
			if (RightContext == null || RightContext is BinaryOperator)
				stack.Push(new HasValueConstraint());
			else
				stack.Push(new ValueConstraint(stack.Pop()));
		}
예제 #4
0
 /// <summary>
 /// Reduce produces a constraint from the operator and 
 /// any arguments. It takes the arguments from the constraint 
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack"></param>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     Constraint right = stack.Pop();
     Constraint left = stack.Pop();
     stack.Push(ApplyOperator(left, right));
 }
예제 #5
0
 /// <summary>
 /// Reduce produces a constraint from the operator and 
 /// any arguments. It takes the arguments from the constraint 
 /// stack and pushes the resulting constraint on it.
 /// </summary>
 /// <param name="stack"></param>
 public override void Reduce(ConstraintBuilder.ConstraintStack stack)
 {
     if (RightContext == null || RightContext is BinaryOperator)
         stack.Push(new PropertyExistsConstraint(name));
     else
         stack.Push(new PropertyConstraint(name, stack.Pop()));
 }
예제 #6
0
		/// <summary>
		/// Reduce produces a constraint from the operator and 
		/// any arguments. It takes the arguments from the constraint 
		/// stack and pushes the resulting constraint on it.
		/// </summary>
		/// <param name="stack"></param>
		public override void Reduce(ConstraintBuilder.ConstraintStack stack)
        {
            stack.Push(ApplyPrefix(stack.Pop()));
        }