diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-03 22:25:59 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-03 22:25:59 -0400 |
| commit | 22a33e01325ba2331a6b28dfc3d466c119d0834c (patch) | |
| tree | a53bb2a61cf97ed52e7ac1fefd494dbc7dc0636c | |
| parent | ceaa82c6d1564b2ca7965c4f29b51f45ad1c2933 (diff) | |
Add the null character literal @
| -rw-r--r-- | doc/syntax.md | 3 | ||||
| -rw-r--r-- | docs/bqn.js | 12 | ||||
| -rw-r--r-- | docs/doc/fromDyalog.html | 2 | ||||
| -rw-r--r-- | docs/doc/syntax.html | 5 | ||||
| -rw-r--r-- | docs/repl.js | 4 | ||||
| -rw-r--r-- | editors/vim/autoload/bqn.txt | 1 | ||||
| -rw-r--r-- | md.bqn | 2 | ||||
| -rw-r--r-- | spec/literal.md | 2 | ||||
| -rw-r--r-- | spec/token.md | 1 | ||||
| -rw-r--r-- | src/c.bqn | 12 | ||||
| -rw-r--r-- | src/fmt.bqn | bin | 2549 -> 2587 bytes |
11 files changed, 28 insertions, 16 deletions
diff --git a/doc/syntax.md b/doc/syntax.md index 9c34bc2a..c74c3b2f 100644 --- a/doc/syntax.md +++ b/doc/syntax.md @@ -12,6 +12,7 @@ Glyph(s) | Meaning ----------------|----------- `#` | [Comment](#comments) `'"` | [Character or string literal](#constants) +`@` | [Null character](#constants) `¯∞π` | [Used in numeric literals](#constants) `()` | Expression grouping `←` | [Define](#assignment) @@ -48,6 +49,8 @@ Strings are written with double quotes `""`, and characters with single quotes ` ≡¨ ⟨ "a" ⋄ 'a' ⟩ # A string is an array but a character isn't +The null character (code point 0) has a dedicated literal representation `@`. This character can be used to directly convert between characters and numeric code points, which among many other uses allows tricky characters to be entered by code point: for example, a non-breaking space is `@+160`. The character can also be entered as a character literal, but this will display differently in various editors and some tools may have trouble with a file directly containing a null, so it is best to use `@` instead. + ## Expressions *[More discussion](context.md)* diff --git a/docs/bqn.js b/docs/bqn.js index fc5baf61..b719a1f1 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -172,9 +172,9 @@ runtime.map((r,i) => { // Compiler let compile = run( - new Uint8Array([0,73,22,0,0,11,14,0,74,22,0,1,11,14,0,75,22,0,2,11,0,76,0,77,0,78,0,21,21,0,1,17,0,79,0,80,0,81,0,82,0,83,0,52,0,25,16,0,0,0,84,17,0,85,0,53,22,0,3,11,0,25,16,0,40,0,0,7,0,87,17,0,20,16,0,37,0,21,7,0,86,17,21,0,0,0,21,0,88,17,3,13,22,0,4,11,0,21,16,22,0,5,11,14,15,1,22,0,6,11,14,15,2,21,0,5,7,22,0,7,11,14,21,0,4,0,39,0,13,7,16,0,19,0,21,0,55,19,0,23,0,13,19,0,44,0,0,7,9,0,48,0,37,0,39,0,22,7,7,8,16,22,0,8,22,0,9,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,4,13,11,14,21,0,19,0,30,16,0,0,0,56,17,22,0,21,11,14,0,30,0,48,0,1,8,0,12,0,9,0,15,0,47,0,55,8,19,0,30,0,47,0,54,8,19,22,0,22,11,14,21,0,4,0,23,0,57,17,0,39,0,13,7,16,0,42,0,0,7,16,22,0,23,11,14,0,55,0,21,0,60,0,25,16,0,26,16,0,27,0,59,17,17,0,21,21,0,4,0,23,0,58,17,0,39,0,13,7,16,0,21,0,55,17,0,27,16,0,23,21,0,16,0,30,0,54,17,0,1,21,0,23,17,17,17,22,0,24,11,14,0,58,0,55,3,2,0,40,0,1,7,0,58,0,59,0,61,3,3,17,0,20,16,22,0,25,11,14,15,3,22,0,26,11,14,15,4,22,0,27,11,14,0,30,0,47,0,54,8,0,24,0,47,0,54,8,21,0,27,3,3,0,50,0,29,0,31,0,91,0,21,0,96,17,19,0,30,9,8,22,0,28,11,14,15,5,22,0,29,11,14,15,6,22,0,30,11,14,15,7,22,0,31,11,14,15,8,22,0,32,11,14,15,9,22,0,33,11,25,21,0,1,0,33,0,90,0,91,3,2,17,0,42,0,10,7,16,0,8,16,0,36,0,89,17,14,0,55,0,36,0,47,0,21,8,0,92,21,0,1,0,13,16,0,11,0,54,17,0,37,0,27,7,0,93,17,0,94,21,0,1,3,4,17,25,21,0,1,0,48,0,29,8,0,48,0,17,0,51,0,18,0,27,0,13,19,0,45,21,1,6,8,8,8,0,18,0,19,19,22,0,2,11,14,21,0,1,0,28,16,22,0,3,11,14,0,19,0,28,21,0,1,0,29,21,0,3,17,19,0,6,0,54,19,0,37,0,1,7,0,54,19,0,37,0,29,7,21,0,3,19,21,0,2,0,19,19,25,0,95,0,14,21,0,1,17,22,0,3,11,14,0,90,0,14,21,0,1,17,0,9,0,47,0,24,0,47,0,60,8,0,23,0,13,19,8,16,0,27,16,22,0,4,11,14,0,91,0,14,21,0,1,17,22,0,5,11,0,27,16,22,0,6,11,14,21,0,4,21,0,6,0,24,0,62,17,21,0,3,0,27,16,3,3,0,21,16,22,0,7,11,0,28,16,22,0,8,11,14,21,0,7,0,29,21,0,8,17,22,0,7,12,14,21,0,4,0,0,0,60,17,21,0,6,0,24,0,54,17,0,54,0,21,21,1,1,0,14,21,0,1,17,17,0,27,16,0,27,0,47,21,0,3,0,44,0,0,7,16,0,21,0,55,17,0,48,0,29,0,45,0,19,0,21,0,55,19,0,24,0,62,19,0,1,0,19,19,8,8,8,16,3,3,0,21,16,0,29,21,0,8,17,22,0,9,11,14,15,10,0,51,15,11,8,22,0,10,11,14,21,0,9,0,28,21,0,7,17,0,13,0,48,0,21,8,16,0,13,0,37,0,23,7,0,54,19,0,48,21,0,10,8,16,0,24,0,62,17,22,0,11,11,14,21,0,9,0,38,0,21,7,21,0,7,17,0,27,21,0,11,17,22,0,12,11,14,0,20,0,37,0,21,7,21,0,1,0,13,16,19,0,41,0,27,7,9,0,24,0,62,19,22,0,13,11,14,21,0,12,21,0,13,16,22,0,14,11,0,44,0,13,7,16,0,8,16,22,0,15,11,14,21,0,5,0,9,0,47,0,19,0,37,0,21,7,0,55,19,0,24,0,54,19,8,16,0,9,21,0,14,17,0,9,21,0,15,17,22,0,16,11,0,8,16,0,9,22,0,15,13,14,21,0,12,0,27,21,0,3,0,29,21,0,7,0,27,21,0,11,17,17,0,8,16,17,22,0,17,11,14,21,0,17,21,0,13,16,0,44,0,13,7,16,0,2,21,0,17,0,38,0,30,7,16,21,0,13,16,0,37,0,1,7,21,0,16,17,0,44,0,0,7,16,17,0,37,0,1,7,0,54,17,0,37,0,35,7,21,0,1,17,22,0,18,11,0,34,16,22,0,19,11,14,21,0,17,0,38,0,26,0,45,0,30,8,7,16,21,0,13,16,0,27,21,0,15,17,22,0,20,11,14,21,0,1,0,27,21,0,15,17,0,27,0,47,21,0,20,8,0,49,0,39,21,1,5,0,30,16,7,8,16,21,1,7,16,0,37,0,1,7,21,0,20,17,22,0,21,11,14,21,1,17,21,1,18,21,1,19,3,3,0,39,0,30,7,0,54,17,0,42,0,0,7,16,0,22,21,1,17,0,30,16,17,21,1,22,21,0,21,17,22,0,22,11,0,11,0,47,0,19,0,21,0,55,19,0,23,0,13,19,8,16,22,0,23,11,14,21,1,19,0,42,0,0,7,16,0,0,0,62,17,0,14,21,0,21,17,22,0,24,11,14,21,0,21,0,15,0,47,21,1,19,0,30,16,0,48,0,0,8,8,0,2,0,18,19,0,1,0,19,19,21,1,3,17,0,35,21,0,23,0,44,0,0,7,16,0,2,21,0,22,0,11,21,0,24,17,17,0,37,0,1,7,0,54,17,17,22,0,25,11,14,21,0,21,0,27,21,0,23,17,0,37,0,1,7,21,1,19,0,30,16,17,0,37,0,3,0,45,0,5,8,7,21,1,3,17,22,0,26,11,14,21,0,25,0,31,16,22,0,27,11,0,11,0,47,0,44,0,6,7,0,21,0,62,19,0,23,0,13,19,8,16,22,0,28,11,14,21,0,26,0,27,21,0,28,17,0,12,0,55,17,22,0,29,11,0,13,16,22,0,30,11,14,21,0,26,0,6,0,55,17,0,14,0,47,0,60,8,0,48,0,9,8,0,0,0,19,19,21,0,22,0,11,0,47,0,19,0,37,0,21,7,0,55,19,0,24,0,54,19,8,16,0,37,0,27,7,21,0,24,17,17,22,0,26,12,14,21,0,21,0,27,0,47,21,0,20,8,0,49,21,0,18,0,31,21,0,19,17,0,0,21,0,30,17,0,0,21,1,23,17,8,16,0,27,0,47,21,0,23,8,0,49,21,0,29,0,28,16,0,28,16,0,29,21,0,27,17,0,0,21,1,23,17,8,16,0,27,21,1,20,21,1,22,21,0,21,17,0,10,21,0,22,17,0,8,16,0,10,21,0,23,17,17,22,0,21,12,14,21,1,11,21,1,22,21,0,21,17,0,9,0,47,0,19,0,10,21,1,13,0,30,16,0,0,0,60,0,56,3,2,17,0,33,21,0,21,17,19,0,21,0,54,19,0,23,0,13,19,8,16,0,8,16,0,37,0,27,7,22,0,21,13,14,21,1,11,21,1,22,21,0,21,17,0,9,21,1,13,0,30,16,0,0,0,58,0,59,3,2,17,0,33,21,0,21,17,0,37,0,21,7,0,54,17,0,24,0,54,17,17,0,8,16,0,37,0,27,7,22,0,21,13,14,21,1,23,0,1,21,0,21,17,21,0,30,0,48,0,11,8,0,9,0,15,0,47,0,55,8,19,16,22,0,31,11,14,21,1,24,0,29,21,0,21,0,5,21,1,23,17,17,0,27,0,47,21,0,31,8,0,49,21,0,26,8,16,22,0,32,11,14,21,1,16,0,30,16,0,37,0,22,7,0,59,17,21,1,22,21,0,21,17,0,2,0,59,17,0,0,22,0,21,13,14,21,0,21,21,0,32,21,0,29,0,8,16,0,42,0,0,7,16,21,0,19,0,21,21,0,25,0,29,21,0,28,0,27,16,0,27,21,0,29,17,17,17,3,4,25,21,1,18,0,30,16,0,0,0,47,0,25,8,0,56,17,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,17,0,30,16,0,48,0,1,8,0,26,0,45,0,42,0,2,0,47,0,52,8,0,48,0,0,8,7,8,9,22,0,7,11,14,21,0,7,0,24,0,47,0,54,8,21,0,7,9,0,1,9,3,2,0,50,0,30,0,14,21,0,3,19,8,22,0,8,11,14,0,24,0,47,0,54,0,48,0,0,8,8,0,55,0,13,0,4,0,52,19,0,3,21,0,7,19,3,2,0,50,0,13,0,11,0,55,19,8,9,0,0,0,23,0,45,21,0,7,8,19,0,47,21,0,4,0,11,16,0,48,0,31,8,8,22,0,9,11,14,0,63,0,64,21,0,9,3,3,0,50,0,29,0,31,21,0,5,21,0,6,3,2,19,0,30,9,8,22,0,10,11,14,21,1,21,0,31,21,0,1,17,0,30,16,22,0,11,11,14,21,0,1,0,23,21,0,11,17,21,0,10,0,24,0,47,0,54,8,21,0,10,9,0,1,9,3,2,0,50,0,30,0,14,21,0,3,19,8,16,22,0,12,11,14,21,0,12,21,0,1,0,13,16,0,11,21,0,11,17,0,51,0,37,0,18,0,24,0,54,0,0,21,0,11,17,19,21,0,8,9,0,4,0,52,19,0,48,0,2,8,7,8,21,0,1,17,25,0,65,22,0,3,11,14,21,0,1,0,6,0,54,17,0,41,0,4,7,21,0,3,17,0,5,16,22,0,4,11,14,21,0,4,0,0,0,54,17,0,44,0,0,7,0,48,0,19,0,21,0,55,19,0,23,0,13,19,0,48,0,27,8,0,1,0,19,0,30,0,62,19,0,25,9,19,8,16,0,28,16,0,28,16,22,0,5,11,14,21,0,1,15,12,21,0,4,17,0,29,21,0,5,17,25,0,40,0,14,7,0,43,15,13,7,0,19,0,45,0,38,0,55,7,8,19,0,30,0,62,19,22,0,3,11,14,15,14,22,0,4,11,14,0,55,21,0,4,0,98,8,0,37,0,54,21,0,4,0,99,8,7,3,2,0,50,0,13,0,46,0,12,8,8,22,0,5,11,14,21,0,1,21,0,5,0,100,3,2,0,50,0,13,0,46,0,5,8,0,11,21,0,3,19,8,21,0,2,17,0,37,0,36,7,0,55,17,25,0,93,0,27,21,0,1,0,13,16,0,11,0,54,17,17,0,21,0,101,17,0,37,0,36,7,0,55,17,25,21,0,2,22,0,3,22,0,4,4,2,11,14,21,1,13,0,30,0,48,0,1,8,0,7,0,60,19,0,4,0,62,19,0,2,21,1,22,19,21,0,1,17,22,0,5,11,0,44,0,0,7,16,22,0,6,11,0,28,16,22,0,7,11,14,21,1,13,0,30,16,0,0,0,60,17,0,37,0,22,7,0,60,17,21,1,22,21,0,1,17,0,2,21,0,5,17,22,0,8,11,14,21,0,1,0,29,0,47,21,0,7,8,0,46,0,27,0,47,0,62,0,48,0,14,8,8,0,37,0,1,7,0,54,19,0,17,0,51,21,1,30,8,0,27,0,47,0,54,0,48,0,14,8,8,19,8,21,0,5,17,14,21,0,6,0,30,21,0,7,0,30,16,17,0,15,0,55,17,0,36,0,102,17,14,21,1,14,21,1,22,21,0,1,17,0,10,0,47,0,26,0,47,0,54,8,8,16,22,0,9,11,14,21,0,9,0,29,0,47,21,0,7,8,0,49,0,26,0,47,0,62,8,8,16,22,0,10,11,14,21,0,10,0,10,21,0,9,17,22,0,11,11,14,21,0,9,0,29,21,0,7,17,0,28,16,0,37,0,29,7,22,0,7,13,14,21,0,11,0,8,16,0,2,22,0,4,13,14,0,55,0,12,21,0,5,17,22,0,12,11,14,21,0,4,0,15,0,54,17,0,10,21,0,4,0,14,0,58,17,0,29,0,47,21,0,7,8,0,49,0,26,0,47,0,62,8,8,16,17,0,19,0,2,0,47,0,13,0,45,0,25,8,0,0,0,54,19,8,0,44,0,6,7,9,0,46,0,14,8,0,10,0,47,0,8,8,19,0,9,0,18,19,21,1,13,0,30,16,0,0,0,54,17,0,14,21,0,1,17,0,11,21,0,11,17,17,0,0,22,0,4,13,14,21,1,11,21,1,22,21,0,1,17,0,10,21,0,9,17,0,10,21,0,12,17,0,29,0,37,0,21,7,0,1,0,21,0,45,0,44,0,0,7,8,19,0,54,19,0,28,0,48,0,28,0,48,0,37,0,29,7,8,0,1,0,37,0,29,7,19,0,29,0,47,0,28,8,0,18,19,8,0,18,0,21,0,62,19,19,21,0,7,17,0,24,0,62,17,0,0,0,54,17,0,44,0,0,7,16,0,28,16,22,0,13,11,14,21,0,8,0,29,21,0,13,17,0,44,0,0,7,16,22,0,14,11,0,28,16,22,0,15,11,14,21,0,15,0,37,0,29,7,22,0,13,13,14,21,0,15,0,37,0,29,7,22,0,14,13,14,21,0,13,0,37,0,29,7,22,0,1,13,14,21,0,8,0,29,21,0,13,17,22,0,16,11,14,0,55,0,11,21,0,16,17,0,27,16,22,0,17,11,14,0,55,0,12,21,0,16,17,22,0,18,11,0,44,0,0,7,16,22,0,19,11,14,0,55,0,48,0,21,8,0,44,0,0,7,9,0,27,0,54,0,21,21,0,18,17,19,0,19,0,21,0,55,19,0,23,0,13,19,0,48,0,1,8,9,22,0,20,11,14,0,14,0,45,21,0,20,8,0,24,0,54,19,0,11,0,55,19,22,0,21,11,14,21,0,1,0,28,21,1,16,0,30,16,0,0,0,59,17,0,0,0,55,0,58,0,56,0,59,3,4,17,17,21,0,21,0,47,0,58,8,0,2,0,60,19,0,6,21,0,21,0,47,0,60,8,19,0,2,0,60,19,0,0,21,0,21,0,47,0,54,8,19,0,21,0,55,19,16,22,0,22,11,14,21,1,25,0,29,21,0,22,17,22,0,23,11,14,21,0,4,0,29,21,0,13,17,0,29,0,47,21,0,17,8,0,49,0,56,0,25,16,0,27,0,47,0,15,0,47,0,60,8,0,0,0,54,19,8,16,0,29,21,0,22,0,24,0,54,17,17,8,16,22,0,4,12,14,21,1,23,0,1,21,0,1,17,22,0,24,11,21,0,3,0,48,0,11,8,0,9,0,15,0,47,0,55,8,19,16,22,0,25,11,0,27,16,22,0,26,11,14,21,0,1,0,29,21,0,26,17,22,0,27,11,14,21,1,16,21,1,22,21,0,1,17,0,27,16,22,0,28,11,14,21,1,12,0,30,16,0,14,21,0,1,17,0,29,21,1,12,21,1,22,21,0,1,17,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,17,22,0,29,11,14,21,0,8,0,1,21,0,5,17,0,29,21,0,13,17,0,44,0,0,7,16,0,28,16,22,0,7,12,14,21,0,13,0,29,21,0,7,17,22,0,30,11,14,21,0,9,0,1,21,0,10,17,0,29,21,0,30,17,0,12,0,27,0,46,0,1,8,0,11,19,0,55,17,0,37,0,3,7,0,60,17,0,0,0,54,17,22,0,31,11,14,21,1,13,0,30,16,0,0,0,59,17,0,14,21,0,1,17,0,29,21,0,7,17,0,27,16,22,0,32,11,14,21,0,9,0,29,21,0,30,17,0,28,16,22,0,33,11,0,37,0,29,7,22,0,7,13,14,21,0,13,0,29,21,0,7,17,22,0,30,12,14,21,0,7,0,37,0,29,7,22,0,1,13,14,21,0,7,0,37,0,29,7,22,0,4,13,14,21,0,30,0,37,0,29,7,22,0,12,13,14,21,0,9,0,12,21,0,10,17,0,29,21,0,30,17,0,27,16,22,0,34,11,14,21,0,7,0,28,16,22,0,35,11,14,21,0,33,0,28,16,0,29,22,0,32,13,14,21,1,11,21,1,22,21,0,1,17,22,0,36,11,14,21,0,9,0,29,21,0,30,17,0,10,21,0,12,17,0,10,21,0,36,17,22,0,37,11,14,21,1,12,0,30,16,0,37,0,22,7,0,60,17,21,1,22,21,0,1,17,22,0,38,11,14,21,0,38,0,10,21,0,37,17,0,1,22,0,4,13,14,0,60,0,16,21,0,4,17,22,0,39,11,14,0,58,0,14,21,0,4,17,0,26,0,54,17,0,10,0,54,0,16,21,0,4,17,17,22,0,40,11,14,21,0,40,0,29,21,0,37,0,26,0,62,17,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,17,22,0,41,11,14,21,0,40,0,26,0,54,17,0,9,21,1,12,0,30,16,0,0,0,54,17,0,14,21,0,1,17,17,0,11,21,0,41,17,22,0,42,11,14,0,58,0,14,21,0,4,17,0,26,0,54,17,0,11,21,0,38,17,0,10,21,0,39,17,22,0,43,11,14,21,0,42,0,10,21,0,43,17,0,8,16,0,26,16,0,2,0,45,0,44,0,6,7,8,0,1,0,18,19,0,47,0,13,0,45,0,25,8,8,16,0,26,16,22,0,44,11,14,21,0,38,0,27,16,21,0,44,0,48,0,29,8,0,0,0,54,19,0,0,0,19,19,16,22,0,45,11,14,0,54,0,1,21,0,45,17,0,37,0,21,7,21,0,1,0,13,16,17,0,41,0,27,7,16,0,24,0,62,17,0,19,0,21,0,55,19,0,23,0,13,19,0,48,0,1,8,16,0,29,21,0,35,17,0,44,0,0,7,16,0,26,0,62,17,22,0,46,11,0,29,21,0,7,17,22,0,47,11,14,21,0,4,0,27,0,47,21,0,47,8,0,49,0,39,0,62,7,8,16,22,0,4,12,14,21,0,43,0,8,16,0,44,0,0,7,0,2,0,45,0,44,0,6,7,8,0,1,0,19,19,21,0,37,19,0,15,0,11,0,7,19,0,60,19,0,9,0,19,19,16,0,9,21,0,37,0,2,0,47,0,13,0,45,0,25,8,0,0,0,54,19,8,0,44,0,6,7,9,0,46,0,15,8,21,0,38,17,17,22,0,48,11,14,21,0,38,0,10,21,0,37,17,0,37,0,21,7,0,55,17,0,24,0,54,17,0,12,21,0,39,17,22,0,49,11,14,21,0,49,0,27,16,0,26,16,22,0,50,11,14,21,0,49,0,26,0,62,17,0,11,21,0,39,17,0,10,0,54,0,14,21,0,4,17,17,0,11,21,0,49,0,26,0,54,17,0,9,21,0,43,17,17,0,9,21,0,41,0,8,16,0,10,21,0,48,17,17,0,11,21,0,47,0,26,0,54,17,17,0,27,16,22,0,51,11,14,0,55,0,14,21,0,4,17,0,11,21,0,43,17,0,10,0,55,0,16,21,0,4,17,0,9,21,0,41,17,17,0,9,21,1,15,0,30,16,0,13,21,0,1,17,17,0,37,0,21,7,0,55,17,0,24,0,54,17,0,29,21,0,51,17,22,0,52,11,14,21,0,3,0,0,21,1,23,17,0,16,21,0,1,17,22,0,53,11,14,21,1,10,0,42,0,0,7,16,0,0,0,62,17,0,15,21,0,1,17,0,10,21,0,53,17,0,27,16,22,0,54,11,14,21,0,1,0,29,21,0,54,17,22,0,55,11,0,34,16,0,9,16,22,0,56,11,14,21,1,13,0,30,16,0,0,0,56,17,0,14,21,0,1,0,27,21,0,12,17,17,22,0,57,11,14,0,54,0,21,21,0,37,17,0,9,21,0,12,0,21,0,54,17,17,0,1,0,55,0,21,21,0,36,17,17,0,44,0,0,7,16,0,27,0,54,0,21,21,0,12,17,17,0,24,0,47,0,1,8,0,1,0,24,19,0,54,17,0,27,21,0,57,17,0,0,0,54,17,22,0,58,11,14,21,0,57,0,21,0,55,17,0,29,0,47,0,44,0,0,7,8,21,0,12,17,0,12,21,0,36,17,0,27,16,22,0,59,11,14,21,1,13,0,30,16,0,0,0,60,17,0,14,21,0,1,17,0,27,16,22,0,60,11,14,21,0,46,0,9,21,0,29,17,0,9,21,0,25,17,22,0,61,11,0,29,21,0,26,17,22,0,62,11,14,21,0,61,21,0,20,16,22,0,63,11,14,21,0,19,0,29,21,0,26,17,0,37,21,0,15,0,29,21,0,17,17,0,21,21,0,1,0,13,16,17,7,0,29,0,27,0,47,21,0,62,8,19,0,21,21,0,15,0,27,21,0,18,17,0,21,0,62,17,0,48,0,29,8,19,16,22,0,64,11,14,21,0,64,0,28,16,0,29,0,47,21,0,27,0,27,0,47,21,0,62,8,0,48,0,21,8,16,22,0,65,11,0,48,0,29,8,0,28,9,8,16,22,0,66,11,14,21,0,64,0,19,0,29,21,0,66,0,27,0,47,0,15,0,47,21,0,26,0,13,16,8,8,16,19,0,13,0,47,0,19,0,21,0,55,19,0,23,0,13,19,8,9,0,46,0,10,8,21,0,65,17,0,42,0,9,7,0,54,17,0,36,0,103,17,14,21,0,66,0,29,0,47,21,0,62,0,37,0,27,7,16,0,1,16,0,21,21,0,62,17,0,48,0,29,0,45,0,44,0,0,7,8,8,0,28,9,8,16,0,27,0,47,21,0,26,0,13,16,0,48,0,11,8,8,16,22,0,66,12,14,21,0,66,0,37,0,29,7,22,0,62,13,14,21,0,27,0,29,21,0,66,17,0,13,0,47,0,19,0,21,0,55,19,0,23,0,13,19,8,0,11,21,0,62,19,0,48,0,19,0,42,0,10,7,0,55,19,0,51,0,37,0,27,0,45,21,1,31,8,7,8,8,16,14,21,0,26,0,29,0,47,21,0,66,8,0,49,0,29,0,47,21,0,62,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,8,8,16,22,0,67,11,14,21,0,24,0,29,21,0,28,17,0,0,0,60,17,0,15,0,47,0,55,8,0,48,0,0,8,16,0,0,21,0,22,0,7,0,60,17,0,2,0,58,17,0,29,21,0,19,0,29,21,0,28,17,17,17,0,21,21,0,61,0,44,0,0,7,16,0,8,0,47,0,2,0,47,21,0,18,8,0,44,0,6,7,9,8,16,0,1,21,0,23,0,29,21,0,19,17,17,0,29,21,0,67,17,17,22,0,68,11,14,21,0,28,0,21,21,0,26,17,22,0,69,11,0,11,16,0,20,0,58,17,0,21,16,22,0,70,11,14,21,0,46,0,29,21,0,69,17,0,0,0,66,17,21,0,28,0,39,0,55,7,16,0,21,21,0,67,21,0,14,0,48,0,29,8,0,46,0,1,8,21,0,26,17,17,21,0,68,3,3,22,0,71,11,14,21,0,35,0,29,22,0,17,13,14,21,0,54,21,0,54,21,0,17,21,0,17,21,0,60,21,0,59,21,0,32,21,0,32,21,0,34,21,0,34,21,0,45,21,0,44,0,29,21,0,50,17,0,6,0,54,17,0,0,21,0,50,17,21,0,52,0,0,21,0,51,17,0,0,0,47,21,0,44,0,48,0,29,8,0,2,21,0,52,19,8,16,3,13,0,21,16,0,37,0,29,7,21,0,7,17,0,21,21,0,70,17,0,28,16,22,0,72,11,14,21,0,54,0,39,0,55,7,16,21,0,55,0,31,21,0,56,17,21,0,17,0,39,0,67,7,16,21,0,17,0,13,16,0,25,16,0,0,0,54,17,3,4,0,21,21,0,71,17,0,21,16,22,0,73,11,14,21,0,60,0,39,0,68,7,16,21,0,59,0,39,0,69,7,16,21,0,47,0,29,21,0,32,17,0,0,0,58,17,21,0,58,21,0,47,0,29,21,0,34,17,0,0,0,58,17,21,0,31,21,0,1,0,0,21,0,42,17,0,27,21,0,38,17,0,0,21,1,12,0,30,16,0,1,0,70,17,17,21,0,4,0,29,21,0,50,17,0,0,0,59,17,21,0,41,0,29,21,0,51,17,0,2,0,72,17,0,1,21,0,52,17,0,0,0,71,17,0,14,0,47,0,52,8,0,2,0,57,19,0,0,0,19,19,16,3,9,0,21,16,0,21,21,0,73,17,0,29,21,0,72,17,22,0,74,11,14,21,0,23,0,0,21,0,63,17,0,39,0,11,0,46,0,22,8,7,21,0,60,0,13,0,46,0,22,8,21,0,73,17,21,1,22,21,0,72,17,0,21,0,54,17,0,27,16,0,37,0,29,7,21,0,74,0,6,0,54,17,0,41,0,4,7,0,65,17,0,5,16,0,0,0,54,17,0,21,0,55,17,0,44,0,0,7,16,17,17,0,39,0,21,7,0,60,0,25,0,46,0,26,0,48,0,40,0,22,7,8,8,0,58,17,0,20,16,0,29,21,0,22,17,17,22,0,75,11,14,0,68,0,21,21,0,74,17,21,1,29,16,21,0,56,21,0,75,3,3,25,21,0,1,21,1,26,16,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,0,3,21,1,32,21,0,5,21,0,4,3,2,17,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,6,0,39,21,1,28,7,16,0,21,21,0,2,17,0,29,21,1,23,0,16,21,0,8,17,0,2,21,0,2,0,13,16,0,1,21,0,5,17,0,0,21,1,23,17,17,0,1,21,0,8,17,17,22,0,10,11,14,21,0,7,21,0,10,21,0,9,3,3,25,21,0,1,0,26,16,0,30,16,0,14,0,55,17,25,21,0,1,0,29,0,47,21,0,2,0,27,21,0,1,17,8,0,49,0,39,0,54,7,8,16,21,1,10,21,0,2,0,37,0,29,7,16,17,25,21,0,2,0,2,16,22,0,3,11,14,21,0,1,21,0,3,0,42,0,10,7,16,0,51,0,27,0,47,21,0,3,8,0,46,21,1,3,0,48,0,3,8,0,5,9,0,48,21,0,0,8,8,0,21,0,7,0,0,21,0,3,0,48,0,2,8,19,0,47,21,1,3,8,19,8,0,54,0,1,21,0,2,17,17,25,21,0,1,0,24,0,54,17,0,37,0,21,7,0,55,17,0,0,21,0,2,17,0,44,0,6,7,16,0,6,21,0,1,17,25,0,32,0,14,0,18,0,45,0,13,8,19,0,37,0,27,7,0,19,19,0,0,21,0,2,19,0,37,0,29,7,21,2,5,19,0,21,0,88,19,0,21,21,0,1,19,0,21,0,97,19,25]) - ,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[30],runtime[31],runtime[33],runtime[34],runtime[35],runtime[36],runtime[37],runtime[38],runtime[39],runtime[40],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[56],runtime[59],10,26,1,0,4,9,3,5,2,6,-1,3.14159265358979,Infinity,128,21,15,25,14,11,16,7,'\t','\n',str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!"),str("˙˜˘¨⌜⁼´˝`"),str("∘○⊸⟜⌾⊘◶⎉⚇⍟"),str("⋄,"),str("←↩→"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),'0',str("¯.π∞"),str("_"),str("aA"),str(" "),str("Unclosed quote"),'\'','"',str("Unknown character"),str("s"),str(": "),'#',str("\'"),str("Missing "),str("opening"),str("closing"),str("Malformed bracket nesting"),str("Undefined identifier"),str("Swapped open and closed brackets"),str("Multiple definitions")] - ,[[0,1,0,34],[0,0,461,3],[1,1,527,4],[0,0,620,33],[0,0,1894,13],[0,0,2216,6],[0,0,2322,6],[0,0,2435,3],[0,0,2465,76],[0,0,5749,11],[0,0,5872,3],[0,0,5887,3],[0,0,5927,4],[0,0,6013,3],[2,1,6048,3]] + new Uint8Array([0,52,0,1,0,74,17,22,0,0,11,14,0,53,0,0,21,0,0,17,22,0,1,11,14,0,75,22,0,2,11,0,76,0,77,0,78,0,21,21,0,1,17,0,79,0,80,0,81,0,82,0,83,0,84,0,53,0,25,16,0,0,0,85,17,0,86,0,54,22,0,3,11,0,25,16,0,40,0,0,7,0,88,17,0,20,16,0,37,0,21,7,0,87,17,0,55,0,0,21,0,0,17,0,21,0,89,17,3,14,22,0,4,11,0,21,16,22,0,5,11,14,15,1,22,0,6,11,14,15,2,21,0,5,7,22,0,7,11,14,21,0,4,0,39,0,13,7,16,0,19,0,21,0,57,19,0,23,0,13,19,0,44,0,0,7,9,0,48,0,37,0,39,0,22,7,7,8,16,22,0,8,22,0,9,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,22,0,21,4,14,11,14,21,0,20,0,30,16,0,0,0,58,17,22,0,22,11,14,0,30,0,48,0,1,8,0,12,0,9,0,15,0,47,0,57,8,19,0,30,0,47,0,56,8,19,22,0,23,11,14,21,0,4,0,23,0,55,17,0,39,0,13,7,16,0,42,0,0,7,16,22,0,24,11,14,0,57,0,21,0,61,0,25,16,0,26,16,0,27,0,60,17,17,0,21,21,0,4,0,23,0,59,17,0,39,0,13,7,16,0,21,0,57,17,0,27,16,0,23,21,0,16,0,30,0,56,17,0,1,21,0,24,17,17,17,22,0,25,11,14,0,59,0,57,3,2,0,40,0,1,7,0,59,0,60,0,62,3,3,17,0,20,16,22,0,26,11,14,15,3,22,0,27,11,14,15,4,22,0,28,11,14,21,0,0,0,30,0,47,0,56,8,0,24,0,47,0,56,8,21,0,28,3,4,0,50,0,29,0,31,21,0,17,0,30,16,0,91,0,92,3,3,19,0,30,9,8,22,0,29,11,14,15,5,22,0,30,11,14,15,6,22,0,31,11,14,15,7,22,0,32,11,14,15,8,22,0,33,11,14,15,9,22,0,34,11,25,21,0,1,0,33,0,91,0,92,3,2,17,0,42,0,10,7,16,0,8,16,0,36,0,90,17,14,0,57,0,36,0,47,0,21,8,0,93,21,0,1,0,13,16,0,11,0,56,17,0,37,0,27,7,0,94,17,0,95,21,0,1,3,4,17,25,21,0,1,0,48,0,29,8,0,48,0,17,0,51,0,18,0,27,0,13,19,0,45,21,1,6,8,8,8,0,18,0,19,19,22,0,2,11,14,21,0,1,0,28,16,22,0,3,11,14,0,19,0,28,21,0,1,0,29,21,0,3,17,19,0,6,0,56,19,0,37,0,1,7,0,56,19,0,37,0,29,7,21,0,3,19,21,0,2,0,19,19,25,0,96,0,14,21,0,1,17,22,0,3,11,14,0,91,0,14,21,0,1,17,0,9,0,47,0,24,0,47,0,61,8,0,23,0,13,19,8,16,0,27,16,22,0,4,11,14,0,92,0,14,21,0,1,17,22,0,5,11,0,27,16,22,0,6,11,14,21,0,4,21,0,6,0,24,0,63,17,21,0,3,0,27,16,3,3,0,21,16,22,0,7,11,0,28,16,22,0,8,11,14,21,0,7,0,29,21,0,8,17,22,0,7,12,14,21,0,4,0,0,0,61,17,21,0,6,0,24,0,56,17,0,56,0,21,21,1,1,0,14,21,0,1,17,17,0,27,16,0,27,0,47,21,0,3,0,44,0,0,7,16,0,21,0,57,17,0,48,0,29,0,45,0,19,0,21,0,57,19,0,24,0,63,19,0,1,0,19,19,8,8,8,16,3,3,0,21,16,0,29,21,0,8,17,22,0,9,11,14,15,10,0,51,15,11,8,22,0,10,11,14,21,0,9,0,28,21,0,7,17,0,13,0,48,0,21,8,16,0,13,0,37,0,23,7,0,56,19,0,48,21,0,10,8,16,0,24,0,63,17,22,0,11,11,14,21,0,9,0,38,0,21,7,21,0,7,17,0,27,21,0,11,17,22,0,12,11,14,0,20,0,37,0,21,7,21,0,1,0,13,16,19,0,41,0,27,7,9,0,24,0,63,19,22,0,13,11,14,21,0,12,21,0,13,16,22,0,14,11,0,44,0,13,7,16,0,8,16,22,0,15,11,14,21,0,5,0,9,0,47,0,19,0,37,0,21,7,0,57,19,0,24,0,56,19,8,16,0,9,21,0,14,17,0,9,21,0,15,17,22,0,16,11,0,8,16,0,9,22,0,15,13,14,21,0,12,0,27,21,0,3,0,29,21,0,7,0,27,21,0,11,17,17,0,8,16,17,22,0,17,11,14,21,0,17,21,0,13,16,0,44,0,13,7,16,0,2,21,0,17,0,38,0,30,7,16,21,0,13,16,0,37,0,1,7,21,0,16,17,0,44,0,0,7,16,17,0,37,0,1,7,0,56,17,0,37,0,35,7,21,0,1,17,22,0,18,11,0,34,16,22,0,19,11,14,21,0,17,0,38,0,26,0,45,0,30,8,7,16,21,0,13,16,0,27,21,0,15,17,22,0,20,11,14,21,0,1,0,27,21,0,15,17,0,27,0,47,21,0,20,8,0,49,0,39,21,1,5,0,30,16,7,8,16,21,1,7,16,0,37,0,1,7,21,0,20,17,22,0,21,11,14,21,1,18,21,1,19,21,1,20,3,3,0,39,0,30,7,0,56,17,0,42,0,0,7,16,0,22,21,1,18,0,30,16,17,21,1,23,21,0,21,17,22,0,22,11,0,11,0,47,0,19,0,21,0,57,19,0,23,0,13,19,8,16,22,0,23,11,14,21,1,17,0,30,16,0,14,21,0,21,17,22,0,24,11,14,21,0,24,0,0,22,0,22,13,14,21,0,24,0,0,22,0,23,13,14,21,1,20,0,42,0,0,7,16,0,0,0,63,17,0,14,21,0,21,17,22,0,25,11,14,21,0,21,0,15,0,47,21,1,20,0,30,16,0,48,0,0,8,8,0,2,0,18,19,0,1,0,19,19,21,1,3,17,0,35,21,0,23,0,44,0,0,7,16,0,2,21,0,22,0,11,21,0,25,17,17,0,37,0,1,7,0,56,17,17,22,0,26,11,14,21,0,21,0,27,21,0,23,17,0,37,0,1,7,21,1,20,0,30,16,17,0,37,0,3,0,45,0,5,8,7,21,1,3,17,22,0,27,11,14,21,0,26,0,31,16,22,0,28,11,0,11,0,47,0,44,0,6,7,0,21,0,63,19,0,23,0,13,19,8,16,22,0,29,11,14,21,0,27,0,27,21,0,29,17,0,12,0,57,17,22,0,30,11,0,13,16,22,0,31,11,14,21,0,27,0,6,0,57,17,0,14,0,47,0,61,8,0,48,0,9,8,0,0,0,19,19,21,0,22,0,11,0,47,0,19,0,37,0,21,7,0,57,19,0,24,0,56,19,8,16,0,37,0,27,7,21,0,25,17,17,22,0,27,12,14,21,0,21,0,27,0,47,21,0,20,8,0,49,21,0,18,0,31,21,0,19,17,0,0,21,0,31,17,0,0,21,1,24,17,8,16,0,27,0,47,21,0,23,8,0,49,21,0,30,0,28,16,0,28,16,0,29,21,0,28,17,0,0,21,1,24,17,8,16,0,27,21,1,21,21,1,23,21,0,21,17,0,10,21,0,22,17,0,8,16,0,10,21,0,23,17,17,22,0,21,12,14,21,1,11,21,1,23,21,0,21,17,0,9,0,47,0,19,0,10,21,1,13,0,30,16,0,0,0,61,0,58,3,2,17,0,33,21,0,21,17,19,0,21,0,56,19,0,23,0,13,19,8,16,0,8,16,0,37,0,27,7,22,0,21,13,14,21,1,11,21,1,23,21,0,21,17,0,9,21,1,13,0,30,16,0,0,0,59,0,60,3,2,17,0,33,21,0,21,17,0,37,0,21,7,0,56,17,0,24,0,56,17,17,0,8,16,0,37,0,27,7,22,0,21,13,14,21,1,24,0,1,21,0,21,17,21,0,31,0,48,0,11,8,0,9,0,15,0,47,0,57,8,19,16,22,0,32,11,14,21,1,25,0,29,21,0,21,0,5,21,1,24,17,17,0,27,0,47,21,0,32,8,0,49,21,0,27,8,16,22,0,33,11,14,21,1,16,0,30,16,0,37,0,22,7,0,60,17,21,1,23,21,0,21,17,0,2,0,60,17,0,0,22,0,21,13,14,21,0,21,21,0,33,21,0,30,0,8,16,0,42,0,0,7,16,21,0,19,0,21,21,0,26,0,29,21,0,29,0,27,16,0,27,21,0,30,17,17,17,3,4,25,21,1,19,0,30,16,0,0,0,47,0,25,8,0,58,17,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,1,18,0,30,16,0,48,0,1,8,0,26,0,45,0,42,0,2,0,47,0,53,8,0,48,0,0,8,7,8,9,22,0,7,11,14,21,0,7,0,24,0,47,0,56,8,21,0,7,9,0,1,9,3,2,0,50,0,30,0,14,21,0,3,19,8,22,0,8,11,14,0,24,0,47,0,56,0,48,0,0,8,8,0,57,0,13,0,4,0,53,19,0,3,21,0,7,19,3,2,0,50,0,13,0,11,0,57,19,8,9,0,0,0,23,0,45,21,0,7,8,19,0,47,21,0,4,0,11,16,0,48,0,31,8,8,22,0,9,11,14,0,64,0,65,21,0,9,3,3,0,50,0,29,0,31,21,0,5,21,0,6,3,2,19,0,30,9,8,22,0,10,11,14,21,1,22,0,31,21,0,1,17,0,30,16,22,0,11,11,14,21,0,1,0,23,21,0,11,17,21,0,10,0,24,0,47,0,56,8,21,0,10,9,0,1,9,3,2,0,50,0,30,0,14,21,0,3,19,8,16,22,0,12,11,14,21,0,12,21,0,1,0,13,16,0,11,21,0,11,17,0,51,0,37,0,18,0,24,0,56,0,0,21,0,11,17,19,21,0,8,9,0,4,0,53,19,0,48,0,2,8,7,8,21,0,1,17,25,0,66,22,0,3,11,14,21,0,1,0,6,0,56,17,0,41,0,4,7,21,0,3,17,0,5,16,22,0,4,11,14,21,0,4,0,0,0,56,17,0,44,0,0,7,0,48,0,19,0,21,0,57,19,0,23,0,13,19,0,48,0,27,8,0,1,0,19,0,30,0,63,19,0,25,9,19,8,16,0,28,16,0,28,16,22,0,5,11,14,21,0,1,15,12,21,0,4,17,0,29,21,0,5,17,25,0,40,0,14,7,0,43,15,13,7,0,19,0,45,0,38,0,57,7,8,19,0,30,0,63,19,22,0,3,11,14,15,14,22,0,4,11,14,0,57,21,0,4,0,98,8,0,37,0,56,21,0,4,0,99,8,7,3,2,0,50,0,13,0,46,0,12,8,8,22,0,5,11,14,21,0,1,21,0,5,0,100,3,2,0,50,0,13,0,46,0,5,8,0,11,21,0,3,19,8,21,0,2,17,0,37,0,36,7,0,57,17,25,0,94,0,27,21,0,1,0,13,16,0,11,0,56,17,17,0,21,0,101,17,0,37,0,36,7,0,57,17,25,21,0,2,22,0,3,22,0,4,4,2,11,14,21,1,13,0,30,0,48,0,1,8,0,7,0,61,19,0,4,0,63,19,0,2,21,1,23,19,21,0,1,17,22,0,5,11,0,44,0,0,7,16,22,0,6,11,0,28,16,22,0,7,11,14,21,1,13,0,30,16,0,0,0,61,17,0,37,0,22,7,0,61,17,21,1,23,21,0,1,17,0,2,21,0,5,17,22,0,8,11,14,21,0,1,0,29,0,47,21,0,7,8,0,46,0,27,0,47,0,63,0,48,0,14,8,8,0,37,0,1,7,0,56,19,0,17,0,51,21,1,31,8,0,27,0,47,0,56,0,48,0,14,8,8,19,8,21,0,5,17,14,21,0,6,0,30,21,0,7,0,30,16,17,0,15,0,57,17,0,36,0,102,17,14,21,1,14,21,1,23,21,0,1,17,0,10,0,47,0,26,0,47,0,56,8,8,16,22,0,9,11,14,21,0,9,0,29,0,47,21,0,7,8,0,49,0,26,0,47,0,63,8,8,16,22,0,10,11,14,21,0,10,0,10,21,0,9,17,22,0,11,11,14,21,0,9,0,29,21,0,7,17,0,28,16,0,37,0,29,7,22,0,7,13,14,21,0,11,0,8,16,0,2,22,0,4,13,14,0,57,0,12,21,0,5,17,22,0,12,11,14,21,0,4,0,15,0,56,17,0,10,21,0,4,0,14,0,59,17,0,29,0,47,21,0,7,8,0,49,0,26,0,47,0,63,8,8,16,17,0,19,0,2,0,47,0,13,0,45,0,25,8,0,0,0,56,19,8,0,44,0,6,7,9,0,46,0,14,8,0,10,0,47,0,8,8,19,0,9,0,18,19,21,1,13,0,30,16,0,0,0,56,17,0,14,21,0,1,17,0,11,21,0,11,17,17,0,0,22,0,4,13,14,21,1,11,21,1,23,21,0,1,17,0,10,21,0,9,17,0,10,21,0,12,17,0,29,0,37,0,21,7,0,1,0,21,0,45,0,44,0,0,7,8,19,0,56,19,0,28,0,48,0,28,0,48,0,37,0,29,7,8,0,1,0,37,0,29,7,19,0,29,0,47,0,28,8,0,18,19,8,0,18,0,21,0,63,19,19,21,0,7,17,0,24,0,63,17,0,0,0,56,17,0,44,0,0,7,16,0,28,16,22,0,13,11,14,21,0,8,0,29,21,0,13,17,0,44,0,0,7,16,22,0,14,11,0,28,16,22,0,15,11,14,21,0,15,0,37,0,29,7,22,0,13,13,14,21,0,15,0,37,0,29,7,22,0,14,13,14,21,0,13,0,37,0,29,7,22,0,1,13,14,21,0,8,0,29,21,0,13,17,22,0,16,11,14,0,57,0,11,21,0,16,17,0,27,16,22,0,17,11,14,0,57,0,12,21,0,16,17,22,0,18,11,0,44,0,0,7,16,22,0,19,11,14,0,57,0,48,0,21,8,0,44,0,0,7,9,0,27,0,56,0,21,21,0,18,17,19,0,19,0,21,0,57,19,0,23,0,13,19,0,48,0,1,8,9,22,0,20,11,14,0,14,0,45,21,0,20,8,0,24,0,56,19,0,11,0,57,19,22,0,21,11,14,21,0,1,0,28,21,1,16,0,30,16,0,0,0,60,17,0,0,0,57,0,59,0,58,0,60,3,4,17,17,21,0,21,0,47,0,59,8,0,2,0,61,19,0,6,21,0,21,0,47,0,61,8,19,0,2,0,61,19,0,0,21,0,21,0,47,0,56,8,19,0,21,0,57,19,16,22,0,22,11,14,21,1,26,0,29,21,0,22,17,22,0,23,11,14,21,0,4,0,29,21,0,13,17,0,29,0,47,21,0,17,8,0,49,0,58,0,25,16,0,27,0,47,0,15,0,47,0,61,8,0,0,0,56,19,8,16,0,29,21,0,22,0,24,0,56,17,17,8,16,22,0,4,12,14,21,1,24,0,1,21,0,1,17,22,0,24,11,21,0,3,0,48,0,11,8,0,9,0,15,0,47,0,57,8,19,16,22,0,25,11,0,27,16,22,0,26,11,14,21,0,1,0,29,21,0,26,17,22,0,27,11,14,21,1,16,21,1,23,21,0,1,17,0,27,16,22,0,28,11,14,21,1,12,0,30,16,0,14,21,0,1,17,0,29,21,1,12,21,1,23,21,0,1,17,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,17,22,0,29,11,14,21,0,8,0,1,21,0,5,17,0,29,21,0,13,17,0,44,0,0,7,16,0,28,16,22,0,7,12,14,21,0,13,0,29,21,0,7,17,22,0,30,11,14,21,0,9,0,1,21,0,10,17,0,29,21,0,30,17,0,12,0,27,0,46,0,1,8,0,11,19,0,57,17,0,37,0,3,7,0,61,17,0,0,0,56,17,22,0,31,11,14,21,1,13,0,30,16,0,0,0,60,17,0,14,21,0,1,17,0,29,21,0,7,17,0,27,16,22,0,32,11,14,21,0,9,0,29,21,0,30,17,0,28,16,22,0,33,11,0,37,0,29,7,22,0,7,13,14,21,0,13,0,29,21,0,7,17,22,0,30,12,14,21,0,7,0,37,0,29,7,22,0,1,13,14,21,0,7,0,37,0,29,7,22,0,4,13,14,21,0,30,0,37,0,29,7,22,0,12,13,14,21,0,9,0,12,21,0,10,17,0,29,21,0,30,17,0,27,16,22,0,34,11,14,21,0,7,0,28,16,22,0,35,11,14,21,0,33,0,28,16,0,29,22,0,32,13,14,21,1,11,21,1,23,21,0,1,17,22,0,36,11,14,21,0,9,0,29,21,0,30,17,0,10,21,0,12,17,0,10,21,0,36,17,22,0,37,11,14,21,1,12,0,30,16,0,37,0,22,7,0,61,17,21,1,23,21,0,1,17,22,0,38,11,14,21,0,38,0,10,21,0,37,17,0,1,22,0,4,13,14,0,61,0,16,21,0,4,17,22,0,39,11,14,0,59,0,14,21,0,4,17,0,26,0,56,17,0,10,0,56,0,16,21,0,4,17,17,22,0,40,11,14,21,0,40,0,29,21,0,37,0,26,0,63,17,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,17,22,0,41,11,14,21,0,40,0,26,0,56,17,0,9,21,1,12,0,30,16,0,0,0,56,17,0,14,21,0,1,17,17,0,11,21,0,41,17,22,0,42,11,14,0,59,0,14,21,0,4,17,0,26,0,56,17,0,11,21,0,38,17,0,10,21,0,39,17,22,0,43,11,14,21,0,42,0,10,21,0,43,17,0,8,16,0,26,16,0,2,0,45,0,44,0,6,7,8,0,1,0,18,19,0,47,0,13,0,45,0,25,8,8,16,0,26,16,22,0,44,11,14,21,0,38,0,27,16,21,0,44,0,48,0,29,8,0,0,0,56,19,0,0,0,19,19,16,22,0,45,11,14,0,56,0,1,21,0,45,17,0,37,0,21,7,21,0,1,0,13,16,17,0,41,0,27,7,16,0,24,0,63,17,0,19,0,21,0,57,19,0,23,0,13,19,0,48,0,1,8,16,0,29,21,0,35,17,0,44,0,0,7,16,0,26,0,63,17,22,0,46,11,0,29,21,0,7,17,22,0,47,11,14,21,0,4,0,27,0,47,21,0,47,8,0,49,0,39,0,63,7,8,16,22,0,4,12,14,21,0,43,0,8,16,0,44,0,0,7,0,2,0,45,0,44,0,6,7,8,0,1,0,19,19,21,0,37,19,0,15,0,11,0,7,19,0,61,19,0,9,0,19,19,16,0,9,21,0,37,0,2,0,47,0,13,0,45,0,25,8,0,0,0,56,19,8,0,44,0,6,7,9,0,46,0,15,8,21,0,38,17,17,22,0,48,11,14,21,0,38,0,10,21,0,37,17,0,37,0,21,7,0,57,17,0,24,0,56,17,0,12,21,0,39,17,22,0,49,11,14,21,0,49,0,27,16,0,26,16,22,0,50,11,14,21,0,49,0,26,0,63,17,0,11,21,0,39,17,0,10,0,56,0,14,21,0,4,17,17,0,11,21,0,49,0,26,0,56,17,0,9,21,0,43,17,17,0,9,21,0,41,0,8,16,0,10,21,0,48,17,17,0,11,21,0,47,0,26,0,56,17,17,0,27,16,22,0,51,11,14,0,57,0,14,21,0,4,17,0,11,21,0,43,17,0,10,0,57,0,16,21,0,4,17,0,9,21,0,41,17,17,0,9,21,1,15,0,30,16,0,13,21,0,1,17,17,0,37,0,21,7,0,57,17,0,24,0,56,17,0,29,21,0,51,17,22,0,52,11,14,21,0,3,0,0,21,1,24,17,0,16,21,0,1,17,22,0,53,11,14,21,1,10,0,42,0,0,7,16,0,0,0,63,17,0,15,21,0,1,17,0,10,21,0,53,17,0,27,16,22,0,54,11,14,21,0,1,0,29,21,0,54,17,22,0,55,11,0,34,16,0,9,16,22,0,56,11,14,21,1,13,0,30,16,0,0,0,58,17,0,14,21,0,1,0,27,21,0,12,17,17,22,0,57,11,14,0,56,0,21,21,0,37,17,0,9,21,0,12,0,21,0,56,17,17,0,1,0,57,0,21,21,0,36,17,17,0,44,0,0,7,16,0,27,0,56,0,21,21,0,12,17,17,0,24,0,47,0,1,8,0,1,0,24,19,0,56,17,0,27,21,0,57,17,0,0,0,56,17,22,0,58,11,14,21,0,57,0,21,0,57,17,0,29,0,47,0,44,0,0,7,8,21,0,12,17,0,12,21,0,36,17,0,27,16,22,0,59,11,14,21,1,13,0,30,16,0,0,0,61,17,0,14,21,0,1,17,0,27,16,22,0,60,11,14,21,0,46,0,9,21,0,29,17,0,9,21,0,25,17,22,0,61,11,0,29,21,0,26,17,22,0,62,11,14,21,0,61,21,0,20,16,22,0,63,11,14,21,0,19,0,29,21,0,26,17,0,37,21,0,15,0,29,21,0,17,17,0,21,21,0,1,0,13,16,17,7,0,29,0,27,0,47,21,0,62,8,19,0,21,21,0,15,0,27,21,0,18,17,0,21,0,63,17,0,48,0,29,8,19,16,22,0,64,11,14,21,0,64,0,28,16,0,29,0,47,21,0,27,0,27,0,47,21,0,62,8,0,48,0,21,8,16,22,0,65,11,0,48,0,29,8,0,28,9,8,16,22,0,66,11,14,21,0,64,0,19,0,29,21,0,66,0,27,0,47,0,15,0,47,21,0,26,0,13,16,8,8,16,19,0,13,0,47,0,19,0,21,0,57,19,0,23,0,13,19,8,9,0,46,0,10,8,21,0,65,17,0,42,0,9,7,0,56,17,0,36,0,103,17,14,21,0,66,0,29,0,47,21,0,62,0,37,0,27,7,16,0,1,16,0,21,21,0,62,17,0,48,0,29,0,45,0,44,0,0,7,8,8,0,28,9,8,16,0,27,0,47,21,0,26,0,13,16,0,48,0,11,8,8,16,22,0,66,12,14,21,0,66,0,37,0,29,7,22,0,62,13,14,21,0,27,0,29,21,0,66,17,0,13,0,47,0,19,0,21,0,57,19,0,23,0,13,19,8,0,11,21,0,62,19,0,48,0,19,0,42,0,10,7,0,57,19,0,51,0,37,0,27,0,45,21,1,32,8,7,8,8,16,14,21,0,26,0,29,0,47,21,0,66,8,0,49,0,29,0,47,21,0,62,0,2,0,47,0,13,0,45,0,25,8,8,16,0,44,0,6,7,16,8,8,16,22,0,67,11,14,21,0,24,0,29,21,0,28,17,0,0,0,61,17,0,15,0,47,0,57,8,0,48,0,0,8,16,0,0,21,0,22,0,7,0,61,17,0,2,0,59,17,0,29,21,0,19,0,29,21,0,28,17,17,17,0,21,21,0,61,0,44,0,0,7,16,0,8,0,47,0,2,0,47,21,0,18,8,0,44,0,6,7,9,8,16,0,1,21,0,23,0,29,21,0,19,17,17,0,29,21,0,67,17,17,22,0,68,11,14,21,0,28,0,21,21,0,26,17,22,0,69,11,0,11,16,0,20,0,59,17,0,21,16,22,0,70,11,14,21,0,46,0,29,21,0,69,17,0,0,0,67,17,21,0,28,0,39,0,57,7,16,0,21,21,0,67,21,0,14,0,48,0,29,8,0,46,0,1,8,21,0,26,17,17,21,0,68,3,3,22,0,71,11,14,21,0,35,0,29,22,0,17,13,14,21,0,54,21,0,54,21,0,17,21,0,17,21,0,60,21,0,59,21,0,32,21,0,32,21,0,34,21,0,34,21,0,45,21,0,44,0,29,21,0,50,17,0,6,0,56,17,0,0,21,0,50,17,21,0,52,0,0,21,0,51,17,0,0,0,47,21,0,44,0,48,0,29,8,0,2,21,0,52,19,8,16,3,13,0,21,16,0,37,0,29,7,21,0,7,17,0,21,21,0,70,17,0,28,16,22,0,72,11,14,21,0,54,0,39,0,57,7,16,21,0,55,0,31,21,0,56,17,21,0,17,0,39,0,68,7,16,21,0,17,0,13,16,0,25,16,0,0,0,56,17,3,4,0,21,21,0,71,17,0,21,16,22,0,73,11,14,21,0,60,0,39,0,69,7,16,21,0,59,0,39,0,70,7,16,21,0,47,0,29,21,0,32,17,0,0,0,59,17,21,0,58,21,0,47,0,29,21,0,34,17,0,0,0,59,17,21,0,31,21,0,1,0,0,21,0,42,17,0,27,21,0,38,17,0,0,21,1,12,0,30,16,0,1,0,71,17,17,21,0,4,0,29,21,0,50,17,0,0,0,60,17,21,0,41,0,29,21,0,51,17,0,2,0,73,17,0,1,21,0,52,17,0,0,0,72,17,0,14,0,47,0,53,8,0,2,0,55,19,0,0,0,19,19,16,3,9,0,21,16,0,21,21,0,73,17,0,29,21,0,72,17,22,0,74,11,14,21,0,23,0,0,21,0,63,17,0,39,0,11,0,46,0,22,8,7,21,0,60,0,13,0,46,0,22,8,21,0,73,17,21,1,23,21,0,72,17,0,21,0,56,17,0,27,16,0,37,0,29,7,21,0,74,0,6,0,56,17,0,41,0,4,7,0,66,17,0,5,16,0,0,0,56,17,0,21,0,57,17,0,44,0,0,7,16,17,17,0,39,0,21,7,0,61,0,25,0,46,0,26,0,48,0,40,0,22,7,8,8,0,59,17,0,20,16,0,29,21,0,22,17,17,22,0,75,11,14,0,69,0,21,21,0,74,17,21,1,30,16,21,0,56,21,0,75,3,3,25,21,0,1,21,1,27,16,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,21,0,3,21,1,33,21,0,5,21,0,4,3,2,17,22,0,7,22,0,8,22,0,9,4,3,11,14,21,0,6,0,39,21,1,29,7,16,0,21,21,0,2,17,0,29,21,1,24,0,16,21,0,8,17,0,2,21,0,2,0,13,16,0,1,21,0,5,17,0,0,21,1,24,17,17,0,1,21,0,8,17,17,22,0,10,11,14,21,0,7,21,0,10,21,0,9,3,3,25,21,0,1,0,26,16,0,30,16,0,14,0,57,17,25,21,0,1,0,29,0,47,21,0,2,0,27,21,0,1,17,8,0,49,0,39,0,56,7,8,16,21,1,10,21,0,2,0,37,0,29,7,16,17,25,21,0,2,0,2,16,22,0,3,11,14,21,0,1,21,0,3,0,42,0,10,7,16,0,51,0,27,0,47,21,0,3,8,0,46,21,1,3,0,48,0,3,8,0,5,9,0,48,21,0,0,8,8,0,21,0,7,0,0,21,0,3,0,48,0,2,8,19,0,47,21,1,3,8,19,8,0,56,0,1,21,0,2,17,17,25,21,0,1,0,24,0,56,17,0,37,0,21,7,0,57,17,0,0,21,0,2,17,0,44,0,6,7,16,0,6,21,0,1,17,25,0,32,0,14,0,18,0,45,0,13,8,19,0,37,0,27,7,0,19,19,0,0,21,0,2,19,0,37,0,29,7,21,2,5,19,0,21,0,89,19,0,21,21,0,1,19,0,21,0,97,19,25]) + ,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[30],runtime[31],runtime[33],runtime[34],runtime[35],runtime[36],runtime[37],runtime[38],runtime[39],runtime[40],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[56],runtime[59],32,10,26,9,1,0,4,3,5,2,6,-1,3.14159265358979,Infinity,128,21,15,25,14,11,16,7,' ',str("+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!"),str("˙˜˘¨⌜⁼´˝`"),str("∘○⊸⟜⌾⊘◶⎉⚇⍟"),str("⋄,"),str("←↩→"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),str("@"),'0',str("¯.π∞"),str("_"),str("aA"),str(" "),str("Unclosed quote"),'\'','"',str("Unknown character"),str("s"),str(": "),'#',str("Missing "),str("opening"),str("closing"),str("Malformed bracket nesting"),str("Undefined identifier"),str("Swapped open and closed brackets"),str("Multiple definitions")] + ,[[0,1,0,35],[0,0,490,3],[1,1,556,4],[0,0,649,34],[0,0,1960,13],[0,0,2282,6],[0,0,2388,6],[0,0,2501,3],[0,0,2531,76],[0,0,5815,11],[0,0,5938,3],[0,0,5953,3],[0,0,5993,4],[0,0,6079,3],[2,1,6114,3]] ); let bqn = src => run.apply(null,compile(str(src),runtime)); @@ -186,9 +186,9 @@ let fmt0 = x => (x.glyph||(x.m?"*"+x.m+"-modifier*":"*function*")) : ""+x; let fmt1 = run( - new Uint8Array([15,1,25,21,0,4,22,0,5,11,14,0,47,22,0,6,11,14,0,48,22,0,7,11,14,0,49,22,0,8,11,14,0,15,0,35,15,2,8,22,0,9,11,14,0,9,0,7,0,44,19,0,39,15,3,8,22,0,10,11,14,15,4,22,0,11,11,14,21,0,10,0,34,21,0,11,8,22,0,12,11,14,15,5,22,0,13,11,14,21,0,13,15,6,3,2,0,37,15,7,8,22,0,14,11,14,0,59,0,17,0,58,17,15,8,15,9,3,2,0,37,0,8,0,9,0,43,19,0,6,0,9,0,8,0,44,19,19,8,3,2,0,37,0,12,0,12,0,43,0,43,3,2,19,8,22,0,15,11,14,15,10,0,36,15,11,8,22,0,16,11,14,15,12,22,0,17,11,14,0,13,0,16,0,16,19,0,33,0,64,8,21,0,5,3,2,0,37,0,41,0,34,0,10,8,8,0,17,9,15,13,21,0,17,3,3,0,37,0,11,0,3,0,44,19,8,22,0,18,11,14,21,0,1,21,0,18,16,0,27,21,0,6,0,34,0,16,8,7,16,0,15,16,0,19,0,40,17,25,21,0,1,0,24,21,1,7,17,22,0,3,11,14,21,0,1,0,21,0,33,21,1,7,0,8,16,0,7,21,0,3,17,8,0,35,0,13,0,26,0,22,7,21,1,8,19,8,21,0,3,17,25,21,0,1,0,12,16,0,19,0,40,17,22,0,3,11,14,0,42,0,28,0,18,7,21,0,3,0,4,0,42,17,0,1,16,17,0,20,0,35,0,32,0,26,0,29,0,2,7,7,7,8,16,0,30,0,40,0,41,3,2,0,38,0,0,8,7,16,0,15,16,22,0,4,11,14,21,0,4,0,23,0,33,0,40,8,0,35,0,43,8,16,22,0,4,12,14,15,14,22,0,5,11,14,21,0,1,0,15,21,0,1,0,12,16,0,23,0,40,17,0,16,21,0,3,0,30,0,2,7,16,17,17,21,0,5,0,18,0,33,0,30,0,0,7,8,3,2,0,37,21,0,3,0,25,0,43,17,0,23,16,8,21,0,4,17,25,21,0,1,0,13,0,42,0,38,0,16,8,0,42,0,38,0,16,8,19,0,50,0,21,21,0,2,17,17,25,0,52,0,16,21,0,1,0,22,16,0,19,0,42,17,0,19,0,40,17,17,0,16,0,51,17,0,17,16,25,21,0,1,0,12,16,0,23,0,40,17,22,0,3,11,14,0,54,21,0,2,0,14,0,3,0,42,19,0,26,0,22,7,0,55,19,0,15,9,21,1,5,3,2,0,37,0,7,0,33,0,45,8,8,16,3,2,0,16,16,0,18,0,42,21,0,3,3,2,17,21,0,1,0,23,0,35,0,56,0,23,0,42,0,1,21,0,2,17,0,4,0,43,17,0,3,0,46,17,17,8,16,0,57,0,18,21,0,3,0,1,16,0,16,0,42,17,17,3,3,0,16,16,25,21,0,1,0,22,16,0,29,0,9,7,0,53,17,0,31,0,1,7,16,0,32,0,0,7,16,0,25,0,44,17,0,23,16,0,6,21,0,1,0,8,16,0,8,0,42,17,17,0,6,21,0,2,0,8,0,42,17,17,25,21,0,1,0,28,0,50,7,16,21,1,11,0,42,17,21,1,14,0,44,17,0,23,0,33,0,43,0,40,3,2,8,0,35,0,60,8,16,25,21,0,1,0,12,16,0,61,0,28,21,1,5,7,0,28,0,63,0,34,0,16,8,7,9,0,16,9,0,23,0,33,0,40,8,0,35,0,62,8,9,3,2,0,37,0,8,0,7,0,42,19,8,16,0,26,0,16,7,0,53,17,0,17,16,25,21,0,1,0,28,0,12,7,16,22,0,3,11,14,21,0,3,0,28,0,23,7,0,42,17,0,15,0,26,0,42,7,0,1,0,9,19,0,39,0,31,0,4,7,8,3,2,0,37,0,9,0,7,0,43,19,8,16,22,0,4,11,14,21,0,3,0,28,0,23,7,16,0,9,0,7,0,43,19,0,39,0,42,0,38,0,31,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,28,0,18,7,0,42,0,18,21,0,4,0,8,16,0,2,21,0,2,17,0,1,16,17,0,5,21,0,4,17,0,2,21,0,2,17,0,29,0,16,7,21,0,5,17,17,0,9,0,1,0,44,19,0,4,0,43,19,0,39,0,17,8,16,0,44,0,38,0,16,8,16,25,21,0,1,21,1,16,0,42,17,25,21,0,1,0,28,21,1,18,7,16,21,1,16,21,0,2,17,21,1,12,0,44,17,21,1,14,21,0,1,0,9,16,17,25,0,41,0,10,21,0,1,17,22,0,3,11,14,21,0,1,0,9,16,22,0,4,11,14,21,0,1,15,15,15,16,15,17,3,3,0,37,21,0,3,0,15,16,0,30,0,0,7,0,10,0,0,0,7,0,33,0,43,8,19,0,8,19,16,8,16,25,21,0,2,0,0,0,42,17,0,21,16,22,0,3,11,14,0,50,0,15,21,0,1,0,12,16,0,23,0,40,17,17,0,16,21,0,1,17,0,22,21,0,3,0,21,0,33,21,0,3,0,25,16,0,5,16,8,0,35,0,28,0,40,7,8,16,17,25,21,0,1,0,12,16,0,19,0,40,17,22,0,3,11,0,8,16,0,1,16,0,9,0,33,0,43,8,0,39,0,41,8,16,22,0,4,11,14,0,65,22,0,5,11,14,21,0,1,0,21,0,33,0,14,0,9,21,0,5,19,0,0,0,42,19,8,21,2,9,3,2,0,37,0,9,0,8,0,42,19,8,16,22,0,1,12,14,21,0,5,0,18,21,0,3,17,0,15,0,35,0,20,8,16,21,0,4,0,38,0,16,8,21,0,1,17,21,0,4,0,38,0,16,8,21,0,5,0,18,21,0,3,17,17,0,17,16,21,1,4,0,8,0,42,17,0,39,21,2,10,21,2,11,0,42,19,21,2,14,21,1,4,19,8,16,25,21,0,1,21,2,17,21,2,15,3,2,0,37,0,12,0,9,0,43,19,0,30,0,6,7,9,8,16,25,21,0,1,21,2,17,0,40,17,25]) - ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[28],runtime[30],runtime[33],runtime[34],runtime[35],runtime[37],runtime[42],runtime[43],runtime[44],runtime[45],runtime[47],runtime[48],runtime[49],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[57],runtime[59],-1,Infinity,1,0,2,5,4,'\n',str(" - ,[[0,1,0,0],[1,0,3,19],[0,0,259,4],[0,0,312,6],[0,0,478,3],[0,0,508,3],[0,0,538,4],[0,0,662,3],[0,0,722,3],[0,0,761,3],[0,0,827,6],[0,0,1002,3],[0,0,1012,3],[0,0,1046,5],[0,0,1113,4],[0,0,1181,6],[0,0,1348,3],[0,0,1377,3]] + new Uint8Array([15,1,25,21,0,4,22,0,5,11,14,0,47,22,0,6,11,14,0,48,22,0,7,11,14,0,49,22,0,8,11,14,21,0,7,0,23,16,22,0,9,11,14,0,15,0,35,15,2,8,22,0,10,11,14,0,9,0,7,0,44,19,0,39,15,3,8,22,0,11,11,14,15,4,22,0,12,11,14,21,0,11,0,34,21,0,12,8,22,0,13,11,14,15,5,22,0,14,11,14,21,0,14,15,6,3,2,0,37,15,7,8,22,0,15,11,14,0,59,0,17,0,58,17,15,8,15,9,3,2,0,37,0,8,0,9,0,43,19,0,6,0,9,0,8,0,44,19,19,8,3,2,0,37,0,12,0,12,0,43,0,43,3,2,19,8,22,0,16,11,14,15,10,0,36,15,11,8,22,0,17,11,14,15,12,22,0,18,11,14,0,64,0,13,0,16,0,16,19,0,33,0,65,8,3,2,0,37,0,8,0,33,21,0,9,8,8,21,0,5,3,2,0,37,0,41,0,34,0,10,8,8,0,17,9,15,13,21,0,18,3,3,0,37,0,11,0,3,0,44,19,8,22,0,19,11,14,21,0,1,21,0,19,16,0,27,21,0,6,0,34,0,16,8,7,16,0,15,16,0,19,0,40,17,25,21,0,1,0,24,21,1,7,17,22,0,3,11,14,21,0,1,0,21,0,33,21,1,7,0,8,16,0,7,21,0,3,17,8,0,35,0,13,0,26,0,22,7,21,1,8,19,8,21,0,3,17,25,21,0,1,0,12,16,0,19,0,40,17,22,0,3,11,14,0,42,0,28,0,18,7,21,0,3,0,4,0,42,17,0,1,16,17,0,20,0,35,0,32,0,26,0,29,0,2,7,7,7,8,16,0,30,0,40,0,41,3,2,0,38,0,0,8,7,16,0,15,16,22,0,4,11,14,21,0,4,0,23,0,33,0,40,8,0,35,0,43,8,16,22,0,4,12,14,15,14,22,0,5,11,14,21,0,1,0,15,21,0,1,0,12,16,0,23,0,40,17,0,16,21,0,3,0,30,0,2,7,16,17,17,21,0,5,0,18,0,33,0,30,0,0,7,8,3,2,0,37,21,0,3,0,25,0,43,17,0,23,16,8,21,0,4,17,25,21,0,1,0,13,0,42,0,38,0,16,8,0,42,0,38,0,16,8,19,0,50,0,21,21,0,2,17,17,25,0,52,0,16,21,0,1,0,22,16,0,19,0,42,17,0,19,0,40,17,17,0,16,0,51,17,0,17,16,25,21,0,1,0,12,16,0,23,0,40,17,22,0,3,11,14,0,54,21,0,2,0,14,0,3,0,42,19,0,26,0,22,7,0,55,19,0,15,9,21,1,5,3,2,0,37,0,7,0,33,0,45,8,8,16,3,2,0,16,16,0,18,0,42,21,0,3,3,2,17,21,0,1,0,23,0,35,0,56,0,23,0,42,0,1,21,0,2,17,0,4,0,43,17,0,3,0,46,17,17,8,16,0,57,0,18,21,0,3,0,1,16,0,16,0,42,17,17,3,3,0,16,16,25,21,0,1,0,22,16,0,29,0,9,7,0,53,17,0,31,0,1,7,16,0,32,0,0,7,16,0,25,0,44,17,0,23,16,0,6,21,0,1,0,8,16,0,8,0,42,17,17,0,6,21,0,2,0,8,0,42,17,17,25,21,0,1,0,28,0,50,7,16,21,1,12,0,42,17,21,1,15,0,44,17,0,23,0,33,0,43,0,40,3,2,8,0,35,0,60,8,16,25,21,0,1,0,12,16,0,61,0,28,21,1,5,7,0,28,0,63,0,34,0,16,8,7,9,0,16,9,0,23,0,33,0,40,8,0,35,0,62,8,9,3,2,0,37,0,8,0,7,0,42,19,8,16,0,26,0,16,7,0,53,17,0,17,16,25,21,0,1,0,28,0,12,7,16,22,0,3,11,14,21,0,3,0,28,0,23,7,0,42,17,0,15,0,26,0,42,7,0,1,0,9,19,0,39,0,31,0,4,7,8,3,2,0,37,0,9,0,7,0,43,19,8,16,22,0,4,11,14,21,0,3,0,28,0,23,7,16,0,9,0,7,0,43,19,0,39,0,42,0,38,0,31,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,28,0,18,7,0,42,0,18,21,0,4,0,8,16,0,2,21,0,2,17,0,1,16,17,0,5,21,0,4,17,0,2,21,0,2,17,0,29,0,16,7,21,0,5,17,17,0,9,0,1,0,44,19,0,4,0,43,19,0,39,0,17,8,16,0,44,0,38,0,16,8,16,25,21,0,1,21,1,17,0,42,17,25,21,0,1,0,28,21,1,19,7,16,21,1,17,21,0,2,17,21,1,13,0,44,17,21,1,15,21,0,1,0,9,16,17,25,0,41,0,10,21,0,1,17,22,0,3,11,14,21,0,1,0,9,16,22,0,4,11,14,21,0,1,15,15,15,16,15,17,3,3,0,37,21,0,3,0,15,16,0,30,0,0,7,0,10,0,0,0,7,0,33,0,43,8,19,0,8,19,16,8,16,25,21,0,2,0,0,0,42,17,0,21,16,22,0,3,11,14,0,50,0,15,21,0,1,0,12,16,0,23,0,40,17,17,0,16,21,0,1,17,0,22,21,0,3,0,21,0,33,21,0,3,0,25,16,0,5,16,8,0,35,0,28,0,40,7,8,16,17,25,21,0,1,0,12,16,0,19,0,40,17,22,0,3,11,0,8,16,0,1,16,0,9,0,33,0,43,8,0,39,0,41,8,16,22,0,4,11,14,0,66,22,0,5,11,14,21,0,1,0,21,0,33,0,14,0,9,21,0,5,19,0,0,0,42,19,8,21,2,10,3,2,0,37,0,9,0,8,0,42,19,8,16,22,0,1,12,14,21,0,5,0,18,21,0,3,17,0,15,0,35,0,20,8,16,21,0,4,0,38,0,16,8,21,0,1,17,21,0,4,0,38,0,16,8,21,0,5,0,18,21,0,3,17,17,0,17,16,21,1,4,0,8,0,42,17,0,39,21,2,11,21,2,12,0,42,19,21,2,15,21,1,4,19,8,16,25,21,0,1,21,2,18,21,2,16,3,2,0,37,0,12,0,9,0,43,19,0,30,0,6,7,9,8,16,25,21,0,1,21,2,18,0,40,17,25]) + ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[28],runtime[30],runtime[33],runtime[34],runtime[35],runtime[37],runtime[42],runtime[43],runtime[44],runtime[45],runtime[47],runtime[48],runtime[49],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[57],runtime[59],-1,Infinity,1,0,2,5,4,'\n',str(" + ,[[0,1,0,0],[1,0,3,20],[0,0,285,4],[0,0,338,6],[0,0,504,3],[0,0,534,3],[0,0,564,4],[0,0,688,3],[0,0,748,3],[0,0,787,3],[0,0,853,6],[0,0,1028,3],[0,0,1038,3],[0,0,1072,5],[0,0,1139,4],[0,0,1207,6],[0,0,1374,3],[0,0,1403,3]] )(a=>str(fmt0(a))); let fmt = x => fmt1(x).map(c=>c===0?" ":c).join(""); diff --git a/docs/doc/fromDyalog.html b/docs/doc/fromDyalog.html index dbb9ecd6..1ae69828 100644 --- a/docs/doc/fromDyalog.html +++ b/docs/doc/fromDyalog.html @@ -199,7 +199,7 @@ <tr><td> <code><span class='Value'>f⍤</span><span class='Function'>B</span></code> </td><td colspan=2> <code><span class='Value'>f</span><span class='Modifier2'>⎉</span><span class='Function'>B</span></code> </td></tr> <tr><td> <code><span class='Value'>f⍤g</span></code> </td><td colspan=2> <code><span class='Value'>f</span><span class='Modifier2'>∘</span><span class='Value'>g</span></code> </td></tr> <tr><td> <code><span class='Value'>f⍥g</span></code> </td><td colspan=2> <code><span class='Value'>f</span><span class='Modifier2'>○</span><span class='Value'>g</span></code> </td></tr> -<tr><td> <code><span class='Value'>f@v</span></code> </td><td colspan=2> <code><span class='Value'>f</span><span class='Modifier2'>⌾</span><span class='Paren'>(</span><span class='Value'>v</span><span class='Modifier2'>⊸</span><span class='Function'>⊏</span><span class='Paren'>)</span></code> </td></tr> +<tr><td> <code><span class='Value'>f</span><span class='String'>@</span><span class='Value'>v</span></code> </td><td colspan=2> <code><span class='Value'>f</span><span class='Modifier2'>⌾</span><span class='Paren'>(</span><span class='Value'>v</span><span class='Modifier2'>⊸</span><span class='Function'>⊏</span><span class='Paren'>)</span></code> </td></tr> <tr><td> <code><span class='Value'>f⍠</span><span class='Function'>B</span></code> </td><td colspan=2> Uh </td></tr> <tr><td> <code><span class='Value'>f⌸</span></code> </td><td><code><span class='Function'>⍷</span><span class='Modifier2'>⊸</span><span class='Function'>⊐⊔↕</span><span class='Modifier2'>∘</span><span class='Function'>≠</span></code></td><td><code><span class='Function'>⍷</span><span class='Modifier2'>⊸</span><span class='Function'>⊐</span><span class='Modifier2'>⊸</span><span class='Function'>⊔</span></code> </td></tr> <tr><td> <code><span class='Value'>f⌺</span><span class='Function'>B</span></code> </td><td colspan=2> <code><span class='Function'>↕</span></code> </td></tr> diff --git a/docs/doc/syntax.html b/docs/doc/syntax.html index aafb86d9..5fc5ff3a 100644 --- a/docs/doc/syntax.html +++ b/docs/doc/syntax.html @@ -25,6 +25,10 @@ <td><a href="#constants">Character or string literal</a></td> </tr> <tr> +<td><code><span class='String'>@</span></code></td> +<td><a href="#constants">Null character</a></td> +</tr> +<tr> <td><code><span class='Number'>¯∞π</span></code></td> <td><a href="#constants">Used in numeric literals</a></td> </tr> @@ -109,6 +113,7 @@ <span class='Function'>≡</span><span class='Modifier'>¨</span> <span class='Bracket'>⟨</span> <span class='String'>"a"</span> <span class='Separator'>⋄</span> <span class='String'>'a'</span> <span class='Bracket'>⟩</span> <span class='Comment'># A string is an array but a character isn't </span>⟨ 1 0 ⟩ </pre> +<p>The null character (code point 0) has a dedicated literal representation <code><span class='String'>@</span></code>. This character can be used to directly convert between characters and numeric code points, which among many other uses allows tricky characters to be entered by code point: for example, a non-breaking space is <code><span class='String'>@</span><span class='Function'>+</span><span class='Number'>160</span></code>. The character can also be entered as a character literal, but this will display differently in various editors and some tools may have trouble with a file directly containing a null, so it is best to use <code><span class='String'>@</span></code> instead.</p> <h2 id="expressions">Expressions</h2> <p><em><a href="context.html">More discussion</a></em></p> <p>Like APL, BQN uses four <em>syntactic roles</em> for values in expressions:</p> diff --git a/docs/repl.js b/docs/repl.js index e3baa789..2dbcc085 100644 --- a/docs/repl.js +++ b/docs/repl.js @@ -49,8 +49,8 @@ let typeChar = (t, c, ev) => { return false; } -let syncls={ v:"Value", f:"Function", m:"Modifier", d:"Modifier2", n:"Number", g:"Gets", p:"Paren", b:"Bracket", k:"Brace", l:"Ligature", n:"Nothing", s:"Separator", c:"Comment" }; -let keydesc='f+Conjugate;Add_f-Negate;Subtract_f×Sign;Multiply_f÷Reciprocal;Divide_f⋆Exponential;Power_f√Square Root;Root_f⌊Floor;Minimum_f⌈Ceiling;Maximum_f∧Sort Up;And_f∨Sort Down;Or_f¬Not;Span_f|Absolute Value;Modulus_f≤Less Than or Equal to_f<Enclose;Less Than_f>Merge;Greater Than_f≥Greater Than or Equal to_f=Rank;Equals_f≠Length;Not Equals_f≡Depth;Match_f≢Shape;Not Match_f⊣Identity;Left_f⊢Identity;Right_f⥊Deshape;Reshape_f∾Join;Join to_f≍Solo;Couple_f↑Prefixes;Take_f↓Suffixes;Drop_f↕Range;Windows_f⌽Reverse;Rotate_f⍉Transpose;Reorder axes_f/Indices;Replicate_f⍋Grade Up;Bins Up_f⍒Grade Down;Bins Down_f⊏First Cell;Select_f⊑First;Pick_f⊐Index of_f⊒Occurrence Count;Progressive Index of_f∊Unique Mask;Member of_f⍷Deduplicate;Find_f⊔Group Indices;Group_f!Assert;Assert with message_m˙Constant_m˜Self/Swap_d∘Atop_d○Over_d⊸Before/Bind_d⟜After/Bind_d⌾Under_d⊘Valences_d◶Choose_d⎉Rank_m˘Cells_d⚇Depth_m¨Each_m⌜Table_d⍟Repeat_m⁼Undo_m´Fold_m˝Insert_m`Scan_b←Define_b↩Change_b→Return_s⋄Separator_s,Separator_p(Begin expression_p)End expression_k{Begin block_k}End block_b⟨Begin list_b⟩End list_l‿Strand_n·Nothing_v•System_v𝕨Left argument_f𝕎Left argument (as function)_v𝕩Right argument_f𝕏Right argument (as function)_v𝕗Modifier left operand (as subject)_f𝔽Modifier left operand_v𝕘2-modifier right operand (as subject)_f𝔾2-modifier right operand_v𝕤Current function (as subject)_f𝕊Current function_m𝕣Current modifier_n¯Minus_nπPi_n∞Infinity_c#Comment'.split(/[\n_]/); +let syncls={ v:"Value", f:"Function", m:"Modifier", d:"Modifier2", n:"Number", g:"Gets", p:"Paren", b:"Bracket", k:"Brace", l:"Ligature", n:"Nothing", s:"Separator", c:"Comment", a:"String" }; +let keydesc='f+Conjugate;Add_f-Negate;Subtract_f×Sign;Multiply_f÷Reciprocal;Divide_f⋆Exponential;Power_f√Square Root;Root_f⌊Floor;Minimum_f⌈Ceiling;Maximum_f∧Sort Up;And_f∨Sort Down;Or_f¬Not;Span_f|Absolute Value;Modulus_f≤Less Than or Equal to_f<Enclose;Less Than_f>Merge;Greater Than_f≥Greater Than or Equal to_f=Rank;Equals_f≠Length;Not Equals_f≡Depth;Match_f≢Shape;Not Match_f⊣Identity;Left_f⊢Identity;Right_f⥊Deshape;Reshape_f∾Join;Join to_f≍Solo;Couple_f↑Prefixes;Take_f↓Suffixes;Drop_f↕Range;Windows_f⌽Reverse;Rotate_f⍉Transpose;Reorder axes_f/Indices;Replicate_f⍋Grade Up;Bins Up_f⍒Grade Down;Bins Down_f⊏First Cell;Select_f⊑First;Pick_f⊐Index of_f⊒Occurrence Count;Progressive Index of_f∊Unique Mask;Member of_f⍷Deduplicate;Find_f⊔Group Indices;Group_f!Assert;Assert with message_m˙Constant_m˜Self/Swap_d∘Atop_d○Over_d⊸Before/Bind_d⟜After/Bind_d⌾Under_d⊘Valences_d◶Choose_d⎉Rank_m˘Cells_d⚇Depth_m¨Each_m⌜Table_d⍟Repeat_m⁼Undo_m´Fold_m˝Insert_m`Scan_b←Define_b↩Change_b→Return_s⋄Separator_s,Separator_p(Begin expression_p)End expression_k{Begin block_k}End block_b⟨Begin list_b⟩End list_l‿Strand_n·Nothing_v•System_v𝕨Left argument_f𝕎Left argument (as function)_v𝕩Right argument_f𝕏Right argument (as function)_v𝕗Modifier left operand (as subject)_f𝔽Modifier left operand_v𝕘2-modifier right operand (as subject)_f𝔾2-modifier right operand_v𝕤Current function (as subject)_f𝕊Current function_m𝕣Current modifier_n¯Minus_nπPi_n∞Infinity_a@Null character_c#Comment'.split(/[\n_]/); let kk=Array.from('`123456890-=~!@#$%^&*()_+qwertuiop[]QWERTIOP{}asdfghjkl;ASFGK:"zxcvbm,./XVBM<> \''); let kv=Array.from('˜˘¨⁼⌜´˝∞¯•÷׬⎉⚇⍟◶⊘⎊⍎⍕⟨⟩√⋆⌽𝕨∊↑∧⊔⊏⊐π←→↙𝕎⍷𝕣⍋⊑⊒⍳⊣⊢⍉𝕤↕𝕗𝕘⊸∘○⟜⋄↖𝕊𝔽𝔾⌾·˙⥊𝕩↓∨⌊≡∾≍≠𝕏⍒⌈≢≤≥‿↩'); let keys={}, revkeys={}; diff --git a/editors/vim/autoload/bqn.txt b/editors/vim/autoload/bqn.txt index 27fb10bf..785bc281 100644 --- a/editors/vim/autoload/bqn.txt +++ b/editors/vim/autoload/bqn.txt @@ -13,6 +13,7 @@ ⟩ End list ‿ Strand · Nothing +@ Null character ' Character " String (list of characters) • System @@ -482,7 +482,7 @@ GetHighlights ← { "Ligature" , "‿" "Nothing" , "·" "Separator" , "⋄," - "String" , "'""" + "String" , "'""@" "Comment" , "#" ⟩ # Turn non-whitespace classes into ⟨open,close⟩ html tags. diff --git a/spec/literal.md b/spec/literal.md index 2d4f2225..dad93acb 100644 --- a/spec/literal.md +++ b/spec/literal.md @@ -4,7 +4,7 @@ A *literal* is a single [token](token.md) that indicates a fixed character, number, or array. While literals indicate values of a data type, [primitives](primitive.md) indicate values of an operation type: function, 1-modifier, or 2-modifier. -Two types of literal deal with text. As the source code is considered to be a sequence of unicode code points ("characters"), and these code points are also used for BQN's character [data type](types.md), 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 *character literal* is enclosed with single quotes `'` and its value is identical to the single character between them. A *string literal* is enclosed in double quotes `"`, 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. +Two types of literal deal with text. As the source code is considered to be a sequence of unicode code points ("characters"), and these code points are also used for BQN's character [data type](types.md), 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 *character literal* is enclosed with single quotes `'` and its value is identical to the single character between them. A *string literal* is enclosed in double quotes `"`, 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 *null literal* is the token `@` and represents the null character, code point 0. The format of a *numeric literal* is more complicated. From the [tokenization rules](token.md), a numeric literal consists of a numeric character (one of `¯∞π.0123456789`) followed by any number of numeric or alphabetic characters. Some numeric literals are *valid* and indicate a number, while others are invalid and cause an error. The grammar for valid numbers is given below in a [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) variant. Only four alphabetic characters are allowed: "i", which separates the real and imaginary components of a complex number, "e", which functions as in scientific notation, and the uppercase versions of these letters. diff --git a/spec/token.md b/spec/token.md index 173756f4..11c3d1fa 100644 --- a/spec/token.md +++ b/spec/token.md @@ -18,6 +18,7 @@ Otherwise, a single character forms a token. Only the specified set of character | Class | Characters |-----------------------|------------ +| Null literal | `@` | Primitive Function | `+-×÷⋆√⌊⌈\|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔` | Primitive 1-Modifier | `` ˙˜˘¨⌜⁼´˝` `` | Primitive 1-Modifier | `∘○⊸⟜⌾⊘◶⎉⚇⍟` @@ -1,7 +1,7 @@ #! ./dzref -tab←' '⋄nl←' -' +nul←' '-32 # @ +nl←nul+10 charSet←∾charGroups←⟨ chF←"+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!" # Function "˙˜˘¨⌜⁼´˝`" # Modifier @@ -12,10 +12,11 @@ charSet←∾charGroups←⟨ "‿" # Ligature "·" # nOthing "𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘" # Input (𝕣 pending; ℝ not allowed) + "@" # nUll character '0'+↕10 # Digit "¯.π∞" # Numeric "_"∾˜⥊"aA"+⌜↕na←26 # Alphabetic - " "∾tab # Whitespace + " "∾nul+9 # Whitespace # #'" eliminated during tokenization ⟩ ErrUnknownChars←{ @@ -26,7 +27,7 @@ CharCode←charSet{ Chk ← ⊢⊣ErrUnknownChars∘(≠/⊣)⍟≢⟜(⊏⟜𝕗) g←⍋𝕗 ⋄ ⊢ Chk g⊏˜1-˜1⌈(g⊏𝕗)⍋⊢ } -bF‿bM‿bC‿bS‿bG‿bB‿bL‿bO‿bI‿bD‿bN‿bA‿bW←≍¨˜⟜(+`≠↑0∾⊢)≠¨charGroups +bF‿bM‿bC‿bS‿bG‿bB‿bL‿bO‿bI‿bU‿bD‿bN‿bA‿bW←≍¨˜⟜(+`≠↑0∾⊢)≠¨charGroups bA_e←4+⊑bA M←1⊸⊑(0⊸≤∧>)-⟜⊑ vi←+´≠¨9↑charGroups @@ -47,6 +48,7 @@ Tokenize←{ c←cl-˜CharCode(⊑charSet)¨⌾(cl⊸/)f/𝕩 w←(≠↑0∾⊢)⊸<l←c M (⊑bD)≍+´1⊑¨bD‿bN‿bA + u←c=⊑bU⋄l+↩u⋄w+↩u us←c=¯1++´bA id←(1-˜(us<l)×+`w)⊔na(⊢-⊣×+⟜(⊑bA)⊸≤)c ti←na⌊∘÷˜(⊑bA)-˜w/c @@ -70,7 +72,7 @@ ReadNum←{ m←(n=⊑)◶⟨Pos,-·Pos 1⊸↓⟩e↑𝕩 𝕩×⟜(10⋆·Int(e+1)↓⊣)˜⍟(e<≠𝕩)m } -LitVal←(⊑("'"∾'"')⊐⊏)◶⟨1⊸⊑,1⊸↓,ReadNum⟩ +LitVal←(⊑⟨⊑bU,''','"'⟩⊐⊏)◶⟨nul,1⊸⊑,1⊸↓,ReadNum⟩ LEBv ← { diff --git a/src/fmt.bqn b/src/fmt.bqn Binary files differindex ac5d3025..b9296b66 100644 --- a/src/fmt.bqn +++ b/src/fmt.bqn |
