pub enum Terminator {
Jump(BlockId),
Branch {
cond: CondId,
then: BlockId,
otherwise: BlockId,
},
Select(Vec<BlockId>),
ParagraphEnd {
next: ParaId,
},
GoTo(ParaId),
Switch {
value: IntExpr,
targets: Vec<ParaId>,
otherwise: BlockId,
},
PerformEnter {
range: RangeId,
ret: BlockId,
},
ExitProgram {
next: BlockId,
},
End(Ending),
Abend(AbendId),
AlteredGoTo {
para: ParaId,
otherwise: BlockId,
},
}Variants§
Jump(BlockId)
Branch
Select(Vec<BlockId>)
On the Arm the block’s last op returned.
ParagraphEnd
Leaves a paragraph for next, which may be one past the last; a PERFORM range may complete here.
GoTo(ParaId)
Switch
GO TO … DEPENDING ON: targets[k − 1] for k in range, taken as a GoTo; else otherwise.
PerformEnter
An out-of-line PERFORM: push a frame and enter the range; ret runs when it completes.
ExitProgram
Nothing in the run unit’s first program, GOBACK in any other.
End(Ending)
Abend(AbendId)
AlteredGoTo
The entry of a paragraph an ALTER names: a GoTo of the target the alter table holds for
para, or Jump(otherwise) while it holds none.
Trait Implementations§
Source§impl Clone for Terminator
impl Clone for Terminator
Source§impl Debug for Terminator
impl Debug for Terminator
Source§impl Decode for Terminator
impl Decode for Terminator
impl Eq for Terminator
Source§impl PartialEq for Terminator
impl PartialEq for Terminator
impl StructuralPartialEq for Terminator
Auto Trait Implementations§
impl Freeze for Terminator
impl RefUnwindSafe for Terminator
impl Send for Terminator
impl Sync for Terminator
impl Unpin for Terminator
impl UnsafeUnpin for Terminator
impl UnwindSafe for Terminator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more