Within an information module, each macro invocation appears as:
<descriptor> <macro> <clauses> ::= <value>
where <descriptor> corresponds to an ASN.1 identifier, <macro> names
the macro being invoked, and <clauses> and <value> depend on the
definition of the macro. (Note that this definition of a descriptor
applies to all macros defined in this memo and in [2].)
For the purposes of this specification, an ASN.1 identifier consists
of one or more letters or digits, and its initial character must be a
lower-case letter. (Note that hyphens are not allowed by this
specification, even though hyphen is allowed by [1]. This
restriction enables arithmetic expressions in languages which use the
minus sign to reference these descriptors without ambiguity.)
For all descriptors appearing in an information module, the
descriptor shall be unique and mnemonic, and shall not exceed 64
characters in length. (However, descriptors longer than 32
characters are not recommended.) This promotes a common language for
humans to use when discussing the information module and also
facilitates simple table mappings for user-interfaces.
The set of descriptors defined in all "standard" information modules
shall be unique.
Finally, by convention, if the descriptor refers to an object with a
SYNTAX clause value of either Counter32 or Counter64, then the
descriptor used for the object should denote plurality.