Next: Formal semantics, Up: Formal syntax and semantics [Index]
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⟩.