slang::ast::UninstantiatedDefSymbol class

Represents an instance of a definition (module / interface / program / checker) that is not actually instantiated in the design.

This is a placeholder in the AST to record this instance and capture its port expressions.

Base classes

class Symbol
Base class for all symbols (logical code constructs) such as modules, types, functions, variables, etc.

Public functions

auto getPortConnections() const -> std::span<const AssertionExpr*const>
Gets the self-determined expressions that are assigned to the ports in the instantiation.
auto getPortNames() const -> std::span<std::string_view const>
The names of the ports that were connected in the instance.
auto isChecker() const -> bool
Returns true if we've determined this must be a checker instance based on the syntax used to instantiate it.

Public variables

std::string_view definitionName
The name of the definition.
std::span<const Expression*const > paramExpressions
The self-determined expressions that are assigned to the parameters in the instantiation.

Function documentation

std::span<const AssertionExpr*const> slang::ast::UninstantiatedDefSymbol::getPortConnections() const

Gets the self-determined expressions that are assigned to the ports in the instantiation.

These aren't necessarily correctly typed since we can't know the destination type of each port.

std::span<std::string_view const> slang::ast::UninstantiatedDefSymbol::getPortNames() const

The names of the ports that were connected in the instance.

If the names are not known, because ordered connection syntax was used, the associated port name will be the empty string.

Variable documentation

std::span<const Expression*const > slang::ast::UninstantiatedDefSymbol::paramExpressions

The self-determined expressions that are assigned to the parameters in the instantiation.

These aren't necessarily correctly typed since we can't know the destination type of each parameter.