Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 22 additions & 9 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<!-- This document was automatically generated on 2024-09-24T15:28:09.742564-07:00. -->
<!-- This document was automatically generated on 2025-08-07T17:26:40.629718-04:00. -->
<head>
<link rel='stylesheet' type='text/css' href='style.css' />
<script id='MathJax-script' src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'></script>
Expand Down Expand Up @@ -514,14 +514,27 @@ <h2>Table of Contents
<p>Note that since indents must follow a newline, we include the
newline as a part of the syntax definition of an indent.
</p>
<p>Non-negative integers are written as usual. Leading zeros do not
change the interpretation of these numeric literals.
</p><div class='syntax'><p><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Integer</span><span class='meta-syntax'>&#x27E9;</span> ::= <code>[0-9]<span class='meta-syntax'><sup>+</sup></span></code></p></div>
<p>Real numbers are written in usual floating-point number syntax.
</p><div class='syntax'><p><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real</span><span class='meta-syntax'>&#x27E9;</span> ::= <code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Integer</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'><sup>?</sup></span>.<span class='meta-syntax'><sup>?</sup></span><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Integer</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'>(</span><span class='meta-syntax'>(</span>e <span class='meta-syntax'> | </span> E<span class='meta-syntax'>)</span><span class='meta-syntax'>(</span>- <span class='meta-syntax'> | </span> +<span class='meta-syntax'>)</span><span class='meta-syntax'><sup>?</sup></span><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Integer</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'>)</span><span class='meta-syntax'><sup>?</sup></span></code></p></div>
<p>Complex numbers are an extension of this.
</p><div class='syntax'><table border='0' cellpadding='4'><tr><td style='text-align:right'><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Complex</span><span class='meta-syntax'>&#x27E9;</span> ::=</td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'><sup>?</sup></span> i
</code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code> pi</code></td></tr></table></div>
<p>Non-negative integers can be written in decimal, hexadecimal,
octal, or binary. Decimal integers are written as usual, hexadecimal
integers start with &#039;<tt>0x</tt>&#039;, octal integers start with &#039;<tt>0o</tt>&#039;, and
binary integers start with &#039;<tt>0b</tt>&#039; (all case-insensitive). These
integers may contain interior or trailing underscores, which are
ignored; in the case of non-decimal integers, the underscores must
come after the identifying prefix.
</p><div class='syntax'><table border='0' cellpadding='4'><tr><td style='text-align:right'><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Integer</span><span class='meta-syntax'>&#x27E9;</span> ::=</td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Hexadecimal Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Octal Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Binary Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr></table></div><div class='syntax'><p><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span> ::= <code>[0-9][0-9_]<span class='meta-syntax'><sup>*</sup></span></code></p></div><div class='syntax'><p><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Hexadecimal Integer</span><span class='meta-syntax'>&#x27E9;</span> ::= <code>0[Xx]_<span class='meta-syntax'><sup>*</sup></span>[0-9A-Fa-f][0-9A-Fa-f_]<span class='meta-syntax'><sup>*</sup></span></code></p></div><div class='syntax'><p><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Octal Integer</span><span class='meta-syntax'>&#x27E9;</span> ::= <code>0[Oo]_<span class='meta-syntax'><sup>*</sup></span>[0-7][0-7_]<span class='meta-syntax'><sup>*</sup></span></code></p></div><div class='syntax'><p><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Binary Integer</span><span class='meta-syntax'>&#x27E9;</span> ::= <code>0[Bb]_<span class='meta-syntax'><sup>*</sup></span>[01][01_]<span class='meta-syntax'><sup>*</sup></span></code></p></div>
<p>Non-integral real numbers are written in the usual decimal
floating-point number syntax (including an optional base-10 exponent
prefixed by case-insensitive &#039;<tt>e</tt>&#039;), or as the special literal
&#039;<tt>pi</tt>&#039;. As with integers, decimal floating-point numbers may
contain internal or trailing underscores.
</p><div class='syntax'><table border='0' cellpadding='4'><tr><td style='text-align:right'><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real</span><span class='meta-syntax'>&#x27E9;</span> ::=</td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Numeric Real</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code> pi</code></td></tr></table></div><div class='syntax'><table border='0' cellpadding='4'><tr><td style='text-align:right'><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Numeric Real</span><span class='meta-syntax'>&#x27E9;</span> ::=</td><td><code><span class='meta-syntax'>(</span><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'> | </span><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real With Decimal Point</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'>)</span><span class='meta-syntax'>(</span>[Ee]<span class='meta-syntax'>(</span>- <span class='meta-syntax'> | </span> +<span class='meta-syntax'>)</span><span class='meta-syntax'><sup>?</sup></span>_<span class='meta-syntax'><sup>*</sup></span><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'>)</span><span class='meta-syntax'><sup>?</sup></span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Hexadecimal Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Octal Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Binary Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr></table></div><div class='syntax'><table border='0' cellpadding='4'><tr><td style='text-align:right'><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real With Decimal Point</span><span class='meta-syntax'>&#x27E9;</span> ::=</td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span>.<span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'><sup>?</sup></span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code> .<span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Decimal Integer</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr></table></div>
<p>An imaginary number literal is an optional numeric real number
followed by the letter &#039;<tt>i</tt>&#039; (case-<em>sensitive</em>). A complex
number literal is either a real number literal or an imaginary number
literal. (Something that looks like a mixed real and imaginary
complex number, such as &#039;<tt>1+2i</tt>&#039;, is actually an arithmetic
expression and not a single literal.)
</p><div class='syntax'><table border='0' cellpadding='4'><tr><td style='text-align:right'><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Complex</span><span class='meta-syntax'>&#x27E9;</span> ::=</td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Real</span><span class='meta-syntax'>&#x27E9;</span></code></td></tr><tr><td style='text-align:right'><span class='meta-syntax'>|</span></td><td><code><span class='meta-syntax'>&#x27E8;</span><span class='meta-syntax-identifier'>Numeric Real</span><span class='meta-syntax'>&#x27E9;</span><span class='meta-syntax'><sup>?</sup></span>i</code></td></tr></table></div>
<p>Strings are characters bounded by double-quotation mark characters
&#039;<tt>&quot;</tt>&#039;. If a double-quotation mark should be used within the string,
it must be escaped with a backslash, like so: &#039;<tt>\&quot;</tt>&#039;. Similarly, if
Expand Down