Collaboration diagram for Private methods:
|
Definition at line 83 of file expr_manager.h. References CVCL::ExprManager::HashString::h. |
|
Definition at line 123 of file expr_manager.h. |
|
Definition at line 124 of file expr_manager.h. References CVCL::ExprManager::HashEV::d_em, and CVCL::ExprManager::hash(). |
|
Definition at line 184 of file expr_manager.h. |
|
Compute the type of e.
Implemented in CVCL::TypeComputerCore. Referenced by CVCL::ExprManager::computeType(). |
|
Check that e is a valid Type expr.
Implemented in CVCL::TypeComputerCore. Referenced by CVCL::ExprManager::checkType(). |
|
Cached recursive descent. Must be called only during rebuild().
Definition at line 215 of file expr_manager.cpp. References CVCL::Expr::d_expr, CVCL::ExprManager::d_exprSet, CVCL::ExprManager::d_rebuildCache, CVCL::ExprValue::d_type, CVCL::MemoryManager::deleteData(), CVCL::ExprHashMap< Data >::end(), CVCL::ExprHashMap< Data >::find(), CVCL::Type::getExpr(), CVCL::ExprManager::getMM(), CVCL::ExprManager::installExprValue(), CVCL::Type::isNull(), CVCL::ExprManager::nextIndex(), CVCL::ExprValue::rebuild(), CVCL::Expr::toString(), and CVCL::ExprManager::Type. Referenced by CVCL::ExprValue::rebuild(), and CVCL::ExprManager::rebuild(). |
|
Return either an existing or a new ExprValue matching ev.
Definition at line 253 of file expr_manager.cpp. References CVCL::ExprValue::copy(), CVCL::ExprManager::d_exprSet, CVCL::ExprManager::installExprValue(), CVCL::ExprManager::isActive(), and CVCL::ExprManager::nextIndex(). Referenced by CVCL::Expr::Expr(), and CVCL::ExprManager::newExpr(). |
|
Return the current Expr flag counter.
Definition at line 208 of file expr_manager.h. References CVCL::ExprManager::d_flagCounter. Referenced by CVCL::Expr::setFlag(). |
|
Increment and return the Expr flag counter (this clears all the flags).
Definition at line 210 of file expr_manager.h. References CVCL::ExprManager::d_flagCounter. Referenced by CVCL::ExprManager::clearFlags(). |
|
Compute the type of the Expr.
Definition at line 436 of file expr_manager.cpp. References CVCL::ExprManager::TypeComputer::computeType(), CVCL::ExprManager::d_typeComputer, CVCL::Type::getExpr(), CVCL::Expr::getType(), and CVCL::Expr::isNull(). Referenced by CVCL::Expr::getType(). |
|
Check well-formedness of a type Expr.
Definition at line 443 of file expr_manager.cpp. References CVCL::ExprManager::TypeComputer::checkType(), CVCL::ExprManager::d_typeComputer, and CVCL::Expr::isValidType(). Referenced by CVCL::Type::Type(). |
|
|
Destructor.
Definition at line 100 of file expr_manager.cpp. References CVCL::ExprManager::clear(), CVCL::ExprManager::d_disableGC, CVCL::ExprManager::d_emptyVec, CVCL::ExprManager::d_mm, and CVCL::ExprManager::d_notifyObj. |
|
Free up all memory and delete all the expressions. No more expressions can be created after this point, only destructors ~Expr() can be called. This method is needed to dis-entangle the mutual dependency of ExprManager and ContextManager, when destructors of ExprValue (sub)classes need to delete backtracking objects, and deleting the ContextManager requires destruction of some remaining Exprs. Definition at line 116 of file expr_manager.cpp. References CVCL::ExprManager::d_bool, CVCL::ExprManager::d_disableGC, CVCL::ExprManager::d_exprSet, CVCL::ExprManager::d_false, CVCL::ExprManager::d_mm, CVCL::ExprManager::d_nullExpr, CVCL::ExprManager::d_true, CVCL::ExprManager::Expr, CVCL::ExprValue::getMMIndex(), CVCL::ExprManager::IF_DEBUG(), CVCL::ExprManager::isActive(), CVCL::Expr::isNull(), and CVCL::TRACE. Referenced by CVCL::ExprManager::~ExprManager(). |
|
Check if the ExprManager is still active (clear() was not called).
Definition at line 159 of file expr_manager.cpp. References CVCL::ExprManager::d_disableGC. Referenced by CVCL::ExprManager::clear(), CVCL::ExprManager::installExprValue(), CVCL::ExprManager::newExprValue(), and CVCL::ExprManager::rebuild(). |
|
Garbage collect the ExprValue pointer.
Definition at line 163 of file expr_manager.cpp. References CVCL::ExprManager::d_disableGC, CVCL::ExprManager::d_exprSet, CVCL::ExprManager::d_mm, CVCL::ExprManager::d_postponed, CVCL::ExprManager::d_postponeGC, and CVCL::ExprValue::getMMIndex(). Referenced by CVCL::ExprValue::decRefcount(). |
|
Postpone deletion of garbage-collected expressions.
Definition at line 241 of file expr_manager.h. References CVCL::ExprManager::d_postponeGC. Referenced by CVCL::ExprManagerNotifyObj::notifyPre(). |
|
Resume deletion of garbage-collected expressions.
Definition at line 176 of file expr_manager.cpp. References CVCL::ExprManager::d_mm, CVCL::ExprManager::d_postponed, CVCL::ExprManager::d_postponeGC, and CVCL::ExprValue::getMMIndex(). Referenced by CVCL::ExprManagerNotifyObj::notify(). |
|
Rebuild the Expr with this ExprManager if it belongs to another ExprManager.
Definition at line 190 of file expr_manager.cpp. References CVCL::ExprHashMap< Data >::clear(), CVCL::ExprManager::d_rebuildCache, CVCL::Expr::getEM(), CVCL::ExprManager::IF_DEBUG(), CVCL::ExprManager::isActive(), CVCL::Expr::isNull(), CVCL::ExprManager::rebuildRec(), CVCL::ExprHashMap< Data >::size(), and CVCL::TRACE. Referenced by CVCL::VCL::importExpr(), CVCL::VCL::importType(), CVCL::Op::Op(), and CVCL::Expr::rebuild(). |
|
Return the next Expr index. It should be used only by ExprValue() constructor Definition at line 252 of file expr_manager.h. References CVCL::ExprManager::d_index. Referenced by CVCL::ExprManager::newExprValue(), and CVCL::ExprManager::rebuildRec(). |
|
Definition at line 253 of file expr_manager.h. References CVCL::ExprManager::d_index. Referenced by CVCL::Expr::hasLastIndex(). |
|
Clears the generic Expr flag in all Exprs.
Definition at line 256 of file expr_manager.h. References CVCL::ExprManager::nextFlag(). Referenced by CVCL::Expr::clearFlags(). |
|
BOOLEAN Expr.
Definition at line 260 of file expr_manager.h. References CVCL::ExprManager::d_bool. Referenced by TheoryCore::parseExprOp(), and CVCL::Type::typeBool(). |
|
|
|
References to empty objects (used in ExprValue).
Definition at line 266 of file expr_manager.h. References CVCL::ExprManager::d_emptyVec. Referenced by CVCL::ExprValue::getKids(), and CVCL::Expr::getKids(). |
|
References to empty objects (used in ExprValue).
Definition at line 268 of file expr_manager.h. References CVCL::ExprManager::d_nullExpr. |
|
Return either an existing or a new Expr matching ev.
Definition at line 273 of file expr_manager.h. References CVCL::ExprManager::Expr, and CVCL::ExprManager::newExprValue(). Referenced by CVCL::ExprManager::newBoundVarExpr(), CVCL::TheoryBitvector::newBVConstExpr(), CVCL::ExprManager::newClosureExpr(), CVCL::ExprManager::newLeafExpr(), CVCL::ExprManager::newRatExpr(), CVCL::ExprManager::newSkolemExpr(), CVCL::ExprManager::newStringExpr(), CVCL::ExprManager::newSymbolExpr(), and CVCL::ExprManager::newVarExpr(). |
|
|
Definition at line 431 of file expr_manager.h. References CVCL::ExprManager::newExpr(). |
|
|
Definition at line 437 of file expr_manager.h. References CVCL::Expr::getEM(), and CVCL::ExprManager::newExpr(). Referenced by CVCL::Expr::skolemExpr(). |
|
Definition at line 441 of file expr_manager.h. References CVCL::ExprManager::newExpr(). Referenced by CVCL::ExprStream::addLetHeader(). |
|
Definition at line 444 of file expr_manager.h. References CVCL::ExprManager::newExpr(). |
|
Definition at line 447 of file expr_manager.h. References CVCL::ExprManager::newExpr(). Referenced by CVCL::TheoryUF::computeModel(), CVCL::ExprManager::newBoundVarExpr(), CVCL::TheoremProducer::newLabel(), and CVCL::CommonTheoremProducer::varIntroRule(). |
|
Definition at line 451 of file expr_manager.h. References CVCL::ARROW, CVCL::Type::getExpr(), CVCL::Expr::getKind(), CVCL::Type::isNull(), CVCL::Expr::lookupType(), CVCL::ExprManager::newBoundVarExpr(), and CVCL::Expr::setType(). |
|
Definition at line 462 of file expr_manager.h. References CVCL::int2string(), and CVCL::ExprManager::newBoundVarExpr(). |
|
|
Definition at line 289 of file expr_manager.h. References CVCL::AND, and CVCL::ExprManager::Expr. |
|
Definition at line 291 of file expr_manager.h. References CVCL::ExprManager::Expr, and CVCL::OR. |
|
Hash function for a single Expr.
Definition at line 484 of file expr_manager.h. References CVCL::Expr::d_expr, CVCL::ExprValue::hash(), and CVCL::Expr::isNull(). |
|
Fetch our ContextManager.
Definition at line 299 of file expr_manager.h. References CVCL::ExprManager::d_cm. |
|
Get the current context from our ContextManager.
Definition at line 301 of file expr_manager.h. References CVCL::ExprManager::d_cm, and CVCL::ContextManager::getCurrentContext(). Referenced by CVCL::Expr::setFind(), CVCL::Expr::setRep(), and CVCL::Expr::setSig(). |
|
Get current scope level.
Definition at line 303 of file expr_manager.h. References CVCL::ExprManager::d_cm, and CVCL::ContextManager::scopeLevel(). |
|
Return a MemoryManager for the given ExprValue type.
Definition at line 306 of file expr_manager.h. References CVCL::ExprManager::d_mm. Referenced by CVCL::ExprClosure::copy(), CVCL::ExprApply::copy(), CVCL::ExprBoundVar::copy(), CVCL::ExprSymbol::copy(), CVCL::ExprVar::copy(), CVCL::ExprRational::copy(), CVCL::ExprSkolem::copy(), CVCL::ExprString::copy(), CVCL::ExprNode::copy(), CVCL::ExprValue::copy(), CVCL::BVConstExpr::copy(), CVCL::ExprValue::getMM(), and CVCL::ExprManager::rebuildRec(). |
|
Get the simplifier's cache tag.
Definition at line 311 of file expr_manager.h. References CVCL::ExprManager::d_simpCacheTagCurrent. Referenced by CVCL::Expr::setSimpCache(), and CVCL::Expr::validSimpCache(). |
|
Invalidate the simplifier's cache tag.
Definition at line 313 of file expr_manager.h. References CVCL::ExprManager::d_simpCacheTagCurrent. Referenced by TheoryCore::assertEqualities(), TheoryCore::assertFormula(), CVCL::TheoryCore::CoreNotifyObj::notify(), and TheoryCore::simplify(). |
|
Register type computer.
Definition at line 316 of file expr_manager.h. References CVCL::ExprManager::d_typeComputer. |
|
Get printing depth.
Definition at line 320 of file expr_manager.h. References CVCL::ExprManager::d_printDepth. |
|
Whether to print with indentation.
Definition at line 322 of file expr_manager.h. References CVCL::ExprManager::d_withIndentation. |
|
Suggested line width for printing with indentation.
Definition at line 324 of file expr_manager.h. References CVCL::ExprManager::d_lineWidth. |
|
Get initial indentation.
Definition at line 326 of file expr_manager.h. References CVCL::ExprManager::d_indentTransient. Referenced by CVCL::ExprStream::ExprStream(), and CVCL::Expr::indent(). |
|
Set initial indentation. Returns the previous permanent value.
Definition at line 331 of file expr_manager.cpp. References CVCL::ExprManager::d_indent, and CVCL::ExprManager::d_indentTransient. |
|
Increment the current transient indentation by n. If the second argument is true, sets the result as permanent.
Definition at line 342 of file expr_manager.cpp. References CVCL::ExprManager::d_indent, and CVCL::ExprManager::d_indentTransient. |
|
Set transient indentation to permanent.
Definition at line 334 of file expr_manager.h. References CVCL::ExprManager::d_indent, and CVCL::ExprManager::d_indentTransient. Referenced by CVCL::operator<<(). |
|
Get the input language for printing.
Definition at line 351 of file expr_manager.cpp. References CVCL::ExprManager::d_inputLang, and CVCL::getLanguage(). Referenced by main(). |
|
Get the output language for printing.
Definition at line 359 of file expr_manager.cpp. References CVCL::ExprManager::d_inputLang, CVCL::ExprManager::d_outputLang, and CVCL::getLanguage(). Referenced by CVCL::VCL::assertFormula(), main(), and CVCL::VCL::query(). |
|
Whether to print Expr's as DAGs.
Definition at line 340 of file expr_manager.h. References CVCL::ExprManager::d_dagPrinting. |
|
Return the pretty-printer if there is one; otherwise return NULL.
Definition at line 343 of file expr_manager.h. References CVCL::ExprManager::d_prettyPrinter. Referenced by CVCL::operator<<(). |
|
Register a new kind. The kind may already be regestered under the same name, but if the name is different, it's an error. If the new kind is supposed to represent a type, set isType to true. Referenced by CVCL::TheoremManager::TheoremManager(), CVCL::TheoryArith::TheoryArith(), CVCL::TheoryArray::TheoryArray(), CVCL::TheoryBitvector::TheoryBitvector(), CVCL::TheoryDatatype::TheoryDatatype(), CVCL::TheoryRecords::TheoryRecords(), and CVCL::TheoryUF::TheoryUF(). |
|
Register the pretty-printer (can only do it if none registered). The pointer is NOT owned by ExprManager. Delete it yourself. Definition at line 394 of file expr_manager.cpp. References CVCL::ExprManager::d_prettyPrinter. |
|
Tell ExprManager that the printer is no longer valid.
Definition at line 401 of file expr_manager.cpp. References CVCL::ExprManager::d_prettyPrinter. Referenced by TheoryCore::~TheoryCore(). |
|
Returns true if kind is built into CVC or has been registered via newKind.
Definition at line 364 of file expr_manager.h. References CVCL::ExprManager::d_kindMap. Referenced by CVCL::ExprValue::ExprValue(). |
|
Check if a kind represents a type.
Definition at line 366 of file expr_manager.h. References CVCL::ExprManager::d_typeKinds. Referenced by CVCL::Expr::isType(). |
|
Return the name associated with a kind. The kind must already be registered.
Definition at line 408 of file expr_manager.cpp. References CVCL::ExprManager::d_kindMap, and CVCL::int2string(). Referenced by CVCL::BitvectorTheoremProducer::bitExtractBitwise(), CVCL::TypeComputerCore::computeType(), CVCL::Expr::print(), CVCL::Expr::printAST(), and CVCL::Theory::theoryOf(). |
|
Return a kind associated with a name. Returns NULL_KIND if not found.
Referenced by TheoryCore::parseExpr(), CVCL::TheoryUF::parseExprOp(), CVCL::TheoryRecords::parseExprOp(), CVCL::TheoryQuant::parseExprOp(), CVCL::TheoryDatatype::parseExprOp(), TheoryCore::parseExprOp(), CVCL::TheoryBitvector::parseExprOp(), CVCL::TheoryArray::parseExprOp(), and CVCL::TheoryArith::parseExprOp(). |
|
Register a new subclass of ExprValue. Takes the size (in bytes) of the new subclass and returns the unique index of that subclass. Subsequent calls to the subclass's getMMIndex() must return that index. Definition at line 424 of file expr_manager.cpp. References CVCL::ExprManager::d_mm, and CVCL::ExprManager::d_mmFlag. Referenced by CVCL::TheoryBitvector::TheoryBitvector(). |
|
Constructor.
Definition at line 402 of file expr_manager.h. |
|
Reimplemented from CVCL::ContextNotifyObj. Definition at line 614 of file expr_manager.cpp. References CVCL::ExprManagerNotifyObj::d_em, and CVCL::ExprManager::postponeGC(). |
|
Reimplemented from CVCL::ContextNotifyObj. Definition at line 619 of file expr_manager.cpp. References CVCL::ExprManagerNotifyObj::d_em, and CVCL::ExprManager::resumeGC(). |
|
Definition at line 474 of file expr_manager.h. References CVCL::ExprValue::hash(). Referenced by CVCL::Expr::hash(), hf(), and CVCL::ExprManager::HashEV::operator()(). |
|
Definition at line 479 of file expr_manager.h. |