\begin{grammar}
<code-definition> ::=
- "code" <identifier> ":" <item-name> @[<constraints>@]
+ "code" <reason> ":" <item-name> @[<constraints>@]
"{" <c-fragment> "}"
+\alt
+ "code" <reason> ":" <constraints> ";"
+
+<reason> ::= <identifier>
<constraints> ::= "[" <list>$[\mbox{@<constraint>}]$ "]"