Vl-call
A call of a function or a system function, e.g., myencode(foo,
3) or $bits(foo_t).
This is a product type, introduced by deftagsum in support of vl-expr.
Fields
- name — vl-scopeexpr
- The function being called. Typically this is just the function
name, but in general it is possible to call functions from
other scopes and other places in the hierarchy, say
foo::top.bar.myencode(baz, 3), so to be sufficiently
general we represent this as a vl-scopeexpr.
- plainargs — vl-maybe-exprlist
- The unnamed arguments to the function, in order.
- namedargs — vl-call-namedargs
- The named arguments to the function.
- typearg — vl-maybe-datatype
- Most function calls just take expressions as arguments, in
which case typearg will be nil. However, certain
system functions can take a datatype argument. For instance,
you can write $bits(struct { ...}). In such cases, we put
that datatype here.
- systemp — booleanp
- Indicates that this is a system function like $bits or
$display instead of a user-defined function like
myencode.
- atts — vl-atts
- Any (* foo = bar, baz *) style attributes.
SystemVerilog allows named arguments and a combination of named
and ordered arguments. In general, a function call can have some
unnamed (plain) arguments followed by some named arguments.
Subtopics
- Make-vl-call
- Basic constructor macro for vl-call structures.
- Vl-call->plainargs
- Get the plainargs field from a vl-call.
- Vl-call->namedargs
- Get the namedargs field from a vl-call.
- Vl-call->typearg
- Get the typearg field from a vl-call.
- Vl-call->systemp
- Get the systemp field from a vl-call.
- Vl-call->name
- Get the name field from a vl-call.
- Vl-call->atts
- Get the atts field from a vl-call.
- Change-vl-call
- Modifying constructor for vl-call structures.