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

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

ACU_LhsAutomaton Class Reference

Inheritance diagram for ACU_LhsAutomaton:
Inheritance graph
[legend]
Collaboration diagram for ACU_LhsAutomaton:
Collaboration graph
[legend]

List of all members.

Classes

struct  GroundAlien
struct  NonGroundAlien
struct  Subject
struct  TopVariable

Public Types

enum  MatchStrategy {
  GROUND_OUT, LONE_VARIABLE, ALIENS_ONLY, GREEDY,
  FULL
}

Public Member Functions

 ACU_LhsAutomaton (ACU_Symbol *symbol, bool matchAtTop, bool collapsePossible, int nrVariables)
void addAbstractionVariable (int index, Sort *sort, int upperBound, bool takeIdentity, LhsAutomaton *abstracted, int multiplicity)
void addGroundAlien (Term *alien, int multiplicity)
void addGroundedOutAlien (Term *alien, LhsAutomaton *automaton, int multiplicity)
void addNonGroundAlien (Term *alien, LhsAutomaton *automaton, int multiplicity)
void addTopVariable (const VariableTerm *variable, int multiplicity, bool bound)
void addUniqueCollapseAutomaton (LhsAutomaton *ucAutomaton)
void complete (MatchStrategy strategy, int nrIndependent)
bool match (DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem, ExtensionInfo *extensionInfo)

Protected Member Functions

bool getCollapsePossible () const
SubstitutiongetLocal ()
SubstitutiongetLocal2 ()
ACU_SymbolgetSymbol () const
DagNodemakeHighMultiplicityAssignment (int multiplicity, Sort *sort, ACU_Tree &current)

Private Member Functions

bool aliensOnlyMatch (ACU_DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem)
void bindUnboundVariablesToIdentity (Substitution &solution, int exception)
ACU_SubproblembuildBipartiteGraph (ACU_DagNode *subject, Substitution &solution, ACU_ExtensionInfo *extensionInfo, int firstAlien, SubproblemAccumulator &subproblems)
bool collapseMatch (DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem, ExtensionInfo *extensionInfo)
int computeTotalMultiplicity ()
int decidePhase1FailureMode (TopVariable &fv)
int decidePhase2FailureMode ()
bool eliminateBoundVariables (ACU_DagNode *subject, Substitution &solution)
int eliminateBoundVariables (Substitution &solution)
bool eliminateGroundAliens (ACU_DagNode *subject)
bool eliminateGroundAliens ()
bool eliminateGroundedOutAliens (ACU_DagNode *subject, Substitution &solution)
bool eliminateGroundedOutAliens (Substitution &solution)
bool forcedLoneVariableCase (ACU_TreeDagNode *subject, const TopVariable &tv, Substitution &solution, Subproblem *&returnedSubproblem)
bool forcedLoneVariableCase (ACU_DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem)
bool fullMatch (ACU_DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem, ACU_ExtensionInfo *extensionInfo)
int greedyMatch (ACU_TreeDagNode *subject, Substitution &solution, ACU_ExtensionInfo *extensionInfo)
int greedyMatch (ACU_DagNode *subject, Substitution &solution, ACU_ExtensionInfo *extensionInfo)
bool greedyPureMatch (ACU_TreeDagNode *subject, Substitution &solution, ACU_ExtensionInfo *extensionInfo)
int greedyPureMatch (ACU_DagNode *subject, Substitution &solution, ACU_ExtensionInfo *extensionInfo)
bool handleElementVariables (ACU_DagNode *subject, Substitution &solution, ACU_Subproblem *subproblem)
bool multiplicityChecks (ACU_DagNode *subject)
bool multiwayCollapseMatch (DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem, ExtensionInfo *extensionInfo)
 NO_COPYING (ACU_LhsAutomaton)
int treeMatch (ACU_TreeDagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem, ACU_ExtensionInfo *extensionInfo)
bool tryToBindLastVariable (ACU_TreeDagNode *subject, const TopVariable &tv, Substitution &solution)
bool tryToBindVariable (const TopVariable &tv, Substitution &solution)
bool uniqueCollapseMatch (DagNode *subject, Substitution &solution, Subproblem *&returnedSubproblem, ExtensionInfo *extensionInfo)
void updateTotals (int min, int max)

Static Private Member Functions

static bool topVariableLt (const TopVariable &t1, const TopVariable &t2)

Private Attributes

const Bool collapsePossible
Bool collectorSeen
ACU_Tree current
Vector< int > currentMultiplicity
Vector< GroundAliengroundAliens
Vector< NonGroundAliengroundedOutAliens
int lastUnboundVariable
Substitution local
const Bool matchAtTop
Vector< ACU_DagNode::Pairmatched
int matchedMultiplicity
MatchStrategy matchStrategy
int maxPatternMultiplicity
Vector< NonGroundAliennonGroundAliens
int nrExpectedUnboundVariables
int nrIndependentAliens
int nrUnboundVariables
Substitution scratch
Vector< Subjectsubjects
ACU_Symbol *const topSymbol
Vector< TopVariabletopVariables
int totalLowerBound
int totalMultiplicity
int totalNonGroundAliensMultiplicity
int totalUpperBound
Bool treeMatchOK
LhsAutomatonuniqueCollapseAutomaton

Detailed Description

Definition at line 31 of file ACU_LhsAutomaton.hh.


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

Generated by  Doxygen 1.6.0   Back to index