Class QueryVisitor
Query expression visitor to rewrite a query expression tree.
Inheritance
Inherited Members
Namespace: System.Linq.CompilerServices.Optimizers
Assembly: Nuqleon.Linq.CompilerServices.Optimizers.dll
Syntax
public class QueryVisitor : QueryVisitor<QueryTree, MonadMember, QueryOperator>
Constructors
QueryVisitor()
Declaration
public QueryVisitor()
Methods
MakeFirst(FirstOperator, MonadMember)
Makes a FirstOperator with the given children.
Declaration
protected override sealed QueryOperator MakeFirst(FirstOperator node, MonadMember source)
Parameters
Type | Name | Description |
---|---|---|
FirstOperator | node | Original query expression. |
MonadMember | source | Source query expression. |
Returns
Type | Description |
---|---|
QueryOperator | Representation of the original query expression. |
Overrides
MakeFirstPredicate(FirstPredicateOperator, MonadMember, QueryTree)
Makes a FirstPredicateOperator with the given children.
Declaration
protected override sealed QueryOperator MakeFirstPredicate(FirstPredicateOperator node, MonadMember source, QueryTree predicate)
Parameters
Type | Name | Description |
---|---|---|
FirstPredicateOperator | node | Original query expression. |
MonadMember | source | Source query expression. |
QueryTree | predicate | Predicate query expression. |
Returns
Type | Description |
---|---|
QueryOperator | Representation of the original query expression. |
Overrides
MakeLambdaAbstraction(LambdaAbstraction, ReadOnlyCollection<QueryTree>)
Makes a LambdaAbstraction with the given children.
Declaration
protected override sealed QueryTree MakeLambdaAbstraction(LambdaAbstraction node, ReadOnlyCollection<QueryTree> arguments)
Parameters
Type | Name | Description |
---|---|---|
LambdaAbstraction | node | Original query expression. |
System.Collections.ObjectModel.ReadOnlyCollection<QueryTree> | arguments | Argument query expressions. |
Returns
Type | Description |
---|---|
QueryTree | Representation of the original query expression. |
Overrides
MakeMonadAbstraction(MonadAbstraction, QueryTree)
Makes a MonadAbstraction with the given children.
Declaration
protected override sealed MonadMember MakeMonadAbstraction(MonadAbstraction node, QueryTree inner)
Parameters
Type | Name | Description |
---|---|---|
MonadAbstraction | node | Original query expression. |
QueryTree | inner | Inner query expression. |
Returns
Type | Description |
---|---|
MonadMember | Representation of the original query expression. |
Overrides
MakeSelect(SelectOperator, MonadMember, QueryTree)
Makes a SelectOperator with the given children.
Declaration
protected override sealed QueryOperator MakeSelect(SelectOperator node, MonadMember source, QueryTree selector)
Parameters
Type | Name | Description |
---|---|---|
SelectOperator | node | Original query expression. |
MonadMember | source | Source query expression. |
QueryTree | selector | Selector query expression. |
Returns
Type | Description |
---|---|
QueryOperator | Representation of the original query expression. |
Overrides
MakeTake(TakeOperator, MonadMember, QueryTree)
Makes a TakeOperator with the given children.
Declaration
protected override sealed QueryOperator MakeTake(TakeOperator node, MonadMember source, QueryTree count)
Parameters
Type | Name | Description |
---|---|---|
TakeOperator | node | Original query expression. |
MonadMember | source | Source query expression. |
QueryTree | count | Count query expression. |
Returns
Type | Description |
---|---|
QueryOperator | Representation of the original query expression. |
Overrides
MakeWhere(WhereOperator, MonadMember, QueryTree)
Makes a WhereOperator with the given children.
Declaration
protected override sealed QueryOperator MakeWhere(WhereOperator node, MonadMember source, QueryTree predicate)
Parameters
Type | Name | Description |
---|---|---|
WhereOperator | node | Original query expression. |
MonadMember | source | Source query expression. |
QueryTree | predicate | Predicate query expression. |
Returns
Type | Description |
---|---|
QueryOperator | Representation of the original query expression. |
Overrides
Visit(ReadOnlyCollection<QueryTree>)
Visits the elements in the specified input collection.
Declaration
protected ReadOnlyCollection<QueryTree> Visit(ReadOnlyCollection<QueryTree> nodes)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.ObjectModel.ReadOnlyCollection<QueryTree> | nodes | Input collection whose elements to visit. |
Returns
Type | Description |
---|---|
System.Collections.ObjectModel.ReadOnlyCollection<QueryTree> | Collection of visited input elements. |
VisitFirst(FirstOperator)
Visits a FirstOperator node.
Declaration
protected override QueryOperator VisitFirst(FirstOperator op)
Parameters
Type | Name | Description |
---|---|---|
FirstOperator | op | Node to visit. |
Returns
Type | Description |
---|---|
QueryOperator | Result of visiting the node. |
Overrides
VisitFirstPredicate(FirstPredicateOperator)
Visits a FirstPredicateOperator node.
Declaration
protected override QueryOperator VisitFirstPredicate(FirstPredicateOperator op)
Parameters
Type | Name | Description |
---|---|---|
FirstPredicateOperator | op | Node to visit. |
Returns
Type | Description |
---|---|
QueryOperator | Result of visiting the node. |
Overrides
VisitLambdaAbstraction(LambdaAbstraction)
Visits a LambdaAbstraction node.
Declaration
protected override QueryTree VisitLambdaAbstraction(LambdaAbstraction node)
Parameters
Type | Name | Description |
---|---|---|
LambdaAbstraction | node | Node to visit. |
Returns
Type | Description |
---|---|
QueryTree | Result of visiting the node. |
Overrides
VisitMonadAbstraction(MonadAbstraction)
Visits a MonadAbstraction node.
Declaration
protected override MonadMember VisitMonadAbstraction(MonadAbstraction node)
Parameters
Type | Name | Description |
---|---|---|
MonadAbstraction | node | Node to visit. |
Returns
Type | Description |
---|---|
MonadMember | Result of visiting the node. |
Overrides
VisitSelect(SelectOperator)
Visits a SelectOperator node.
Declaration
protected override QueryOperator VisitSelect(SelectOperator op)
Parameters
Type | Name | Description |
---|---|---|
SelectOperator | op | Node to visit. |
Returns
Type | Description |
---|---|
QueryOperator | Result of visiting the node. |
Overrides
VisitTake(TakeOperator)
Visits a TakeOperator node.
Declaration
protected override QueryOperator VisitTake(TakeOperator op)
Parameters
Type | Name | Description |
---|---|---|
TakeOperator | op | Node to visit. |
Returns
Type | Description |
---|---|
QueryOperator | Result of visiting the node. |
Overrides
VisitWhere(WhereOperator)
Visits a WhereOperator node.
Declaration
protected override QueryOperator VisitWhere(WhereOperator op)
Parameters
Type | Name | Description |
---|---|---|
WhereOperator | op | Node to visit. |
Returns
Type | Description |
---|---|
QueryOperator | Result of visiting the node. |