CVC3
|
A "closure" expression which binds variables used in the "body". Used by LAMBDA and quantifiers. More...
#include <expr_value.h>
Inherits CVC3::ExprValue.
A "closure" expression which binds variables used in the "body". Used by LAMBDA and quantifiers.
Definition at line 901 of file expr_value.h.
CVC3::ExprClosure::ExprClosure | ( | ExprManager * | em, |
int | kind, | ||
const Expr & | var, | ||
const Expr & | body, | ||
ExprIndex | idx = 0 |
||
) | [inline] |
Definition at line 929 of file expr_value.h.
References d_vars.
CVC3::ExprClosure::ExprClosure | ( | ExprManager * | em, |
int | kind, | ||
const std::vector< Expr > & | vars, | ||
const Expr & | body, | ||
ExprIndex | idx = 0 |
||
) | [inline] |
Definition at line 933 of file expr_value.h.
CVC3::ExprClosure::ExprClosure | ( | ExprManager * | em, |
int | kind, | ||
const std::vector< Expr > & | vars, | ||
const Expr & | body, | ||
const std::vector< std::vector< Expr > > & | trigs, | ||
ExprIndex | idx = 0 |
||
) | [inline] |
Definition at line 937 of file expr_value.h.
virtual CVC3::ExprClosure::~ExprClosure | ( | ) | [inline, virtual] |
Definition at line 942 of file expr_value.h.
virtual size_t CVC3::ExprClosure::getMMIndex | ( | ) | const [inline, private, virtual] |
Tell ExprManager who we are.
Reimplemented from CVC3::ExprValue.
Definition at line 913 of file expr_value.h.
References CVC3::EXPR_CLOSURE.
virtual const std::vector<Expr>& CVC3::ExprClosure::getVars | ( | ) | const [inline, private, virtual] |
virtual const Expr& CVC3::ExprClosure::getBody | ( | ) | const [inline, private, virtual] |
virtual void CVC3::ExprClosure::setTriggers | ( | const std::vector< std::vector< Expr > > & | triggers | ) | [inline, private, virtual] |
Reimplemented from CVC3::ExprValue.
Definition at line 917 of file expr_value.h.
References d_manual_triggers.
virtual const std::vector<std::vector<Expr> >& CVC3::ExprClosure::getTriggers | ( | ) | const [inline, private, virtual] |
Reimplemented from CVC3::ExprValue.
Definition at line 918 of file expr_value.h.
References d_manual_triggers.
size_t CVC3::ExprClosure::computeHash | ( | ) | const [protected, virtual] |
Non-caching hash function which actually computes the hash.
This is the method that all subclasses should implement
Reimplemented from CVC3::ExprValue.
Definition at line 333 of file expr_value.cpp.
References CVC3::Unsigned::hash(), and PRIME.
Unsigned CVC3::ExprClosure::computeSize | ( | ) | const [inline, protected, virtual] |
Non-caching size function which actually computes the size.
This is the method that all subclasses should implement
Reimplemented from CVC3::ExprValue.
Definition at line 923 of file expr_value.h.
References d_body, CVC3::Expr::d_expr, and CVC3::ExprValue::getSize().
ExprValue * CVC3::ExprClosure::copy | ( | ExprManager * | em, |
ExprIndex | idx = 0 |
||
) | const [protected, virtual] |
Make a clean copy of itself using the given memory manager.
Reimplemented from CVC3::ExprValue.
Definition at line 278 of file expr_value.cpp.
References CVC3::ExprManager::getMM().
bool CVC3::ExprClosure::operator== | ( | const ExprValue & | ev2 | ) | const [virtual] |
Equality between any two ExprValue objects (including subclasses)
Reimplemented from CVC3::ExprValue.
Definition at line 269 of file expr_value.cpp.
References CVC3::ExprValue::getBody(), CVC3::ExprValue::getKind(), CVC3::ExprValue::getMMIndex(), and CVC3::ExprValue::getVars().
void* CVC3::ExprClosure::operator new | ( | size_t | size, |
MemoryManager * | mm | ||
) | [inline] |
Overload operator new.
Reimplemented from CVC3::ExprValue.
Definition at line 946 of file expr_value.h.
References CVC3::MemoryManager::newData().
void CVC3::ExprClosure::operator delete | ( | void * | pMem, |
MemoryManager * | mm | ||
) | [inline] |
Reimplemented from CVC3::ExprValue.
Definition at line 949 of file expr_value.h.
References CVC3::MemoryManager::deleteData().
void CVC3::ExprClosure::operator delete | ( | void * | ) | [inline] |
Overload operator delete.
Reimplemented from CVC3::ExprValue.
Definition at line 952 of file expr_value.h.
virtual bool CVC3::ExprClosure::isClosure | ( | ) | const [inline, virtual] |
A LAMBDA-expression or a quantifier.
Reimplemented from CVC3::ExprValue.
Definition at line 953 of file expr_value.h.
friend class Expr [friend] |
Reimplemented from CVC3::ExprValue.
Definition at line 902 of file expr_value.h.
friend class ExprManager [friend] |
Reimplemented from CVC3::ExprValue.
Definition at line 903 of file expr_value.h.
std::vector<Expr> CVC3::ExprClosure::d_vars [private] |
Bound variables.
Definition at line 906 of file expr_value.h.
Referenced by ExprClosure(), and getVars().
Expr CVC3::ExprClosure::d_body [private] |
The body of the quantifier/lambda.
Definition at line 908 of file expr_value.h.
Referenced by computeSize(), and getBody().
std::vector<std::vector<Expr> > CVC3::ExprClosure::d_manual_triggers [private] |
Manual triggers. // added by yeting.
Definition at line 911 of file expr_value.h.
Referenced by getTriggers(), and setTriggers().