<PackageReference Include="NUnit" Version="2.6.3" />

ConstraintBuilder

public class ConstraintBuilder
ConstraintBuilder maintains the stacks that are used in processing a ConstraintExpression. An OperatorStack is used to hold operators that are waiting for their operands to be reognized. a ConstraintStack holds input constraints as well as the results of each operator applied.
public class ConstraintStack

ConstraintStack is a type-safe stack for holding Constraints

public class OperatorStack

OperatorStack is a type-safe stack for holding ConstraintOperators

public bool IsResolvable { get; }

Gets a value indicating whether this instance is resolvable.

Initializes a new instance of the ConstraintBuilder class.

public void Append(ConstraintOperator op)

Appends the specified operator to the expression by first reducing the operator stack and then pushing the new operator on the stack.

public void Append(Constraint constraint)

Appends the specified constraint to the expresson by pushing it on the constraint stack.

Resolves this instance, returning a Constraint. If the builder is not currently in a resolvable state, an exception is thrown.