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
TInstructionThe 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
visitorIBlockVisitor<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
visitorIBlockVisitor<TInstruction, TState, TResult>The visitor to accept.
stateTStateAn argument to pass onto the visitor.
Returns
- TResult
Type Parameters
TStateTResult
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
nullif 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
nullif the block contains no basic blocks..