GrGen.NET v4.4 API: the libGr class library (the type exact interface gets generated)
de.unika.ipd.grGen.libGr Namespace
Namespacesde.unika.ipd.grGen.libGr
 
Declaration Syntax
C#
namespace de.unika.ipd.grGen.libGr
Types
All TypesClassesStructuresInterfacesEnumerationsDelegates
IconTypeDescription
ActionProfile
A class for collecting an action profile, accumulating per-action statistics, over all applications of the corresponding rule or test

AfterFinishHandler
Represents a method called after the rewrite step of a rule.

AfterMatchHandler
Represents a method called after all requested matches of an action have been matched.

AssignmentTarget
An assignment target object with references to used sequence computations.

AssignmentTargetAttribute
AssignmentTargetAttributeIndexed
AssignmentTargetIndexedVar
AssignmentTargetType
Specifies the assignment target type (the lhs expression).

AssignmentTargetVar
AssignmentTargetVisited
AssignmentTargetYieldingVar
GXLExport..::..Attr
AttributeChangeType
The changes which might occur to graph element attributes.

GXLImport..::..AttributeClass
AttributeIndexDescription
The description of a single attribute index.

AttributeKind
Specifies the kind of a GrGen attribute.

AttributeType
Describes a GrGen attribute.

BaseActions
A partial implementation of the interface to the actions.

BaseGraph
A partial implementation of the IGraph interface. Adding some methods implemented over the IGraph interface (some convenience stuff).

BeforeFinishHandler
Represents a method called before the rewrite step of an action, when at least one match has been found.

CAEType
Specifies the type of a connection assertion error.

ChangedEdgeAttributeHandler
Represents a method called after an edge attribute was changed (for debugging, omitted in case of nodebugevents).

ChangedNodeAttributeHandler
Represents a method called after a node attribute was changed (for debugging, omitted in case nodebugevents).

ChangingEdgeAttributeHandler
Represents a method called just before an edge attribute is changed, with exact information about the change to occur, to allow rollback of changes, in case a transaction is underway.

ChangingNodeAttributeHandler
Represents a method called just before a node attribute is changed, with exact information about the change to occur, to allow rollback of changes, in case a transaction is underway.

ClearingGraphHandler
Represents a method called before a graph is cleared.

CompliantUserProxyForSequenceExecution
A proxy simulating an always compliant user for choices during sequence execution, always returns the suggested choice. Used for sequence execution without debugger.

ConnectionAssertionError
A description of an error, found during the validation process.

ContainerHelper
DebugEmitHandler
Represents a method called by the user to emit debugging information, not halting execution. (Stored on the debug traces stack, removed when its directly nesting debug enter is exited.)

DebugEnterHandler
Represents a method called directly after a computation has been entered (for tracing/debugging purpose). Applying user-defined computation borders, or e.g. auto-generated rule eval or procedure call borders; but not interpreted sequences, they receive dedicated treatement in the graph processing environment, are debugged directly.

DebugExitHandler
Represents a method called directly before a computation is left (for tracing/debugging purpose). Applying user-defined computation borders, or e.g. auto-generated rule eval or procedure call borders; but not interpreted sequences, they receive dedicated treatement in the graph processing environment, are debugged directly.

DebugHaltHandler
Represents a method called by the user to halt execution, emitting some debugging information.

DebugHighlightHandler
Represents a method called by the user to highlight some elements in the graph, halting execution.

DefinedSequenceInfo
Represents a sequence definition.

DefinitionType
Deque<(Of <(<'T>)>)>
Class implementing a Double Ended Queue. Items can be added and removed in O(1) at the beginning and at the end, and accessed at an arbitrary index in O(1). Implemented by a ring buffer that is doubled in size (and the old content copied) when necessary (so insert is only amortized O(1)).

Directedness
Specifies the kind of directedness for an EdgeType

DumpInfo
A description of how to dump a graph.

DumpMatchSpecial
Specifies how an IMatches object should be dumped.

EdgeAddedHandler
Represents a method called, when an edge has been added.

GXLImport..::..EdgeClass
EdgeType
A representation of a GrGen edge type.

EdgeTypeAppearanceChangedHandler
ElementNameGetter
EmbeddedSequenceInfo
Represents an XGRS used in an exec statement.

EmitHelper
EndOfIterationHandler
Represents a method called when a loop iteration is ended.

EnterSequenceHandler
Represents a method called directly after a sequence has been entered.

EnumAttributeType
A description of a GrGen enum type.

GXLImport..::..EnumDomain
EnumMember
A description of a GrGen enum member.

ExitSequenceHandler
Represents a method called before a sequence is left.

ExternalDefinedSequenceInfo
Represents a sequence definition implemented externally.

ExternalType
A representation of an external type registered with GrGen. The bottom type of the external type hierarchy that is always available is type object.

FilterCall
An object representing a filter call. It specifies the filter and potential arguments.

FunctionInfo
A description of a GrGen (attribute evaluation) function.

FunctionInvocationParameterBindings
An object representing a function invocation. It stores the input arguments (values) and tells with which function to compute them.

GraphDumper
GraphExportContext
GraphHelper
GraphValidator
GrColor
GrElemDumpType
GrGenType
A representation of a GrGen graph element type.

GRGExport
Exports graphs in GRG format, i.e. as GrGen rules.

GrLineStyle
GrNodeShape
GroupMode
The supported group modes.

GroupNodeType
Specifies which nodes are grouped by this group node type.

GRSExport
Exports graphs to the GRS format.

GRSImport
Imports graphs from files in GRS format. Implementation note: this is a boring hand written lexer and parser, needed because the lexer/parser generated by CSharpCC that was replaced by it fired a multitude of "LookaheadSuccess"-exceptions, wreaking havoc on performance.

GXLExport
Exports graphs to the GXL format.

GXLImport
Imports graphs from the GXL format.

IAction
An object representing an executable rule.

IActionExecutionEnvironment
An environment for the execution of actions (without embedded sequences). Holds a reference to the current graph.

IActions
The interface to the actions (the "generic" interface, using strings and objects).

IAlternative
An alternative is a pattern graph element containing subpatterns of which one must get successfully matched so that the entire pattern gets matched successfully

IAttributeIndex
A single attribute index.

IBackend
A helper class for backend independent graph and rule handling.

IDeque
Interface of a Double Ended Queue. (Why is there none in the .NET collection library?)

GXLImport..::..IDMap
IDumper
A dumper for output of graphs.

IEdge
A GrGen edge

IEdgeModel
A type model for edges.

IFilter
A description of a filter of a rule

IFilterAutoGenerated
A description of an auto-generated filter

IFilterFunction
A description of a filter function

IFunctionDefinition
An object representing an executable function.

IGraph
An attributed, typed and directed multigraph with multiple inheritance on node and edge types.

IGraphElement
A GrGen graph element

IGraphModel
A model of a GrGen graph.

IGraphProcessingEnvironment
An environment for the advanced processing of graphs and the execution of sequences. With global variables, (sub)graph switching, and transaction management.

IIncidenceCountIndex
A single incidence count index.

IIndex
Base class for a single index, the different kinds of indices. (You must typecheck and cast to the concrete index type for more information).

IIndexSet
The index set applied on a graph.

IIterated
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

IMatch
Base class of classes representing matches. One exact match class is generated per pattern.

IMatches
An object representing a (possibly empty) set of matches in a graph before the rewrite has been applied. If it is a match of an action, it is returned by IAction.Match() and given to the OnMatched event. Otherwise it's the match of an iterated-pattern, and the producing action is null.

IMatchesExact<(Of <(<'MatchInterface>)>)>
An object representing a (possibly empty) set of matches in a graph before the rewrite has been applied, capable of handing out enumerators of exact match interface type.

IMatchingPattern
A description of a GrGen matching pattern, that's a subpattern/subrule or the base for some rule.

INamedGraph
An named IGraph (which is an attributed, typed and directed multigraph with multiple inheritance on node and edge types), with a unique name assigned to each node and edge; allowing to access an element by name and a name by element.

IncidenceCountIndexDescription
The description of a single incidence count index.

IncidenceDirection
IndexDescription
The description of a single index, base for all kinds of index descriptions. (You must typecheck and cast to the concrete description type for more information).

InfoTag
Represents an info tag.

INode
A GrGen node

INodeModel
A type model for nodes.

InvocationParameterBindings
An object representing a rule or sequence or procedure or function invocation. It stores the input arguments (values) and tells with which sequence expressions to compute them.

InvocationParameterBindingsWithReturns
An object representing a rule or sequence or procedure invocation. It stores the input arguments (values), tells with which sequence expressions to compute them, and where (which variables) to store the output values.

IPatternEdge
A pattern edge of a rule pattern.

IPatternElement
An element of a rule pattern.

IPatternGraph
A pattern graph.

IPatternGraphEmbedding
Embedding of a subpattern into it's containing pattern

IPatternNode
A pattern node of a rule pattern.

IPatternVariable
A pattern variable of a rule pattern.

IProcedureDefinition
An object representing an executable procedure.

IRecorder
An interface for recording changes (and their causes) applied to a graph into a file, so that they can get replayed.

IRulePattern
A description of a GrGen rule.

ISequenceDefinition
An object representing an executable sequence.

ISubactionAndOutputAdditionEnvironment
An environment extending basic action execution with subaction debugging, plus subgraph nesting, and output -- for one textual emits, and for the other graph change recording.

ITransactionManager
An interface for managing graph transactions.

ITypeModel
A type model for node or edge elements.

IUndoItem
An interface for undo items of the transaction manager. Allows to register own ones for external types, will be called on rollback.

IUserProxyForSequenceExecution
A proxy querying or simulating a user for choices during sequence execution TODO: general user proxy, not just for sequence execution

MainGraphExportContext
MatchPrinter
NodeAddedHandler
Represents a method called, when a node has been added.

GXLImport..::..NodeClass
NodeType
A representation of a GrGen node type.

NodeTypeAppearanceChangedHandler
OrderingComparer
PerformanceInfo
An object accumulating information about needed time, number of found matches and number of performed rewrites.

Porter
Import and export support for graphs.

ProcedureInfo
A description of a GrGen (attribute evaluation) procedure.

ProcedureInvocationParameterBindings
An object representing a procedure. It stores the input arguments (values), tells with which sequence expressions to compute them, and where (which variables) to store the output values.

ProcessSpecFlags
Flags which determine, how the specification file should be processed.

ProfileAverages
A class for collecting average information, for profiling, per thread that was used in matching (so in case of a normal single threaded action the values characterize the action)

Range
Describes a range with a minimum and a maximum value.

Recorder
A class for recording changes (and their causes) applied to a graph into a file, so that they can get replayed.

RedirectingEdgeHandler
Represents a method called before an edge is redirected (i.e. will be removed soon and added again immediately thereafter).

RelOpDirection
RemovingEdgeHandler
Represents a method called before a edge is removed.

RemovingEdgesHandler
Represents a method called before all edges of a node are removed.

RemovingNodeHandler
Represents a method called before a node is removed.

ReturnFromSubgraphHandler
Represents a method called directly after graph processing returned back (from a previous switch). (To the main graph, or a subgraph previously switched to. Graph processing means rule and sequence execution.)

RetypingEdgeHandler
Represents a method called before an edge is retyped.

RetypingNodeHandler
Represents a method called before a node is retyped.

RewriteNextMatchHandler
Represents a method called during rewriting a set of matches before the next match is rewritten. It is not fired before rewriting the first match.

RuleInvocationParameterBindings
An object representing a rule invocation. It stores the input arguments (values), tells with which sequence expressions to compute them, and where (which variables) to store the output values.

ScopeType
The possible scope opening types

Sequence
A sequence object with references to child sequences. A sequence is basically a rule application or a computation, or an operator combining them.

SequenceAndAssignSequenceResultToVar
SequenceAssignConstToVar
SequenceAssignContainerConstructorToVar
SequenceAssignRandomDoubleToVar
SequenceAssignRandomIntToVar
SequenceAssignSequenceResultToVar
SequenceAssignToVar
A sequence which assigns something to a destination variable.

SequenceAssignUserInputToVar
SequenceAssignVarToVar
SequenceBacktrack
SequenceBase
The common base of sequence, sequence computation, and sequence expression objects, with some common infrastructure.

SequenceBinary
A sequence consisting of a binary operator and two sequences. Decision on order of execution by random, by user choice possible.

SequenceBinaryExpression
A sequence binary expression object with references to the left and right child sequence expressions.

SequenceBooleanComputation
SequenceCheckingEnvironment
Environment for sequence checking giving access to model and action signatures. Abstract base class, there are two concrete subclasses, one for interpreted, one for compiled sequences. The compiled version in addition resolves names that are given without package context but do not reference global names because they are used from a sequence that is contained in a package (only possible for compiled sequences from rule language).

SequenceCheckingEnvironmentCompiled
Environment for sequence checking giving access to model and action signatures. Concrete subclass for compiled sequences. This environment in addition resolves names that are given without package context but do not reference global names because they are used from a sequence that is contained in a package (only possible for compiled sequences from rule language).

SequenceCheckingEnvironmentInterpreted
Environment for sequence checking giving access to model and action signatures. Concrete subclass for interpreted sequences.

SequenceComputation
A sequence computation object with references to child sequence computations. The computations are basically: visited flags management, container manipulation, assignments and special functions; they may or may not return values. They do change things, in contrast to the side-effect free sequence expressions.

SequenceComputationAssignment
SequenceComputationBuiltinProcedureCall
SequenceComputationContainer
A sequence computation on a container object (resulting from a variable or a method call; yielding a container object again)

SequenceComputationContainerAdd
SequenceComputationContainerClear
SequenceComputationContainerRem
SequenceComputationDebugAdd
SequenceComputationDebugEmit
SequenceComputationDebugHalt
SequenceComputationDebugHighlight
SequenceComputationDebugRem
SequenceComputationDeleteFile
SequenceComputationEmit
SequenceComputationExport
SequenceComputationGraphAdd
SequenceComputationGraphAddCopy
SequenceComputationGraphClear
SequenceComputationGraphMerge
SequenceComputationGraphRedirectSource
SequenceComputationGraphRedirectSourceAndTarget
SequenceComputationGraphRedirectTarget
SequenceComputationGraphRem
SequenceComputationGraphRetype
SequenceComputationInsert
SequenceComputationInsertCopy
SequenceComputationInsertDefined
SequenceComputationInsertInduced
SequenceComputationProcedureCall
SequenceComputationProcedureMethodCall
SequenceComputationRecord
SequenceComputationThen
SequenceComputationType
Specifies the actual subtype of a sequence computation. A new expression type -> you must add the corresponding class down below and adapt the lgspSequenceGenerator.

SequenceComputationVAlloc
SequenceComputationVariableDeclaration
SequenceComputationVFree
SequenceComputationVReset
SequenceDeclareVariable
SequenceDefinition
A sequence representing a sequence definition. It must be applied with a different method than the other sequences because it requires the parameter information.

SequenceDefinitionCompiled
A sequence representing a compiled sequence definition. The subclass contains the method implementing the real sequence, and ApplyImpl calling that method mapping SequenceInvocationParameterBindings to the exact parameters of that method.

SequenceDefinitionInterpreted
An sequence representing an interpreted sequence definition. Like the other sequences it can be directly interpreted (but with a different apply method), in contrast to the others it always must be the root sequence.

SequenceExecuteInSubgraph
SequenceExecutionState
States of executing sequences: not (yet) executed, execution underway, successful execution, fail execution

SequenceExpression
A sequence expression object with references to child sequence expressions. A sequence expression is a side effect free computation returning a value (a query).

SequenceExpressionAdjacentIncident
SequenceExpressionArrayConstructor
SequenceExpressionAttributeAccess
SequenceExpressionBoundedReachable
SequenceExpressionBoundedReachableWithRemainingDepth
SequenceExpressionCanonize
SequenceExpressionCast
SequenceExpressionConditional
SequenceExpressionConstant
SequenceExpressionContainer
A sequence expression over a container object (resulting from a variable or a method call)

SequenceExpressionContainerAccess
SequenceExpressionContainerConstructor
SequenceExpressionContainerEmpty
SequenceExpressionContainerPeek
SequenceExpressionContainerSize
SequenceExpressionCopy
SequenceExpressionCountAdjacentIncident
SequenceExpressionCountBoundedReachable
SequenceExpressionCountEdges
SequenceExpressionCountNodes
SequenceExpressionCountReachable
SequenceExpressionDef
SequenceExpressionDefinedSubgraph
SequenceExpressionDequeConstructor
SequenceExpressionDiv
SequenceExpressionEdgeByName
SequenceExpressionEdgeByUnique
SequenceExpressionEdges
SequenceExpressionElementFromGraph
SequenceExpressionEmpty
SequenceExpressionEqual
SequenceExpressionEqualsAny
SequenceExpressionExistsFile
SequenceExpressionFunctionCall
SequenceExpressionFunctionMethodCall
SequenceExpressionGreater
SequenceExpressionGreaterEqual
SequenceExpressionHelper
SequenceExpressionImport
SequenceExpressionInContainer
SequenceExpressionInducedSubgraph
SequenceExpressionIsAdjacentIncident
SequenceExpressionIsBoundedReachable
SequenceExpressionIsReachable
SequenceExpressionIsVisited
SequenceExpressionLazyAnd
SequenceExpressionLazyOr
SequenceExpressionLower
SequenceExpressionLowerEqual
SequenceExpressionMapConstructor
SequenceExpressionMatchAccess
SequenceExpressionMinus
SequenceExpressionMod
SequenceExpressionMul
SequenceExpressionNameof
SequenceExpressionNodeByName
SequenceExpressionNodeByUnique
SequenceExpressionNodes
SequenceExpressionNot
SequenceExpressionNotEqual
SequenceExpressionNow
SequenceExpressionOpposite
SequenceExpressionPlus
SequenceExpressionRandom
SequenceExpressionReachable
SequenceExpressionSetConstructor
SequenceExpressionSize
SequenceExpressionSource
SequenceExpressionStrictAnd
SequenceExpressionStrictOr
SequenceExpressionStrictXor
SequenceExpressionStructuralEqual
SequenceExpressionTarget
SequenceExpressionThis
SequenceExpressionType
Specifies the actual subtype of a sequence expression. A new expression type -> you must add the corresponding class down below and adapt the lgspSequenceGenerator.

SequenceExpressionTypeof
SequenceExpressionUniqueof
SequenceExpressionVariable
SequenceForContainer
SequenceForFunction
SequenceForIndexAccessEquality
SequenceForIndexAccessOrdering
SequenceForIntegerRange
SequenceForMatch
SequenceIfThen
SequenceIfThenElse
SequenceInvocationParameterBindings
An object representing a sequence invocation. It stores the input arguments (values), tells with which sequence expressions to compute them, and where (which variables) to store the output values.

SequenceIterationMin
SequenceIterationMinMax
SequenceLazyAnd
SequenceLazyAndAll
SequenceLazyOr
SequenceLazyOrAll
SequenceNAry
A sequence consisting of a list of subsequences. Decision on order of execution always by random, by user choice possible.

SequenceNot
SequenceOrAssignSequenceResultToVar
SequenceParserError
Specifies the kind of sequence parser error.

SequenceParserException
An exception thrown by SequenceParser, describing the error, e.g. which rule caused the problem and how it was used

SequencePause
SequenceRandomChoice
A Sequence with a random decision which might be interactively overriden by a user choice.

SequenceRuleAllCall
SequenceRuleCall
SequenceRuleCountAllCall
SequenceSequenceCall
SequenceSomeFromSet
A sequence consisting of a list of subsequences. Decision on order of execution by random, by user choice possible. First all the contained rules are matched, then they get rewritten

SequenceSpecial
A Sequence with a Special flag

SequenceStrictAnd
SequenceStrictAndAll
SequenceStrictOr
SequenceStrictOrAll
SequenceThenLeft
SequenceThenRight
SequenceTransaction
SequenceType
Specifies the actual subtype used for a Sequence. A new sequence type -> you must add the corresponding class down below, and adapt the lgspSequenceGenerator and the Debugger.

SequenceUnary
A sequence consisting of a unary operator and another sequence.

SequenceVariable
A variable declared/used within a sequence, might be a sequence-local variable or a reference to a graph-global variable. It is first stored within the symbol table belonging to the sequence on sequence parsing, after parsing only on the heap, with references from the sequence AST pointing to it.

SequenceWeightedOne
SequenceXor
Set<(Of <(<'T>)>)>
Set class only used by the dumping code in BaseGraph. The value of this class is questionable...

SettingAddedElementNamesHandler
Delegate-type called shortly before elements are added to the graph, with the names of the elements added.

SettingVisitedHandler
Represents a method called before a visited flag is set to a new value.

SetValueType
A dummy type used as value type for dictionaries representing sets.

SingleLinkedList<(Of <(<'T>)>)>
Deprecated...

SwitchToSubgraphHandler
Represents a method called directly before graph processing switches to a subgraph. (Graph processing means rule and sequence execution. Not called when the main graph is replaced.)

SymbolTable
class of symbol table containing the variables declared in the sequence variables might be implicitely(graph-global) or explicitely(sequence-local) declared

SymmetryChecker
A class which contains the AreSymmetric function to check to matches of a pattern for being symmetric, i.e. to be matches of a pattern which is automorph to itself.

GXLImport..::..Thing
GXLImport..::..ThingKind
TypeInfotagsChangedHandler
TypesHelper
UberEstimator
The Über-Statistical-Estimator implementing a staged, present leaning, truncated average. Staged similar to the remedian for efficient computation in case of a large number of samples, present leaning with weights to get a preference for more current values, going into the direction of a sliding average, truncated average to achieve resilience against outliers (compared to the average), and to not underestimate the volume (compared to the median in case about half of the values are small).

ValidateInfo
A representation of a GrGen connection assertion. Used by BaseGraph.Validate().

ValidationMode
The different graph validation modes

Variable
A named graph-global variable.

VarType
A representation of a GrGen variable type.

VCGDumper
A VCG graph dumper.

VCGFlags
Specifies flags how the graph should be displayed by a graph layouter.

VisitedAllocHandler
Represents a method called, when a visited flag was allocated.

VisitedFreeHandler
Represents a method called, when a visited flag was freed.

XMIExport
Exports graphs to the XMI format (assuming a matching ecore exists).