aboutsummaryrefslogtreecommitdiff
path: root/docs/spec/literal.html
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-01-28 16:34:41 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-01-28 16:34:41 -0500
commit0c716e4c6b7c2c44bbfd02b6503cae66af7b7480 (patch)
treeac880382ea281825027b34768d6512d340596e56 /docs/spec/literal.html
parent4821f231a00dc93c42fb437359ea657c59c63053 (diff)
Separate syntax highlighting category for header/body characters ;:?
Diffstat (limited to 'docs/spec/literal.html')
-rw-r--r--docs/spec/literal.html6
1 files changed, 3 insertions, 3 deletions
diff --git a/docs/spec/literal.html b/docs/spec/literal.html
index c171dbf5..0dd938cd 100644
--- a/docs/spec/literal.html
+++ b/docs/spec/literal.html
@@ -8,9 +8,9 @@
<p>A <em>literal</em> is a single <a href="token.html">token</a> that indicates a fixed character, number, or array. While literals indicate values of a data type, <a href="primitive.html">primitives</a> indicate values of an operation type: function, 1-modifier, or 2-modifier.</p>
<p>Two types of literal deal with text. As the source code is considered to be a sequence of unicode code points (&quot;characters&quot;), and these code points are also used for BQN's character <a href="types.html">data type</a>, the representation of a text literal is very similar to its value. In a text literal, the newline character is always represented using the ASCII line feed character, code point 10. A <em>character literal</em> is enclosed with single quotes <code><span class='String'>'</span></code> and its value is identical to the single character between them. A <em>string literal</em> is enclosed in double quotes <code><span class='String'>&quot;</span></code>, and any double quotes between them must come in pairs, as a lone double quote marks the end of the literal. The value of a string literal is a rank-1 array whose elements are the characters in between the enclosing quotes, after replacing each pair of double quotes with only one such quote. The <em>null literal</em> is the token <code><span class='String'>@</span></code> and represents the null character, code point 0.</p>
<p>The format of a <em>numeric literal</em> is more complicated. From the <a href="token.html">tokenization rules</a>, a numeric literal consists of a numeric character (one of <code><span class='Number'>¯∞π.0123456789</span></code>) followed by any number of numeric or alphabetic characters. Some numeric literals are <em>valid</em> and indicate a number, while others are invalid and cause an error. The grammar for valid numbers is given below in a <a href="https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form">BNF</a> variant. The alphabetic character allowed is &quot;e&quot; or &quot;E&quot;, which functions as in scientific notation. Not included in this grammar are underscores—they can be placed anywhere in a number, including after the last non-underscore character, and are ignored entirely.</p>
-<pre><span class='Value'>number</span> <span class='Function'>=</span> <span class='String'>&quot;¯&quot;</span><span class='Value'>?</span> <span class='Paren'>(</span> <span class='String'>&quot;∞&quot;</span> <span class='Function'>|</span> <span class='Value'>mantissa</span> <span class='Paren'>(</span> <span class='Paren'>(</span> <span class='String'>&quot;e&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;E&quot;</span> <span class='Paren'>)</span> <span class='Value'>exponent</span> <span class='Paren'>)</span><span class='Value'>?</span> <span class='Paren'>)</span>
-<span class='Value'>exponent</span> <span class='Function'>=</span> <span class='String'>&quot;¯&quot;</span><span class='Value'>?</span> <span class='Value'>digit</span><span class='Function'>+</span>
-<span class='Value'>mantissa</span> <span class='Function'>=</span> <span class='String'>&quot;π&quot;</span> <span class='Function'>|</span> <span class='Value'>digit</span><span class='Function'>+</span> <span class='Paren'>(</span> <span class='String'>&quot;.&quot;</span> <span class='Value'>digit</span><span class='Function'>+</span> <span class='Paren'>)</span><span class='Value'>?</span>
+<pre><span class='Value'>number</span> <span class='Function'>=</span> <span class='String'>&quot;¯&quot;</span><span class='Head'>?</span> <span class='Paren'>(</span> <span class='String'>&quot;∞&quot;</span> <span class='Function'>|</span> <span class='Value'>mantissa</span> <span class='Paren'>(</span> <span class='Paren'>(</span> <span class='String'>&quot;e&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;E&quot;</span> <span class='Paren'>)</span> <span class='Value'>exponent</span> <span class='Paren'>)</span><span class='Head'>?</span> <span class='Paren'>)</span>
+<span class='Value'>exponent</span> <span class='Function'>=</span> <span class='String'>&quot;¯&quot;</span><span class='Head'>?</span> <span class='Value'>digit</span><span class='Function'>+</span>
+<span class='Value'>mantissa</span> <span class='Function'>=</span> <span class='String'>&quot;π&quot;</span> <span class='Function'>|</span> <span class='Value'>digit</span><span class='Function'>+</span> <span class='Paren'>(</span> <span class='String'>&quot;.&quot;</span> <span class='Value'>digit</span><span class='Function'>+</span> <span class='Paren'>)</span><span class='Head'>?</span>
<span class='Value'>digit</span> <span class='Function'>=</span> <span class='String'>&quot;0&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;1&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;2&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;3&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;4&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;5&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;6&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;7&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;8&quot;</span> <span class='Function'>|</span> <span class='String'>&quot;9&quot;</span>
</pre>
<p>The digits or arabic numerals correspond to the numbers from 0 to 9 in the conventional way (also, each corresponds to its code point value minus 48). A sequence of digits gives a natural number by evaluating it in base 10: the number is 0 for an empty sequence, and otherwise the last digit's numerical value plus ten times the number obtained from the remaining digits. The symbol <code><span class='Number'>∞</span></code> indicates infinity and <code><span class='Number'>π</span></code> indicates the ratio <a href="https://en.wikipedia.org/wiki/Pi_(mathematics)">pi</a> of a perfect circle's circumference to its diameter. The <a href="https://aplwiki.com/wiki/High_minus">high minus</a> symbol <code><span class='Number'>¯</span></code> indicates that the number containing it is to be negated. When an exponent is provided (with <code><span class='Value'>e</span></code> or <code><span class='Function'>E</span></code>), the corresponding mantissa is multiplied by ten to that power, giving the value <code><span class='Value'>mantissa</span><span class='Function'>×</span><span class='Number'>10</span><span class='Function'>⋆</span><span class='Value'>exponent</span></code>.</p>