Show / Hide Table of Contents

Class ScopedExpressionSlimVisitorBase

Base class for expression visitors with scope tracking facilities.

Inheritance
System.Object
ExpressionSlimVisitor
ScopedExpressionSlimVisitorBase
ScopedExpressionSlimVisitor<TState>
Inherited Members
ExpressionSlimVisitor.Visit(ExpressionSlim)
ExpressionSlimVisitor.VisitBinary(BinaryExpressionSlim)
ExpressionSlimVisitor.VisitConditional(ConditionalExpressionSlim)
ExpressionSlimVisitor.VisitConstant(ConstantExpressionSlim)
ExpressionSlimVisitor.VisitDefault(DefaultExpressionSlim)
ExpressionSlimVisitor.VisitElementInit(ElementInitSlim)
ExpressionSlimVisitor.VisitGoto(GotoExpressionSlim)
ExpressionSlimVisitor.VisitIndex(IndexExpressionSlim)
ExpressionSlimVisitor.VisitInvocation(InvocationExpressionSlim)
ExpressionSlimVisitor.VisitLabel(LabelExpressionSlim)
ExpressionSlimVisitor.VisitLabelTarget(LabelTargetSlim)
ExpressionSlimVisitor.VisitListInit(ListInitExpressionSlim)
ExpressionSlimVisitor.VisitLoop(LoopExpressionSlim)
ExpressionSlimVisitor.VisitMember(MemberExpressionSlim)
ExpressionSlimVisitor.VisitMemberAssignment(MemberAssignmentSlim)
ExpressionSlimVisitor.VisitMemberBinding(MemberBindingSlim)
ExpressionSlimVisitor.VisitMemberInit(MemberInitExpressionSlim)
ExpressionSlimVisitor.VisitMemberListBinding(MemberListBindingSlim)
ExpressionSlimVisitor.VisitMemberMemberBinding(MemberMemberBindingSlim)
ExpressionSlimVisitor.VisitMethodCall(MethodCallExpressionSlim)
ExpressionSlimVisitor.VisitNew(NewExpressionSlim)
ExpressionSlimVisitor.VisitNewArray(NewArrayExpressionSlim)
ExpressionSlimVisitor.VisitParameter(ParameterExpressionSlim)
ExpressionSlimVisitor.VisitSwitch(SwitchExpressionSlim)
ExpressionSlimVisitor.VisitSwitchCase(SwitchCaseSlim)
ExpressionSlimVisitor.VisitTry(TryExpressionSlim)
ExpressionSlimVisitor.VisitTypeBinary(TypeBinaryExpressionSlim)
ExpressionSlimVisitor.VisitUnary(UnaryExpressionSlim)
ExpressionSlimVisitor.VisitAndConvert<T>(T)
ExpressionSlimVisitor.VisitAndConvert<T>(T, String)
ExpressionSlimVisitor.Visit(ReadOnlyCollection<ExpressionSlim>)
ExpressionSlimVisitor.VisitAndConvert<T>(ReadOnlyCollection<T>)
ExpressionSlimVisitor.VisitAndConvert<T>(ReadOnlyCollection<T>, String)
ExpressionSlimVisitor.Visit<T>(ReadOnlyCollection<T>, Func<T, T>)
ExpressionSlimVisitor.VisitIfNotNull<T>(T, Func<T, T>)
ExpressionSlimVisitor.VisitArguments(IArgumentProviderSlim)
Namespace: System.Linq.CompilerServices.Bonsai
Assembly: Nuqleon.Linq.Expressions.Bonsai.dll
Syntax
public abstract class ScopedExpressionSlimVisitorBase : ExpressionSlimVisitor

Constructors

ScopedExpressionSlimVisitorBase()

Declaration
protected ScopedExpressionSlimVisitorBase()

Methods

Pop()

Pops a scope.

Declaration
protected abstract void Pop()

Push(IEnumerable<ParameterExpressionSlim>)

Pushes the parameters of a new declaration site into a new scope.

Declaration
protected abstract void Push(IEnumerable<ParameterExpressionSlim> parameters)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<ParameterExpressionSlim> parameters

Parameters of the declaration site.

VisitBlock(BlockExpressionSlim)

Visits a block expression, applying scope tracking to the block's declared variables. To visit blocks in derived classes, use VisitBlockCore(BlockExpressionSlim).

Declaration
protected override sealed ExpressionSlim VisitBlock(BlockExpressionSlim node)
Parameters
Type Name Description
BlockExpressionSlim node

Block expression to visit.

Returns
Type Description
ExpressionSlim

Result of visiting the block expression.

Overrides
ExpressionSlimVisitor.VisitBlock(BlockExpressionSlim)

VisitBlockCore(BlockExpressionSlim)

Visits a block expression. During the call, the block's variables are mapped in the tracked scope symbol table.

Declaration
protected virtual ExpressionSlim VisitBlockCore(BlockExpressionSlim node)
Parameters
Type Name Description
BlockExpressionSlim node

Block expression to visit.

Returns
Type Description
ExpressionSlim

Result of visiting the block expression.

VisitCatchBlock(CatchBlockSlim)

Visits a catch block, applying scope tracking to the block's declared variable (if any). To visit catch blocks in derived classes, use VisitCatchBlockCore(CatchBlockSlim).

Declaration
protected override sealed CatchBlockSlim VisitCatchBlock(CatchBlockSlim node)
Parameters
Type Name Description
CatchBlockSlim node

Catch block to visit.

Returns
Type Description
CatchBlockSlim

Result of visiting the catch block.

Overrides
ExpressionSlimVisitor.VisitCatchBlock(CatchBlockSlim)

VisitCatchBlockCore(CatchBlockSlim)

Visits a catch block. During the call, the block's variables are mapped in the tracked scope symbol table.

Declaration
protected virtual CatchBlockSlim VisitCatchBlockCore(CatchBlockSlim node)
Parameters
Type Name Description
CatchBlockSlim node

Catch block to visit.

Returns
Type Description
CatchBlockSlim

Result of visiting the catch block.

VisitLambda(LambdaExpressionSlim)

Visits a lambda expression, applying scope tracking to the lambda's declared parameters. To visit lambda expressions in derived classes, use VisitLambdaCore(LambdaExpressionSlim).

Declaration
protected override sealed ExpressionSlim VisitLambda(LambdaExpressionSlim node)
Parameters
Type Name Description
LambdaExpressionSlim node

Lambda expression to visit.

Returns
Type Description
ExpressionSlim

Result of visiting the lambda expression.

Overrides
ExpressionSlimVisitor.VisitLambda(LambdaExpressionSlim)

VisitLambdaCore(LambdaExpressionSlim)

Visits a lambda expression. During the call, the block's variables are mapped in the tracked scope symbol table.

Declaration
protected virtual ExpressionSlim VisitLambdaCore(LambdaExpressionSlim node)
Parameters
Type Name Description
LambdaExpressionSlim node

Lambda expression to visit.

Returns
Type Description
ExpressionSlim

Result of visiting the lambda expression.

In This Article
Back to top Generated by DocFX