Next: , Previous: , Up: scheme lex   [Index]


3.4.2 Notation

The formal syntax for Scheme is written in an extended BNF. Non–terminals are written as ?non-terminal. Case is insignificant for non–terminal names.

All spaces in the grammar are for legibility. ?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.

Some non-terminal names refer to the Unicode scalar values of the same name: ?character-tabulation (U+0009), ?linefeed (U+000A), ?carriage-return (U+000D), ?line-tabulation (U+000B), ?form-feed (U+000C), ?space (U+0020), ?next-line (U+0085), ?line-separator (U+2028), and ?paragraph-separator (U+2029).