slang::ast::CallExpression class

Represents a subroutine call.

Base classes

class Expression
The base class for all expressions in SystemVerilog.

Public types

struct IteratorCallInfo
Extra information associated with an iterator method call.
struct RandomizeCallInfo
Extra information associated with a randomize method call.
struct SystemCallInfo
Additional context that applies to system subroutine calls.

Public functions

auto thisClass() const -> const Expression*
If this call is for a class method, returns the expression representing the class handle on which the method is being invoked.
auto arguments() const -> std::span<const Expression*const>
auto arguments() -> std::span<const Expression*>
auto isSystemCall() const -> bool
auto getSubroutineName() const -> std::string_view
auto getSubroutineKind() const -> SubroutineKind
auto hasOutputArgs() const -> bool

Public variables

Subroutine subroutine
The subroutine that is being called.

Function documentation

const Expression* slang::ast::CallExpression::thisClass() const

If this call is for a class method, returns the expression representing the class handle on which the method is being invoked.

Otherwise returns nullptr.

std::span<const Expression*const> slang::ast::CallExpression::arguments() const

Returns the arguments to the call.

std::span<const Expression*> slang::ast::CallExpression::arguments()

Returns the arguments to the call.

bool slang::ast::CallExpression::isSystemCall() const

Returns true if this is a call of a system subroutine.

std::string_view slang::ast::CallExpression::getSubroutineName() const

Returns the name of the subroutine being called.

SubroutineKind slang::ast::CallExpression::getSubroutineKind() const

Returns the kind of subroutine being called.

bool slang::ast::CallExpression::hasOutputArgs() const

Returns true if the called subroutine has output (or inout / ref) arguments.