#include <expr_manager.h>
Collaboration diagram for CVC3::ExprManager:
Author: Sergey Berezin
Created: Wed Dec 4 14:26:35 2002
Description: Global state of the Expr package for a particular instance of CVC3. Each instance of the CVC3 library has its own expression manager, for thread-safety.
Definition at line 58 of file expr_manager.h.
typedef std::hash_set<ExprValue*, HashEV, EqEV> CVC3::ExprManager::ExprValueSet [private] |
size_t CVC3::ExprManager::hash | ( | const ExprValue * | ev | ) | const [inline, private] |
Definition at line 449 of file expr_manager.h.
References DebugAssert, and CVC3::ExprValue::hash().
Referenced by CVC3::Expr::hash().
void ExprManager::installExprValue | ( | ExprValue * | ev | ) | [private] |
Definition at line 36 of file expr_manager.cpp.
References d_exprSet, DebugAssert, Hash::hash_set< _Key, _HashFcn, _EqualKey >::insert(), and isActive().
friend class Expr [friend] |
friend class ExprValue [friend] |
Definition at line 60 of file expr_manager.h.
friend class Op [friend] |
Definition at line 61 of file expr_manager.h.
friend class HashEV [friend] |
Definition at line 62 of file expr_manager.h.
friend class Type [friend] |
ContextManager* CVC3::ExprManager::d_cm [private] |
For backtracking attributes.
Definition at line 65 of file expr_manager.h.
Referenced by ExprManager().
TheoremManager* CVC3::ExprManager::d_tm [private] |
Notification on pop().
Definition at line 67 of file expr_manager.h.
Referenced by ExprManager(), and ~ExprManager().
ExprIndex CVC3::ExprManager::d_index [private] |
unsigned CVC3::ExprManager::d_flagCounter [private] |
std::hash_map<int, std::string> CVC3::ExprManager::d_kindMap [private] |
The database of registered kinds.
Definition at line 72 of file expr_manager.h.
Referenced by getKindName(), and newKind().
std::hash_set<int> CVC3::ExprManager::d_typeKinds [private] |
The set of kinds representing a type.
Definition at line 74 of file expr_manager.h.
Referenced by newKind().
std::hash_map<std::string, int, HashString> CVC3::ExprManager::d_kindMapByName [private] |
PrettyPrinter* CVC3::ExprManager::d_prettyPrinter [private] |
The registered pretty-printer, a connector to theory-specific pretty-printers.
Definition at line 87 of file expr_manager.h.
Referenced by registerPrettyPrinter(), and unregisterPrettyPrinter().
const int* CVC3::ExprManager::d_printDepth [private] |
Print upto the given depth, replace the rest with "...". -1==unlimited depth.
Definition at line 95 of file expr_manager.h.
const bool* CVC3::ExprManager::d_withIndentation [private] |
int CVC3::ExprManager::d_indent [private] |
Permanent indentation.
Definition at line 99 of file expr_manager.h.
Referenced by incIndent(), and indent().
int CVC3::ExprManager::d_indentTransient [private] |
Transient indentation.
Normally is the same as d_indent, but may temporarily be different for printing one single Expr
Definition at line 103 of file expr_manager.h.
Referenced by incIndent(), and indent().
const int* CVC3::ExprManager::d_lineWidth [private] |
const std::string* CVC3::ExprManager::d_inputLang [private] |
Input language (printing).
Definition at line 107 of file expr_manager.h.
Referenced by getInputLang(), and getOutputLang().
const std::string* CVC3::ExprManager::d_outputLang [private] |
Output language (printing).
Definition at line 109 of file expr_manager.h.
Referenced by getOutputLang().
const bool* CVC3::ExprManager::d_dagPrinting [private] |
const std::string CVC3::ExprManager::d_mmFlag [private] |
Which memory manager to use (copy the flag value and keep it the same).
Definition at line 113 of file expr_manager.h.
Referenced by ExprManager(), getMemory(), and registerSubclass().
ExprValueSet CVC3::ExprManager::d_exprSet [private] |
Hash set for uniquifying expressions.
Definition at line 131 of file expr_manager.h.
Referenced by clear(), gc(), installExprValue(), newExprValue(), and rebuildRec().
std::vector<MemoryManager*> CVC3::ExprManager::d_mm [private] |
Array of memory managers for subclasses of ExprValue.
Definition at line 133 of file expr_manager.h.
Referenced by clear(), ExprManager(), gc(), registerSubclass(), resumeGC(), and ~ExprManager().
std::hash<void*> CVC3::ExprManager::d_pointerHash [private] |
Expr CVC3::ExprManager::d_bool [private] |
Expr constants cached for fast access.
Definition at line 139 of file expr_manager.h.
Referenced by clear(), and ExprManager().
Expr CVC3::ExprManager::d_false [private] |
Expr CVC3::ExprManager::d_true [private] |
std::vector<Expr> CVC3::ExprManager::d_emptyVec [private] |
Empty vector of Expr to return by reference as empty vector of children.
Definition at line 143 of file expr_manager.h.
Referenced by ~ExprManager().
Expr CVC3::ExprManager::d_nullExpr [private] |
Null Expr to return by reference, for efficiency.
Definition at line 145 of file expr_manager.h.
Referenced by clear().
unsigned CVC3::ExprManager::d_simpCacheTagCurrent [private] |
Current value of the simplifier cache tag.
The cached values of calls to Simplify are valid as long as their cache tag matches this tag. Caches can then be invalidated by incrementing this tag.
Definition at line 153 of file expr_manager.h.
bool CVC3::ExprManager::d_disableGC [private] |
Disable garbage collection.
This flag disables the garbage collection. Normally, it's set in the destructor, so that we can delete all remaining expressions without GC getting in the way.
Definition at line 159 of file expr_manager.h.
Referenced by clear(), gc(), isActive(), and ~ExprManager().
bool CVC3::ExprManager::d_postponeGC [private] |
Postpone deleting garbage-collected expressions.
Useful during manipulation of context, especially at the time of backtracking, since we may have objects with circular dependencies (like find pointers).
The postponed expressions will be deleted the next time the garbage collector is called after this flag is cleared.
Definition at line 168 of file expr_manager.h.
Referenced by gc(), and resumeGC().
std::vector<ExprValue*> CVC3::ExprManager::d_postponed [private] |
Vector of postponed garbage-collected expressions.
Definition at line 170 of file expr_manager.h.
Referenced by gc(), and resumeGC().
bool CVC3::ExprManager::d_inGC [private] |
Flag for whether GC is already running.
Definition at line 173 of file expr_manager.h.
Referenced by gc().
std::deque<ExprValue*> CVC3::ExprManager::d_pending [private] |
ExprHashMap<Expr> CVC3::ExprManager::d_rebuildCache [private] |
Rebuild cache.
Definition at line 178 of file expr_manager.h.
Referenced by rebuild(), and rebuildRec().
TypeComputer* CVC3::ExprManager::d_typeComputer [private] |
Instance of TypeComputer: must be registered.
Definition at line 197 of file expr_manager.h.
Referenced by checkType(), computeType(), and finiteTypeInfo().