Struct moore_vhdl::add_ctx::AddContext
[−]
[src]
pub struct AddContext<'sbc, 'lazy: 'sbc, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb> { pub ctx: &'sbc ScoreContext<'lazy, 'sb, 'ast, 'ctx>, pub scope: ScopeRef, }
A context within which nodes can be added.
See the module documentation for details.
Fields
ctx: &'sbc ScoreContext<'lazy, 'sb, 'ast, 'ctx>
The outer context.
scope: ScopeRef
The scope to which items will be added.
Methods
impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn new(
ctx: &'sbc ScoreContext<'lazy, 'sb, 'ast, 'ctx>,
scope: ScopeRef
) -> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
ctx: &'sbc ScoreContext<'lazy, 'sb, 'ast, 'ctx>,
scope: ScopeRef
) -> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
Create a new context.
fn with_scope(
&self,
scope: ScopeRef
) -> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
&self,
scope: ScopeRef
) -> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
Create a new context with different scope.
fn make<I>(
&self,
span: Span
) -> (MakeContext<'sbc, 'lazy, 'sb, 'ast, 'ctx, I>, I, ScopeRef) where
I: NodeRef,
[src]
&self,
span: Span
) -> (MakeContext<'sbc, 'lazy, 'sb, 'ast, 'ctx, I>, I, ScopeRef) where
I: NodeRef,
Create a new context for describing a node.
fn unimp<T, R>(&self, node: &T) -> Result<R> where
T: HasSpan + HasDesc,
[src]
T: HasSpan + HasDesc,
Emit a diagnostic that a node is not implemented.
fn add_optional<T, F, R>(
&self,
node: &'ast Option<T>,
f: F
) -> Result<Option<R>> where
F: FnOnce(&Self, &'ast T) -> Result<R>,
[src]
&self,
node: &'ast Option<T>,
f: F
) -> Result<Option<R>> where
F: FnOnce(&Self, &'ast T) -> Result<R>,
Add an optional node.
This convenience function performs a few things at a time. First it
applies a closure f
to the value of an option, returning an error if
the closure returns one. Otherwise it wraps the result in an option and
returns it.
impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn add_subtype_ind(&self, ind: &'ast SubtypeInd) -> Result<SubtypeIndRef>
[src]
Add a subtype indication.
fn add_subtype_ind_hir(&self, hir: SubtypeInd) -> Result<SubtypeIndRef>
[src]
Add a subtype indication already lowered to HIR.
fn schedule_subtype_ind(&self, mk: &MakeContext<SubtypeIndRef>)
[src]
Schedule subtype indication tasks.
impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn add_expr(&self, expr: &'ast Expr) -> Result<ExprRef>
[src]
Add an expression.
fn add_expr_hir(&self, hir: Expr) -> Result<ExprRef>
[src]
Add an expression already lowered to HIR.
fn schedule_expr(&self, mk: &MakeContext<ExprRef>)
[src]
Schedule expression tasks.
fn add_choices<I>(&self, ast: Spanned<I>) -> Result<Spanned<Choices>> where
I: IntoIterator<Item = &'ast Expr>,
[src]
I: IntoIterator<Item = &'ast Expr>,
Add a list of choices.
fn add_discrete_range(&self, ast: &'ast Expr) -> Result<Spanned<DiscreteRange>>
[src]
Add a discrete range.
fn add_aggregate_hir(&self, hir: Aggregate) -> Result<AggregateRef>
[src]
Add an aggregate already lowered to HIR.
fn schedule_aggregate(&self, mk: &MakeContext<AggregateRef>)
[src]
Schedule aggregate tasks.
impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn add_seq_stmts<I, B>(&self, stmts: I, container_name: &str) -> Result<B> where
I: IntoIterator<Item = &'ast Stmt>,
B: FromIterator<SeqStmtRef>,
[src]
I: IntoIterator<Item = &'ast Stmt>,
B: FromIterator<SeqStmtRef>,
Add multiple sequential statements.
fn add_seq_stmt(
&self,
stmt: &'ast Stmt,
container_name: &str
) -> Result<SeqStmtRef>
[src]
&self,
stmt: &'ast Stmt,
container_name: &str
) -> Result<SeqStmtRef>
Add a sequential statement.
fn add_wait_stmt(&self, stmt: &'ast Stmt) -> Result<WaitStmtRef>
[src]
Add a wait statement.
fn add_assert_stmt(&self, stmt: &'ast Stmt) -> Result<AssertStmtRef>
[src]
Add an assert statement.
fn add_report_stmt(&self, stmt: &'ast Stmt) -> Result<ReportStmtRef>
[src]
Add a report statement.
fn add_sig_assign_stmt(&self, stmt: &'ast Stmt) -> Result<SigAssignStmtRef>
[src]
Add a sig_assign statement.
fn add_var_assign_stmt(&self, stmt: &'ast Stmt) -> Result<VarAssignStmtRef>
[src]
Add a var_assign statement.
fn add_call_stmt(&self, stmt: &'ast Stmt) -> Result<CallStmtRef>
[src]
Add a call statement.
fn add_if_stmt(&self, stmt: &'ast Stmt) -> Result<IfStmtRef>
[src]
Add an if statement.
fn add_case_stmt(&self, stmt: &'ast Stmt) -> Result<CaseStmtRef>
[src]
Add a case statement.
fn add_loop_stmt(&self, stmt: &'ast Stmt) -> Result<LoopStmtRef>
[src]
Add a while loop statement.
fn add_nexit_stmt(&self, stmt: &'ast Stmt) -> Result<NexitStmtRef>
[src]
Add a next statement.
fn add_return_stmt(&self, stmt: &'ast Stmt) -> Result<ReturnStmtRef>
[src]
Add a return statement.
fn add_null_stmt(&self, stmt: &'ast Stmt) -> Result<NullStmtRef>
[src]
Add a null statement.
fn add_sensitivity_list<I>(
&self,
ast: Spanned<I>
) -> Result<Spanned<SensitivityList>> where
I: IntoIterator<Item = &'ast CompoundName>,
[src]
&self,
ast: Spanned<I>
) -> Result<Spanned<SensitivityList>> where
I: IntoIterator<Item = &'ast CompoundName>,
Add a sensitivity list.
fn add_label(&self, ast: &'ast Spanned<Name>) -> Result<Spanned<StmtRef>>
[src]
Add a label.
Immediately resolves the label name and returns the corresponding statement.
fn add_target(
&self,
ast: &'ast Spanned<AssignTarget>
) -> Result<Spanned<Target>>
[src]
&self,
ast: &'ast Spanned<AssignTarget>
) -> Result<Spanned<Target>>
Add a target variable.
This is an target for a variable assignment.
impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn add_const_decl<I>(&self, decl: &'ast ObjDecl) -> Result<Vec<I>> where
I: From<ConstDeclRef>,
[src]
I: From<ConstDeclRef>,
Add a constant declaration.
fn add_signal_decl<I>(&self, decl: &'ast ObjDecl) -> Result<Vec<I>> where
I: From<SignalDeclRef>,
[src]
I: From<SignalDeclRef>,
Add a signal declaration.
fn add_var_decl<I>(&self, decl: &'ast ObjDecl) -> Result<Vec<I>> where
I: From<VarDeclRef>,
[src]
I: From<VarDeclRef>,
Add a variable declaration.
fn add_file_decl<I>(&self, decl: &'ast ObjDecl) -> Result<Vec<I>> where
I: From<FileDeclRef>,
[src]
I: From<FileDeclRef>,
Add a file declaration.
Trait Implementations
impl<'sbc, 'lazy: 'sbc, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb> Copy for AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'sbc, 'lazy: 'sbc, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb> Clone for AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn clone(&self) -> AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'sbc, 'lazy, 'sb, 'ast, 'ctx> DiagEmitter for AddContext<'sbc, 'lazy, 'sb, 'ast, 'ctx>
[src]
fn emit(&self, diag: DiagBuilder2)
[src]
Emit a diagnostic message.