5.6.13.1 Argument Lists
An argument list represents an ordered list of positional arguments and a set of named arguments that are used to parameterize an expression.
-
argument-list = [positional-or-named-argument-list] positional-or-named-argument-list = *(positional-argument ",") required-positional-argument positional-or-named-argument-list =/ *(positional-argument ",") named-argument-list positional-argument = [argument-expression] required-positional-argument = argument-expression named-argument-list = named-argument *("," named-argument) named-argument = unrestricted-name ":""=" argument-expression argument-expression = ["byval"] expression argument-expression =/ addressof-expression
Static semantics. An argument list is composed of positional arguments and named arguments.
If <positional-or-named-argument-list> is omitted, the argument list is said to represent an empty argument list and has no positional arguments and no named arguments.
Each <positional-argument> or <required-positional-argument> represents a specified positional argument. If a specified positional argument omits its <argument-expression>, the specified positional argument is said to be omitted. Each specified positional argument consists of a position based on its order in the argument list from left to right, as well as an expression from its <argument-expression>, if not omitted.
Each <named-argument > represents a named argument. Each named argument consists of a name value from its <unrestricted-name>, as well as an expression from its <argument-expression>.
The "byval" keyword flags a specific argument as being a ByVal argument. It is invalid for an argument list to contain a ByVal argument unless it is the argument list for an invocation of an external procedure.