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. |