pub enum ChapelStmt {
Show 26 variants
VarDecl(String, Option<ChapelType>, Option<ChapelExpr>),
ConstDecl(String, Option<ChapelType>, ChapelExpr),
Assign(ChapelExpr, ChapelExpr),
CompoundAssign(String, ChapelExpr, ChapelExpr),
IfElse(ChapelExpr, Vec<ChapelStmt>, Option<Vec<ChapelStmt>>),
ForLoop(String, ChapelExpr, Vec<ChapelStmt>),
ForallLoop(String, ChapelExpr, Vec<ChapelStmt>),
ForallReduce(String, ChapelExpr, String, String, Vec<ChapelStmt>),
CoforallLoop(String, ChapelExpr, Vec<ChapelStmt>),
WhileLoop(ChapelExpr, Vec<ChapelStmt>),
DoWhileLoop(Vec<ChapelStmt>, ChapelExpr),
ReturnStmt(Option<ChapelExpr>),
ProcDef(ChapelProc),
RecordDef(ChapelRecord),
ClassDef(ChapelClass),
ExprStmt(ChapelExpr),
Writeln(Vec<ChapelExpr>),
Write(Vec<ChapelExpr>),
Break,
Continue,
Halt(String),
On(ChapelExpr, Vec<ChapelStmt>),
Begin(Vec<ChapelStmt>),
SyncBlock(Vec<ChapelStmt>),
Comment(String),
Blank,
}Expand description
Chapel statement representation.
Variants§
VarDecl(String, Option<ChapelType>, Option<ChapelExpr>)
var name: type = expr;
ConstDecl(String, Option<ChapelType>, ChapelExpr)
const name: type = expr;
Assign(ChapelExpr, ChapelExpr)
name = expr;
CompoundAssign(String, ChapelExpr, ChapelExpr)
Compound assign: name op= expr;
IfElse(ChapelExpr, Vec<ChapelStmt>, Option<Vec<ChapelStmt>>)
if cond { ... } else { ... }
ForLoop(String, ChapelExpr, Vec<ChapelStmt>)
for idx in domain { ... }
ForallLoop(String, ChapelExpr, Vec<ChapelStmt>)
forall idx in domain { ... }
ForallReduce(String, ChapelExpr, String, String, Vec<ChapelStmt>)
forall idx in domain with (op reduce acc) { ... }
CoforallLoop(String, ChapelExpr, Vec<ChapelStmt>)
coforall idx in domain { ... }
WhileLoop(ChapelExpr, Vec<ChapelStmt>)
while cond { ... }
DoWhileLoop(Vec<ChapelStmt>, ChapelExpr)
do { ... } while cond;
ReturnStmt(Option<ChapelExpr>)
return expr;
ProcDef(ChapelProc)
Procedure definition (nested or top-level)
RecordDef(ChapelRecord)
Record definition
ClassDef(ChapelClass)
Class definition
ExprStmt(ChapelExpr)
Expression statement: expr;
Writeln(Vec<ChapelExpr>)
writeln(args...);
Write(Vec<ChapelExpr>)
write(args...);
Break
break;
Continue
continue;
Halt(String)
halt(msg);
On(ChapelExpr, Vec<ChapelStmt>)
on locale { ... }
Begin(Vec<ChapelStmt>)
begin { ... } — async task
SyncBlock(Vec<ChapelStmt>)
sync { ... } — synchronisation block
Comment(String)
Block comment
Blank
Blank line separator
Trait Implementations§
Source§impl Clone for ChapelStmt
impl Clone for ChapelStmt
Source§fn clone(&self) -> ChapelStmt
fn clone(&self) -> ChapelStmt
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ChapelStmt
impl RefUnwindSafe for ChapelStmt
impl Send for ChapelStmt
impl Sync for ChapelStmt
impl Unpin for ChapelStmt
impl UnsafeUnpin for ChapelStmt
impl UnwindSafe for ChapelStmt
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