Next: , Up: Formal syntax and semantics   [Index]


7.1 Formal syntax

This section provides a formal syntax for Scheme written in an extended BNF.

All spaces in the grammar are for legibility. Case is not significant except in the definitions of ⟨letter⟩, ⟨character name⟩ and ⟨mnemonic escape⟩; for example, #x1A and #X1a are equivalent, but foo and Foo and #\space and #\Space are distinct. ⟨empty⟩ stands for the empty string.

The following extensions to BNF are used to make the description more concise: ⟨thing⟩* means zero or more occurrences of ⟨thing⟩; and ⟨thing⟩+ means at least one ⟨thing⟩.