pub struct CodeGenerator<'arena> { /* private fields */ }Implementations§
Source§impl<'arena> CodeGenerator<'arena>
impl<'arena> CodeGenerator<'arena>
pub fn new( arena: &'arena AstArena, type_arena: &'arena TypeArena, symbol_table: &'arena SymbolTable, constant_pool: &'arena mut ConstantPool, ) -> Self
pub fn set_current_class_internal_name(&mut self, internal_name: &str)
pub fn generate_method_body( &mut self, is_static: bool, params: &[ParamId], body_id: StmtId, ) -> RajacResult<(Vec<Instruction>, u16, u16)>
pub fn generate_constructor_body( &mut self, params: &[ParamId], body_id: Option<StmtId>, super_internal_name: &str, ) -> RajacResult<(Vec<Instruction>, u16, u16)>
pub fn generate_enum_constructor_body( &mut self, params: &[ParamId], body_id: Option<StmtId>, super_internal_name: &str, ) -> RajacResult<(Vec<Instruction>, u16, u16)>
pub fn generate_enum_clinit_body( &mut self, this_internal_name: &str, entries: &[EnumEntry], constructor_descriptors: &[String], ) -> RajacResult<(Vec<Instruction>, u16, u16)>
pub fn take_unsupported_features(&mut self) -> Vec<UnsupportedFeature>
pub fn emit_statement(&mut self, stmt_id: StmtId) -> RajacResult<()>
pub fn emit_expression(&mut self, expr_id: ExprId) -> RajacResult<()>
Auto Trait Implementations§
impl<'arena> Freeze for CodeGenerator<'arena>
impl<'arena> RefUnwindSafe for CodeGenerator<'arena>
impl<'arena> Send for CodeGenerator<'arena>
impl<'arena> Sync for CodeGenerator<'arena>
impl<'arena> Unpin for CodeGenerator<'arena>
impl<'arena> UnsafeUnpin for CodeGenerator<'arena>
impl<'arena> !UnwindSafe for CodeGenerator<'arena>
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