slang::ast::PortSymbol class

Represents the public-facing side of a module / program / interface port.

The port symbol itself is not directly referenceable from within the instance; it can however connect directly to a symbol that is.

Base classes

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

Public functions

void setParent(const Scope& scope)
Sets the parent scope of this symbol.
void setParent(const Scope& scope, SymbolIndex index)
Sets the parent scope of this symbol.

Public variables

const Symbol* internalSymbol
An instance-internal symbol that this port connects to, if any.
SourceLocation externalLoc
The source location where the external name for the port is declared.
ArgumentDirection direction
The direction of data flowing across the port.
bool isNullPort
Set to true for null ports, i.e.
bool isAnsiPort
True if this port was declared using the ansi syntax, and false if it was declared using the non-ansi syntax.

Function documentation

void slang::ast::PortSymbol::setParent(const Scope& scope)

Sets the parent scope of this symbol.

Typically this is not called directly; add the symbol to the scope via the Scope::addMember method.

void slang::ast::PortSymbol::setParent(const Scope& scope, SymbolIndex index)

Sets the parent scope of this symbol.

Typically this is not called directly; add the symbol to the scope via the Scope::addMember method.

Variable documentation

const Symbol* slang::ast::PortSymbol::internalSymbol

An instance-internal symbol that this port connects to, if any.

Ports that do not connect directly to an internal symbol will have this set to nullptr.

bool slang::ast::PortSymbol::isNullPort

Set to true for null ports, i.e.

ports that don't connect to anything internal to the instance.