Logo Search packages:      
Sourcecode: maude version File versions  Download package

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes

RewritingContext Class Reference

Inheritance diagram for RewritingContext:
Inheritance graph
Collaboration diagram for RewritingContext:
Collaboration graph

List of all members.

Public Types

enum  RewriteType { NORMAL, BUILTIN, MEMOIZED }

Public Member Functions

void addInCount (const RewritingContext &other)
void bind (int index, DagNode *value)
bool builtInReplace (DagNode *old, DagNode *replacement)
void clear (long size)
void clearCount ()
void clone (const Substitution &original)
void copy (const Substitution &original)
void fairContinue (Int64 limit=NONE)
void fairRewrite (Int64 limit=NONE, Int64 gas=1)
void fairStart (Int64 gas)
bool fairTraversal (Int64 &limit)
void finished ()
Int64 getEqCount () const
Int64 getMbCount () const
Int64 getRlCount () const
Int64 getTotalCount () const
void incrementEqCount (Int64 i=1)
void incrementMbCount (Int64 i=1)
void incrementRlCount (Int64 i=1)
virtual RewritingContextmakeSubcontext (DagNode *root, int purpose=OTHER)
int nrFragileBindings () const
LocalBindingoperator- (const Substitution &original) const
void reduce ()
 RewritingContext (DagNode *root)
DagNoderoot ()
void ruleRewrite (Int64 limit=NONE)
virtual bool traceAbort ()
virtual int traceBeginEqTrial (DagNode *subject, const Equation *equation)
virtual void traceBeginFragment (int trialRef, const PreEquation *preEquation, int fragmentIndex, bool firstAttempt)
virtual int traceBeginRuleTrial (DagNode *subject, const Rule *rule)
virtual int traceBeginScTrial (DagNode *subject, const SortConstraint *sc)
virtual void traceEndFragment (int trialRef, const PreEquation *preEquation, int fragmentIndex, bool success)
virtual void traceEndTrial (int trialRef, bool success)
virtual void traceExhausted (int trialRef)
virtual void traceNarrowingStep (Rule *rule, DagNode *redex, DagNode *replacement, const NarrowingVariableInfo *variableInfo, const Substitution *substitution, DagNode *newState)
virtual void tracePostEqRewrite (DagNode *replacement)
virtual void tracePostRuleRewrite (DagNode *replacement)
virtual void tracePreEqRewrite (DagNode *redex, const Equation *equation, int type)
virtual void tracePreRuleRewrite (DagNode *redex, const Rule *rule)
virtual void tracePreScApplication (DagNode *subject, const SortConstraint *sc)
void transferCount (RewritingContext &other)
DagNodevalue (int index) const

Static Public Member Functions

static bool getTraceStatus ()
static void notify (int size)
static void setTraceStatus (bool state)

Protected Member Functions

int addNewVariable ()
void markReachableNodes ()

Private Types

enum  Special { ROOT_OK = -2 }

Private Member Functions

bool ascend ()
void descend ()
bool doRewriting (bool argsUnstackable)
bool fairTraversal ()
void link ()
void rebuildUptoRoot ()
void remakeStaleDagNode (int staleIndex, int childIndex)
void unlink ()

Static Private Member Functions

static void markPhase ()

Private Attributes

Int64 currentGas
int currentIndex
Int64 eqCount
Int64 gasPerNode
int lazyMarker
Int64 mbCount
bool progress
Vector< RedexPositionredexStack
Int64 rewriteLimit
Int64 rlCount
int staleMarker

Static Private Attributes

static bool traceFlag = false

Detailed Description

Definition at line 39 of file rewritingContext.hh.

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index