r7rs-small-texinfo

Unnamed repository; edit this file 'description' to name the repository.
git clone https://kaka.farm/~git/r7rs-small-texinfo
Log | Files | Refs

commit f95320c7287e043c37fdc23b8643da2523d4226c
parent 801fb5c2ef7995480287cf22a8865614edccc96e
Author: Wolfgang Corcoran-Mathe <wcm@sigwinch.xyz>
Date:   Tue,  6 Feb 2024 02:27:55 -0500

Formal syntax: Texify, part 2.

Diffstat:
Mdoc/r7rs-small/formal-syntax.texinfo | 83+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
1 file changed, 52 insertions(+), 31 deletions(-)

diff --git a/doc/r7rs-small/formal-syntax.texinfo b/doc/r7rs-small/formal-syntax.texinfo @@ -62,7 +62,7 @@ All Scheme implementations must permit the escape sequence to appear in Scheme identifiers that are enclosed in vertical lines. If the character with the given Unicode scalar value is supported by the implementation, identifiers containing such a sequence are equivalent to identifiers -containing the corresponding character. +containing the corresponding character. @c TODO: Alignment and brackets for non-variable text. @format @@ -137,7 +137,7 @@ identifiers. | @code{@@} @svar{symbol element} @expansion{} any character other than @svar{vertical line} or @code{\} - | @svar{inline hex escape} | @svar{mnemonic escape} | @code{\|} + | @svar{inline hex escape} | @svar{mnemonic escape} | @code{|} @svar{boolean} @expansion{} @code{#t} | @code{#f} | @code{#true} | @code{#false} @@ -165,38 +165,59 @@ identifiers. @end format The following rules for @svar{num R}, @svar{complex R}, @svar{real R}, @svar{ureal R}, @svar{uinteger R}, and -@svar{prefix R} are implicitly replicated for R = 2, 8, 10, and 16. There are no rules for <decimal -2>, @svar{decimal 8}, and @svar{decimal 16}, which means that numbers containing decimal points +@svar{prefix R} are implicitly replicated for R = 2, 8, 10, and 16. There are no rules for @svar{decimal +2}, @svar{decimal 8}, and @svar{decimal 16}, which means that numbers containing decimal points or exponents are always in decimal radix. Although not shown below, all alphabetic characters used in the grammar of numbers can appear in either upper or lower case. -@svar{num R} ⟶@svar{prefix R} @svar{complex R} -@svar{complex R} ⟶@svar{real R} ∣@svar{real R} @ @svar{real R} -∣@svar{real R} + @svar{ureal R} i ∣@svar{real R} - @svar{ureal R} i -∣@svar{real R} + i ∣@svar{real R} - i ∣@svar{real R} @svar{infnan} i -∣+ @svar{ureal R} i ∣- @svar{ureal R} i -∣@svar{infnan} i ∣+ i ∣- i -@svar{real R} ⟶@svar{sign} @svar{ureal R} -∣@svar{infnan} -@svar{ureal R} ⟶@svar{uinteger R} -∣@svar{uinteger R} / @svar{uinteger R} -∣@svar{decimal R} -@svar{decimal 10} ⟶@svar{uinteger 10} @svar{suffix} -∣. @svar{digit 10}+ @svar{suffix} -∣@svar{digit 10}+ . @svar{digit 10}* @svar{suffix} -@svar{uinteger R} ⟶@svar{digit R}+ -@svar{prefix R} ⟶@svar{radix R} @svar{exactness} -∣@svar{exactness} @svar{radix R} -@svar{infnan} ⟶+inf.0 ∣-inf.0 ∣+nan.0 ∣-nan.0 -@svar{suffix} ⟶@svar{empty} -∣@svar{exponent marker} @svar{sign} @svar{digit 10}+ -@svar{exponent marker} ⟶e -@svar{sign} ⟶@svar{empty} ∣+ ∣- -@svar{exactness} ⟶@svar{empty} ∣#i∣#e@svar{radix 2} ⟶#b@svar{radix 8} ⟶#o@svar{radix 10} ⟶@svar{empty} ∣#d -@svar{radix 16} ⟶#x@svar{digit 2} ⟶0 ∣1 -@svar{digit 8} ⟶0 ∣1 ∣2 ∣3 ∣4 ∣5 ∣6 ∣7 -@svar{digit 10} ⟶@svar{digit} -@svar{digit 16} ⟶@svar{digit 10} ∣a ∣b ∣c ∣d ∣e ∣f +@format +@svar{num @var{R}} @expansion{} @svar{prefix @var{R}} + @svar{complex @var{R}} +@svar{complex @var{R}} @expansion{} @svar{real @var{R}} + | @svar{real @var{R}} @code{@@} @svar{real @var{R}} + | @svar{real @var{R}} @code{+} @svar{ureal @var{R}} @code{i} + | @svar{real @var{R}} @code{-} @svar{ureal @var{R}} @code{i} + | @svar{real @var{R}} @code{+ i} + | @svar{real @var{R}} @code{- i} + | @svar{real @var{R}} @svar{infnan} @code{i} + | @code{+} @svar{ureal @var{R}} @code{i} + | @code{-} @svar{ureal @var{R}} @code{i} + | @svar{infnan} @code{i} + | @code{+ i} + | @code{- i} +@svar{real @var{R}} @expansion{} @svar{sign} @svar{ureal @var{R}} + | @svar{infnan} +@svar{ureal @var{R}} @expansion{} @svar{uinteger @var{R}} + | @svar{uinteger @var{R}} @code{/} @svar{uinteger @var{R}} + | @svar{decimal @var{R}} +@svar{decimal 10} @expansion{} @svar{uinteger 10} @svar{suffix} + | @code{.} @atleastone{@svar{digit 10}} @svar{suffix} + | @atleastone{@svar{digit 10}} @code{.} @arbno{@svar{digit 10}} + @svar{suffix} +@svar{uinteger @var{R}} @expansion{} @atleastone{@svar{digit @var{R}}} +@svar{prefix @var{R}} @expansion{} @svar{radix @var{R}} @svar{exactness} + | @svar{exactness} @svar{radix @var{R}} +@svar{infnan} @expansion{} @code{+inf.0} | @code{-inf.0} + | @code{+nan.0} | @code{-nan.0} +@end format + +@format +@svar{suffix} @expansion{} @svar{empty} + | @svar{exponent marker} @svar{sign} @atleastone{@svar{digit 10}} +@svar{exponent marker} @expansion{} @code{e} +@svar{sign} @expansion{} @svar{empty} | @code{+} | @code{-} +@svar{exactness} @expansion{} @svar{empty} | @code{#i} | @code{#e} +@svar{radix 2} @expansion{} @code{#b} +@svar{radix 8} @expansion{} @code{#o} +@svar{radix 10} @expansion{} @svar{empty} | @code{#d} +@svar{radix 16} @expansion{} @code{#x} +@svar{digit 2} @expansion{} @code{0} | @code{1} +@svar{digit 8} @expansion{} @code{0} | @code{1} | @code{2} | @code{3} + | @code{4} | @code{5} | @code{6} | @code{7} +@svar{digit 10} @expansion{} @svar{digit} +@svar{digit 16} @expansion{} @svar{digit 10} | @code{a} | @code{b} + | @code{c} | @code{d} | @code{e} | @code{f} +@end format @node External representations formal @subsection External representations (formal)