GrGen.NET v4.4 API: the libGr class library (the type exact interface gets generated)
PatternGraph Class
Namespacesde.unika.ipd.grGen.lgspPatternGraph
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
Declaration Syntax
C#
public class PatternGraph : IPatternGraph
Members
All MembersConstructorsMethodsPropertiesFields



IconMemberDescription
PatternGraph(PatternGraph, PatternGraphEmbedding, PatternGraph, String, Dictionary<(Of <<'(PatternNode, PatternNode>)>>), Dictionary<(Of <<'(PatternEdge, PatternEdge>)>>), Dictionary<(Of <<'(PatternVariable, PatternVariable>)>>))
Instantiates a new PatternGraph object as a copy from an original pattern graph, used for inlining. We create the inlined elements as clones from the original stuff so a maybe already done inlining pass inside a subpattern does not influence us when we inline that subpattern.

PatternGraph(String, String, String, String, Boolean, Boolean, array<PatternNode>[]()[][], array<PatternEdge>[]()[][], array<PatternVariable>[]()[][], array<PatternGraphEmbedding>[]()[][], array<Alternative>[]()[][], array<Iterated>[]()[][], array<PatternGraph>[]()[][], array<PatternGraph>[]()[][], array<PatternCondition>[]()[][], array<PatternYielding>[]()[][], array<Boolean,2>[,](,)[,][,], array<Boolean,2>[,](,)[,][,], array<Boolean,2>[,](,)[,][,], array<Boolean,2>[,](,)[,][,], array<Boolean>[]()[][], array<Boolean>[]()[][])
Constructs a PatternGraph object.

AdaptToMaybeNull(Int32)
alternatives
An array of alternatives, each alternative contains in its cases the subpatterns to choose out of.

Alternatives
An array of alternatives, each alternative contains in its cases the subpatterns to choose out of.

alternativesPlusInlined
An array of all alternatives plus the alternatives inlined into this pattern.

availabilityOfMaybeNullElements
For each schedule the availability of the maybe null presets - true if is available, false if not Empty dictionary if there are no maybe null action preset elements

branchingFactor
Larger than 1 if and only if this rule is to be parallelized, giving the branching factor to apply

Conditions
The conditions used in this pattern graph or it's nested graphs

ConditionsPlusInlined
An array of all conditions plus the conditions inlined into this pattern.

correspondingEdges
Normally null. In case this is a pattern created from a graph, an array of all edges which created the pattern edges in edges, coupled by position.

correspondingNodes
Normally null. In case this is a pattern created from a graph, an array of all nodes which created the pattern nodes in nodes, coupled by position.

DumpInlined(SourceBuilder)
DumpOriginal(SourceBuilder)
edges
An array of all pattern edges.

Edges
An array of all pattern edges.

edgesPlusInlined
An array of all pattern edges plus the edges inlined into this pattern.

edgeToSourceNode
Contains the source node of the pattern edges in this graph if specified.

edgeToSourceNodePlusInlined
Contains the source node of the pattern edges in this graph if specified. Plus the additional information from inlined stuff.

edgeToTargetNode
Contains the target node of the pattern edges in this graph if specified.

edgeToTargetNodePlusInlined
Contains the target node of the pattern edges in this graph if specified. Plus the additional information from inlined stuff.

embeddedGraphs
An array with subpattern embeddings, i.e. subpatterns and the way they are connected to the pattern

EmbeddedGraphs
An array with subpattern embeddings, i.e. subpatterns and the way they are connected to the pattern

embeddedGraphsPlusInlined
An array of all embedded graphs plus the embedded graphs inlined into this pattern.

embeddingGraph
The pattern graph which contains this pattern graph, null if this is a top-level-graph

EmbeddingGraph
The pattern graph which contains this pattern graph, null if this is a top-level-graph

Explain(SourceBuilder, IGraphModel)
ExplainNested(SourceBuilder, IGraphModel)
GetSource(IPatternEdge)
Returns the source pattern node of the given edge, null if edge dangles to the left

GetSource(PatternEdge)
Returns the source pattern node of the given edge, null if edge dangles to the left.

GetSourcePlusInlined(PatternEdge)
Returns the source pattern node of the given edge, null if edge dangles to the left. Taking inlined stuff into account.

GetTarget(IPatternEdge)
Returns the target pattern node of the given edge, null if edge dangles to the right

GetTarget(PatternEdge)
Returns the target pattern node of the given edge, null if edge dangles to the right.

GetTargetPlusInlined(PatternEdge)
Returns the target pattern node of the given edge, null if edge dangles to the right. Taking inlined stuff into account.

homomorphicEdges
A two-dimensional array describing which pattern edge may be matched non-isomorphic to which pattern edge. Including the additional information from inlined stuff.

HomomorphicEdges
A two-dimensional array describing which pattern edge may be matched non-isomorphic to which pattern edge.

homomorphicEdgesGlobal
A two-dimensional array describing which pattern edge may be matched non-isomorphic to which pattern edge globally, i.e. the edges are contained in different, but locally nested patterns (alternative cases, iterateds). Including the additional information from inlined stuff.

HomomorphicEdgesGlobal
A two-dimensional array describing which pattern edge may be matched non-isomorphic to which pattern edge globally, i.e. the edges are contained in different, but locally nested patterns (alternative cases, iterateds).

homomorphicNodes
A two-dimensional array describing which pattern node may be matched non-isomorphic to which pattern node. Including the additional information from inlined stuff.

HomomorphicNodes
A two-dimensional array describing which pattern node may be matched non-isomorphic to which pattern node.

homomorphicNodesGlobal
A two-dimensional array describing which pattern node may be matched non-isomorphic to which pattern node globally, i.e. the nodes are contained in different, but locally nested patterns (alternative cases, iterateds). Including the additional information from inlined stuff.

HomomorphicNodesGlobal
A two-dimensional array describing which pattern node may be matched non-isomorphic to which pattern node globally, i.e. the nodes are contained in different, but locally nested patterns (alternative cases, iterateds).

independentPatternGraphs
An array of independent pattern graphs which must get matched in addition to the main pattern (PACs - Positive Application Conditions).

IndependentPatternGraphs
An array of independent pattern graphs which must get matched in addition to the main pattern (PACs - Positive Application Conditions).

independentPatternGraphsPlusInlined
An array of all independent pattern graphs plus the pattern graphs inlined into this pattern.

isDefEntityExisting
Tells whether a def entity (node, edge, variable) is existing in this pattern graph

isDefEntityExistingPlusInlined
Tells whether a def entity (node, edge, variable) is existing in this pattern graph after inlining

isIterationBreaking
If this pattern graph is a negative or independent nested inside an iterated, it breaks the iterated instead of only the current iterated case (if true).

isNonLocalDefEntityExisting
Tells whether a non local def entity (node, edge, variable) is existing in this pattern graph

isNonLocalDefEntityExistingPlusInlined
Tells whether a non local def entity (node, edge, variable) is existing in this pattern graph after inlining

isPatternGraphOnPathFromEnclosingPatternpath
Tells whether the pattern graph is on a path from some enclosing negative/independent with patternpath modifier. Needed for patternpath processing setup (to check patternpath matches stack).

isPatternpathLocked
Tells whether the elements from the parent patterns (but not sibling patterns) should be isomorphy locked, i.e. not again matchable, even in negatives/independents, which are normally hom to all. This allows to match paths without a specified end, eagerly, i.e. as long as a successor exists, even in case of a cycles in the graph.

IsRefEntityExisting()()()()
iterateds
An array of iterateds, each iterated is matched as often as possible within the specified bounds.

Iterateds
An array of iterateds, each iterated is matched as often as possible within the specified bounds.

iteratedsPlusInlined
An array of all iterateds plus the iterateds inlined into this pattern.

maxIsoSpace
Gives the maximum isoSpace number of the pattern reached by negative/independent nesting, clipped by LGSPElemFlags.MAX_ISO_SPACE which is the critical point of interest, this might happen by heavy nesting or by a subpattern call path with direct or indirect recursion on it including a negative/independent which gets passed.

maybeNullElementNames
Names of the elements which may be null The following members are ordered along it/generated along this order.

name
The name of the pattern graph

Name
The name of the pattern graph

neededEdges
The edges from the enclosing graph(s) used in this graph or one of it's subgraphs. Includes inlined elements after inlining. Set of names, with dummy bool due to lacking set class in c#

neededNodes
The nodes from the enclosing graph(s) used in this graph or one of it's subgraphs. Includes inlined elements after inlining. Set of names, with dummy bool due to lacking set class in c#

neededVariables
The variables from the enclosing graph(s) used in this graph or one of it's subgraphs. Includes inlined elements after inlining. Map of names to types.

negativePatternGraphs
An array of negative pattern graphs which make the search fail if they get matched (NACs - Negative Application Conditions).

NegativePatternGraphs
An array of negative pattern graphs which make the search fail if they get matched (NACs - Negative Application Conditions).

negativePatternGraphsPlusInlined
An array of all negative pattern graphs plus the negative pattern graphs inlined into this pattern.

nestedIndependents
The independents nested within this pattern graph, but only independents not nested within negatives. Set of pattern graphs, with dummy null pattern graph due to lacking set class in c#. Contains first the nested independents before inlinig, afterwards the ones after inlining.

nodes
An array of all pattern nodes.

Nodes
An array of all pattern nodes.

nodesPlusInlined
An array of all pattern nodes plus the nodes inlined into this pattern.

originalPatternGraph
Links to the original pattern graph in case this pattern graph was inlined, otherwise null; the embeddingGraph of the original pattern graph references the original containing pattern

originalSubpatternEmbedding
Links to the original subpattern embedding which was inlined in case this (negative or independent) pattern graph was inlined, otherwise null.

Package
null if this is a global pattern graph, otherwise the package the pattern graph is contained in.

PackagePrefixedName
The name of the pattern graph in case of a global type, the name of the pattern graph is prefixed by the name of the package otherwise (package "::" name).

parallelizedSchedule
Not-null in case of parallelization. Contains then exactly 2 entries. A parallelized matcher consists of a head (first, distributing and collecting work) and a body (following, doing real work). A pattern with maybe null action presets is not parallelized. The head and body schedules include negatives and independents, they are derived from schedulesIncludingNegativesAndIndependents by splitting at the first candidate-binding loop.

parallelizedYieldings
The yielding assignments used in this pattern graph or it's nested graphs, after parallelization Not-null in case of parallelization.

PatchUsersOfCopiedElements(String, Dictionary<(Of <<'(PatternNode, PatternNode>)>>), Dictionary<(Of <<'(PatternEdge, PatternEdge>)>>), Dictionary<(Of <<'(PatternVariable, PatternVariable>)>>))
pathPrefix
Prefix for name from nesting path

patternGraphsOnPathToEnclosedPatternpath
The names of the pattern graphs which are on a path to some enclosed negative/independent with patternpath modifier. Needed for patternpath processing setup (to write to patternpath matches stack).

PrepareInline()()()()
Copies all the elements in the pattern graph to the XXXPlusInlined attributes. This duplicates the pattern, the duplicate is used for the computing and emitting the real code, whereas the original version is retained as interface to the user (and used in generating the match building). When subpatterns/embedded graphs get inlined, only the duplicate is changed.

RevertMaybeNullAdaption(Int32)
schedules
The schedules for this pattern graph without any nested pattern graphs. Normally one, but each maybe null action preset causes doubling of schedules.

schedulesIncludingNegativesAndIndependents
The schedules for this pattern graph including negatives and independents. Normally one, but each maybe null action preset causes doubling of schedules.

totallyHomomorphicEdges
An array telling which pattern edge is to be matched non-isomorphic(/independent) against any other edge. Including the additional information from inlined stuff.

TotallyHomomorphicEdges
A one-dimensional array telling which pattern edge is to be matched non-isomorphic against any other edge.

totallyHomomorphicNodes
An array telling which pattern node is to be matched non-isomorphic(/independent) against any other node. Including the additional information from inlined stuff.

TotallyHomomorphicNodes
A one-dimensional array telling which pattern node is to be matched non-isomorphic against any other node.

usedSubpatterns
The subpatterns used by this pattern (directly as well as indirectly), only filled/valid if this is a top level pattern graph of a rule or subpattern. Set of matching patterns, with dummy null matching pattern due to lacking set class in c# Contains first the used subpatterns before inlinnig, afterwards the ones after inlining.

variables
An array of all pattern variables.

Variables
An array of all pattern variables.

variablesPlusInlined
An array of all pattern variables plus the variables inlined into this pattern.

WasInlinedHere(PatternGraphEmbedding)
Yieldings
The yielding assignments used in this pattern graph or it's nested graphs

YieldingsPlusInlined
An array of all yielding assignments plus the yielding assignments inlined into this pattern.

Inheritance Hierarchy
Object
PatternGraph

Assembly: lgspBackend (Module: lgspBackend) Version: 4.4.0.0 (4.4.0.0)