25#ifndef constraint_evaluator_h
26#define constraint_evaluator_h
41class ConstraintEvaluator {
43 std::vector<Clause *> expr;
45 std::vector<BaseType *> constants;
53 ConstraintEvaluator(
const ConstraintEvaluator &);
54 ConstraintEvaluator &operator=(
const ConstraintEvaluator &);
56 friend class func_name_is;
59 typedef std::vector<Clause *>::const_iterator Clause_citer;
60 typedef std::vector<Clause *>::iterator Clause_iter;
62 typedef std::vector<BaseType *>::const_iterator Constants_citer;
63 typedef std::vector<BaseType *>::iterator Constants_iter;
65 ConstraintEvaluator();
67 virtual ~ConstraintEvaluator();
68 bool find_function(
const std::string &name, bool_func *f)
const;
69 bool find_function(
const std::string &name, btp_func *f)
const;
70 bool find_function(
const std::string &name, proj_func *f)
const;
bool boolean_expression()
Does the current constraint expression return a boolean value?
bool eval_selection(DDS &dds, const std::string &dataset)
Evaluate a boolean-valued constraint expression. This is main method for the evaluator and is called ...
bool find_function(const std::string &name, bool_func *f) const
Find a Boolean function with a given name in the function list.
bool clause_value(Clause_iter &i, DDS &dds)
void parse_constraint(const std::string &constraint, DDS &dds)
Parse the constraint expression given the current DDS.
void append_clause(int op, rvalue *arg1, rvalue_list *arg2)
Add a clause to a constraint expression.
Clause_iter clause_begin()
BaseType * eval_function(DDS &dds, const std::string &dataset)
Evaluate a function-valued constraint expression.
bool function_clauses()
Does the current constraint expression contain function clauses.
DDS * eval_function_clauses(DDS &dds)
Evaluate a function-valued constraint expression that contains several function calls.
void append_constant(BaseType *btp)
bool functional_expression()
Does the current constraint expression return a BaseType pointer? This method does not evaluate the c...
top level DAP object to house generic methods
virtual string dataset() const
Returns the name of the dataset used to create this instance.
Holds a fragment of a constraint expression.