"Label" attributes #
Allow creating attributes using
and retrieving the array of
Names of declarations which have been tagged with such an attribute.
These differ slightly from the built-in "tag attributes" which can be initialized with the syntax:
initialize someName : TagAttribute ← registerTagAttribute `tagName "description"
in that a "tag attribute" can only be put on a declaration at the moment it is declared, and can not be modified by scoping commands.
The "label attributes" constructed here support adding (or locally removing) the attribute either at the moment of declaration, or later.
Construct a new "label attribute", which does nothing except keep track of the names of the declarations with that attribute.
Users will generally use the
register_label_attr macro defined below.