chain.h
Go to the documentation of this file.
/********************* */
#include "cvc4_public.h"
#ifndef __CVC4__CHAIN_H
#define __CVC4__CHAIN_H
#include "expr/kind.h"
#include <iostream>
namespace CVC4 {
class CVC4_PUBLIC Chain {
Kind d_kind;
public:
explicit Chain(Kind k) : d_kind(k) { }
bool operator==(const Chain& ch) const { return d_kind == ch.d_kind; }
bool operator!=(const Chain& ch) const { return d_kind != ch.d_kind; }
Kind getOperator() const { return d_kind; }
};/* class Chain */
inline std::ostream& operator<<(std::ostream& out, const Chain& ch) CVC4_PUBLIC;
inline std::ostream& operator<<(std::ostream& out, const Chain& ch) {
return out << ch.getOperator();
}
struct CVC4_PUBLIC ChainHashFunction {
size_t operator()(const Chain& ch) const {
return kind::KindHashFunction()(ch.getOperator());
}
};/* struct ChainHashFunction */
}/* CVC4 namespace */
#endif /* __CVC4__CHAIN_H */
CVC4::Chain
A class to represent a chained, built-in operator.
Definition chain.h:29
CVC4::Chain::getOperator
Kind getOperator() const
Definition chain.h:35
CVC4::Chain::Chain
Chain(Kind k)
Definition chain.h:32
CVC4::Chain::operator==
bool operator==(const Chain &ch) const
Definition chain.h:33
CVC4::Chain::operator!=
bool operator!=(const Chain &ch) const
Definition chain.h:34
cvc4_public.h
Macros that should be defined everywhere during the building of the libraries and driver binary,...
CVC4_PUBLIC
#define CVC4_PUBLIC
Definition cvc4_public.h:30
kind.h
CVC4::kind::Kind_t
Kind_t
Definition kind.h:60
CVC4
Definition expr.h:106
CVC4::operator<<
std::ostream & operator<<(std::ostream &out, const TypeCheckingException &e)
CVC4::ChainHashFunction
Definition chain.h:43
CVC4::ChainHashFunction::operator()
size_t operator()(const Chain &ch) const
Definition chain.h:44
CVC4::kind::KindHashFunction
Definition kind_template.h:88