19 #ifndef __CVC4__RECORD_H
20 #define __CVC4__RECORD_H
37 RecordSelect(
const std::string& field)
throw() : d_field(field) { }
38 std::string
getField()
const throw() {
return d_field; }
46 RecordUpdate(
const std::string& field)
throw() : d_field(field) { }
47 std::string
getField()
const throw() {
return d_field; }
68 return out <<
"[" << t.
getField() <<
"]";
72 return out <<
"[" << t.
getField() <<
"]";
85 std::vector< std::pair<std::string, Type> > d_fields;
92 Record(
const std::vector< std::pair<std::string, Type> >& fields) :
98 for(i = begin(); i != end(); ++i) {
99 if((*i).first == name) {
108 CheckArgument(i != end(), name,
"requested field `%s' does not exist in record", name.c_str());
113 return d_fields.size();
117 return d_fields.begin();
121 return d_fields.end();
124 std::pair<std::string, Type>
operator[](
size_t index)
const {
125 CheckArgument(index < d_fields.size(), index,
"index out of bounds for record type");
126 return d_fields[index];
130 return d_fields == r.d_fields;
134 return !(*
this == r);
bool operator==(const RecordSelect &t) const
size_t getNumFields() const
std::vector< std::pair< std::string, Type > >::const_iterator const_iterator
size_t operator()(const RecordUpdate &t) const
const_iterator end() const
bool operator!=(const Record &r) const
[[ Add one-line brief description here ]]
void CheckArgument(bool cond, const T &arg, const char *fmt,...)
std::ostream & operator<<(std::ostream &out, const Result &r)
std::pair< std::string, Type > operator[](size_t index) const
bool operator==(const RecordUpdate &t) const
std::string getField() const
RecordSelect(const std::string &field)
size_t operator()(const Record &r) const
Record(const std::vector< std::pair< std::string, Type > > &fields)
This is CVC4 release version For build and installation please see the INSTALL file included with this distribution This first official release of CVC4 is the result of more than three years of efforts by researchers at New York University and The University of Iowa The project leaders are Clark please refer to the AUTHORS file in the source distribution CVC4 is a tool for determining the satisfiability of a first order formula modulo a first order CVC CVC3 but does not directly incorporate code from any previous version CVC4 is intended to be an open and extensible SMT engine It can be used as a stand alone tool or as a library It has been designed to increase the performance and reduce the memory overhead of its predecessors It is written entirely in C and is released under a free software see the INSTALL file that comes with this distribution We recommend that you visit our CVC4 tutorials online please write to the cvc users cs nyu edu mailing list *if you need to report a bug with CVC4
bool operator!=(const RecordSelect &t) const
std::string getField() const
const_iterator find(std::string name) const
Macros that should be defined everywhere during the building of the libraries and driver binary...
bool operator!=(const RecordUpdate &t) const
const_iterator begin() const
size_t operator()(const RecordSelect &t) const
struct CVC4::options::out__option_t out
RecordUpdate(const std::string &field)
bool operator==(const Record &r) const
Interface for expression types.
size_t getIndex(std::string name) const