ROUGH DRAFT

Attribute Arguments

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