Attributes

Attributes are in the sequence of meta-data followed by modifiers. A parser shall disambiguate expressions into attributes as applicable.

Syntax

    Attributes :
      Attribute AttributeLineBreakRestriction
      AttributeCombination AttributeLineBreakRestriction
    AttributeCombination :
      Attribute AttributeLineBreakRestriction Attributes
    BlockAttributes :
      Metadata
      BlockAttributes Metadata
    AttributeLineBreakRestriction :
      no line break if the previous and offending tokens match an IdentifierName
    Attribute :
      Metadata
      UserAttribute
      ReservedNamespace
      final
      native
      static
      abstract
      override
    UserAttribute :
      Identifier
      UserAttribute . IdentifierName
    Metadata :
      MetadataPreRestriction [ MetadataForm ]]
      MetadataPreRestriction [ MetadataForm MetadataTrailingComma ]
    MetadataPreRestriction :
      if the Metadata is in the beginning of Attributes or if the Metadata appears before an IdentifierName in Attributes
    MetadataTrailingComma :
      comma , if the Metadata is the first occurrence in Attributes or BlockAttributes
    MetadataForm :
      MetadataName
      MetadataName ()
      MetadataName ( MetadataEntryList )
    MetadataName :
      Identifier
      Identifier :: IdentifierName
    MetadataEntryList :
      MetadataEntry
      MetadataEntryList , MetadataEntry
    MetadataEntry :
      MetadataName
      StringLiteral
      MetadataName = StringLiteral