/// <summary> /// Instantiates a new InvocationParameterBindings object /// </summary> /// <param name="argExprs">An array of expressions used to compute the arguments</param> /// <param name="arguments">An array of arguments.</param> public InvocationParameterBindings(SequenceExpression[] argExprs, object[] arguments) { if(argExprs.Length != arguments.Length) throw new ArgumentException("Lengths of argument expression array and argument array do not match"); Name = "<Unknown rule/sequence/function>"; ArgumentExpressions = argExprs; Arguments = arguments; }
public SequenceExpressionConditional(SequenceExpression condition, SequenceExpression trueCase, SequenceExpression falseCase) : base(SequenceExpressionType.Conditional) { this.Condition = condition; this.TrueCase = trueCase; this.FalseCase = falseCase; }
public SequenceExpressionDiv(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.Div, left, right) { }
public SequenceExpressionMinus(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.Minus, left, right) { }
public SequenceExpressionLowerEqual(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.LowerEqual, left, right) { }
public SequenceExpressionFunctionMethodCall(SequenceExpression targetExpr, FunctionInvocationParameterBindings paramBindings) : base(SequenceExpressionType.FunctionMethodCall, paramBindings) { TargetExpr = targetExpr; }
public SequenceExpressionImport(SequenceExpression path) : base(SequenceExpressionType.Import) { Path = path; }
public SequenceExpressionStructuralEqual(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.StructuralEqual, left, right) { }
public SequenceExpressionCast(SequenceExpression operand, object targetType) : base(SequenceExpressionType.Cast) { this.Operand = operand; this.TargetType = targetType; }
public SequenceExpressionNot(SequenceExpression operand) : base(SequenceExpressionType.Not) { this.Operand = operand; }
public SequenceExpressionCountBoundedReachable(SequenceExpression sourceNode, SequenceExpression depth, SequenceExpression edgeType, SequenceExpression oppositeNodeType, SequenceExpressionType type) : base(type) { SourceNode = sourceNode; Depth = depth; EdgeType = edgeType; OppositeNodeType = oppositeNodeType; if(!(type == SequenceExpressionType.CountBoundedReachableNodes || type == SequenceExpressionType.CountBoundedReachableNodesViaIncoming || type == SequenceExpressionType.CountBoundedReachableNodesViaOutgoing) && !(type == SequenceExpressionType.CountBoundedReachableEdges || type == SequenceExpressionType.CountBoundedReachableEdgesViaIncoming || type == SequenceExpressionType.CountBoundedReachableEdgesViaOutgoing)) throw new Exception("Internal failure, count bounded reachable with wrong type"); }
public SequenceExpressionStrictAnd(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.StrictAnd, left, right) { }
public SequenceExpressionBoundedReachableWithRemainingDepth(SequenceExpression sourceNode, SequenceExpression depth, SequenceExpression edgeType, SequenceExpression oppositeNodeType, SequenceExpressionType type) : base(type) { SourceNode = sourceNode; Depth = depth; EdgeType = edgeType; OppositeNodeType = oppositeNodeType; if(!(type == SequenceExpressionType.BoundedReachableNodesWithRemainingDepth || type == SequenceExpressionType.BoundedReachableNodesWithRemainingDepthViaIncoming || type == SequenceExpressionType.BoundedReachableNodesWithRemainingDepthViaOutgoing)) throw new Exception("Internal failure, bounded reachable with remaining depth with wrong type"); }
public SequenceExpressionLazyAnd(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.LazyAnd, left, right) { }
public SequenceExpressionCountAdjacentIncident(SequenceExpression sourceNode, SequenceExpression edgeType, SequenceExpression oppositeNodeType, SequenceExpressionType type) : base(type) { SourceNode = sourceNode; EdgeType = edgeType; OppositeNodeType = oppositeNodeType; if(!(type == SequenceExpressionType.CountAdjacentNodes || type == SequenceExpressionType.CountAdjacentNodesViaIncoming || type == SequenceExpressionType.CountAdjacentNodesViaOutgoing) && !(type == SequenceExpressionType.CountIncidentEdges || type == SequenceExpressionType.CountIncomingEdges || type == SequenceExpressionType.CountOutgoingEdges)) throw new Exception("Internal failure, count adjacent/incident with wrong type"); }
public SequenceExpressionUniqueof(SequenceExpression uniquelyIdentifiedEntity) : base(SequenceExpressionType.Uniqueof) { UniquelyIdentifiedEntity = uniquelyIdentifiedEntity; // might be null }
public SequenceExpressionTypeof(SequenceExpression entity) : base(SequenceExpressionType.Typeof) { Entity = entity; }
public SequenceExpressionIsAdjacentIncident(SequenceExpression sourceNode, SequenceExpression endElement, SequenceExpression edgeType, SequenceExpression oppositeNodeType, SequenceExpressionType type) : base(type) { SourceNode = sourceNode; EndElement = endElement; EdgeType = edgeType; OppositeNodeType = oppositeNodeType; if(!(type == SequenceExpressionType.IsAdjacentNodes || type == SequenceExpressionType.IsAdjacentNodesViaIncoming || type == SequenceExpressionType.IsAdjacentNodesViaOutgoing) && !(type == SequenceExpressionType.IsIncidentEdges || type == SequenceExpressionType.IsIncomingEdges || type == SequenceExpressionType.IsOutgoingEdges)) throw new Exception("Internal failure, isAdjacent/isIncident with wrong type"); }
public SequenceExpressionExistsFile(SequenceExpression path) : base(SequenceExpressionType.ExistsFile) { Path = path; }
public SequenceExpressionIsReachable(SequenceExpression sourceNode, SequenceExpression endElement, SequenceExpression edgeType, SequenceExpression oppositeNodeType, SequenceExpressionType type) : base(type) { SourceNode = sourceNode; EndElement = endElement; EdgeType = edgeType; OppositeNodeType = oppositeNodeType; if(!(type == SequenceExpressionType.IsReachableNodes || type == SequenceExpressionType.IsReachableNodesViaIncoming || type == SequenceExpressionType.IsReachableNodesViaOutgoing) && !(type == SequenceExpressionType.IsReachableEdges || type == SequenceExpressionType.IsReachableEdgesViaIncoming || type == SequenceExpressionType.IsReachableEdgesViaOutgoing)) throw new Exception("Internal failure, reachable with wrong type"); }
public SequenceExpressionCopy(SequenceExpression objectToBeCopied) : base(SequenceExpressionType.Copy) { ObjectToBeCopied = objectToBeCopied; }
public SequenceExpressionInducedSubgraph(SequenceExpression nodeSet) : base(SequenceExpressionType.InducedSubgraph) { NodeSet = nodeSet; }
public SequenceExpressionNotEqual(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.NotEqual, left, right) { }
public SequenceExpressionDefinedSubgraph(SequenceExpression edgeSet) : base(SequenceExpressionType.DefinedSubgraph) { EdgeSet = edgeSet; }
public SequenceExpressionGreaterEqual(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.GreaterEqual, left, right) { }
public SequenceExpressionEqualsAny(SequenceExpression subgraph, SequenceExpression subgraphSet, bool includingAttributes) : base(SequenceExpressionType.EqualsAny) { Subgraph = subgraph; SubgraphSet = subgraphSet; IncludingAttributes = includingAttributes; }
public SequenceExpressionMul(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.Mul, left, right) { }
public SequenceExpressionCanonize(SequenceExpression graph) : base(SequenceExpressionType.Canonize) { Graph = graph; }
public SequenceExpressionMod(SequenceExpression left, SequenceExpression right) : base(SequenceExpressionType.Mod, left, right) { }
public SequenceExpressionNameof(SequenceExpression namedEntity) : base(SequenceExpressionType.Nameof) { NamedEntity = namedEntity; // might be null }