[][src]Struct moore_svlog_syntax::ast::Node

pub struct Node<'a, T> {
    pub id: NodeId,
    pub span: Span,
    pub parent: Cell<Option<&'a dyn AnyNode<'a>>>,
    pub order: Cell<usize>,
    pub data: T,
}

Common denominator across all AST nodes.

Fields

id: NodeId

Unique ID assigned to the node.

span: Span

Full span the node covers in the input.

parent: Cell<Option<&'a dyn AnyNode<'a>>>

Parent node.

order: Cell<usize>

Lexical order of the node.

data: T

Per-node data.

Implementations

impl<'a, T> Node<'a, T>[src]

pub fn new(span: Span, data: T) -> Self[src]

Create a new AST node.

impl<'a> Node<'a, TypeData<'a>>[src]

pub fn is_implicit(&self) -> bool[src]

Check if this is an implicit type.

impl<'a> Node<'a, TypeKindData<'a>>[src]

pub fn is_implicit(&self) -> bool[src]

Check if this is an implicit type.

impl<'a> Node<'a, StmtData<'a>>[src]

pub fn new_null(span: Span) -> Stmt<'a>[src]

impl<'a> Node<'a, InstNameData<'a>>[src]

pub fn inst(&self) -> &'a Inst<'a>[src]

Get the parent instantiation.

Trait Implementations

impl<'a, 'b: 'a, T> AcceptVisitor<'a> for Node<'b, T> where
    T: AcceptVisitor<'a>, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ClassDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ContAssignData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, DataTypeData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, DpiDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, EnumData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, EnumNameData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ExprData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ForeachIndexData>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateBlockData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateCaseData>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateForData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateIfData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenvarDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ImplicitDataTypeData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ImportDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ImportItemData>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, InstData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, InstNameData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, InterfaceData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ItemData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportNameData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportPortData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportSimplePortData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModuleData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, NetDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PackageData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PackedDimData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ParamDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ParamTypeDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ParamValueDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PathSegmentData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PatternFieldData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PortConnData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PortData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PortDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ProcedureData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, RootData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SourceFileData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, StmtData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, StructData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, StructMemberData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutineDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutinePortData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutinePrototypeData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, TypeData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, TypeKindData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, TypedefData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, UnpackedDimData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, VarDeclData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, VarDeclNameData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, VarDimData<'a>>> for Arena<'a> where
    'a: 'arena, 
[src]

impl<'a, T> AnyNode<'a> for Node<'a, T> where
    Self: BasicNode<'a> + Display + AnyNodeData,
    T: Debug + ForEachChild<'a> + Send + Sync
[src]

Automatically implement AnyNode for Node<T> if enough information is present.

impl<'a, T> AnyNodeData for Node<'a, T> where
    T: AnyNodeData
[src]

Automatically implement AnyNodeData for Node<T> if the inner node implements it.

impl<'a, T: Clone> Clone for Node<'a, T>[src]

impl<'a, T> Debug for Node<'a, T> where
    Self: BasicNode<'a>,
    T: Debug
[src]

Allow any node to be debug-formatted.

impl<'a, T> Deref for Node<'a, T>[src]

type Target = T

The resulting type after dereferencing.

impl<'a, T> DerefMut for Node<'a, T>[src]

impl<'a, T> Display for Node<'a, T> where
    T: AnyNodeData
[src]

Allow any node to be printed in diagnostics in a human-friendly form.

impl<'a, T> Eq for Node<'a, T>[src]

impl<'a, T> ForEachChild<'a> for Node<'a, T> where
    T: ForEachChild<'a>, 
[src]

impl<'a, T> ForEachNode<'a> for Node<'a, T> where
    Node<'a, T>: AnyNode<'a>, 
[src]

impl<'a> From<&'a Node<'a, ClassDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ContAssignData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, DataTypeData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, DpiDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, EnumData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, EnumNameData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ExprData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ForeachIndexData>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, GenerateBlockData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, GenerateCaseData>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, GenerateForData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, GenerateIfData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, GenvarDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ImplicitDataTypeData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ImportDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ImportItemData>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, InstData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, InstNameData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, InterfaceData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ItemData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ModportData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ModportNameData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ModportPortData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ModportSimplePortData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ModuleData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, NetDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PackageData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PackedDimData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ParamDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ParamTypeDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ParamValueDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PathSegmentData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PatternFieldData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PortConnData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PortData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, PortDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, ProcedureData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, RootData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, SourceFileData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, StmtData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, StructData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, StructMemberData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, SubroutineDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, SubroutinePortData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, SubroutinePrototypeData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, TypeData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, TypeKindData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, TypedefData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, UnpackedDimData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, VarDeclData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, VarDeclNameData<'a>>> for AllNode<'a>[src]

impl<'a> From<&'a Node<'a, VarDimData<'a>>> for AllNode<'a>[src]

impl<'a, T> Hash for Node<'a, T>[src]

impl<'a, T> PartialEq<Node<'a, T>> for Node<'a, T>[src]

impl<'a, T> Send for Node<'a, T> where
    T: Send
[src]

impl<'a, T> Sync for Node<'a, T> where
    T: Sync
[src]

Auto Trait Implementations

impl<'a, T> !RefUnwindSafe for Node<'a, T>

impl<'a, T> Unpin for Node<'a, T> where
    T: Unpin

impl<'a, T> !UnwindSafe for Node<'a, T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.