CVCL::ExprManager Class Reference

#include <expr_manager.h>

Collaboration diagram for CVCL::ExprManager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Private Types

Private Member Functions

Private Attributes

Friends

Classes


Detailed Description

Class: ExprManager

Author: Sergey Berezin

Created: Wed Dec 4 14:26:35 2002

Description: Global state of the Expr package for a particular instance of CVC Lite. Each instance of the CVC Lite library has its own expression manager, for thread-safety.

Definition at line 63 of file expr_manager.h.


Member Typedef Documentation

typedef std::hash_set<ExprValue*, HashEV, EqEV> CVCL::ExprManager::ExprValueSet [private]
 

Hash set type for uniquifying expressions.

Definition at line 133 of file expr_manager.h.


Member Function Documentation

void ExprManager::installExprValue ExprValue ev  )  [private]
 

Definition at line 297 of file expr_manager.cpp.

References CVCL::AND, CVCL::ExprValue::arity(), d_exprSet, CVCL::ExprValue::d_height, CVCL::ExprValue::d_highestKid, CVCL::ExprValue::d_kind, CVCL::ExprValue::getKids(), CVCL::IFF, CVCL::IMPLIES, isActive(), CVCL::ITE, CVCL::NOT, and CVCL::OR.

Referenced by newExprValue(), and rebuildRec().

CVCL::ExprManager::IF_DEBUG bool  d_inRebuild  )  [private]
 

Referenced by clear(), ExprManager(), and rebuild().


Friends And Related Function Documentation

friend class Expr [friend]
 

Definition at line 64 of file expr_manager.h.

Referenced by andExpr(), clear(), newExpr(), and orExpr().

friend class ExprValue [friend]
 

Definition at line 65 of file expr_manager.h.

friend class Op [friend]
 

Definition at line 66 of file expr_manager.h.

friend class HashEV [friend]
 

Definition at line 67 of file expr_manager.h.

friend class Type [friend]
 

Definition at line 68 of file expr_manager.h.

Referenced by rebuildRec().


Member Data Documentation

ContextManager* CVCL::ExprManager::d_cm [private]
 

For backtracking attributes.

Definition at line 70 of file expr_manager.h.

Referenced by ExprManager(), getCM(), getCurrentContext(), and scopelevel().

ExprManagerNotifyObj* CVCL::ExprManager::d_notifyObj [private]
 

Notification on pop().

Definition at line 71 of file expr_manager.h.

Referenced by ExprManager(), and ~ExprManager().

ExprIndex CVCL::ExprManager::d_index [private]
 

Index counter for Expr compare().

Definition at line 72 of file expr_manager.h.

Referenced by lastIndex(), and nextIndex().

unsigned CVCL::ExprManager::d_flagCounter [private]
 

Counter for a generic Expr flag.

Definition at line 73 of file expr_manager.h.

Referenced by getFlag(), and nextFlag().

std::hash_map<int, std::string> CVCL::ExprManager::d_kindMap [private]
 

The database of registered kinds.

Definition at line 76 of file expr_manager.h.

Referenced by getKindName(), and isKindRegistered().

std::hash_set<int> CVCL::ExprManager::d_typeKinds [private]
 

The set of kinds representing a type.

Definition at line 78 of file expr_manager.h.

Referenced by isTypeKind().

std::hash_map<std::string, int, HashString> CVCL::ExprManager::d_kindMapByName [private]
 

The reverse map of names to kinds.

Definition at line 88 of file expr_manager.h.

PrettyPrinter* CVCL::ExprManager::d_prettyPrinter [private]
 

The registered pretty-printer, a connector to theory-specific pretty-printers.

Definition at line 91 of file expr_manager.h.

Referenced by getPrinter(), registerPrettyPrinter(), and unregisterPrettyPrinter().

const int* CVCL::ExprManager::d_printDepth [private]
 

Print upto the given depth, replace the rest with "...". -1==unlimited depth.

Definition at line 99 of file expr_manager.h.

Referenced by printDepth().

const bool* CVCL::ExprManager::d_withIndentation [private]
 

Whether to print with indentation.

Definition at line 101 of file expr_manager.h.

Referenced by withIndentation().

int CVCL::ExprManager::d_indent [private]
 

Permanent indentation.

Definition at line 103 of file expr_manager.h.

Referenced by incIndent(), indent(), and restoreIndent().

int CVCL::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 107 of file expr_manager.h.

Referenced by incIndent(), indent(), and restoreIndent().

const int* CVCL::ExprManager::d_lineWidth [private]
 

Suggested line width for printing with indentation.

Definition at line 109 of file expr_manager.h.

Referenced by lineWidth().

const std::string* CVCL::ExprManager::d_inputLang [private]
 

Input language (printing).

Definition at line 111 of file expr_manager.h.

Referenced by getInputLang(), and getOutputLang().

const std::string* CVCL::ExprManager::d_outputLang [private]
 

Output language (printing).

Definition at line 113 of file expr_manager.h.

Referenced by getOutputLang().

const bool* CVCL::ExprManager::d_dagPrinting [private]
 

Whether to print Expr's as DAGs.

Definition at line 115 of file expr_manager.h.

Referenced by dagPrinting().

const std::string CVCL::ExprManager::d_mmFlag [private]
 

Which memory manager to use (copy the flag value and keep it the same).

Definition at line 117 of file expr_manager.h.

Referenced by ExprManager(), and registerSubclass().

ExprValueSet CVCL::ExprManager::d_exprSet [private]
 

Hash set for uniquifying expressions.

Definition at line 135 of file expr_manager.h.

Referenced by clear(), gc(), installExprValue(), newExprValue(), and rebuildRec().

std::vector<MemoryManager*> CVCL::ExprManager::d_mm [private]
 

Array of memory managers for subclasses of ExprValue.

Definition at line 137 of file expr_manager.h.

Referenced by clear(), ExprManager(), gc(), getMM(), registerSubclass(), resumeGC(), and ~ExprManager().

std::hash<void*> CVCL::ExprManager::d_pointerHash [private]
 

A hash function for hashing pointers.

Definition at line 140 of file expr_manager.h.

Expr CVCL::ExprManager::d_bool [private]
 

Expr constants cached for fast access.

Definition at line 143 of file expr_manager.h.

Referenced by boolExpr(), clear(), and ExprManager().

Expr CVCL::ExprManager::d_false [private]
 

Definition at line 144 of file expr_manager.h.

Referenced by clear(), ExprManager(), and falseExpr().

Expr CVCL::ExprManager::d_true [private]
 

Definition at line 145 of file expr_manager.h.

Referenced by clear(), ExprManager(), and trueExpr().

std::vector<Expr> CVCL::ExprManager::d_emptyVec [private]
 

Empty vector of Expr to return by reference as empty vector of children.

Definition at line 147 of file expr_manager.h.

Referenced by getEmptyVector(), and ~ExprManager().

Expr CVCL::ExprManager::d_nullExpr [private]
 

Null Expr to return by reference, for efficiency.

Definition at line 149 of file expr_manager.h.

Referenced by clear(), and getNullExpr().

unsigned CVCL::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 157 of file expr_manager.h.

Referenced by getSimpCacheTag(), and invalidateSimpCache().

bool CVCL::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 163 of file expr_manager.h.

Referenced by clear(), gc(), isActive(), CVCL::Expr::~Expr(), and ~ExprManager().

bool CVCL::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 172 of file expr_manager.h.

Referenced by gc(), postponeGC(), and resumeGC().

std::vector<ExprValue*> CVCL::ExprManager::d_postponed [private]
 

Vector of postponed garbage-collected expressions.

Definition at line 174 of file expr_manager.h.

Referenced by gc(), and resumeGC().

ExprHashMap<Expr> CVCL::ExprManager::d_rebuildCache [private]
 

Rebuild cache.

Definition at line 176 of file expr_manager.h.

Referenced by rebuild(), and rebuildRec().

TypeComputer* CVCL::ExprManager::d_typeComputer [private]
 

Instance of TypeComputer: must be registered.

Definition at line 192 of file expr_manager.h.

Referenced by checkType(), computeType(), and registerTypeComputer().


The documentation for this class was generated from the following files:
Generated on Thu Apr 13 16:57:43 2006 for CVC Lite by  doxygen 1.4.4