#include <expr_value.h>
Inheritance diagram for CVCL::ExprValue:
Author: Sergey Berezin
Created: long time ago
The base class just holds the operator. All the additional data resides in subclasses.
Definition at line 77 of file expr_value.h.
|
Constructor.
Definition at line 215 of file expr_value.h. References CVCL::APPLY, CVCL::int2string(), and CVCL::ExprManager::isKindRegistered(). Referenced by copy(). |
|
Destructor.
Definition at line 49 of file expr_value.cpp. References d_find, d_notifyList, d_simpCache, d_simpFrom, d_subtypePred, d_tcc, d_type, and Expr. |
|
Set the ExprIndex.
Definition at line 142 of file expr_value.h. References d_index. |
|
Increment reference counter.
Definition at line 145 of file expr_value.h. References d_refcount. Referenced by CVCL::Expr::Expr(), and CVCL::Expr::operator=(). |
|
Decrement reference counter.
Definition at line 148 of file expr_value.h. References d_em, d_refcount, and CVCL::ExprManager::gc(). Referenced by CVCL::Expr::operator=(), and CVCL::Expr::~Expr(). |
|
Caching hash function. Do NOT implement it in subclasses! Implement computeHash() instead. Definition at line 158 of file expr_value.h. References computeHash(), and d_hash. Referenced by computeHash(), and CVCL::ExprManager::hash(). |
|
Return height of Expr.
Definition at line 165 of file expr_value.h. References d_height. Referenced by CVCL::Expr::getHeight(). |
|
Return child with greatest height.
Definition at line 168 of file expr_value.h. References d_highestKid. Referenced by CVCL::Expr::getHighestKid(). |
|
Get Expr simplified to obtain this expr.
Definition at line 171 of file expr_value.h. References d_simpFrom. Referenced by CVCL::Expr::getSimpFrom(), and CVCL::Expr::hasSimpFrom(). |
|
Set Expr simplified to obtain this expr.
Definition at line 174 of file expr_value.h. References d_simpFrom. Referenced by CVCL::Expr::setSimpFrom(). |
|
Definition at line 184 of file expr_value.h. References s_intHash. Referenced by hash(). |
|
Definition at line 254 of file expr_value.cpp. References pointerHash(), and s_intHash. |
|
Definition at line 188 of file expr_value.h. References s_intHash. |
|
Return the memory manager (for the benefit of subclasses).
Definition at line 191 of file expr_value.h. References d_em, and CVCL::ExprManager::getMM(). |
|
Make a clean copy of itself using the given ExprManager.
Definition at line 197 of file expr_value.h. References copy(). Referenced by CVCL::ExprClosure::copy(), CVCL::ExprApply::copy(), CVCL::ExprSkolem::copy(), CVCL::ExprNode::copy(), and CVCL::ExprManager::rebuildRec(). |
|
Make a clean copy of the expr using the given ExprManager.
Definition at line 201 of file expr_value.h. References CVCL::ExprManager::rebuildRec(). |
|
Non-caching hash function which actually computes the hash. This is the method that all subclasses should implement Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, CVCL::ExprClosure, and CVCL::BVConstExpr. Definition at line 208 of file expr_value.h. References d_kind, and hash(). Referenced by hash(). |
|
Make a clean copy of itself using the given ExprManager.
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, CVCL::ExprClosure, and CVCL::BVConstExpr. Definition at line 81 of file expr_value.cpp. References d_kind, CVCL::EXPR_VALUE, ExprValue(), CVCL::ExprManager::getMM(), and getMMIndex(). Referenced by CVCL::ExprManager::newExprValue(), and rebuild(). |
|
Get the kind of the expression.
Definition at line 233 of file expr_value.h. References d_kind. Referenced by CVCL::ExprClosure::operator==(), CVCL::ExprBoundVar::operator==(), CVCL::ExprSymbol::operator==(), CVCL::ExprVar::operator==(), and CVCL::ExprNode::operator==(). |
|
Overload operator new.
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, CVCL::ExprClosure, and CVCL::BVConstExpr. Definition at line 236 of file expr_value.h. References CVCL::MemoryManager::newData(). |
|
Overload operator delete.
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, CVCL::ExprClosure, and CVCL::BVConstExpr. Definition at line 240 of file expr_value.h. |
|
Get unique memory manager ID.
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, CVCL::ExprClosure, and CVCL::BVConstExpr. Definition at line 243 of file expr_value.h. References CVCL::EXPR_VALUE. Referenced by CVCL::ExprManager::clear(), copy(), CVCL::ExprManager::gc(), CVCL::Expr::getMMIndex(), CVCL::ExprClosure::operator==(), CVCL::ExprApply::operator==(), CVCL::ExprBoundVar::operator==(), CVCL::ExprSymbol::operator==(), CVCL::ExprVar::operator==(), CVCL::ExprRational::operator==(), CVCL::ExprSkolem::operator==(), CVCL::ExprString::operator==(), CVCL::ExprNode::operator==(), operator==(), CVCL::BVConstExpr::operator==(), and CVCL::ExprManager::resumeGC(). |
|
Equality between any two ExprValue objects (including subclasses).
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, CVCL::ExprClosure, and CVCL::BVConstExpr. Definition at line 71 of file expr_value.cpp. References d_kind, CVCL::EXPR_VALUE, and getMMIndex(). |
|
Test whether the expression is a generic subclass.
Reimplemented in CVCL::BVConstExpr. Definition at line 255 of file expr_value.h. Referenced by CVCL::Expr::getExprValue(). |
|
String expression tester.
Reimplemented in CVCL::ExprString. Definition at line 258 of file expr_value.h. Referenced by CVCL::Expr::isString(). |
|
Rational number expression tester.
Reimplemented in CVCL::ExprRational. Definition at line 260 of file expr_value.h. |
|
Uninterpreted constants.
Reimplemented in CVCL::ExprSkolem, CVCL::ExprVar, and CVCL::ExprBoundVar. Definition at line 262 of file expr_value.h. Referenced by CVCL::Expr::isVar(). |
|
Application of another expression.
Reimplemented in CVCL::ExprApply. Definition at line 264 of file expr_value.h. Referenced by CVCL::Expr::isApply(). |
|
Special named symbol.
Reimplemented in CVCL::ExprSymbol. Definition at line 266 of file expr_value.h. Referenced by CVCL::Expr::isSymbol(). |
|
A LAMBDA-expression or a quantifier.
Reimplemented in CVCL::ExprClosure. Definition at line 268 of file expr_value.h. Referenced by CVCL::Expr::isClosure(). |
|
Get kids: by default, returns a ref to an empty vector.
Reimplemented in CVCL::ExprNode. Definition at line 271 of file expr_value.h. References d_em, and CVCL::ExprManager::getEmptyVector(). Referenced by CVCL::Expr::getKids(), CVCL::ExprManager::installExprValue(), CVCL::ExprApply::operator==(), CVCL::ExprNode::operator==(), and CVCL::Expr::operator[](). |
|
Default arity = 0.
Reimplemented in CVCL::ExprNode. Definition at line 277 of file expr_value.h. Referenced by CVCL::Expr::arity(), and CVCL::ExprManager::installExprValue(). |
|
Special attributes for uninterpreted functions.
Reimplemented in CVCL::ExprNode. Definition at line 280 of file expr_value.h. Referenced by CVCL::Expr::getSig(), CVCL::Expr::hasSig(), and CVCL::Expr::setSig(). |
|
Reimplemented in CVCL::ExprNode. Definition at line 285 of file expr_value.h. Referenced by CVCL::Expr::getRep(), CVCL::Expr::hasRep(), and CVCL::Expr::setRep(). |
|
Reimplemented in CVCL::ExprNode. Definition at line 290 of file expr_value.h. Referenced by CVCL::Expr::setSig(). |
|
Reimplemented in CVCL::ExprNode. Definition at line 294 of file expr_value.h. Referenced by CVCL::Expr::setRep(). |
|
Reimplemented in CVCL::ExprBoundVar. Definition at line 298 of file expr_value.h. Referenced by CVCL::Expr::getUid(), and CVCL::ExprBoundVar::operator==(). |
|
Reimplemented in CVCL::ExprString. Definition at line 304 of file expr_value.h. Referenced by CVCL::Expr::getString(), and CVCL::ExprString::operator==(). |
|
Reimplemented in CVCL::ExprRational. Definition at line 310 of file expr_value.h. Referenced by CVCL::Expr::getRational(), and CVCL::ExprRational::operator==(). |
|
Returns the string name of UCONST and BOUND_VAR expr's.
Definition at line 317 of file expr_value.h. References ExprValue::getName(). Referenced by ExprValue::getName(). |
|
Returns the original Boolean variable (for BoolVarExprValue).
Definition at line 324 of file expr_value.h. |
|
Get the Op from an Apply Expr.
Reimplemented in CVCL::ExprApply. Definition at line 331 of file expr_value.h. References CVCL::NULL_KIND. Referenced by CVCL::Expr::getOp(), and CVCL::ExprApply::operator==(). |
|
Reimplemented in CVCL::ExprClosure. Definition at line 336 of file expr_value.h. Referenced by CVCL::Expr::getVars(), and CVCL::ExprClosure::operator==(). |
|
Reimplemented in CVCL::ExprClosure. Definition at line 342 of file expr_value.h. Referenced by CVCL::Expr::getBody(), and CVCL::ExprClosure::operator==(). |
|
Reimplemented in CVCL::ExprSkolem. Definition at line 348 of file expr_value.h. Referenced by CVCL::Expr::getExistential(), and CVCL::ExprSkolem::operator==(). |
|
Reimplemented in CVCL::ExprSkolem. Definition at line 353 of file expr_value.h. Referenced by CVCL::Expr::getBoundIndex(), and CVCL::ExprSkolem::operator==(). |
|
Definition at line 358 of file expr_value.h. |
|
Definition at line 363 of file expr_value.h. |
|
Definition at line 368 of file expr_value.h. |
|
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, and CVCL::ExprClosure. Definition at line 78 of file expr_value.h. Referenced by ~ExprValue(). |
|
Definition at line 79 of file expr_value.h. |
|
Reimplemented in CVCL::ExprNode, CVCL::ExprApply, CVCL::ExprString, CVCL::ExprSkolem, CVCL::ExprRational, CVCL::ExprVar, CVCL::ExprSymbol, CVCL::ExprBoundVar, and CVCL::ExprClosure. Definition at line 80 of file expr_value.h. |
|
Definition at line 81 of file expr_value.h. |
|
Definition at line 82 of file expr_value.h. |
|
Unique expression id.
Definition at line 85 of file expr_value.h. Referenced by CVCL::Expr::getIndex(), and setIndex(). |
|
Reference counter for garbage collection.
Definition at line 88 of file expr_value.h. Referenced by decRefcount(), and incRefcount(). |
|
Generic flag for marking expressions (e.g. in DAG traversal).
Definition at line 91 of file expr_value.h. Referenced by CVCL::Expr::getFlag(), and CVCL::Expr::setFlag(). |
|
Cached hash value (initially 0).
Definition at line 94 of file expr_value.h. Referenced by hash(). |
|
The find attribute (may be NULL).
Definition at line 97 of file expr_value.h. Referenced by CVCL::Expr::getFind(), CVCL::Expr::hasFind(), CVCL::Expr::setFind(), and ~ExprValue(). |
|
The cached type of the expression (may be Null).
Definition at line 100 of file expr_value.h. Referenced by CVCL::Expr::getType(), CVCL::Expr::lookupType(), CVCL::ExprManager::rebuildRec(), CVCL::Expr::setType(), and ~ExprValue(). |
|
The cached TCC of the expression (may be Null).
Definition at line 103 of file expr_value.h. Referenced by CVCL::Expr::lookupTCC(), CVCL::Expr::setTCC(), and ~ExprValue(). |
|
Subtyping predicate for the expression and all subexpressions.
Definition at line 106 of file expr_value.h. Referenced by CVCL::Expr::lookupSubtypePred(), CVCL::Expr::setSubtypePred(), and ~ExprValue(). |
|
Notify list may be NULL (== no such attribute).
Definition at line 109 of file expr_value.h. Referenced by CVCL::Expr::addToNotify(), CVCL::Expr::getNotify(), and ~ExprValue(). |
|
For caching calls to Simplify.
Definition at line 112 of file expr_value.h. Referenced by CVCL::Expr::getSimpCache(), CVCL::Expr::setSimpCache(), and ~ExprValue(). |
|
For checking whether simplify cache is valid.
Definition at line 115 of file expr_value.h. Referenced by CVCL::Expr::setSimpCache(), and CVCL::Expr::validSimpCache(). |
|
|
Height of this expression.
Definition at line 121 of file expr_value.h. Referenced by getHeight(), and CVCL::ExprManager::installExprValue(). |
|
Which child has the largest height.
Definition at line 124 of file expr_value.h. Referenced by getHighestKid(), and CVCL::ExprManager::installExprValue(). |
|
Most distant expression we were simplified *from*.
Definition at line 127 of file expr_value.h. Referenced by getSimpFrom(), setSimpFrom(), and ~ExprValue(). |
|
Our expr. manager.
Definition at line 131 of file expr_value.h. Referenced by CVCL::ExprClosure::copy(), CVCL::ExprApply::copy(), CVCL::ExprSkolem::copy(), CVCL::ExprNode::copy(), decRefcount(), CVCL::Expr::getEM(), getKids(), getMM(), CVCL::Expr::hasLastIndex(), and CVCL::Expr::~Expr(). |
|
The kind of the expression. In particular, it determines which subclass of ExprValue is used to store the expression.
Definition at line 135 of file expr_value.h. Referenced by computeHash(), CVCL::ExprClosure::computeHash(), CVCL::ExprClosure::copy(), CVCL::ExprSymbol::copy(), CVCL::ExprNode::copy(), copy(), getKind(), CVCL::Expr::getKind(), CVCL::ExprManager::installExprValue(), CVCL::Expr::isNull(), CVCL::ExprNode::operator==(), and operator==(). |
|
Definition at line 181 of file expr_value.h. |
|
Definition at line 182 of file expr_value.h. Referenced by hash(), and pointerHash(). |