An alternative is a pattern graph element containing subpatterns of which one must get successfully matched so that the entire pattern gets matched successfully.
enumerable returning enumerator over submatches due to alternatives
enumerator over submatches due to alternatives
enumerable returning enumerator over edges in match
enumerator over edges in match
enumerable returning enumerator over submatches due to subpatterns
enumerator over submatches due to subpatterns
The C#-part responsible for generating the post-matches filters.
A helper class containing a match found by iteration plan execution
Representation of a global variable accessed from within a pattern (match from storage constructs)
Helper class with stuff needed for IsIsomorph checking of graphs
A class for serializing and parsing the statistics from a graph (cf. LGSPGraphStatistics)
enumerable returning enumerator over submatches due to independents
enumerator over submatches due to independents
Base class for index accesses, used to bind a pattern element from an index.
Representation of an index access, accessed by enumerating ascendingly.
Representation of an index access, accessed by enumerating descendingly.
Representation of an index access, accessed by enumerating equal keys.
Base class of the interpretation plan data structure, which consists of a linked list of matching operations (Benefits compared to scheduled search plan: - stores matched graph elements - connectedness checking with bidirectional matching is complicated enough it should be computed statically before execution) The interpretation plan is only used in isomorphy checking.
Interpretation plan operation that iterates both directions, needed for matching bidirectional edges in both directions
A class for building the interpretation plan data structure from a scheduled search plan
Interpretation plan operation that checks the AreAttribuesEqual condition
Interpretation plan operation that checks the source node of an edge to be identical to a given node
Interpretation plan operation that checks the source or target node of an edge to be identical to a given node, depending on the current direction to be matched
Interpretation plan operation that checks the target node of an edge to be identical to a given node
Interpretation plan operation that checks the source or target node of an edge to be identical to a given node, depending on the other node already matched
An interpretation plan operation that stores a direction decision
An interpretation plan operation that matches an edge
Interpretation plan operation that retrieves the source node of an edge
Interpretation plan operation that retrieves the source or target node of an edge depending on the current direction to be matched
Interpretation plan operation that retrieves the target node of an edge
Interpretation plan operation that retrieves the source or target node of an edge depending on the other node already matched
Interpretation plan operation that retrieves an incoming edge from a source node
Interpretation plan operation that retrieves an edge to be matched bidirectionally from a source node
Interpretation plan operation that looks up an edge in the graph
Interpretation plan operation that looks up a node in the graph
Interpretation plan operation that completes a match; no own functionality, it just succeeds when execution reaches it
An interpretation plan operation that matches a node
Interpretation plan operation that retrieves an outgoing edge from a source node
Interpretation plan operation that works as an anchor for an interpretation plan without own functionality
An iterated is a pattern graph element containing the subpattern to be matched iteratively and the information how much matches are needed for success and how much matches to obtain at most
enumerable returning enumerator over submatches due to iterateds, with every submatch being a list of matches of the iterated-pattern
enumerator over submatches due to iterateds, with every submatch being a list of matches of the iterated-pattern
An object representing an executable rule of the LGSPBackend.
An implementation of the IGraphProcessingEnvironment, to be used with LGSPGraphs.
A container of rules also managing some parts of rule application with sequences. Abstract base class with empty actions, the derived classes fill the actions dictionary.
A helper class for backend independent graph and rule handling.
A class for managing deferred sequence execution.
Class implementing edges in the libGr search plan backend
Special head edge of the lists containing all the edges of one type
A closure for an exec statement in an alternative, iterated or subpattern, containing the entities needed for the exec execution. These exec are executed at the end of the rule which directly or indirectly used them, long after the alternative/iterated/subpattern modification containing them has been applied. The real stuff depends on the xgrs and is generated, implementing this abstract class.
A description of a filter of a rule or match class
A description of an auto-generated filter of a rule or match class
A description of an auto-supplied filter of a rule or match class.
A description of a filter function of a rule or match class
An implementation of the IGraph interface.
A model of a GrGen graph, base class from implementation. Defines a thin layer above IGraphModel, enriched with index creating functionality, the real stuff is generated. It allows the generic LGSPGraph to create and bind the index set when it is configured with the graph model.
An implementation of the IGraphProcessingEnvironment, to be used with LGSPGraphs.
A class for analyzing a graph and storing the statistics about the graph
The C#-part of the GrGen.NET frontend. It is responsible for generating initial actions with static search plans. (and compiling the XGRSs of the exec statements vie LGSPSequenceGenerator)
Class generating matcher programs out of rules. A PatternGraphAnalyzer must run before the matcher generator is used, so that the analysis data is written the pattern graphs of the matching patterns to generate code for.
An object representing a (possibly empty) set of matches in a graph before the rewrite has been applied. It is returned by IAction.Match() and given to the OnMatched, OnFinishing and OnFinished event. Generic to be instantiated with the exact interface and the exact implementation type of the match object Every generated Action contains a LGSPMatchesList, the matches contain one LGSPMatchesList per iterated pattern. A matches list stores the matches found by the last application of the action, the matches objects within the list are recycled by the next application of the action, only their content gets updated. The purpose of this list is to act as a memory manager to save new/garbage collection cycles and improve cache footprint. Additionally this list is used for storing the results of an iteration in the matches objects, Producer being null in this case. Then it is just used as a container for already allocated elements.
A description of a GrGen matching pattern, that's a subpattern/subrule or the base for some rule.
An implementation of the INamedGraph interface.
Class implementing nodes in the libGr search plan backend
Special head node of the lists containing all the nodes of one type
Class which instantiates and stores all the rule and subpattern representations ready for iteration
A description of a GrGen rule.
The C#-part responsible for compiling the XGRSs of the exec statements.
An implementation of the ISubactionAndOutputAdditionEnvironment, to be used with LGSPGraphs.
Abstract base class for generated subpattern matching actions each object of an inheriting class represents a subpattern matching tasks which might be stored on the open tasks stack and executed later on. In addition to user-specified subpatterns, alternatives are mapped to subpattern actions, too.
A class for managing graph transactions.
A class ensuring unique ids for nodes and edges with a minimum amount of gaps. Gets instantiated in case support for unique nodes/edges was declared in the model.
A class ensuring unique ids for nodes and edges with a minimum amount of gaps, and allowing to access them by their unique id, similar to an index (and esp. the name map). Gets instantiated in case support for unique nodes/edges was declared in the model, and support for accessing nodes/edges by a unique id.
Element of invasively linked list of T, and Match
Representation of a name map lookup.
Class for emitting the needed entities of a sequence, in a pre-run before emitting the real code (by the SequenceGenerator).
enumerable returning enumerator over nodes in match
enumerator over nodes in match
Representation of some condition which must be true for the pattern containing it to be matched
A pattern edge of a rule pattern.
An element of a rule pattern.
Representation of the pattern to search for, containing nested alternative, iterated, negative, and independent-patterns, plus references to the rules of the used subpatterns. Accessible via IPatternGraph as meta information to the user about the matching action. Skeleton data structure for the matcher generation pipeline which stores intermediate results here, which saves us from representing the nesting structure again and again in the pipeline's data structures
Class analyzing the pattern graphs of the matching patterns to generate code for, storing computed nesting and inter-pattern-relationships locally in the pattern graphs, ready to be used by the (local intra-pattern) code generator (to generate code more easily, to generate better code).
Embedding of a subpattern into it's containing pattern
A pattern node of a rule pattern.
Class containing global functions for checking whether node/edge is matched on patternpath
A pattern variable of a rule pattern.
Representation of some yielding (a list of elementary yieldings, to be executed after matching completed)
A plan edge represents a matching operation and its costs.
The plan graph data structure for the MSA-algorithm.
Class for generating a plan graph out of a pattern graph.
Element of the plan graph representing a node or edge within the pattern graph or a root node.
Common base class for the PlanNodes and PlanSuperNodes, used for uniform access to the derived nodes within the minimum spanning arborescent computation.
Element of the plan graph representing a strongly connected component within the pattern graph. Hierachically nested.
Representation of an owner.attribute qualification
The scheduled search plan is a list of search operations, plus the information which nodes/edges are homomorph
Class enriching schedules with homomorphy information, merging negative and independent schedules into the main schedule, and parallelizing schedules.
Search operation with information about homomorphic mapping. Element of the scheduled search plan.
A search plan edge represents a matching operation and its costs.
Element of the search plan graph representing an edge within the pattern graph.
The search plan graph data structure for scheduling.
Class for generating a search plan graph out of a plan graph and for creating a schedule out of it.
Element of the search plan graph representing an element within the pattern graph or a root node.
Element of the search plan graph representing a node within the pattern graph.
The sequence computation generator contains code to generate sequence computations; it is in use by the sequence generator.
The sequence computation generator helper contains code for (sequence/sequence computation) result variable handling.
The C#-part responsible for emitting the container constructor expressions that appear in an exec statement, in a post-run after generating the sequence.
The sequence expression generator contains code to generate a sequence expression, it is in use by the sequence computation generator and the sequence generator, and also called by the sequence generator helper.
The sequence expression generator helper generates the code for the sequence expression operators, in case the (result) type is known statically (same semantics as calling the SequenceExpressionExecutionHelper, but faster due to statically known types).
The sequence generator contains code to generate sequences, the sequence trees to be more precise, it is used by the lgsp sequence generator driver, emitting sequence heads and surrounding code.
The sequence generator helper contains miscellaneous code in use by the sequence generator, sequence computation generator, and sequence expression generator. It esp. contains parameter type information and code for parameter building, as well as type computation, variable access and constant generation.
Pretty printing helper class for source code generation
Representation of a storage access, used to bind a pattern element.
Representation of a storage access index, used to bind a pattern element.
Representation of a unique index lookup.
enumerable returning enumerator over variables in match
enumerator over variables in match
A thread pool of workers for parallelized pattern matching
Interface implemented by the compiled graph matchers
Flags for graph elements.
Flags for graph elements, for parallel matching; stored outside of the graph elements themselves, in an array per thread.
the types of match objects there are, to be filled by insertMatchObjectBuilding
Describes the type of a search operation.