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,
resume: Option<Resume>,
},
ExitProgram {
next: BlockId,
},
End(Ending),
Abend(AbendId),
AlteredGoTo {
para: ParaId,
otherwise: BlockId,
},
Debug {
range: RangeId,
name: SymId,
next: BlockId,
},
}Variants§
Jump(BlockId)
Branch
Select(Vec<BlockId>)
On the Arm the block’s last op returned.
ParagraphEnd
Control passes the end of paragraph next − 1 for next, which may be one past the last:
the return point armed there, if any, is taken.
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, arm its return point 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.
Debug
Under the DEBUG option, the entry of a paragraph a debugging section serves: the section
runs with DEBUG-NAME name, then next; a section that leaves takes the top frame with it.
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