Geoff Chappell - Software Analyst
ROUGH DRAFT
An attribute argument consists of either or both an argument name and a list of argument values. The argument name is necessarily an identifier. The argument value list is a comma-separated list of values, each of which may be an identifier, string or constant.
If the argument is named, then the argument value list is optional and follows either after an equals sign else enclosed in parentheses. If the argument is not named, then the argument value list must be given between curly brackets unless the list contains just the one value.
attribute-argument:
argument-name ( argument-value-list )
argument-name = argument-value
argument-name
argument-value
{ argument-value-list }
argument-name:
identifier
argument-value-list:
argument-value
argument-value-list , argument-value
argument-value:
identifier
string
constant