 
 
 
 
 
 
 
  
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
 means zero or more  's in succession;
's in succession;  means one or
more
 means one or
more  's.
Items in
square brackets
's.
Items in
square brackets ![$[\ldots]$](img47.png) are optional.  Double 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.
are not part of Cool; they are used in the grammar as a meta-symbol to
show association of grammar symbols (e.g. 
 means
means  followed by one or more
 followed by one or more  pairs).
 pairs).