The formal syntax for Kawa Scheme is written in an extended BNF.
Non–terminals are written like-this
. Case is insignificant
for non–terminal names.
Literal text (terminals) are written like this
.
All spaces in the grammar are for legibility.
The following extensions to BNF are used to make the
description more concise: thing
* or thing
...
both mean 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).