pub enum Stmt {
Show 33 variants
Move {
from: Operand,
to: Vec<Ref>,
pos: Pos,
},
Compute {
targets: Vec<Target>,
expr: Expr,
size_error: Option<SizeError>,
pos: Pos,
},
Arith(Box<Arith>),
If {
cond: Cond,
then: Vec<Stmt>,
otherwise: Vec<Stmt>,
pos: Pos,
},
PerformInline {
body: Vec<Stmt>,
repeat: Loop,
pos: Pos,
},
PerformProc {
from: ProcName,
thru: Option<ProcName>,
repeat: Loop,
pos: Pos,
},
Evaluate {
subjects: Vec<Subject>,
whens: Vec<When>,
other: Vec<Stmt>,
pos: Pos,
},
Display {
items: Vec<Operand>,
no_advancing: bool,
pos: Pos,
},
Open {
files: Vec<(OpenMode, String)>,
pos: Pos,
},
Close {
files: Vec<String>,
pos: Pos,
},
Read(Box<ReadStmt>),
Write {
record: Ref,
from: Option<Operand>,
advancing: Option<Advancing>,
invalid: Handlers,
pos: Pos,
},
Rewrite {
record: Ref,
from: Option<Operand>,
invalid: Handlers,
pos: Pos,
},
Delete {
file: String,
invalid: Handlers,
pos: Pos,
},
Start {
file: String,
key: Option<(RelOp, Ref)>,
invalid: Handlers,
pos: Pos,
},
Initialize {
targets: Vec<Ref>,
pos: Pos,
},
GoTo {
target: ProcName,
pos: Pos,
},
Goback {
pos: Pos,
},
ExitProgram {
pos: Pos,
},
Call(Box<Call>),
Cancel {
targets: Vec<Operand>,
pos: Pos,
},
Set {
set: SetStmt,
pos: Pos,
},
Accept {
target: Ref,
from: AcceptFrom,
pos: Pos,
},
String(Box<StringStmt>),
Unstring(Box<Unstring>),
Inspect(Box<Inspect>),
Search(Box<Search>),
NextSentence,
SentenceEnd,
Exec(Box<ExecBlock>),
StopRun {
pos: Pos,
},
Continue,
Exit(ExitKind),
}Variants§
Move
Compute
Arith(Box<Arith>)
ADD, SUBTRACT, MULTIPLY and DIVIDE, reduced to their arithmetic.
If
PerformInline
PerformProc
Evaluate
Display
Open
Close
Read(Box<ReadStmt>)
Write
Rewrite
Delete
Start
Initialize
GoTo
Goback
ExitProgram
EXIT PROGRAM: returns from a called program; in the first program it does nothing.
Call(Box<Call>)
Cancel
Set
Accept
String(Box<StringStmt>)
Unstring(Box<Unstring>)
Inspect(Box<Inspect>)
Search(Box<Search>)
NextSentence
NEXT SENTENCE: control passes to the statement after the next separator period.
SentenceEnd
A separator period in the PROCEDURE DIVISION: where NEXT SENTENCE resumes.
Exec(Box<ExecBlock>)
StopRun
Continue
Exit(ExitKind)
Trait Implementations§
impl Eq for Stmt
impl StructuralPartialEq for Stmt
Auto Trait Implementations§
impl Freeze for Stmt
impl RefUnwindSafe for Stmt
impl Send for Stmt
impl Sync for Stmt
impl Unpin for Stmt
impl UnsafeUnpin for Stmt
impl UnwindSafe for Stmt
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