pub enum Statement {
Show 19 variants
Expression(Expression),
Assignment {
name: String,
value: Expression,
},
GlobalAssignment {
name: String,
value: Expression,
},
InstanceAssignment {
name: String,
value: Expression,
},
ClassAssignment {
name: String,
value: Expression,
},
If {
condition: Expression,
then_branch: Vec<Statement>,
else_branch: Vec<Statement>,
},
While {
condition: Expression,
body: Vec<Statement>,
},
Until {
condition: Expression,
body: Vec<Statement>,
},
Case {
value: Expression,
when_clauses: Vec<(Expression, Vec<Statement>)>,
else_clause: Vec<Statement>,
},
For {
variable: String,
iterator: Expression,
body: Vec<Statement>,
},
Break,
Next,
Redo,
Return(Option<Expression>),
MethodDefinition {
name: String,
parameters: Vec<String>,
body: Vec<Statement>,
},
ClassDefinition {
name: String,
superclass: Option<String>,
body: Vec<Statement>,
},
ModuleDefinition {
name: String,
body: Vec<Statement>,
},
Require(Expression),
Load(Expression),
}Expand description
Statement types in the IR
Variants§
Expression(Expression)
Expression statement
Assignment
Variable assignment
GlobalAssignment
Global variable assignment
InstanceAssignment
Instance variable assignment
ClassAssignment
Class variable assignment
If
If statement
Fields
§
condition: ExpressionCondition expression
While
While loop
Until
Until loop
Case
Case statement
Fields
§
value: ExpressionValue to match
§
when_clauses: Vec<(Expression, Vec<Statement>)>When clauses (condition, body)
For
For loop
Fields
§
iterator: ExpressionIterator expression
Break
Break statement
Next
Next statement
Redo
Redo statement
Return(Option<Expression>)
Return statement
MethodDefinition
Method definition
Fields
ClassDefinition
Class definition
Fields
ModuleDefinition
Module definition
Require(Expression)
Require statement
Load(Expression)
Load statement
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Statement
impl<'de> Deserialize<'de> for Statement
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Statement
Auto Trait Implementations§
impl Freeze for Statement
impl RefUnwindSafe for Statement
impl Send for Statement
impl Sync for Statement
impl Unpin for Statement
impl UnsafeUnpin for Statement
impl UnwindSafe for Statement
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