Trait ExprLocal

Source
pub(crate) trait ExprLocal {
Show 21 methods // Required methods fn alias(&self, ctx: &Context<'_>) -> Result<Option<ValueName>>; fn variable(&self, ctx: &Context<'_>) -> Result<ValueName>; fn lower(&self, ctx: &mut Context<'_>) -> Result<StatementList>; fn handle_call( &self, name: &Loc<NameID>, args: &[Argument<'_, Expression, TypeSpec>], unit_head: &Loc<UnitHead>, ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_clocked_memory_decl( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_clocked_memory_initial_decl( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_clocked_memory( &self, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, has_initial: bool, ) -> Result<StatementList>; fn handle_read_memory( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_trunc( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_sext( &self, path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_zext( &self, path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_unsafe_cast( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_concat( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_div_pow2( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_reduce_and( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_reduce_or( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_reduce_xor( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_comb_div( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_comb_mod( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_new_mut_wire( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>; fn handle_read_mut_wire( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>;
}

Required Methods§

Source

fn alias(&self, ctx: &Context<'_>) -> Result<Option<ValueName>>

Source

fn variable(&self, ctx: &Context<'_>) -> Result<ValueName>

Source

fn lower(&self, ctx: &mut Context<'_>) -> Result<StatementList>

Source

fn handle_call( &self, name: &Loc<NameID>, args: &[Argument<'_, Expression, TypeSpec>], unit_head: &Loc<UnitHead>, ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_clocked_memory_decl( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_clocked_memory_initial_decl( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_clocked_memory( &self, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, has_initial: bool, ) -> Result<StatementList>

Source

fn handle_read_memory( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_trunc( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_sext( &self, path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_zext( &self, path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_unsafe_cast( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_concat( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_div_pow2( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_reduce_and( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_reduce_or( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_reduce_xor( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_comb_div( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_comb_mod( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_new_mut_wire( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source

fn handle_read_mut_wire( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Implementations on Foreign Types§

Source§

impl ExprLocal for Loc<Expression>

Source§

fn alias(&self, ctx: &Context<'_>) -> Result<Option<ValueName>>

If the verilog code for this expression is just an alias for another variable that is returned here. This allows us to skip generating wires that we don’t really need

Source§

fn handle_clocked_memory_decl( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Result is the initial statement list to expand and return

Source§

fn handle_read_memory( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Result is the initial statement list to expand and return

Source§

fn variable(&self, ctx: &Context<'_>) -> Result<ValueName>

Source§

fn lower(&self, ctx: &mut Context<'_>) -> Result<StatementList>

Source§

fn handle_call( &self, name: &Loc<NameID>, args: &[Argument<'_, Expression, TypeSpec>], unit_head: &Loc<UnitHead>, ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_clocked_memory_initial_decl( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_clocked_memory( &self, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, has_initial: bool, ) -> Result<StatementList>

Source§

fn handle_trunc( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_sext( &self, path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_zext( &self, path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_unsafe_cast( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_concat( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_div_pow2( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_reduce_and( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_reduce_or( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_reduce_xor( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_comb_div( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_comb_mod( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_new_mut_wire( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Source§

fn handle_read_mut_wire( &self, _path: &Loc<NameID>, result: StatementList, args: &[Argument<'_, Expression, TypeSpec>], ctx: &mut Context<'_>, ) -> Result<StatementList>

Implementors§