Figure 1 provides a specification of Cool syntax.  The
specification is not in pure Backus-Naur Form (BNF); for convenience,
we also use some regular expression notation.  Specifically,
 means zero or more 
's in succession; 
 means one or
more 
's.
Items in
square brackets 
 are optional.  Double brackets 
are not part of Cool; they are used in the grammar as a meta-symbol to
show association of grammar symbols (e.g. 
means 
 followed by one or more 
 pairs).