pub trait Codegen {
Show 20 methods // Required methods fn function_declaration(&mut self, fn_decl: &FunctionStatement); fn constant(&mut self, const_decl: &Constant); fn types(&mut self, type_decl: &StructTypes); fn function_statement(&mut self, fn_decl: &FunctionStatement); fn let_binding(&mut self, let_decl: &Value, expr_result: &ExpressionResult); fn binding(&mut self, val: &Value, expr_result: &ExpressionResult); fn call( &mut self, call: &Function, params: Vec<ExpressionResult>, register_number: u64 ); fn expression_value(&mut self, expression: &Value, register_number: u64); fn expression_struct_value( &mut self, expression: &Value, index: u64, register_number: u64 ); fn expression_const(&mut self, expression: &Constant, register_number: u64); fn expression_operation( &mut self, operation: &ExpressionOperations, left_value: &ExpressionResult, right_value: &ExpressionResult, register_number: u64 ); fn expression_function_return(&mut self, expr_result: &ExpressionResult); fn jump_function_return(&mut self, expr_result: &ExpressionResult); fn set_label(&mut self, label: &LabelName); fn expression_function_return_with_label( &mut self, expr_result: &ExpressionResult ); fn condition_expression( &mut self, left_result: &ExpressionResult, right_result: &ExpressionResult, condition: &Condition, register_number: u64 ); fn logic_condition( &mut self, left_condition_register: u64, right_condition_register: u64, logic_condition: &LogicCondition, register_number: u64 ); fn if_condition_expression( &mut self, expr_result: &ExpressionResult, label_if_begin: &LabelName, label_if_end: &LabelName ); fn if_condition_logic( &mut self, label_if_begin: &LabelName, label_if_end: &LabelName, register_number: u64 ); fn jump_to(&mut self, label: &LabelName);
}

Required Methods§

source

fn function_declaration(&mut self, fn_decl: &FunctionStatement)

source

fn constant(&mut self, const_decl: &Constant)

source

fn types(&mut self, type_decl: &StructTypes)

source

fn function_statement(&mut self, fn_decl: &FunctionStatement)

source

fn let_binding(&mut self, let_decl: &Value, expr_result: &ExpressionResult)

source

fn binding(&mut self, val: &Value, expr_result: &ExpressionResult)

source

fn call( &mut self, call: &Function, params: Vec<ExpressionResult>, register_number: u64 )

source

fn expression_value(&mut self, expression: &Value, register_number: u64)

source

fn expression_struct_value( &mut self, expression: &Value, index: u64, register_number: u64 )

source

fn expression_const(&mut self, expression: &Constant, register_number: u64)

source

fn expression_operation( &mut self, operation: &ExpressionOperations, left_value: &ExpressionResult, right_value: &ExpressionResult, register_number: u64 )

source

fn expression_function_return(&mut self, expr_result: &ExpressionResult)

source

fn jump_function_return(&mut self, expr_result: &ExpressionResult)

source

fn set_label(&mut self, label: &LabelName)

source

fn expression_function_return_with_label( &mut self, expr_result: &ExpressionResult )

source

fn condition_expression( &mut self, left_result: &ExpressionResult, right_result: &ExpressionResult, condition: &Condition, register_number: u64 )

source

fn logic_condition( &mut self, left_condition_register: u64, right_condition_register: u64, logic_condition: &LogicCondition, register_number: u64 )

source

fn if_condition_expression( &mut self, expr_result: &ExpressionResult, label_if_begin: &LabelName, label_if_end: &LabelName )

source

fn if_condition_logic( &mut self, label_if_begin: &LabelName, label_if_end: &LabelName, register_number: u64 )

source

fn jump_to(&mut self, label: &LabelName)

Implementors§