Enum moore_svlog::hir::StmtKind [−][src]
pub enum StmtKind {
Null,
Block(Vec<NodeId>),
Assign {
lhs: NodeId,
rhs: NodeId,
kind: AssignKind,
},
Timed {
control: TimingControl,
stmt: NodeId,
},
Expr(NodeId),
If {
cond: NodeId,
main_stmt: NodeId,
else_stmt: Option<NodeId>,
},
Loop {
kind: LoopKind,
body: NodeId,
},
InlineGroup {
stmts: Vec<NodeId>,
rib: NodeId,
},
Case {
expr: NodeId,
ways: Vec<(Vec<NodeId>, NodeId)>,
default: Option<NodeId>,
kind: CaseKind,
},
}
Expand description
The different forms a statement can take.
Variants
A null statement.
A sequential block.
An assign statement (blocking or non-blocking).
Fields of Assign
A statement with timing control.
Fields of Timed
control: TimingControl
stmt: NodeId
Expr(NodeId)
An expression statement.
Tuple Fields of Expr
0: NodeId
An if statement.
if (<cond>) <main_stmt> [else <else_stmt>]
A loop statement.
An inline group of statements.
This is a special node that is used for example with variable declarations, where one statement can generate multiple nodes referrable by name. An inline group differs from a block in that its ribs are made visible, whereas a block keeps them local.
A case statement.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for StmtKind
impl UnwindSafe for StmtKind
Blanket Implementations
Mutably borrows from an owned value. Read more