Struct moore_vhdl::score::ScoreContext
[−]
[src]
pub struct ScoreContext<'lazy, 'sb: 'lazy, 'ast: 'sb, 'ctx: 'sb> { pub sess: &'lazy Session, pub global: &'lazy GenericContext, pub sb: &'sb ScoreBoard<'ast, 'ctx>, pub lazy: &'lazy LazyPhaseTable<'sb, 'ast, 'ctx>, }
The VHDL context which holds information about the language scoreboard and the global scoreboard in its language-agnostic generic form. All useful operations are defined on this context rather than on the scoreboard directly, to decouple processing and ownership.
Fields
sess: &'lazy Session
The compiler session which carries the options and is used to emit diagnostics.
global: &'lazy GenericContext
The global context.
sb: &'sb ScoreBoard<'ast, 'ctx>
The VHDL scoreboard.
lazy: &'lazy LazyPhaseTable<'sb, 'ast, 'ctx>
The table of scheduled operations.
Methods
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn unpack_expr(&self, ast: &'ast Expr, scope_id: ScopeRef) -> Result<ExprRef>
[src]
Unpack an AST expression.
fn unpack_subtype_ind(
&self,
ast: &'ast SubtypeInd,
scope_id: ScopeRef
) -> Result<SubtypeIndRef>
[src]
&self,
ast: &'ast SubtypeInd,
scope_id: ScopeRef
) -> Result<SubtypeIndRef>
Unpack an AST subtype indication.
fn unpack_type_mark(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentTypeMarkRef>>
[src]
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentTypeMarkRef>>
Unpack a compound name as a type mark.
fn unpack_package_name(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentPkgRef>>
[src]
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentPkgRef>>
Unpack a compound name as a package name.
fn unpack_subprog_name(
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentSubprogRef>>
[src]
&self,
ast: LatentName<'ast>,
scope_id: ScopeRef
) -> Result<Spanned<LatentSubprogRef>>
Unpack a compound name as a subprogram name.
fn unpack_block_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInBlockRef>>
[src]
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInBlockRef>>
Unpack a slice of AST declarative items into a list of items admissible in the declarative part of a block.
See IEEE 1076-2008 section 3.3.2.
fn unpack_process_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInProcRef>>
[src]
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem],
container_name: &str
) -> Result<Vec<DeclInProcRef>>
Unpack a slice of AST declarative items into a list of items admissible in the declarative part of a process.
See IEEE 1076-2008 section 11.3.
fn unpack_subprog_decls(
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem]
) -> Result<Vec<DeclInSubprogRef>>
[src]
&self,
scope_id: ScopeRef,
decls: &'ast [DeclItem]
) -> Result<Vec<DeclInSubprogRef>>
Unpack a slice of AST declarative items into a list of items admissible in the declarative part of a subprogram.
See IEEE 1076-2008 section 4.3.
fn unpack_concurrent_stmts(
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<ConcStmtRef>>
[src]
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<ConcStmtRef>>
Unpack a slice of concurrent statements.
See IEEE 1076-2008 section 11.1.
fn unpack_sequential_stmts(
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<SeqStmtRef>>
[src]
&self,
scope_id: ScopeRef,
stmts: &'ast [Stmt],
container_name: &str
) -> Result<Vec<SeqStmtRef>>
Unpack a slice of sequential statements.
See IEEE 1076-2008 section 10.
fn unpack_signal_assign_target(
&self,
scope_id: ScopeRef,
target: &'ast AssignTarget
) -> Result<SigAssignTarget>
[src]
&self,
scope_id: ScopeRef,
target: &'ast AssignTarget
) -> Result<SigAssignTarget>
Unpack a signal assignment target.
See IEEE 1076-2008 section 10.5.2.1.
fn unpack_signal_assign_mode(
&self,
scope_id: ScopeRef,
mode: &'ast Spanned<AssignMode>,
tyctx: &TypeCtx<'ctx>
) -> Result<Spanned<SigAssignKind>>
[src]
&self,
scope_id: ScopeRef,
mode: &'ast Spanned<AssignMode>,
tyctx: &TypeCtx<'ctx>
) -> Result<Spanned<SigAssignKind>>
Unpack a signal assignment mode.
See IEEE 1076-2008 section 10.5.
fn unpack_delay_mechanism(
&self,
scope_id: ScopeRef,
dm: &'ast Option<Spanned<DelayMech>>
) -> Result<DelayMechanism>
[src]
&self,
scope_id: ScopeRef,
dm: &'ast Option<Spanned<DelayMech>>
) -> Result<DelayMechanism>
Unpack a delay mechanism.
See IEEE 1076-2008 section 10.5.2.1. If no mechanism is specified, inertial is assumed. Theoretically, the inertial transport mechanism is mapped to reject-inertial with the pulse rejection limit determined by the delay of the first element in the waveform. We don't have that information readily available at this time, so we simply map to inertial and leave the resolution of this to stages further down the pipeline.
fn unpack_cond_waveforms(
&self,
_scope_id: ScopeRef,
waves: &'ast [CondWave],
_tyctx: &TypeCtx<'ctx>
) -> Result<Cond<Waveform>>
[src]
&self,
_scope_id: ScopeRef,
waves: &'ast [CondWave],
_tyctx: &TypeCtx<'ctx>
) -> Result<Cond<Waveform>>
Unpack the the waves of a simple wave assignment.
fn unpack_waveform(
&self,
scope_id: ScopeRef,
wave: &'ast Wave,
tyctx: &TypeCtx<'ctx>
) -> Result<Waveform>
[src]
&self,
scope_id: ScopeRef,
wave: &'ast Wave,
tyctx: &TypeCtx<'ctx>
) -> Result<Waveform>
Unpack a single waveform.
See IEEE 1076-2008 section 10.5.2.
fn sanitize_paren_elems_as_exprs(
&self,
elems: &'ast [ParenElem],
context: &str
) -> Vec<&'ast Expr>
[src]
&self,
elems: &'ast [ParenElem],
context: &str
) -> Vec<&'ast Expr>
Ensure that parenthesis contain only a list of expressions.
This is useful since the parser generally expects parenthesized
expressions of the form (expr|expr|expr => expr, expr)
even in palces
where only (expr, expr)
would be applicable. This function takes the
parenthesized expression and ensures it is of the latter form.
fn lower_unary_op(&self, ast: Spanned<UnaryOp>) -> Result<Spanned<UnaryOp>>
[src]
Lower an AST unary operator to a HIR unary operator.
Emits an error if the operator is not a valid unary operator.
fn lower_binary_op(&self, ast: Spanned<BinaryOp>) -> Result<Spanned<BinaryOp>>
[src]
Lower an AST binary operator to a HIR binary operator.
Emits an error if the operator is not a valid binary operator.
fn lower_subprog_spec(
&self,
scope_id: ScopeRef,
ast: &'ast SubprogSpec
) -> Result<SubprogSpec>
[src]
&self,
scope_id: ScopeRef,
ast: &'ast SubprogSpec
) -> Result<SubprogSpec>
Lower an AST subprogram specification to HIR.
fn lower_subprog_name(
&self,
kind: SubprogKind,
name: &'ast PrimaryName
) -> Result<Spanned<ResolvableName>>
[src]
&self,
kind: SubprogKind,
name: &'ast PrimaryName
) -> Result<Spanned<ResolvableName>>
Lower the name of an AST subprogram to HIR and perform checks.
fn unpack_generics(
&self,
scope_id: ScopeRef,
decls: &'ast [IntfDecl],
into: &mut Vec<GenericRef>
) -> Result<()>
[src]
&self,
scope_id: ScopeRef,
decls: &'ast [IntfDecl],
into: &mut Vec<GenericRef>
) -> Result<()>
Unpack generics from a list of interface declarations.
See IEEE 1076-2008 section 6.5.6.1.
fn unpack_generic_map(
&self,
_scope_id: ScopeRef,
elems: &'ast ParenElems
) -> Result<Vec<()>>
[src]
&self,
_scope_id: ScopeRef,
elems: &'ast ParenElems
) -> Result<Vec<()>>
Unpack a generic map from a parenthesized list of elements.
See IEEE 1076-2008 section 6.5.7.2.
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make_ctx_items_scope(
&self,
id: CtxItemsRef,
parent: Option<ScopeRef>
) -> Result<CtxItemsRef>
[src]
&self,
id: CtxItemsRef,
parent: Option<ScopeRef>
) -> Result<CtxItemsRef>
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn emit(&self, diag: DiagBuilder2)
[src]
Emit a diagnostic message.
fn add_library(&self, name: Name, id: LibRef, lib: Vec<&'ast DesignUnit>)
[src]
Add a library of AST nodes. This function is called by the global scoreboard to add VHDL-specific AST nodes.
fn span<I>(&self, id: I) -> Option<Span> where
I: Into<NodeId>,
[src]
I: Into<NodeId>,
Obtain the span associated with a node ID.
fn set_span<I>(&self, id: I, span: Span) where
I: Into<NodeId>,
[src]
I: Into<NodeId>,
Associate a span with a node ID.
fn bug<I>(&self, id: I, msg: String) where
I: Into<NodeId>,
[src]
I: Into<NodeId>,
Report a compiler bug associate with a node.
fn ast<I>(&self, id: I) -> <AstTable<'ast> as NodeStorage<I>>::Node where
I: 'ast + Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
<AstTable<'ast> as NodeStorage<I>>::Node: Copy + Debug,
[src]
I: 'ast + Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
<AstTable<'ast> as NodeStorage<I>>::Node: Copy + Debug,
Obtain the AST node corresponding to a node reference. The AST node must
have previously been added to the ast_table
, otherwise this function
panics.
fn set_ast<I>(&self, id: I, ast: <AstTable<'ast> as NodeStorage<I>>::Node) where
I: Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
[src]
I: Copy + Debug,
AstTable<'ast>: NodeStorage<I>,
Store an AST node in the scoreboard.
fn hir<I>(&self, id: I) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: 'ctx + Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, <HirTable<'ctx> as NodeStorage<I>>::Node>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
[src]
I: 'ctx + Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, <HirTable<'ctx> as NodeStorage<I>>::Node>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
Obtain the HIR of a node, generating it if needed. Returns an error if the HIR cannot be generated.
fn set_hir<I>(&self, id: I, hir: <HirTable<'ctx> as NodeStorage<I>>::Node) where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
[src]
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
Store the HIR of a node.
fn existing_hir<I>(
&self,
id: I
) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
[src]
&self,
id: I
) -> Result<<HirTable<'ctx> as NodeStorage<I>>::Node> where
I: Copy + Debug,
HirTable<'ctx>: NodeStorage<I>,
<HirTable<'ctx> as NodeStorage<I>>::Node: Copy + Debug,
Obtain the HIR of a node. Returns an error if none exists.
fn lazy_hir<I, R>(&self, id: I) -> Result<&'ctx R> where
I: Copy + Debug,
R: Debug + 'ctx,
LazyHirTable<'sb, 'ast, 'ctx>: NodeStorage<I, Node = LazyNode<Box<Fn(&'a ScoreContext<'b, 'sb, 'ast, 'ctx>) -> Result<R> + 'sb>>>,
HirTable<'ctx>: NodeStorage<I, Node = &'ctx R>,
Arenas: Alloc<R>,
[src]
I: Copy + Debug,
R: Debug + 'ctx,
LazyHirTable<'sb, 'ast, 'ctx>: NodeStorage<I, Node = LazyNode<Box<Fn(&'a ScoreContext<'b, 'sb, 'ast, 'ctx>) -> Result<R> + 'sb>>>,
HirTable<'ctx>: NodeStorage<I, Node = &'ctx R>,
Arenas: Alloc<R>,
Determine the HIR for a node.
If the HIR is already in the scoreboard, returns it immediately. Otherwise the lazy HIR table is triggered which will compute the HIR via the corresponding closure.
fn defs(&self, id: ScopeRef) -> Result<&'ctx Defs>
[src]
fn archs(&self, id: LibRef) -> Result<&'ctx ArchTable>
[src]
fn lldecl<I>(&self, id: I) -> Result<ValueRef> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DeclValueRef>,
[src]
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DeclValueRef>,
fn lldef<I>(&self, id: I) -> Result<ValueRef> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DefValueRef>,
[src]
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, DefValueRef>,
fn ty<I>(&self, id: I) -> Result<&'ctx Ty> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
[src]
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
Determine the type of a node.
If called for the first time with the given id
, calculates the type by
calling self.make(id)
. Otherwise returns the existing information.
fn lazy_typeck<I>(&self, id: I) -> Result<()> where
I: Into<NodeId>,
[src]
I: Into<NodeId>,
Check the type of a node.
If the node already had its type checked, immediately returns the result of that operation. Otherwise runs the task scheduled in the lazy table.
fn lazy_typeval<I>(&self, id: I) -> Result<&'ctx Ty> where
I: Into<NodeId>,
[src]
I: Into<NodeId>,
Determine the type of a node.
If the node already had its type determined, immediately returns the result of that operation. Otherwise runs the task scheduled in the lazy table.
fn scope(&self, id: ScopeRef) -> Result<&'ctx Scope>
[src]
fn const_value<I>(&self, id: I) -> Result<&'ctx Const> where
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Const>,
[src]
I: 'ctx + Copy + Debug + Into<NodeId>,
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Const>,
fn type_context<I>(&self, id: I) -> Option<TypeCtx<'ctx>> where
I: Copy + Debug + Into<NodeId>,
[src]
I: Copy + Debug + Into<NodeId>,
Obtain the type context for an expression.
Returns None
if no context information is available.
fn type_context_resolved<I>(&self, id: I) -> Result<Option<&'ctx Ty>> where
I: Copy + Debug + Into<NodeId>,
[src]
I: Copy + Debug + Into<NodeId>,
Obtain the type indicated by the type context for an expression.
Returns None
if no context information is available.
fn set_type_context<I, T>(&self, id: I, tyctx: T) where
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
[src]
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
Store a type context for an expression.
Upon type checking, the expression is likely to consult this context to determine its type.
fn set_type_context_optional<I, T>(&self, id: Option<I>, tyctx: T) where
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
[src]
I: Copy + Debug + Into<NodeId>,
TypeCtx<'ctx>: From<T>,
Store a type context for an optional expression.
Upon type checking, the expression is likely to consult this context to
determine its type. Does nothing if id.is_none()
.
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn resolvable_from_primary_name(
&self,
primary: &PrimaryName
) -> Result<Spanned<ResolvableName>>
[src]
&self,
primary: &PrimaryName
) -> Result<Spanned<ResolvableName>>
Convert a primary name as it is present in the AST to a resolvable name that can be defined and resolved in a scope.
fn resolve_name(
&self,
name: Spanned<ResolvableName>,
scope_id: ScopeRef,
only_defs: bool,
allow_fail: bool
) -> Result<Vec<Spanned<Def>>>
[src]
&self,
name: Spanned<ResolvableName>,
scope_id: ScopeRef,
only_defs: bool,
allow_fail: bool
) -> Result<Vec<Spanned<Def>>>
Resolve a name within a scope. Traverses to the parent scopes if nothing matching the name is found.
fn resolve_compound_name<'a>(
&self,
name: &'a CompoundName,
scope_id: ScopeRef,
only_defs: bool
) -> Result<(ResolvableName, Vec<Spanned<Def>>, Span, &'a [NamePart])>
[src]
&self,
name: &'a CompoundName,
scope_id: ScopeRef,
only_defs: bool
) -> Result<(ResolvableName, Vec<Spanned<Def>>, Span, &'a [NamePart])>
Resolve a compound name within a scope.
fn builtin_boolean_type(&self) -> &'ctx Ty
[src]
Get the builtin type standard.boolean
.
fn builtin_time_type(&self) -> &'ctx Ty
[src]
Get the builtin type standard.time
.
fn builtin_string_type(&self) -> &'ctx Ty
[src]
Get the builtin type standard.string
.
fn builtin_severity_type(&self) -> &'ctx Ty
[src]
Get the builtin type standard.severity
.
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn default_value_for_type(&self, ty: &Ty) -> Result<&'ctx Const>
[src]
Calculate the implicit default value for a type.
fn intern_const<T>(&self, konst: T) -> &'ctx Const where
T: Into<Const>,
[src]
T: Into<Const>,
Internalize the given constant and return a reference to it whose lifetime is bound to the arenas associated with the scoreboard.
fn intern_ty<T>(&self, ty: T) -> &'ctx Ty where
T: Into<Ty>,
[src]
T: Into<Ty>,
Internalize the given type and return a reference to it whose lifetime is bound to the arenas associated with the scoreboard.
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn map_type(&self, ty: &Ty) -> Result<Type>
[src]
Map a VHDL type to the corresponding LLHD type.
fn map_const(&self, konst: &Const) -> Result<ValueRef>
[src]
Map a constant value to the LLHD counterpart.
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn deref_named_type<'a>(&self, ty: &'a Ty) -> Result<&'a Ty> where
'ctx: 'a,
[src]
'ctx: 'a,
Replace Ty::Named
by the actual type definition recursively.
impl<'lazy, 'sb, 'ast, 'ctx> ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make_range_ty(
&self,
dir: Dir,
lb_id: ExprRef,
rb_id: ExprRef,
span: Span
) -> Result<&'ctx Ty>
[src]
&self,
dir: Dir,
lb_id: ExprRef,
rb_id: ExprRef,
span: Span
) -> Result<&'ctx Ty>
Trait Implementations
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: EntityRef) -> Result<&'ctx Entity>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx IntfSignal> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: IntfSignalRef) -> Result<&'ctx IntfSignal>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Package> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgDeclRef) -> Result<&'ctx Package>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx PackageBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgBodyRef) -> Result<&'ctx PackageBody>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgInstRef, &'ctx PackageInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgInstRef) -> Result<&'ctx PackageInst>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx SubtypeDecl> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubtypeDeclRef) -> Result<&'ctx SubtypeDecl>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ExprRef, &'ctx Expr> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ExprRef) -> Result<&'ctx Expr>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeDeclRef, &'ctx TypeDecl> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: TypeDeclRef) -> Result<&'ctx TypeDecl>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Arch> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ArchRef) -> Result<&'ctx Arch>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx ProcessStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ProcessStmtRef) -> Result<&'ctx ProcessStmt>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SigAssignStmtRef, &'ctx SigAssignStmt> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SigAssignStmtRef) -> Result<&'ctx SigAssignStmt>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArrayTypeIndexRef, &'ctx Spanned<ArrayTypeIndex>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ArrayTypeIndexRef) -> Result<&'ctx Spanned<ArrayTypeIndex>>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Subprog> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogDeclRef) -> Result<&'ctx Subprog>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx SubprogBody> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogBodyRef) -> Result<&'ctx SubprogBody>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogInstRef, &'ctx SubprogInst> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogInstRef) -> Result<&'ctx SubprogInst>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LatentTypeMarkRef, Spanned<TypeMarkRef>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: LatentTypeMarkRef) -> Result<Spanned<TypeMarkRef>>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ScopeRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ScopeRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ScopeRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: CtxItemsRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<CtxItemsRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, _id: CtxItemsRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, _id: EntityRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ArchRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgDeclRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgBodyRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogDeclRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogBodyRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: LibRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<EntityRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: EntityRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ArchRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgDeclRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<PkgBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: PkgBodyRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogDeclRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogDeclRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubprogBodyRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubprogBodyRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx Defs> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ProcessStmtRef) -> Result<&'ctx Defs>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ProcessStmtRef, &'ctx Scope> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ProcessStmtRef) -> Result<&'ctx Scope>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ExprRef, &'ctx Const> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ExprRef) -> Result<&'ctx Const>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx Lib> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<LibRef, &'ctx ArchTable> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: LibRef) -> Result<&'ctx ArchTable>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, DeclValueRef> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, _: ArchRef) -> Result<DeclValueRef>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ArchRef, DefValueRef> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: ArchRef) -> Result<DefValueRef>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<DeclInBlockRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConstDeclRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<VarDeclRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SignalDeclRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<FileDeclRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<BlockStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ProcessStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcCallStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcAssertStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ConcSigAssignStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompInstStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<ForGenStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<IfGenStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CaseGenStmtRef, Entity> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx, 'a> Codegen<SeqStmtRef, InstBuilder<'a>> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn codegen(&self, id: SeqStmtRef, _ctx: &mut InstBuilder<'a>) -> Result<()>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<SubprogInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgBodyRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<PkgInstRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> Codegen<CompDeclRef, ()> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx, I> TypeckNode<'ctx, I> for ScoreContext<'lazy, 'sb, 'ast, 'ctx> where
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
[src]
ScoreContext<'lazy, 'sb, 'ast, 'ctx>: NodeMaker<I, &'ctx Ty>,
fn typeck_node(&self, id: I, expected: &'ctx Ty) -> Result<()>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfConstRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: IntfConstRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfVarRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: IntfVarRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfSignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: IntfSignalRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfFileRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: IntfFileRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeMarkRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: TypeMarkRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeIndRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubtypeIndRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: TypeDeclRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SubtypeDeclRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SubtypeDeclRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<ExprRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<TypedNodeRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: TypedNodeRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<SignalRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: SignalRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more
impl<'lazy, 'sb, 'ast, 'ctx> NodeMaker<IntfObjRef, &'ctx Ty> for ScoreContext<'lazy, 'sb, 'ast, 'ctx>
[src]
fn make(&self, id: IntfObjRef) -> Result<&'ctx Ty>
[src]
Creates the node with the given ID. Read more