Table of Contents

Class HandlerBlock<TInstruction>

Namespace
Echo.ControlFlow.Blocks
Assembly
Echo.ControlFlow.dll

Represents a single handler block in an ExceptionHandlerBlock<TInstruction>.

public class HandlerBlock<TInstruction> : IBlock<TInstruction> where TInstruction : notnull

Type Parameters

TInstruction

The type of instructions that this block contains.

Inheritance
HandlerBlock<TInstruction>
Implements
IBlock<TInstruction>
Inherited Members

Properties

Contents

Gets the main scope block that forms the code for the handler block.

public ScopeBlock<TInstruction> Contents { get; }

Property Value

ScopeBlock<TInstruction>

Epilogue

Gets or sets the epilogue block that gets executed after the main handler block (if available).

public ScopeBlock<TInstruction>? Epilogue { get; set; }

Property Value

ScopeBlock<TInstruction>

Prologue

Gets or sets the prologue block that gets executed before the main handler block (if available).

public ScopeBlock<TInstruction>? Prologue { get; set; }

Property Value

ScopeBlock<TInstruction>

Tag

Gets or sets a user-defined tag that is assigned to this block.

public object? Tag { get; set; }

Property Value

object

Methods

AcceptVisitor(IBlockVisitor<TInstruction>)

Visit the current block using the provided visitor.

public void AcceptVisitor(IBlockVisitor<TInstruction> visitor)

Parameters

visitor IBlockVisitor<TInstruction>

The visitor to accept.

AcceptVisitor<TState, TResult>(IBlockVisitor<TInstruction, TState, TResult>, TState)

Visit the current block using the provided visitor.

public TResult AcceptVisitor<TState, TResult>(IBlockVisitor<TInstruction, TState, TResult> visitor, TState state)

Parameters

visitor IBlockVisitor<TInstruction, TState, TResult>

The visitor to accept.

state TState

An argument to pass onto the visitor.

Returns

TResult

Type Parameters

TState
TResult

GetAllBlocks()

Gets an ordered collection of all basic blocks that can be found in this block.

public IEnumerable<BasicBlock<TInstruction>> GetAllBlocks()

Returns

IEnumerable<BasicBlock<TInstruction>>

The ordered basic blocks.

GetFirstBlock()

Gets the first basic block that appears in the ordered list of blocks.

public BasicBlock<TInstruction>? GetFirstBlock()

Returns

BasicBlock<TInstruction>

The first basic block, or null if the block contains no basic blocks..

GetLastBlock()

Gets the last basic block that appears in the ordered list of blocks.

public BasicBlock<TInstruction>? GetLastBlock()

Returns

BasicBlock<TInstruction>

The last basic block, or null if the block contains no basic blocks..