pub trait ScriptNativizer<SE>where
SE: ScriptExpression,{
Show 28 methods
// Required methods
fn nativize_struct_begin(
&mut self,
output: &mut dyn Write,
input: &ScriptStruct<'_>
) -> Result<(), Error>;
fn nativize_struct_end(
&mut self,
output: &mut dyn Write,
input: &ScriptStruct<'_>
) -> Result<(), Error>;
fn nativize_struct_field(
&mut self,
output: &mut dyn Write,
input: &ScriptStructField<'_>
) -> Result<(), Error>;
fn nativize_function_signature(
&mut self,
output: &mut dyn Write,
input: &ScriptFunctionSignature<'_>
) -> Result<(), Error>;
fn nativize_script_begin(
&mut self,
output: &mut dyn Write,
input: &[ScriptOperation<'_, SE>]
) -> Result<(), Error>;
fn nativize_script_end(
&mut self,
output: &mut dyn Write,
input: &[ScriptOperation<'_, SE>]
) -> Result<(), Error>;
fn nativize_operation_expression(
&mut self,
output: &mut dyn Write,
input: &SE
) -> Result<(), Error>;
fn nativize_operation_define_register(
&mut self,
output: &mut dyn Write,
query: &StructQuery<'_>
) -> Result<(), Error>;
fn nativize_operation_drop_register(
&mut self,
output: &mut dyn Write,
index: usize
) -> Result<(), Error>;
fn nativize_operation_push_from_register(
&mut self,
output: &mut dyn Write,
index: usize
) -> Result<(), Error>;
fn nativize_operation_pop_to_register(
&mut self,
output: &mut dyn Write,
index: usize
) -> Result<(), Error>;
fn nativize_operation_move_register(
&mut self,
output: &mut dyn Write,
from: usize,
to: usize
) -> Result<(), Error>;
fn nativize_operation_call_function(
&mut self,
output: &mut dyn Write,
query: &FunctionQuery<'_>
) -> Result<(), Error>;
fn nativize_operation_branch_scope(
&mut self,
output: &mut dyn Write,
scope_success: &[ScriptOperation<'_, SE>],
scope_failure: Option<&[ScriptOperation<'_, SE>]>
) -> Result<(), Error>;
fn nativize_operation_loop_scope(
&mut self,
output: &mut dyn Write,
scope: &[ScriptOperation<'_, SE>]
) -> Result<(), Error>;
fn nativize_operation_push_scope(
&mut self,
output: &mut dyn Write,
scope: &[ScriptOperation<'_, SE>]
) -> Result<(), Error>;
fn nativize_operation_pop_scope(
&mut self,
output: &mut dyn Write
) -> Result<(), Error>;
fn nativize_operation_continue_scope_conditionally(
&mut self,
output: &mut dyn Write
) -> Result<(), Error>;
// Provided methods
fn nativize_struct(
&mut self,
output: &mut dyn Write,
input: &ScriptStruct<'_>
) -> Result<(), Error> { ... }
fn nativize_function(
&mut self,
output: &mut dyn Write,
input: &ScriptFunction<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_function_begin(
&mut self,
output: &mut dyn Write,
input: &ScriptFunction<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_function_end(
&mut self,
output: &mut dyn Write,
input: &ScriptFunction<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_function_body_begin(
&mut self,
output: &mut dyn Write,
input: &ScriptFunction<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_function_body_end(
&mut self,
output: &mut dyn Write,
input: &ScriptFunction<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_script(
&mut self,
output: &mut dyn Write,
input: &[ScriptOperation<'_, SE>]
) -> Result<(), Error> { ... }
fn nativize_operation(
&mut self,
output: &mut dyn Write,
input: &ScriptOperation<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_operation_begin(
&mut self,
output: &mut dyn Write,
input: &ScriptOperation<'_, SE>
) -> Result<(), Error> { ... }
fn nativize_operation_end(
&mut self,
output: &mut dyn Write,
input: &ScriptOperation<'_, SE>
) -> Result<(), Error> { ... }
}