Enum semantic_analyzer::codegen::StackKind
source · pub enum StackKind {
Show 20 variants
FunctionDeclaration {
fn_decl: FunctionStatement,
},
Constant {
const_decl: Constant,
},
Types {
type_decl: StructTypes,
},
FunctionStatement {
fn_decl: FunctionStatement,
},
LetBinding {
let_decl: Value,
expr_result: ExpressionResult,
},
Binding {
val: Value,
expr_result: ExpressionResult,
},
Call {
call: Function,
params: Vec<ExpressionResult>,
register_number: u64,
},
ExpressionValue {
expression: Value,
register_number: u64,
},
ExpressionStructValue {
expression: Value,
index: u64,
register_number: u64,
},
ExpressionConst {
expression: Constant,
register_number: u64,
},
ExpressionOperation {
operation: ExpressionOperations,
left_value: ExpressionResult,
right_value: ExpressionResult,
register_number: u64,
},
ExpressionFunctionReturn {
expr_result: ExpressionResult,
},
JumpFunctionReturn {
expr_result: ExpressionResult,
},
SetLabel {
label: LabelName,
},
ExpressionFunctionReturnWithLabel {
expr_result: ExpressionResult,
},
ConditionExpression {
left_result: ExpressionResult,
right_result: ExpressionResult,
condition: Condition,
register_number: u64,
},
LogicCondition {
left_condition_register: u64,
right_condition_register: u64,
logic_condition: LogicCondition,
register_number: u64,
},
IfConditionExpression {
expr_result: ExpressionResult,
label_if_begin: LabelName,
label_if_end: LabelName,
},
IfConditionLogic {
label_if_begin: LabelName,
label_if_end: LabelName,
register_number: u64,
},
JumpTo {
label: LabelName,
},
}
Variants§
FunctionDeclaration
Fields
§
fn_decl: FunctionStatement
Constant
Types
Fields
§
type_decl: StructTypes
FunctionStatement
Fields
§
fn_decl: FunctionStatement
LetBinding
Binding
Call
ExpressionValue
ExpressionStructValue
ExpressionConst
ExpressionOperation
ExpressionFunctionReturn
Fields
§
expr_result: ExpressionResult
JumpFunctionReturn
Fields
§
expr_result: ExpressionResult
SetLabel
ExpressionFunctionReturnWithLabel
Fields
§
expr_result: ExpressionResult
ConditionExpression
LogicCondition
Fields
§
logic_condition: LogicCondition
IfConditionExpression
IfConditionLogic
JumpTo
Trait Implementations§
source§impl PartialEq<StackKind> for StackKind
impl PartialEq<StackKind> for StackKind
impl StructuralPartialEq for StackKind
Auto Trait Implementations§
impl RefUnwindSafe for StackKind
impl Send for StackKind
impl Sync for StackKind
impl Unpin for StackKind
impl UnwindSafe for StackKind
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