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



IconMemberDescription
LGSPMatcherGenerator(IGraphModel)
Instantiates a new instance of LGSPMatcherGenerator with the given graph model. 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.

AppendHomomorphyInformation(ScheduledSearchPlan)
Appends homomorphy information to each operation of the scheduled search plan

BuildPatternGraph(LGSPGraph)
Builds a pattern graph out of the graph. The pattern graph retains links to the original graph elements and uses them for attribute comparison.

CommentSourceCode
If true, the generated matcher functions are commented to improve understanding the source code.

CostDecreaseForLeavingInlinedIndependent(SearchPlanEdge)
CostIncreaseForInlinedIndependent(PatternElement, Single)
CreatePickMapCastAssignPlanEdges(PatternNode, List<(Of <<'(PlanEdge>)>>), Single)
CreatePickMapCastAssignPlanEdges(PatternEdge, List<(Of <<'(PlanEdge>)>>), Single)
DetermineAndAppendHomomorphyChecks(ScheduledSearchPlan, Int32)
Determines which homomorphy check operations are necessary at the operation of the given position within the scheduled search plan and appends them.

DumpDynSourceCode
If true, the source code of dynamically generated matcher functions are dumped to a file in the current directory.

DumpPlanGraph(PlanGraph, String, String)
DumpSearchPlan
If true, generated search plans are dumped in VCG and TXT files in the current directory.

EdgesInIndependentMatchedThere(PatternGraph)
ExtractOwnElements(ScheduledSearchPlan, PatternGraph)
FillInGlobalHomomorphyPatternElements(ScheduledSearchPlan, Int32)
fill in globally homomorphic elements as exception to global isomorphy check

FillInStaticSearchPlans(LGSPGraphStatistics, Boolean, array<LGSPAction>[]()[][])
Do the static search planning again so we can explain the search plan

GenerateAction(ScheduledSearchPlan, LGSPAction, String, String, String)
Generates an LGSPAction object for the given scheduled search plan.

GenerateAction(LGSPGraph, String, String, LGSPAction)
Generate a new action for the given action, doing the same work, but hopefully faster by taking graph analysis information into account

GenerateActionAndMatcher(SourceBuilder, LGSPMatchingPattern, Boolean)
Generates the action interface plus action implementation including the matcher source code for the given rule pattern into the given source builder

GenerateActionAndMatcherOfAlternative(SourceBuilder, LGSPMatchingPattern, Alternative, Boolean)
Generates the action interface plus action implementation including the matcher source code for the given alternative into the given source builder

GenerateActionAndMatcherOfIterated(SourceBuilder, LGSPMatchingPattern, PatternGraph, Boolean)
Generates the action interface plus action implementation including the matcher source code for the given iterated pattern into the given source builder

GenerateActionAndMatcherOfNestedPatterns(SourceBuilder, LGSPMatchingPattern, PatternGraph, Boolean)
Generates the action interface plus action implementation including the matcher source code for the alternatives/iterateds nested within the given negative/independent pattern graph into the given source builder

GenerateActions(LGSPGraph, String, String, array<LGSPAction>[]()[][])
Generate new actions for the given actions, doing the same work, but hopefully faster by taking graph analysis information into account

GenerateFileHeaderForActionsFile(SourceBuilder, String, String)
Generates file header for actions file into given source builer

GenerateMatcherClassHeadAlternative(SourceBuilder, LGSPMatchingPattern, Alternative, Boolean)
Generates matcher class head source code for the given alternative into given source builder isInitialStatic tells whether the initial static version or a dynamic version after analyze is to be generated.

GenerateMatcherClassHeadIterated(SourceBuilder, LGSPMatchingPattern, PatternGraph, Boolean)
Generates matcher class head source code for the given iterated pattern into given source builder isInitialStatic tells whether the initial static version or a dynamic version after analyze is to be generated.

GenerateMatcherClassHeadSubpattern(SourceBuilder, LGSPMatchingPattern, Boolean)
Generates matcher class head source code for the subpattern of the rulePattern into given source builder isInitialStatic tells whether the initial static version or a dynamic version after analyze is to be generated.

GenerateMatcherClassTail(SourceBuilder, Boolean)
Generates matcher class tail source code

GeneratePlanGraph(LGSPGraphStatistics, PatternGraph, Boolean, Boolean, IDictionary<(Of <<'(PatternElement, SetValueType>)>>))
Generate plan graph for given pattern graph with costs from the analyzed host graph. Plan graph contains nodes representing the pattern elements (nodes and edges) and edges representing the matching operations to get the elements by. Edges in plan graph are given in the nodes by incoming list, as needed for MSA computation.

GenerateScheduledSearchPlans(PatternGraph, LGSPGraph, Boolean, Boolean, ScheduledSearchPlan)
Generates scheduled search plans needed for matcher code generation for action compilation out of graph with analyze information, The scheduled search plans are added to the main and the nested pattern graphs.

GenerateSearchPlanGraph(PlanGraph)
Generate search plan graph out of the plan graph, search plan graph only contains edges chosen by the MSA algorithm. Edges in search plan graph are given in the nodes by outgoing list, as needed for scheduling, in contrast to incoming list in plan graph, as needed for MSA computation.

GetDynCompilerSetup(String, String)
Setup of compiler parameters for recompilation of actions at runtime taking care of analyze information

GetSourcePlusInlined(PatternEdge, PatternGraph, IDictionary<(Of <<'(PatternNode, PatternNode>)>>))
GetTargetPlusInlined(PatternEdge, PatternGraph, IDictionary<(Of <<'(PatternNode, PatternNode>)>>))
InlineIndependents
If true, the independents are to be inlined

InsertConditionsIntoSchedule(array<PatternCondition>[]()[][], List<(Of <<'(SearchOperation>)>>))
Inserts conditions into the schedule given by the operations list at their earliest possible position todo: set/map operations are potentially expensive, they shouldn't be insertes asap, but depending an weight, derived from statistics over set/map size for graph elements, quiet well known for anonymous rule sets

InsertInlinedVariableAssignmentsIntoSchedule(PatternGraph, List<(Of <<'(SearchOperation>)>>))
Inserts inlined variable assignments into the schedule given by the operations list at their earliest possible position

InsertNegativesAndIndependentsIntoSchedule(PatternGraph)
Inserts schedules of negative and independent pattern graphs into the schedule of the enclosing pattern graph

InsertNegativesAndIndependentsIntoSchedule(PatternGraph, Int32)
Inserts schedules of negative and independent pattern graphs into the schedule of the enclosing pattern graph for the schedule with the given array index

LazyNegativeIndependentConditionEvaluation
If true, the negatives, independents, and evaluations are inserted at the end of the schedule instead of as early as possible; this is likely less efficient but allows to use checks which require that they are only called after a structural match was found

MarkMinimumSpanningArborescence(PlanGraph, String)
Marks the minimum spanning arborescence of a plan graph by setting the IncomingMSAEdge fields for all nodes

MergeNegativeAndIndependentSchedulesIntoEnclosingSchedules(PatternGraph)
Negative/Independent schedules are merged as an operation into their enclosing schedules, at a position determined by their costs but not before all of their needed elements were computed

NodesInIndependentMatchedThere(PatternGraph)
NumEdgesInIndependentsMatchedThere(PatternGraph)
NumNodesInIndependentsMatchedThere(PatternGraph)
Parallelize(LGSPMatchingPattern)
Parallelize the scheduled search plan for usage from a parallelized matcher (non- is-matched-flag-based isomorphy checking)

ParallelizeAlternativeIterated(PatternGraph)
Non- is-matched-flag-based isomorphy checking for nested alternative cases/iterateds

ParallelizeAsNeeded(LGSPMatchingPattern)
Parallelize the scheduled search plan if it is to be parallelized. An action to be parallelized is split at the first loop into a header part and a body part, all subpatterns and nested patterns to be parallelized are switched to non- is-matched-flag-based isomorphy checking.

ParallelizeHeadBody(LGSPRulePattern)
Parallelize the scheduled search plan to the branching factor, splitting it at the first loop into a header part and a body part

ParallelizeNegativeIndependent(ScheduledSearchPlan)
Non- is-matched-flag-based isomorphy checking for nested negatives/independents, patch into already cloned parallel ssp

ParallelizeYielding(PatternGraph)
Profile
If true, profiling information is to be collected, i.e. some statistics about search steps executed

ScheduleSearchPlan(SearchPlanGraph, PatternGraph, Boolean)
Generates a scheduled search plan for a given search plan graph

SetNeedForParallelizedVersion(ExpressionOrYielding)
SetNeedForProfiling(ExpressionOrYielding)
SetNeedForProfiling(PatternGraph)
Inheritance Hierarchy
Object
LGSPMatcherGenerator

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