Table of Contents

Interface IBlock<TInstruction>

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

Represents a single block in structured program code.

public interface IBlock<TInstruction> where TInstruction : notnull

Type Parameters

TInstruction

The type of instructions that this block contains.

Methods

AcceptVisitor(IBlockVisitor<TInstruction>)

Visit the current block using the provided visitor.

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.

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.

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.

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.

BasicBlock<TInstruction>? GetLastBlock()

Returns

BasicBlock<TInstruction>

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