Revised(5) Report on the Algorithmic Language Scheme - Formal syntax

## 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 insignificant; for example, #x1A and #X1a are equivalent. <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>.

- Lexical structure
- External representations (formal)
- Expressions (formal)
- Quasiquotations
- Transformers
- Programs and definitions