pub enum SemanticStackContext<I: SemanticContextInstruction> {
Show 21 variants
ExpressionValue {
expression: Value,
register_number: u64,
},
ExpressionConst {
expression: Constant,
register_number: u64,
},
ExpressionStructValue {
expression: Value,
index: u32,
register_number: u64,
},
ExpressionOperation {
operation: ExpressionOperations,
left_value: ExpressionResult,
right_value: ExpressionResult,
register_number: u64,
},
Call {
call: Function,
params: Vec<ExpressionResult>,
register_number: u64,
},
LetBinding {
let_decl: Value,
expr_result: ExpressionResult,
},
Binding {
val: Value,
expr_result: ExpressionResult,
},
FunctionDeclaration {
fn_decl: FunctionStatement,
},
Constant {
const_decl: Constant,
},
Types {
type_decl: StructTypes,
},
ExpressionFunctionReturn {
expr_result: ExpressionResult,
},
ExpressionFunctionReturnWithLabel {
expr_result: ExpressionResult,
},
SetLabel {
label: LabelName,
},
JumpTo {
label: LabelName,
},
IfConditionExpression {
expr_result: ExpressionResult,
label_if_begin: LabelName,
label_if_end: LabelName,
},
ConditionExpression {
left_result: ExpressionResult,
right_result: ExpressionResult,
condition: Condition,
register_number: u64,
},
JumpFunctionReturn {
expr_result: ExpressionResult,
},
LogicCondition {
logic_condition: LogicCondition,
left_register_result: u64,
right_register_result: u64,
register_number: u64,
},
IfConditionLogic {
label_if_begin: LabelName,
label_if_end: LabelName,
result_register: u64,
},
FunctionArg {
value: Value,
func_arg: FunctionParameter,
},
ExtendedExpression(Box<I>),
}
Expand description
§Semantic stack Context
Context data of Semantic results. Contains type declarations for specific instructions.
Variants§
ExpressionValue
ExpressionConst
ExpressionStructValue
ExpressionOperation
Call
LetBinding
Binding
FunctionDeclaration
Fields
§
fn_decl: FunctionStatement
Constant
Types
Fields
§
type_decl: StructTypes
ExpressionFunctionReturn
Fields
§
expr_result: ExpressionResult
ExpressionFunctionReturnWithLabel
Fields
§
expr_result: ExpressionResult
SetLabel
JumpTo
IfConditionExpression
ConditionExpression
JumpFunctionReturn
Fields
§
expr_result: ExpressionResult
LogicCondition
Fields
§
logic_condition: LogicCondition
IfConditionLogic
FunctionArg
ExtendedExpression(Box<I>)
Trait Implementations§
Source§impl<I: Clone + SemanticContextInstruction> Clone for SemanticStackContext<I>
impl<I: Clone + SemanticContextInstruction> Clone for SemanticStackContext<I>
Source§fn clone(&self) -> SemanticStackContext<I>
fn clone(&self) -> SemanticStackContext<I>
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 moreSource§impl<I: Debug + SemanticContextInstruction> Debug for SemanticStackContext<I>
impl<I: Debug + SemanticContextInstruction> Debug for SemanticStackContext<I>
Source§impl<I: PartialEq + SemanticContextInstruction> PartialEq for SemanticStackContext<I>
impl<I: PartialEq + SemanticContextInstruction> PartialEq for SemanticStackContext<I>
impl<I: SemanticContextInstruction> StructuralPartialEq for SemanticStackContext<I>
Auto Trait Implementations§
impl<I> Freeze for SemanticStackContext<I>
impl<I> RefUnwindSafe for SemanticStackContext<I>where
I: RefUnwindSafe,
impl<I> Send for SemanticStackContext<I>where
I: Send,
impl<I> Sync for SemanticStackContext<I>where
I: Sync,
impl<I> Unpin for SemanticStackContext<I>
impl<I> UnwindSafe for SemanticStackContext<I>where
I: UnwindSafe,
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