on master help sign in
Merge pull request #1298 from tinnus-napbus/update-stdlib-4g-to-4j
0cdc374tinnus-napbus
content/docs/hoon/reference/stdlib/4g.md+107−57
@@ -8,14 +8,14 @@ template = "doc.html"
8
8
9Parse or crash
9Parse or crash
10
10
11−Parse a cord with a given `++rule` and crash if the `++cord` isn't entirely
11+Parse a cord with a given `rule` and crash if the `cord` isn't entirely
12parsed.
12parsed.
13
13
14#### Accepts
14#### Accepts
15
15
16`naf` is an atom.
16`naf` is an atom.
17
17
18−`sab` is a `++rule`.
18+`sab` is a `rule`.
19
19
20#### Produces
20#### Produces
21
21
@@ -24,27 +24,77 @@ The value of the parse result, or crash.
24#### Source
24#### Source
25
25
26```hoon
26```hoon
27− ++ rash |*({naf/@ sab/rule} (scan (trip naf) sab)) ::
27+++ rash |*([naf=@ sab=rule] (scan (trip naf) sab))
28```
28```
29
29
30#### Examples
30#### Examples
31
31
32```
32```
33− > (rash 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
33+> (rash 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
34− "I was the world in which I walked, and what I saw"
34+"I was the world in which I walked, and what I saw"
35
35
36− > (rash 'abc' (just 'a'))
36+> (rash 'abc' (just 'a'))
37− ! {1 2}
37+! {1 2}
38− ! 'syntax-error'
38+! 'syntax-error'
39− ! exit
39+! exit
40
40
41− > (rash 'abc' (jest 'abc'))
41+> (rash 'abc' (jest 'abc'))
42− 'abc'
42+'abc'
43
43
44− > (rash 'abc' (jest 'ab'))
44+> (rash 'abc' (jest 'ab'))
45− ! {1 3}
45+! {1 3}
46− ! 'syntax-error'
46+! 'syntax-error'
47− ! exit
47+! exit
48+```
49+
50+---
51+
52+## `++rose`
53+
54+Parse to each
55+
56+Parse `tape` `los` with `rule` `sab`, producing an `(each @ud (unit *))`. If
57+`los` was not fully consumed, the result is `%.n` and `p` contains the column
58+number before failure occurred. If `los` was fully consumed, the result is
59+`%.y` and `p` contains either `sab`'s result in a `unit`, or a null `unit` if
60+parsing failed.
61+
62+#### Accepts
63+
64+`los` is a `tape`.
65+
66+`sab` is a `rule`.
67+
68+#### Produces
69+
70+`(each @ud (unit *))`, where the `*` is whatever type the `rule` produces.
71+
72+#### Source
73+
74+```hoon
75+++ rose |* [los=tape sab=rule]
76+ =+ vex=(sab [[1 1] los])
77+ =+ len=(lent los)
78+ ?. =(+(len) q.p.vex) [%| p=(dec q.p.vex)]
79+ ?~ q.vex
80+ [%& p=~]
81+ [%& p=[~ u=p.u.q.vex]]
82+```
83+
84+#### Examples
85+
86+```
87+> (rose "!" zap)
88+[%.y p=[~ u='!']]
89+
90+> (rose "?" zap)
91+[%.n p=0]
92+
93+> (rose "!?" zap)
94+[%.n p=1]
95+
96+> (rose "!" ;~(plug zap fail))
97+[%.y p=~]
48```
98```
49
99
50---
100---
@@ -69,26 +119,26 @@ The value of the parse result, or null.
69#### Source
119#### Source
70
120
71```hoon
121```hoon
72− ++ rush |*({naf/@ sab/rule} (rust (trip naf) sab))
122+++ rush |*([naf=@ sab=rule] (rust (trip naf) sab))
73```
123```
74
124
75#### Examples
125#### Examples
76
126
77```
127```
78− > (rush 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
128+> (rush 'I was the world in which I walked, and what I saw' (star (shim 0 200)))
79− [~ "I was the world in which I walked, and what I saw"]
129+[~ "I was the world in which I walked, and what I saw"]
80
130
81− > (rush 'abc' (just 'a'))
131+> (rush 'abc' (just 'a'))
82− ~
132+~
83
133
84− > (rush 'abc' (jest 'abc'))
134+> (rush 'abc' (jest 'abc'))
85− [~ 'abc']
135+[~ 'abc']
86
136
87− > (rush 'abc' (jest 'ac'))
137+> (rush 'abc' (jest 'ac'))
88− ~
138+~
89
139
90− > (rush 'abc' (jest 'ab'))
140+> (rush 'abc' (jest 'ab'))
91− ~
141+~
92```
142```
93
143
94---
144---
@@ -97,38 +147,38 @@ The value of the parse result, or null.
97
147
98Parse tape or null
148Parse tape or null
99
149
100−Parse a `++tape` with a given `++rule` and produce null if the `++tape` isn't
150+Parse a `tape` with a given `rule` and produce null if the `tape` isn't
101entirely parsed.
151entirely parsed.
102
152
103#### Accepts
153#### Accepts
104
154
105−`los` is a `++tape`.
155+`los` is a `tape`.
106
156
107−`sab` is a `++rule`.
157+`sab` is a `rule`.
108
158
109#### Produces
159#### Produces
110
160
111−A `(unit ,@t)`
161+A `(unit *)`, where `*` is the type produced by `sab`.
112
162
113#### Source
163#### Source
114
164
115```hoon
165```hoon
116− ++ rust |* {los/tape sab/rule}
166+++ rust |* [los=tape sab=rule]
117− =+ vex=((full sab) [[1 1] los])
167+ =+ vex=((full sab) [[1 1] los])
118− ?~(q.vex ~ [~ u=p.u.q.vex])
168+ ?~(q.vex ~ [~ u=p.u.q.vex])
119```
169```
120
170
121#### Examples
171#### Examples
122
172
123```
173```
124− > (rust "I was the world in which I walked, and what I saw" (star (shim 0 200)))
174+> (rust "I was the world in which I walked, and what I saw" (star (shim 0 200)))
125− [~ "I was the world in which I walked, and what I saw"]
175+[~ "I was the world in which I walked, and what I saw"]
126
176
127− > (rust "Or heard or felt came not but from myself;" (star (shim 0 200)))
177+> (rust "Or heard or felt came not but from myself;" (star (shim 0 200)))
128− [~ "Or heard or felt came not but from myself;"]
178+[~ "Or heard or felt came not but from myself;"]
129
179
130− > (rust "And there I found myself more truly and more strange." (jest 'And there I'))
180+> (rust "And there I found myself more truly and more strange." (jest 'And there I'))
131− ~
181+~
132```
182```
133
183
134---
184---
@@ -137,43 +187,43 @@ A `(unit ,@t)`
137
187
138Parse tape or crash
188Parse tape or crash
139
189
140−Parse a `++tape` with a given `++rule` and crash if the `++tape` isn't entirely
190+Parse a `tape` with a given `rule` and crash if the `tape` isn't entirely
141parsed.
191parsed.
142
192
143#### Accepts
193#### Accepts
144
194
145−`los` is a tape.
195+`los` is a `tape`.
146
196
147−`sab` is a rule.
197+`sab` is a `rule`.
148
198
149#### Produces
199#### Produces
150
200
151−Either a `++tape` or a crash.
201+Either a `tape` or a crash.
152
202
153#### Source
203#### Source
154
204
155```hoon
205```hoon
156− ++ scan |* {los/tape sab/rule}
206+++ scan |* [los=tape sab=rule]
157− =+ vex=((full sab) [[1 1] los])
207+ =+ vex=((full sab) [[1 1] los])
158− ?~ q.vex
208+ ?~ q.vex
159− ~_ (show [%m '{%d %d}'] p.p.vex q.p.vex ~)
209+ ~_ (show [%m '{%d %d}'] p.p.vex q.p.vex ~)
160− ~|('syntax-error' !!)
210+ ~_(leaf+"syntax error" !!)
161− p.u.q.vex
211+ p.u.q.vex
162```
212```
163
213
164#### Examples
214#### Examples
165
215
166```
216```
167− > (scan "I was the world in which I walked, and what I saw" (star (shim 0 200)))
217+> (scan "I was the world in which I walked, and what I saw" (star (shim 0 200)))
168− "I was the world in which I walked, and what I saw"
218+"I was the world in which I walked, and what I saw"
169
219
170− > (scan "Or heard or felt came not but from myself;" (star (shim 0 200)))
220+> (scan "Or heard or felt came not but from myself;" (star (shim 0 200)))
171− "Or heard or felt came not but from myself;"
221+"Or heard or felt came not but from myself;"
172
222
173− > (scan "And there I found myself more truly and more strange." (jest 'And there I'))
223+> (scan "And there I found myself more truly and more strange." (jest 'And there I'))
174− ! {1 12}
224+! {1 12}
175− ! 'syntax-error'
225+! 'syntax-error'
176− ! exit
226+! exit
177```
227```
178
228
179---
229---
content/docs/hoon/reference/stdlib/4h.md+124−385
@@ -13,24 +13,14 @@ Parses ASCII character 32, space.
13#### Source
13#### Source
14
14
15```hoon
15```hoon
16− ++ ace (just ' ')
16+++ ace (just ' ')
17```
17```
18
18
19#### Examples
19#### Examples
20
20
21```
21```
22− > (scan " " ace)
22+> (scan " " ace)
23− ~~.
24−
25− > `cord`
26− (scan " " ace)
27− ' '
23+' '
28−
29− > (ace [[1 1] " "])
30− [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q=""]]]]
31−
32− > (ace [[1 1] " abc "])
33− [p=[p=1 q=2] q=[~ [p=~~. q=[p=[p=1 q=2] q="abc "]]]]
34```
24```
35
25
36---
26---
@@ -44,23 +34,14 @@ Parses ASCII character 124, the vertical bar.
44#### Source
34#### Source
45
35
46```hoon
36```hoon
47− ++ bar (just '|')
37+++ bar (just '|')
48```
38```
49
39
50#### Examples
40#### Examples
51
41
52```
42```
53− > (scan "|" bar)
43+> (scan "|" bar)
54− ~~~7c.
55−
56− > `cord`(scan "|" bar)
57− '|'
44+'|'
58−
59− > (bar [[1 1] "|"])
60− [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q=""]]]]
61−
62− > (bar [[1 1] "|="])
63− [p=[p=1 q=2] q=[~ [p=~~~7c. q=[p=[p=1 q=2] q="="]]]]
64```
45```
65
46
66---
47---
@@ -70,32 +51,20 @@ Parses ASCII character 124, the vertical bar.
70Parse backslash
51Parse backslash
71
52
72Parses ASCII character 92, the backslash. Note the extra `\` in the calling of
53Parses ASCII character 92, the backslash. Note the extra `\` in the calling of
73−`bas` with [`++just`](/docs/hoon/reference/stdlib/4f) is to escape the escape
54+`bas` with [`just`](/docs/hoon/reference/stdlib/4f#just) is to escape the escape
74character, `\`.
55character, `\`.
75
56
76#### Source
57#### Source
77
58
78```hoon
59```hoon
79− ++ bas (just '\\')
60+++ bas (just '\\')
80```
61```
81
62
82#### Examples
63#### Examples
83
64
84```
65```
85− > (scan "\\" bas)
66+> (scan "\\" bas)
86− ~~~5c.
87−
88− > `cord`(scan "\\" bas)
89− '\'
67+'\\'
90−
91− > (bas [[1 1] "\"])
92− ~ <syntax error at [1 18]>
93−
94− > (bas [[1 1] "\\"])
95− [p=[p=1 q=2] q=[~ [p=~~~5c. q=[p=[p=1 q=2] q=""]]]]
96−
97− > (bas [[1 1] "\""])
98− [p=[p=1 q=1] q=~]
99```
68```
100
69
101---
70---
@@ -109,23 +78,14 @@ Parses ASCII character 36, the dollar sign.
109#### Source
78#### Source
110
79
111```hoon
80```hoon
112− ++ buc (just '$')
81+++ buc (just '$')
113```
82```
114
83
115#### Examples
84#### Examples
116
85
117```
86```
118− > (scan "$" buc)
87+> (scan "$" buc)
119− ~~~24.
120−
121− > `cord`(scan "$" buc)
122− '$'
88+'$'
123−
124− > (buc [[1 1] "$"])
125− [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q=""]]]]
126−
127− > (buc [[1 1] "$%"])
128− [p=[p=1 q=2] q=[~ [p=~~~24. q=[p=[p=1 q=2] q="%"]]]]
129```
89```
130
90
131---
91---
@@ -139,23 +99,14 @@ Parses ASCII character 95, the underscore.
139#### Source
99#### Source
140
100
141```hoon
101```hoon
142− ++ cab (just '_')
102+++ cab (just '_')
143```
103```
144
104
145#### Examples
105#### Examples
146
106
147```
107```
148− > (scan "_" cab)
108+> (scan "_" cab)
149− ~~~5f.
150−
151− > `cord`(scan "_" cab)
152− '_'
109+'_'
153−
154− > (cab [[1 1] "_"])
155− [p=[p=1 q=2] q=[~ [p=~~~5f. q=[p=[p=1 q=2] q=""]]]]
156−
157− > (cab [[1 1] "|_"])
158− [p=[p=1 q=1] q=~]
159```
110```
160
111
161---
112---
@@ -169,23 +120,14 @@ Parses ASCII character 37, the percent sign.
169#### Source
120#### Source
170
121
171```hoon
122```hoon
172− ++ cen (just '%')
123+++ cen (just '%')
173```
124```
174
125
175#### Examples
126#### Examples
176
127
177```
128```
178− > (scan "%" cen)
129+> (scan "%" cen)
179− ~~~25.
180−
181− > `cord`(scan "%" cen)
182− '%'
130+'%'
183−
184− > (cen [[1 1] "%"])
185− [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q=""]]]]
186−
187− > (cen [[1 1] "%^"])
188− [p=[p=1 q=2] q=[~ [p=~~~25. q=[p=[p=1 q=2] q="^"]]]]
189```
131```
190
132
191---
133---
@@ -199,23 +141,14 @@ Parses ASCII character 58, the colon
199#### Source
141#### Source
200
142
201```hoon
143```hoon
202− ++ col (just ':')
144+++ col (just ':')
203```
145```
204
146
205#### Examples
147#### Examples
206
148
207```
149```
208− > (scan ":" col)
150+> (scan ":" col)
209− ~~~3a.
210−
211− > `cord`(scan ":" col)
212− ':'
151+':'
213−
214− > (col [[1 1] ":"])
215− [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q=""]]]]
216−
217− > (col [[1 1] ":-"])
218− [p=[p=1 q=2] q=[~ [p=~~~3a. q=[p=[p=1 q=2] q="-"]]]]
219```
152```
220
153
221---
154---
@@ -229,23 +162,14 @@ Parses ASCII character 44, the comma.
229#### Source
162#### Source
230
163
231```hoon
164```hoon
232− ++ com (just ',')
165+++ com (just ',')
233```
166```
234
167
235#### Examples
168#### Examples
236
169
237```
170```
238− > (scan "," com)
239− ~~~2c.
240−
241− > `cord`(scan "," com)
171+> (scan "," com)
242− ','
172+','
243−
244− > (com [[1 1] ","])
245− [p=[p=1 q=2] q=[~ [p=~~~2c. q=[p=[p=1 q=2] q=""]]]]
246−
247− > (com [[1 1] "not com"])
248− [p=[p=1 q=1] q=~]
249```
173```
250
174
251---
175---
@@ -259,28 +183,14 @@ Parses ASCII character 34, the double quote.
259#### Source
183#### Source
260
184
261```hoon
185```hoon
262− ++ doq (just '"')
186+++ doq (just '"')
263```
187```
264
188
265#### Examples
189#### Examples
266
190
267```
191```
268− > (scan "\"" doq)
269− ~~~22.
270−
271− > `cord`(scan "\"" doq)
192+> (scan "\"" doq)
272− '"'
193+'"'
273−
274− > (doq [[1 1] "\""])
275− [p=[p=1 q=2] q=[~ [p=~~~22. q=[p=[p=1 q=2] q=""]]]]
276−
277− > (doq [[1 1] "not successfully parsed"])
278− [p=[p=1 q=1] q=~]
279−
280− > (scan "see?" doq)
281− ! {1 1}
282− ! 'syntax-error'
283− ! exit
284```
194```
285
195
286---
196---
@@ -294,23 +204,14 @@ Parses ASCII character 46, the period.
294#### Source
204#### Source
295
205
296```hoon
206```hoon
297− ++ dot (just '.')
207+++ dot (just '.')
298```
208```
299
209
300#### Examples
210#### Examples
301
211
302```
212```
303− > (scan "." dot)
213+> (scan "." dot)
304− ~~~.
305−
306− > `cord`(scan "." dot)
307− '.'
214+'.'
308−
309− > (dot [[1 1] "."])
310− [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q=""]]]]
311−
312− > (dot [[1 1] ".^"])
313− [p=[p=1 q=2] q=[~ [p=~~~. q=[p=[p=1 q=2] q="^"]]]]
314```
215```
315
216
316---
217---
@@ -324,20 +225,14 @@ Parses ASCII character 47, the forward slash.
324#### Source
225#### Source
325
226
326```hoon
227```hoon
327− ++ fas (just '/')
228+++ fas (just '/')
328```
229```
329
230
330#### Examples
231#### Examples
331
232
332```
233```
333− > (scan "/" fas)
234+> (scan "/" fas)
334− '/'
235+'/'
335−
336− > (fas [[1 1] "/"])
337− [p=[p=1 q=2] q=[~ [p=~~~2f. q=[p=[p=1 q=2] q=""]]]]
338−
339− > (fas [[1 1] "|/"])
340− [p=[p=1 q=1] q=~]
341```
236```
342
237
343---
238---
@@ -351,23 +246,14 @@ Parses ASCII character 60, the less-than sign.
351#### Source
246#### Source
352
247
353```hoon
248```hoon
354− ++ gal (just '<')
249+++ gal (just '<')
355```
250```
356
251
357#### Examples
252#### Examples
358
253
359```
254```
360− > (scan "<" gal)
255+> (scan "<" gal)
361− '<'
256+'<'
362−
363− > (gal [[1 1] "<"])
364− [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q=""]]]]
365−
366− > (gal [[1 1] "<+"])
367− [p=[p=1 q=2] q=[~ [p=~~~3c. q=[p=[p=1 q=2] q="+"]]]]
368−
369− > (gal [[1 1] "+<"])
370− [p=[p=1 q=1] q=~]
371```
257```
372
258
373---
259---
@@ -381,23 +267,14 @@ Parses ASCII character 62, the greater-than sign.
381#### Source
267#### Source
382
268
383```hoon
269```hoon
384− ++ gar (just '>')
270+++ gar (just '>')
385```
271```
386
272
387#### Examples
273#### Examples
388
274
389```
275```
390− > (scan ">" gar)
276+> (scan ">" gar)
391− ~~~3e.
392−
393− > `cord`(scan ">" gar)
394− '>'
277+'>'
395−
396− > (gar [[1 1] ">"])
397− [p=[p=1 q=2] q=[~ [p=~~~3e. q=[p=[p=1 q=2] q=""]]]]
398−
399− > (gar [[1 1] "=>"])
400− [p=[p=1 q=1] q=~]
401```
278```
402
279
403---
280---
@@ -411,20 +288,14 @@ Parses ASCII character 35, the number sign.
411#### Source
288#### Source
412
289
413```hoon
290```hoon
414− ++ hax (just '#')
291+++ hax (just '#')
415```
292```
416
293
417#### Examples
294#### Examples
418
295
419```
296```
420− > (scan "#" hax)
297+> (scan "#" hax)
421− '#'
298+'#'
422−
423− > (hax [[1 1] "#"])
424− [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q=""]]]]
425−
426− > (hax [[1 1] "#!"])
427− [p=[p=1 q=2] q=[~ [p=~~~23. q=[p=[p=1 q=2] q="!"]]]]
428```
299```
429
300
430---
301---
@@ -438,20 +309,14 @@ Parses ASCII character 45, the hyphen.
438#### Source
309#### Source
439
310
440```hoon
311```hoon
441− ++ hep (just '-')
312+++ hep (just '-')
442```
313```
443
314
444#### Examples
315#### Examples
445
316
446```
317```
447− > (scan "-" hep)
318+> (scan "-" hep)
448− '-'
319+'-'
449−
450− > (hep [[1 1] "-"])
451− [p=[p=1 q=2] q=[~ [p=~~- q=[p=[p=1 q=2] q=""]]]]
452−
453− > (hep [[1 1] ":-"])
454− [p=[p=1 q=1] q=~]
455```
320```
456
321
457---
322---
@@ -460,27 +325,21 @@ Parses ASCII character 45, the hyphen.
460
325
461Parse left curley bracket
326Parse left curley bracket
462
327
463−Parses ASCII character 123, the left curly bracket. Note that `{`
328+Parses ASCII character 123, the left curly bracket. Note that `{` (`kel`) opens
464−(`kel`) and `}` (`ker`) open and close a Hoon expression for Hoon string
329+a Hoon expression for Hoon string interpolation. To parse it, therefore, it must
465−interpolation. To parse either of them, they must be escaped.
330+be escaped.
466
331
467#### Source
332#### Source
468
333
469```hoon
334```hoon
470− ++ kel (just '{')
335+++ kel (just '{')
471```
336```
472
337
473#### Examples
338#### Examples
474
339
475```
340```
476− > (scan "\{" kel)
341+> (scan "\{" kel)
477− '{'
342+'{'
478−
479− > (kel [[1 1] "\{"])
480− [p=[p=1 q=2] q=[~ [p=~~~7b. q=[p=[p=1 q=2] q=""]]]]
481−
482− > (kel [[1 1] " \{"])
483− [p=[p=1 q=1] q=~]
484```
343```
485
344
486---
345---
@@ -489,27 +348,19 @@ interpolation. To parse either of them, they must be escaped.
489
348
490Parse right curley bracket
349Parse right curley bracket
491
350
492−Parses ASCII character 125, the right curly bracket. Note that `{`
351+Parses ASCII character 125, the right curly bracket.
493−(`kel`) and `}` (`ker`) open and close a Hoon expression for Hoon string
494−interpolation. To parse either of them, they must be escaped.
495
352
496#### Source
353#### Source
497
354
498```hoon
355```hoon
499− ++ ker (just '}')
356+++ ker (just '}')
500```
357```
501
358
502#### Examples
359#### Examples
503
360
504```
361```
505− > (scan "}" ker)
362+> (scan "}" ker)
506− '}'
363+'}'
507−
508− > (ker [[1 1] "}"])
509− [p=[p=1 q=2] q=[~ [p=~~~7d. q=[p=[p=1 q=2] q=""]]]]
510−
511− > (ker [[1 1] "\{}"])
512− [p=[p=1 q=1] q=~]
513```
364```
514
365
515---
366---
@@ -523,20 +374,14 @@ Parses ASCII character 94, the caret.
523#### Source
374#### Source
524
375
525```hoon
376```hoon
526− ++ ket (just '^')
377+++ ket (just '^')
527```
378```
528
379
529#### Examples
380#### Examples
530
381
531```
382```
532− > (scan "^" ket)
383+> (scan "^" ket)
533− '^'
384+'^'
534−
535− > (ket [[1 1] "^"])
536− [p=[p=1 q=2] q=[~ [p=~~~5e. q=[p=[p=1 q=2] q=""]]]]
537−
538− > (ket [[1 1] ".^"])
539− [p=[p=1 q=1] q=~]
540```
385```
541
386
542---
387---
@@ -550,115 +395,82 @@ Parses ASCII character 43, the plus sign.
550#### Source
395#### Source
551
396
552```hoon
397```hoon
553− ++ lus (just '+')
398+++ lus (just '+')
554```
399```
555
400
556#### Examples
401#### Examples
557
402
558```
403```
559− > (scan "+" lus)
404+> (scan "+" lus)
560− ~~~2b.
561−
562− > `cord`(scan "+" lus)
563− '+'
405+'+'
564−
565− > (lus [[1 1] "+"])
566− [p=[p=1 q=2] q=[~ [p=~~~2b. q=[p=[p=1 q=2] q=""]]]]
567−
568− > (lus [[1 1] ".+"])
569− [p=[p=1 q=1] q=~]
570```
406```
571
407
572---
408---
573
409
574−## `++pam`
410+## `++mic`
575
411
576−Parse ampersand
412+Parse semicolon
577
413
578−Parses ASCII character 38, the ampersand.
414+Parses ASCII character 59, the semicolon.
579
415
580#### Source
416#### Source
581
417
582```hoon
418```hoon
583− ++ pam (just '&')
419+++ mic (just ';')
584```
420```
585
421
586#### Examples
422#### Examples
587
423
588```
424```
589− > (scan "&" pam)
425+> (scan ";" mic)
590− ~~~26.
591−
592− > `cord`(scan "&" pam)
593− '&'
426+';'
594−
595− > (pam [[1 1] "&"])
596− [p=[p=1 q=2] q=[~ [p=~~~26. q=[p=[p=1 q=2] q=""]]]]
597−
598− > (pam [[1 1] "?&"])
599− [p=[p=1 q=1] q=~]
600```
427```
601
428
602---
429---
603
430
604−## `++pat`
431+## `++pal`
605
432
606−Parse "at" sign
433+Parse left parenthesis
607
434
608−Parses ASCII character 64, the "at" sign.
435+Parses ASCII character 40, the left parenthesis.
609
436
610#### Source
437#### Source
611
438
612```hoon
439```hoon
613− ++ pat (just '@')
440+++ pal (just '(')
614```
441```
615
442
616#### Examples
443#### Examples
617
444
618```
445```
619− > (scan "@" pat)
446+> (scan "(" pal)
620− ~~~4.
621−
622− > `cord`(scan "@" pat)
623− '@'
447+'('
624−
625− > (pat [[1 1] "@"])
626− [p=[p=1 q=2] q=[~ [p=~~~4. q=[p=[p=1 q=2] q=""]]]]
627−
628− > (pat [[1 1] "?@"])
629− [p=[p=1 q=1] q=~]
630```
448```
631
449
632---
450---
633
451
634−## `++pel`
452+## `++pam`
635
453
636−Parse left parenthesis
454+Parse ampersand
637
455
638−Parses ASCII character 40, the left parenthesis.
456+Parses ASCII character 38, the ampersand.
639
457
640#### Source
458#### Source
641
459
642```hoon
460```hoon
643− ++ pel (just '(')
461+++ pam (just '&')
644```
462```
645
463
646#### Examples
464#### Examples
647
465
648```
466```
649− > (scan "(" pel)
467+> (scan "&" pam)
650− '('
468+'&'
651−
652− > (pel [[1 1] "("])
653− [p=[p=1 q=2] q=[~ [p=~~~28. q=[p=[p=1 q=2] q=""]]]]
654−
655− > (pel [[1 1] ";("])
656− [p=[p=1 q=1] q=~]
657```
469```
658
470
659---
471---
660
472
661−## `++per`
473+## `++par`
662
474
663Parse right parenthesis
475Parse right parenthesis
664
476
@@ -667,74 +479,56 @@ Parses ASCII character 41, the right parenthesis.
667#### Source
479#### Source
668
480
669```hoon
481```hoon
670− ++ per (just ')')
482+++ par (just ')')
671```
483```
672
484
673#### Examples
485#### Examples
674
486
675```
487```
676− > (scan ")" per)
488+> (scan ")" par)
677− ')'
489+')'
678−
679− > (per [[1 1] ")"])
680− [p=[p=1 q=2] q=[~ [p=~~~29. q=[p=[p=1 q=2] q=""]]]]
681−
682− > (per [[1 1] " )"])
683− [p=[p=1 q=1] q=~]
684```
490```
685
491
686---
492---
687
493
688−## `++sel`
494+## `++pat`
689
495
690−Parse left square bracket
496+Parse "at" sign
691
497
692−Parses ASCII character 91, the left square bracket.
498+Parses ASCII character 64, the "at" sign.
693
499
694#### Source
500#### Source
695
501
696```hoon
502```hoon
697− ++ sel (just '[')
503+++ pat (just '@')
698```
504```
699
505
700#### Examples
506#### Examples
701
507
702```
508```
703− > (scan "[" sel)
509+> (scan "@" pat)
704− '['
510+'@'
705−
706− > (sel [[1 1] "["])
707− [p=[p=1 q=2] q=[~ [p=~~~5b. q=[p=[p=1 q=2] q=""]]]]
708−
709− > (sel [[1 1] "-["])
710− [p=[p=1 q=1] q=~]
711```
511```
712
512
713---
513---
714
514
715−## `++sem`
515+## `++sel`
716
516
717−Parse semicolon
517+Parse left square bracket
718
518
719−Parses ASCII character 59, the semicolon.
519+Parses ASCII character 91, the left square bracket.
720
520
721#### Source
521#### Source
722
522
723```hoon
523```hoon
724− ++ sem (just ';')
524+++ sel (just '[')
725```
525```
726
526
727#### Examples
527#### Examples
728
528
729```
529```
730− > (scan ";" sem)
530+> (scan "[" sel)
731− ';'
531+'['
732−
733− > (sem [[1 1] ";"])
734− [p=[p=1 q=2] q=[~ [p=~~~3b. q=[p=[p=1 q=2] q=""]]]]
735−
736− > (sem [[1 1] " ;"])
737− [p=[p=1 q=1] q=~]
738```
532```
739
533
740---
534---
@@ -748,20 +542,14 @@ Parses ASCII character 93, the right square bracket.
748#### Source
542#### Source
749
543
750```hoon
544```hoon
751− ++ ser (just ']')
545+++ ser (just ']')
752```
546```
753
547
754#### Examples
548#### Examples
755
549
756```
550```
757− > (scan "]" ser)
551+> (scan "]" ser)
758− ']'
552+']'
759−
760− > (ser [[1 1] "]"])
761− [p=[p=1 q=2] q=[~ [p=~~~5d. q=[p=[p=1 q=2] q=""]]]]
762−
763− > (ser [[1 1] "[ ]"])
764− [p=[p=1 q=1] q=~]
765```
553```
766
554
767---
555---
@@ -775,20 +563,14 @@ Parses ASCII character 126, the tilde.
775#### Source
563#### Source
776
564
777```hoon
565```hoon
778− ++ sig (just '~')
566+++ sig (just '~')
779```
567```
780
568
781#### Examples
569#### Examples
782
570
783```
571```
784− > (scan "~" sig)
572+> (scan "~" sig)
785− '~'
573+'~'
786−
787− > (sig [[1 1] "~"])
788− [p=[p=1 q=2] q=[~ [p=~~~~ q=[p=[p=1 q=2] q=""]]]]
789−
790− > (sig [[1 1] "?~"])
791− [p=[p=1 q=1] q=~]
792```
574```
793
575
794---
576---
@@ -797,26 +579,20 @@ Parses ASCII character 126, the tilde.
797
579
798Parse single quote
580Parse single quote
799
581
800−Parses ASCII character 39, soq. Note the extra '' is to escape the first
582+Parses ASCII character 39, soq. Note the `\` in the example is to escape the soq
801−`soq` because soq delimits a `++cord`.
583+because soq delimits a `cord`.
802
584
803#### Source
585#### Source
804
586
805```hoon
587```hoon
806− ++ soq (just '\'')
588+++ soq (just '\'')
807```
589```
808
590
809#### Examples
591#### Examples
810
592
811```
593```
812− > (scan "'" soq)
594+> (scan "'" soq)
813− '\''
595+'\''
814−
815− > (soq [[1 1] "'"])
816− [p=[p=1 q=2] q=[~ [p=~~~27. q=[p=[p=1 q=2] q=""]]]]
817−
818− > (soq [[1 1] ">'"])
819− [p=[p=1 q=1] q=~]
820```
596```
821
597
822---
598---
@@ -830,54 +606,35 @@ Parses ASCII character 42, the asterisk.
830#### Source
606#### Source
831
607
832```hoon
608```hoon
833− ++ tar (just '*')
609+++ tar (just '*')
834```
610```
835
611
836#### Examples
612#### Examples
837
613
838```
614```
839− > (scan "*" tar)
615+> (scan "*" tar)
840− ~~~2a.
841−
842− > `cord`(scan "*" tar)
843− '*'
616+'*'
844−
845− > (tar [[1 1] "*"])
846− [p=[p=1 q=2] q=[~ [p=~~~2a. q=[p=[p=1 q=2] q=""]]]]
847−
848− > (tar [[1 1] ".*"])
849− [p=[p=1 q=1] q=~]
850```
617```
851
618
852---
619---
853
620
854−## `++tec`
621+## `++tic`
855
622
856Parse backtick
623Parse backtick
857
624
858−Parses ASCII character 96, the backtick (also known as the "grave
625+Parses ASCII character 96, the backtick.
859−accent").
860
626
861#### Source
627#### Source
862
628
863```hoon
629```hoon
864− ++ tec (just '`') :: backTiCk
630+++ tic (just '`')
865```
631```
866
632
867#### Examples
633#### Examples
868
634
869```
635```
870− > (scan "`" tec)
636+> (scan "`" tic)
871− ~~~6.
872−
873− > `cord`(scan "`" tec)
874− '`'
637+'`'
875−
876− > (tec [[1 1] "`"])
877− [p=[p=1 q=2] q=[~ [p=~~~6. q=[p=[p=1 q=2] q=""]]]]
878−
879− > (tec [[1 1] " `"])
880− [p=[p=1 q=1] q=~]
881```
638```
882
639
883---
640---
@@ -891,20 +648,14 @@ Parses ASCII character 61, the equals sign.
891#### Source
648#### Source
892
649
893```hoon
650```hoon
894− ++ tis (just '=')
651+++ tis (just '=')
895```
652```
896
653
897#### Examples
654#### Examples
898
655
899```
656```
900− > (scan "=" tis)
657+> (scan "=" tis)
901− '='
658+'='
902−
903− > (tis [[1 1] "="])
904− [p=[p=1 q=2] q=[~ [p=~~~3d. q=[p=[p=1 q=2] q=""]]]]
905−
906− > (tis [[1 1] "|="])
907− [p=[p=1 q=1] q=~]
908```
659```
909
660
910---
661---
@@ -918,20 +669,14 @@ Parses ASCII character 63, the question mark.
918#### Source
669#### Source
919
670
920```hoon
671```hoon
921− ++ wut (just '?')
672+++ wut (just '?')
922```
673```
923
674
924#### Examples
675#### Examples
925
676
926```
677```
927− > (scan "?" wut)
678+> (scan "?" wut)
928− '?'
679+'?'
929−
930− > (wut [[1 1] "?"])
931− [p=[p=1 q=2] q=[~ [p=~~~3f. q=[p=[p=1 q=2] q=""]]]]
932−
933− > (wut [[1 1] ".?"])
934− [p=[p=1 q=1] q=~]
935```
680```
936
681
937---
682---
@@ -945,20 +690,14 @@ Parses ASCII character 33, the exclamation point zap.
945#### Source
690#### Source
946
691
947```hoon
692```hoon
948− ++ zap (just '!')
693+++ zap (just '!')
949```
694```
950
695
951#### Examples
696#### Examples
952
697
953```
698```
954− > (scan "!" zap)
699+> (scan "!" zap)
955− '!'
700+'!'
956−
957− > (zap [[1 1] "!"])
958− [p=[p=1 q=2] q=[~ [p=~~~21. q=[p=[p=1 q=2] q=""]]]]
959−
960− > (zap [[1 1] "?!"])
961− [p=[p=1 q=1] q=~]
962```
701```
963
702
964---
703---
content/docs/hoon/reference/stdlib/4i.md+422−388
@@ -13,20 +13,20 @@ Parse alphabetic characters, both upper and lowercase.
13#### Source
13#### Source
14
14
15```hoon
15```hoon
16− ++ alf ;~(pose low hig) :: alphabetic
16+++ alf ;~(pose low hig)
17```
17```
18
18
19#### Examples
19#### Examples
20
20
21```
21```
22− > (scan "a" alf)
22+> (scan "a" alf)
23− ~~a
23+'a'
24
24
25− > (scan "A" alf)
25+> (scan "A" alf)
26− ~~~41.
26+'A'
27
27
28− > (scan "AaBbCc" (star alf))
28+> `tape`(scan "AaBbCc" (star alf))
29− "AaBbCc"
29+"AaBbCc"
30```
30```
31
31
32---
32---
@@ -40,20 +40,17 @@ Parse alphanumeric characters - both alphabetic characters and numbers.
40#### Source
40#### Source
41
41
42```hoon
42```hoon
43− ++ aln ;~(pose low hig nud) :: alphanumeric
43+++ aln ;~(pose low hig nud)
44```
44```
45
45
46#### Examples
46#### Examples
47
47
48```
48```
49− > (scan "0" aln)
49+> (scan "0" aln)
50− ~~0
50+'0'
51
51
52− > (scan "alf42" (star aln))
52+> `tape`(scan "alf42" (star aln))
53− "alf42"
53+"alf42"
54−
55− > (scan "0123456789abcdef" (star aln))
56− "0123456789abcdef"
57```
54```
58
55
59---
56---
@@ -67,20 +64,20 @@ Parse alphanumeric strings and hep, "-".
67#### Source
64#### Source
68
65
69```hoon
66```hoon
70− ++ alp ;~(pose low hig nud hep) :: alphanumeric and -
67+++ alp ;~(pose low hig nud hep)
71```
68```
72
69
73#### Examples
70#### Examples
74
71
75```
72```
76− > (scan "7" alp)
73+> (scan "7" alp)
77− ~~7
74+'7'
78
75
79− > (scan "s" alp)
76+> (scan "s" alp)
80− ~~s
77+'s'
81
78
82− > (scan "123abc-" (star alp))
79+> `tape`(scan "123abc-" (star alp))
83− "123abc-"
80+"123abc-"
84```
81```
85
82
86---
83---
@@ -94,17 +91,17 @@ Parse the hep and lus axis syntax.
94#### Source
91#### Source
95
92
96```hoon
93```hoon
97− ++ bet ;~(pose (cold 2 hep) (cold 3 lus)) :: axis syntax - +
94+++ bet ;~(pose (cold 2 hep) (cold 3 lus))
98```
95```
99
96
100#### Examples
97#### Examples
101
98
102```
99```
103− > (scan "-" bet)
100+> (scan "-" bet)
104− 2
101+2
105
102
106− > (scan "+" bet)
103+> (scan "+" bet)
107− 3
104+3
108```
105```
109
106
110---
107---
@@ -118,23 +115,23 @@ Parse a tape of binary (0s and 1s) and produce its atomic representation.
118#### Source
115#### Source
119
116
120```hoon
117```hoon
121− ++ bin (bass 2 (most gon but)) :: binary to atom
118+++ bin (bass 2 (most gon but))
122```
119```
123
120
124#### Examples
121#### Examples
125
122
126```
123```
127− > (scan "0000" bin)
124+> (scan "0000" bin)
128− 0
125+0
129
126
130− > (scan "0001" bin)
127+> (scan "0001" bin)
131− 1
128+1
132
129
133− > (scan "0010" bin)
130+> (scan "0010" bin)
134− 2
131+2
135
132
136− > (scan "100000001111" bin)
133+> (scan "100000001111" bin)
137− 2.063
134+2.063
138```
135```
139
136
140---
137---
@@ -148,22 +145,25 @@ Parse a single binary digit.
148#### Source
145#### Source
149
146
150```hoon
147```hoon
151− ++ but (cook |=(a=@ (sub a '0')) (shim '0' '1')) :: binary digit
148+++ but (cook |=(a=@ (sub a '0')) (shim '0' '1'))
152```
149```
153
150
154#### Examples
151#### Examples
155
152
156```
153```
157− > (scan "0" but)
154+> (scan "0" but)
158− 0
155+0
156+
159− > (scan "1" but)
157+> (scan "1" but)
160− 1
158+1
159+
161− > (scan "01" but)
160+> (scan "01" but)
162− ! {1 2}
161+! {1 2}
163− ! 'syntax-error'
162+! 'syntax-error'
164− ! exit
163+! exit
164+
165− > (scan "01" (star but))
165+> (scan "01" (star but))
166− ~[0 1]
166+~[0 1]
167```
167```
168
168
169---
169---
@@ -177,22 +177,22 @@ Parse a single octal digit.
177#### Source
177#### Source
178
178
179```hoon
179```hoon
180− ++ cit (cook |=(a=@ (sub a '0')) (shim '0' '7')) :: octal digit
180+++ cit (cook |=(a=@ (sub a '0')) (shim '0' '7'))
181```
181```
182
182
183#### Examples
183#### Examples
184
184
185```
185```
186− > (scan "1" cit)
186+> (scan "1" cit)
187− 1
187+1
188− > (scan "7" cit)
188+> (scan "7" cit)
189− 7
189+7
190− > (scan "8" cit)
190+> (scan "8" cit)
191− ! {1 1}
191+! {1 1}
192− ! 'syntax-error'
192+! 'syntax-error'
193− ! exit
193+! exit
194− > (scan "60" (star cit))
194+> (scan "60" (star cit))
195− ~[6 0]
195+~[6 0]
196```
196```
197
197
198---
198---
@@ -206,20 +206,23 @@ Parse a decimal number to an atom.
206#### Source
206#### Source
207
207
208```hoon
208```hoon
209− ++ dem (bass 10 (most gon dit)) :: decimal to atom
209+++ dem (bass 10 (most gon dit))
210```
210```
211
211
212#### Examples
212#### Examples
213
213
214```
214```
215− > (scan "7" dem)
215+> (scan "7" dem)
216− 7
216+7
217+
217− > (scan "42" dem)
218+> (scan "42" dem)
218− 42
219+42
220+
219− > (scan "150000000" dem)
221+> (scan "150000000" dem)
220− 150.000.000
222+150.000.000
223+
221− > (scan "12456" dem)
224+> (scan "12456" dem)
222− 12.456
225+12.456
223```
226```
224
227
225---
228---
@@ -233,18 +236,20 @@ Parse a single decimal digit.
233#### Source
236#### Source
234
237
235```hoon
238```hoon
236− ++ dit (cook |=(a=@ (sub a '0')) (shim '0' '9')) :: decimal digit
239+++ dit (cook |=(a=@ (sub a '0')) (shim '0' '9'))
237```
240```
238
241
239#### Examples
242#### Examples
240
243
241```
244```
242− > (scan "7" dit)
245+> (scan "7" dit)
243− 7
246+7
247+
244− > (scan "42" (star dit))
248+> (scan "42" (star dit))
245− ~[4 2]
249+~[4 2]
250+
246− > (scan "26000" (star dit))
251+> (scan "26000" (star dit))
247− ~[2 6 0 0 0]
252+~[2 6 0 0 0]
248```
253```
249
254
250---
255---
@@ -258,18 +263,41 @@ Dot followed by an optional gap, used with numbers.
258#### Source
263#### Source
259
264
260```hoon
265```hoon
261− ++ dog ;~(plug dot gay) ::
266+++ dog ;~(plug dot gay)
267+```
268+
269+#### Examples
270+
271+```
272+> (scan "." dog)
273+['.' ~]
274+
275+> (scan "a. " ;~(pfix alf dog))
276+['.' ~]
277+```
278+
279+---
280+
281+## `++dof`
282+
283+`-` optional gap
284+
285+Hep followed by an optional gap, used with `@p` & `@q` syntax.
286+
287+#### Source
288+
289+```hoon
290+++ dof ;~(plug hep gay)
262```
291```
263
292
264#### Examples
293#### Examples
265
294
266```
295```
267− > 1.234.703
296+> (scan "-" dof)
268− 703
297+['-' ~]
269− 1.234.703
270
298
271− > (scan "a. " ;~(pfix alf dog))
299+> (scan "- " dof)
272− [~~~. ~]
300+['-' ~]
273```
301```
274
302
275---
303---
@@ -283,21 +311,17 @@ Phonetic base phrase separator
283#### Source
311#### Source
284
312
285```hoon
313```hoon
286− ++ doh ;~(plug ;~(plug hep hep) gay) ::
314+++ doh ;~(plug ;~(plug hep hep) gay)
287```
315```
288
316
289#### Examples
317#### Examples
290
318
291```
319```
292− /> ~nopfel-botduc-nilnev-dolfyn--haspub-natlun-lodmur-holtyd
293− ~nopfel-botduc-nilnev-dolfyn--haspub-natlun-lodmur-holtyd
294− /> ~nopfel-botduc-nilnev-dolfyn--
295− haspub-natlun-lodmur-holtyd
296− ~nopfel-botduc-nilnev-dolfyn--haspub-natlun-lodmur-holtyd
297− > (scan "--" doh)
320+> (scan "--" doh)
298− [[~~- ~~-] ~]
321+[['-' '-'] ~]
322+
299− > (scan "-- " doh)
323+> (scan "-- " doh)
300− [[~~- ~~-] ~]
324+[['-' '-'] ~]
301```
325```
302
326
303---
327---
@@ -311,16 +335,14 @@ Parse phep, `--`, to null, `~`.
311#### Source
335#### Source
312
336
313```hoon
337```hoon
314− ++ dun (cold ~ ;~(plug hep hep)) :: -- (phep) to ~
338+++ dun (cold ~ ;~(plug hep hep))
315```
339```
316
340
317#### Examples
341#### Examples
318
342
319```
343```
320− > (scan "--" dun)
344+> (scan "--" dun)
321− ~
345+~
322− > (dun [[1 1] "--"])
323− [p=[p=1 q=3] q=[~ u=[p=~ q=[p=[p=1 q=3] q=""]]]]
324```
346```
325
347
326---
348---
@@ -334,16 +356,14 @@ Parse stet, `==`, to null `~`.
334#### Source
356#### Source
335
357
336```hoon
358```hoon
337− ++ duz (cold ~ ;~(plug tis tis)) :: == (stet) to ~
359+++ duz (cold ~ ;~(plug tis tis))
338```
360```
339
361
340#### Examples
362#### Examples
341
363
342```
364```
343− > (scan "==" duz)
365+> (scan "==" duz)
344− ~
366+~
345− > (duz [[1 1] "== |=..."])
346− [p=[p=1 q=3] q=[~ u=[p=~ q=[p=[p=1 q=3] q=" |=..."]]]]
347```
367```
348
368
349---
369---
@@ -357,30 +377,14 @@ Whitespace component, either newline or space.
357#### Source
377#### Source
358
378
359```hoon
379```hoon
360− ++ gah (mask [`@`10 ' ' ~]) :: newline or ace
380+++ gah (mask [`@`10 ' ' ~])
361```
381```
362
382
363#### Examples
383#### Examples
364
384
365```
385```
366− /> ^- * :: show spaces
367− """
368− -
369− -
370− -
371− """
372− [32 32 32 45 10 32 45 10 32 32 45 0]
373− /> ^- *
374− """
375−
376− """
377− [32 32 32 10 32 10 32 32 0]
378− /> ^- (list ,@)
379− %- scan :_ (star gah)
386+> `tape`(scan " \0a \0a" (star gah))
380− """
387+" \0a \0a"
381−
382− """
383− ~[32 32 32 10 32 10 32 32]
384```
388```
385
389
386---
390---
@@ -394,7 +398,17 @@ Separates tall runes
394#### Source
398#### Source
395
399
396```hoon
400```hoon
397− ++ gap (cold ~ ;~(plug gaq (star ;~(pose vul gah)))) :: plural whitespace
401+++ gap (cold ~ ;~(plug gaq (star ;~(pose vul gah))))
402+```
403+
404+#### Examples
405+
406+```
407+> `tape`(scan " \0a \0a" gap)
408+""
409+
410+> (scan "\0a \0a XYZ" ;~(pfix gap (jest 'XYZ')))
411+'XYZ'
398```
412```
399
413
400---
414---
@@ -408,11 +422,21 @@ Two spaces, a newline, or comment.
408#### Source
422#### Source
409
423
410```hoon
424```hoon
411− ++ gaq ;~ pose :: end of line
425+++ gaq ;~ pose
412− (just `@`10)
426+ (just `@`10)
413− ;~(plug gah ;~(pose gah vul))
427+ ;~(plug gah ;~(pose gah vul))
414− vul
428+ vul
415− ==
429+ ==
430+```
431+
432+#### Examples
433+
434+```
435+> (scan "123\0a" ;~(sfix dem gaq))
436+123
437+
438+> (scan "123 :: foo\0a" ;~(sfix dem gaq))
439+123
416```
440```
417
441
418---
442---
@@ -426,7 +450,20 @@ Terran whitespace.
426#### Source
450#### Source
427
451
428```hoon
452```hoon
429− ++ gaw (cold ~ (star ;~(pose vul gah))) :: classic white
453+++ gaw (cold ~ (star ;~(pose vul gah)))
454+```
455+
456+#### Examples
457+
458+```
459+> (scan " \0a :: foo \0a" gaw)
460+~
461+
462+> (scan " " gaw)
463+~
464+
465+> (scan "\0a" gaw)
466+~
430```
467```
431
468
432---
469---
@@ -440,7 +477,23 @@ Optional gap.
440#### Source
477#### Source
441
478
442```hoon
479```hoon
443− ++ gay ;~(pose gap (easy ~)) ::
480+++ gay ;~(pose gap (easy ~))
481+```
482+
483+#### Examples
484+
485+```
486+> (scan " " gay)
487+~
488+
489+> (scan " " gay)
490+~
491+
492+> (scan "\0a" gay)
493+~
494+
495+> (scan "" gay)
496+~
444```
497```
445
498
446---
499---
@@ -454,17 +507,18 @@ Parse long numbers - Numbers which wrap around the shell with the line
454#### Source
507#### Source
455
508
456```hoon
509```hoon
457− ++ gon ;~(pose ;~(plug bas gay fas) (easy ~)) :: long numbers \ /
510+++ gon ;~(pose ;~(plug bas gay fas) (easy ~))
458```
511```
459
512
460#### Examples
513#### Examples
461
514
462```
515```
463− > (scan "\\/" gon)
516+> 'abc\
464− [~~~5c. ~ ~~~2f.]
517+ /def'
518+'abcdef'
465
519
466− > (gon [[1 1] "\\/"])
520+> (scan "\\\0a/" gon)
467− [p=[p=1 q=3] q=[~ u=[p=[~~~5c. ~ ~~~2f.] q=[p=[p=1 q=3] q=""]]]]
521+['\\' ~ '/']
468```
522```
469
523
470---
524---
@@ -478,17 +532,17 @@ Parse the axis gal and gar axis syntax.
478#### Source
532#### Source
479
533
480```hoon
534```hoon
481− ++ gul ;~(pose (cold 2 gal) (cold 3 gar)) :: axis syntax < >
535+++ gul ;~(pose (cold 2 gal) (cold 3 gar))
482```
536```
483
537
484#### Examples
538#### Examples
485
539
486```
540```
487− > (scan "<" gul)
541+> (scan "<" gul)
488− 2
542+2
489
543
490− > (scan ">" gul)
544+> (scan ">" gul)
491− 3
545+3
492```
546```
493
547
494---
548---
@@ -502,26 +556,32 @@ Parse any hexadecimal number to an atom.
502#### Source
556#### Source
503
557
504```hoon
558```hoon
505− ++ hex (bass 16 (most gon hit)) :: hex to atom
559+++ hex (bass 16 (most gon hit))
506```
560```
507
561
508#### Examples
562#### Examples
509
563
510```
564```
511− > (scan "a" hex)
565+> (scan "a" hex)
512− 10
566+10
567+
513− > (scan "A" hex)
568+> (scan "A" hex)
514− 10
569+10
570+
515− > (scan "2A" hex)
571+> (scan "2A" hex)
516− 42
572+42
573+
517− > (scan "1ee7" hex)
574+> (scan "1ee7" hex)
518− 7.911
575+7.911
576+
519− > (scan "1EE7" hex)
577+> (scan "1EE7" hex)
520− 7.911
578+7.911
579+
521− > (scan "1EE7F7" hex)
580+> (scan "1EE7F7" hex)
522− 2.025.463
581+2.025.463
582+
523− > `@ux`(scan "1EE7F7" hex)
583+> `@ux`(scan "1EE7F7" hex)
524− 0x1e.e7f7
584+0x1e.e7f7
525```
585```
526
586
527---
587---
@@ -535,23 +595,17 @@ Parse a single uppercase letter.
535#### Source
595#### Source
536
596
537```hoon
597```hoon
538− ++ hig (shim 'A' 'Z') :: uppercase
598+++ hig (shim 'A' 'Z')
539```
599```
540
600
541#### Examples
601#### Examples
542
602
543```
603```
544− > (scan "G" hig)
604+> (scan "G" hig)
545− ~~~47.
605+'G'
546
606
547− > `cord`(scan "G" hig)
548− 'G'
549−
550− > (scan "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (star hig))
607+> (scan "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (star hig))
551− "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
608+"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
552−
553− > (hig [[1 1] "G"])
554− [p=[p=1 q=2] q=[~ [p=~~~47. q=[p=[p=1 q=2] q=""]]]]
555```
609```
556
610
557---
611---
@@ -565,24 +619,24 @@ Parse a single hexadecimal digit.
565#### Source
619#### Source
566
620
567```hoon
621```hoon
568− ++ hit ;~ pose :: hex digits
622+++ hit ;~ pose
569− dit
623+ dit
570− (cook |=(a=char (sub a 87)) (shim 'a' 'f'))
624+ (cook |=(a=char (sub a 87)) (shim 'a' 'f'))
571− (cook |=(a=char (sub a 55)) (shim 'A' 'F'))
625+ (cook |=(a=char (sub a 55)) (shim 'A' 'F'))
572− ==
626+ ==
573```
627```
574
628
575#### Examples
629#### Examples
576
630
577```
631```
578− > (scan "a" hit)
632+> (scan "a" hit)
579− 10
633+10
634+
580− > (scan "A" hit)
635+> (scan "A" hit)
581− 10
636+10
582− > (hit [[1 1] "a"])
637+
583− [p=[p=1 q=2] q=[~ [p=10 q=[p=[p=1 q=2] q=""]]]]
584− > (scan "2A" (star hit))
638+> (scan "2A" (star hit))
585− ~[2 10]
639+~[2 10]
586```
640```
587
641
588---
642---
@@ -591,59 +645,56 @@ Parse a single hexadecimal digit.
591
645
592Indentation block
646Indentation block
593
647
594−Apply `++rule` to indented block starting at current column number, omitting
648+Apply `rule` to indented block starting at current column number, omitting
595the leading whitespace.
649the leading whitespace.
596
650
597#### Accepts
651#### Accepts
598
652
599−`sef` is a `++rule`
653+`sef` is a `rule`
600
654
601#### Produces
655#### Produces
602
656
603−A `++rule`.
657+A `rule`.
604
658
605#### Source
659#### Source
606
660
607```hoon
661```hoon
662+++ iny
608− ++ inde |* sef/rule :: indentation block
663+ |* sef=rule
609− |= nail ^+ (sef)
664+ |= nail ^+ (sef)
610− =+ [har tap]=[p q]:+<
665+ =+ [har tap]=[p q]:+<
611− =+ lev=(fil 3 (dec q.har) ' ')
666+ =+ lev=(fil 3 (dec q.har) ' ')
612− =+ eol=(just `@t`10)
667+ =+ eol=(just `@t`10)
613− =+ =- roq=((star ;~(pose prn ;~(sfix eol (jest lev)) -)) har tap)
668+ =+ =- roq=((star ;~(pose prn ;~(sfix eol (jest lev)) -)) har tap)
614− ;~(simu ;~(plug eol eol) eol)
669+ ;~(simu ;~(plug eol eol) eol)
615− ?~ q.roq roq
670+ ?~ q.roq roq
616− =+ vex=(sef har(q 1) p.u.q.roq)
671+ =+ vex=(sef har(q 1) p.u.q.roq)
617− =+ fur=p.vex(q (add (dec q.har) q.p.vex))
672+ =+ fur=p.vex(q (add (dec q.har) q.p.vex))
618− ?~ q.vex vex(p fur)
673+ ?~ q.vex vex(p fur)
619− =- vex(p fur, u.q -)
674+ =- vex(p fur, u.q -)
620− :+ &3.vex
675+ :+ &3.vex
621− &4.vex(q.p (add (dec q.har) q.p.&4.vex))
676+ &4.vex(q.p (add (dec q.har) q.p.&4.vex))
622− =+ res=|4.vex
677+ =+ res=|4.vex
623− |- ?~ res |4.roq
678+ |- ?~ res |4.roq
624− ?. =(10 -.res) [-.res $(res +.res)]
679+ ?. =(10 -.res) [-.res $(res +.res)]
625− (welp [`@t`10 (trip lev)] $(res +.res))
680+ (welp [`@t`10 (trip lev)] $(res +.res))
626− ::
627```
681```
628
682
629#### Examples
683#### Examples
630
684
631```
685```
632− > (scan "abc" (iny (star ;~(pose prn (just `@`10)))))
633− "abc"
634− > (scan "abc" (star ;~(pose prn (just `@`10))))
635− "abc"
636− > (scan " abc\0ade" ;~(pfix ace ace (star ;~(pose prn (just `@`10)))))
637− "abc
638− de"
639− > (scan " abc\0ade" ;~(pfix ace ace (iny (star ;~(pose prn (just `@`10))))))
686+> `tape`(scan " foo\0a bar" ;~(pfix ace ace ace (iny (star ;~(pose prn (just '\0a'))))))
640− ! {1 6}
687+"foo\0abar"
641− ! exit
642− > (scan " abc\0a de" ;~(pfix ace ace (iny (star ;~(pose prn (just `@`10))))))
643− "abc
644− de"
645```
688```
646
689
690+#### Discussion
691+
692+Note the amount of indentation whitespace to be stripped from the beginning of
693+each line is determined by the value of `q` (the column) in the `hair` when
694+`++iny` is first called. This means something like the `pfix` expression in the
695+example above is necessary to set the level of indentation. Additionally, the
696+`rule` given to `++iny` must consume the whole line including the line ending.
697+
647---
698---
648
699
649## `++low`
700## `++low`
@@ -655,20 +706,14 @@ Parse a single lowercase letter.
655#### Source
706#### Source
656
707
657```hoon
708```hoon
658− ++ low (shim 'a' 'z') :: lowercase
709+++ low (shim 'a' 'z')
659```
710```
660
711
661#### Examples
712#### Examples
662
713
663```
714```
664− > (scan "g" low)
665− ~~g
666− > `cord`(scan "g" low)
715+> (scan "g" low)
667− 'g'
716+'g'
668− > (scan "abcdefghijklmnopqrstuvwxyz" (star low))
669− "abcdefghijklmnopqrstuvwxyz"
670− > (low [[1 1] "g"])
671− [p=[p=1 q=2] q=[~ [p=~~g q=[p=[p=1 q=2] q=""]]]]
672```
717```
673
718
674---
719---
@@ -682,44 +727,40 @@ Parse a hexbyte.
682#### Source
727#### Source
683
728
684```hoon
729```hoon
685− ++ mes %+ cook :: hexbyte
730+++ mes %+ cook
686− |=({a/@ b/@} (add (mul 16 a) b))
731+ |=({a/@ b/@} (add (mul 16 a) b))
687− ;~(plug hit hit)
732+ ;~(plug hit hit)
688```
733```
689
734
690#### Examples
735#### Examples
691
736
692```
737```
693− > (scan "2A" mes)
738+> (scan "2A" mes)
694− 42
739+42
695− > (mes [[1 1] "2A"])
740+
696− [p=[p=1 q=3] q=[~ u=[p=42 q=[p=[p=1 q=3] q=""]]]]
697− > (scan "42" mes)
741+> (scan "42" mes)
698− 66
742+66
699```
743```
700
744
701---
745---
702
746
703## `++nix`
747## `++nix`
704
748
705−Letters and `-`
749+Letters and underscore
706
750
707−Parse Letters and `-`.
751+Parse Letters and `_`.
708
752
709#### Source
753#### Source
710
754
711```hoon
755```hoon
712− ++ nix (boss 256 (star ;~(pose aln cab))) ::
756+++ nix (boss 256 (star ;~(pose aln cab)))
713```
757```
714
758
715#### Examples
759#### Examples
716
760
717```
761```
718− > (scan "as_me" nix)
719− q=435.626.668.897
720−
721− > `@t`(scan "as_me" nix)
762+> `@t`(scan "as_me" nix)
722− 'as_me'
763+'as_me'
723```
764```
724
765
725---
766---
@@ -733,20 +774,17 @@ Parse a numeric character - A number.
733#### Source
774#### Source
734
775
735```hoon
776```hoon
736− ++ nud (shim '0' '9') :: numeric
777+++ nud (shim '0' '9')
737```
778```
738
779
739#### Examples
780#### Examples
740
781
741```
782```
742− > (scan "0" nud)
783+> (scan "0" nud)
743− ~~0
784+'0'
785+
744− > (scan "7" nud)
786+> (scan "7" nud)
745− ~~7
787+'7'
746− > (nud [[1 1] "1"])
747− [p=[p=1 q=2] q=[~ [p=~~1 q=[p=[p=1 q=2] q=""]]]]
748− > (scan "0123456789" (star nud))
749− "0123456789"
750```
788```
751
789
752---
790---
@@ -760,57 +798,51 @@ Parse any printable character.
760#### Source
798#### Source
761
799
762```hoon
800```hoon
763− ++ prn ;~(less (just `@`127) (shim 32 256))
801+++ prn ;~(less (just `@`127) (shim 32 256))
764```
802```
765
803
766#### Examples
804#### Examples
767
805
768```
806```
769− > (scan "h" prn)
807+> (scan "h" prn)
770− ~~h
808+'h'
809+
771− > (scan "!" prn)
810+> (scan "!" prn)
772− ~~~21.
811+'!'
812+
773− > (scan "\01" prn)
813+> (scan "\01" prn)
774− ! {1 1}
814+! {1 1}
775− ! exit
815+! exit
776```
816```
777
817
778---
818---
779
819
780−## `++qit`
820+## `++qat`
781
821
782−Chars in cord
822+Chars in blockcord
783
823
784−Parse an individual character to its cord atom representation.
824+Parse a single character contained in a mult-line cord block.
785
825
786#### Source
826#### Source
787
827
788```hoon
828```hoon
789− ++ qit ;~ pose :: chars in a cord
829+++ qat ;~ pose
790− ;~(less bas soq prn)
830+ prn
791− ;~(pfix bas ;~(pose bas soq mes)) :: escape chars
831+ ;~(less ;~(plug (just `@`10) soz) (just `@`10))
792− ==
832+ ==
793```
833```
794
834
795#### Examples
835#### Examples
796
836
797```
837```
798− > (scan "%" qit)
838+> ^- tape
799− 37
839+ %+ scan
800− > `@t`(scan "%" qit)
840+ "'''\0aabc\0adef\0aghi\0a'''"
801− '%'
841+ %+ ifix
802− > (scan "0" qit)
842+ :- ;~(plug soz (just `@`10))
803− 48
843+ ;~(plug (just `@`10) soz)
804− > (scan "E" qit)
844+ (star qat)
805− 69
845+"abc\0adef\0aghi"
806− > (scan "a" qit)
807− 97
808− > (scan "\\0a" qit)
809− 10
810− > `@ux`(scan "\\0a" qit)
811− 0xa
812− > (scan "cord" (star qit))
813− ~[99 111 114 100]
814```
846```
815
847
816---
848---
@@ -819,36 +851,29 @@ Parse an individual character to its cord atom representation.
819
851
820Chars in cord
852Chars in cord
821
853
822−Parse an individual character to its cord atom representation.
854+Parse an individual character to its cord atom representation. Escaped
855+characters are converted to the value they represent.
823
856
824#### Source
857#### Source
825
858
826```hoon
859```hoon
827− ++ qit ;~ pose :: chars in a cord
860+++ qit ;~ pose :: chars in a cord
828− ;~(less bas soq prn)
861+ ;~(less bas soq prn)
829− ;~(pfix bas ;~(pose bas soq mes)) :: escape chars
862+ ;~(pfix bas ;~(pose bas soq mes)) :: escape chars
830− ==
863+ ==
831```
864```
832
865
833#### Examples
866#### Examples
834
867
835```
868```
836− > (scan "%" qit)
837− 37
838− > `@t`(scan "%" qit)
869+> (scan "%" qit)
839− '%'
870+'%'
840− > (scan "0" qit)
871+
841− 48
872+> `tape`(scan "cord" (star qit))
842− > (scan "E" qit)
873+"cord"
843− 69
874+
844− > (scan "a" qit)
845− 97
846− > (scan "\\0a" qit)
847− 10
848− > `@ux`(scan "\\0a" qit)
849− 0xa
850− > (scan "cord" (star qit))
875+> `tape`(scan "\\0a" (star qit))
851− ~[99 111 114 100]
876+"\0a"
852```
877```
853
878
854---
879---
@@ -863,33 +888,28 @@ quote (aka triple-soq) cord, between which must be in an indented block.
863#### Source
888#### Source
864
889
865```hoon
890```hoon
866− ++ qut ;~ pose :: cord
891+++ qut ;~ simu soq
892+ ;~ pose
867− ;~ less soqs
893+ ;~ less soz
868− (ifix [soq soq] (boss 256 (more gon qit)))
894+ (ifix [soq soq] (boss 256 (more gon qit)))
869− ==
870− %- inde %+ ifix
871− :- ;~ plug soqs
872− ;~(pose ;~(plug (plus ace) vul) (just '\0a'))
873− ==
874− ;~(plug (just '\0a') soqs)
875− (boss 256 (star qat))
876 ==
895 ==
877− ::
896+ =+ hed=;~(pose ;~(plug (plus ace) vul) (just '\0a'))
897+ %- iny %+ ifix
898+ :- ;~(plug soz hed)
899+ ;~(plug (just '\0a') soz)
900+ (boss 256 (star qat))
901+ ==
902+ ==
878```
903```
879
904
880#### Examples
905#### Examples
881
906
882```
907```
883− > (scan "'cord'" qut)
908+> `@t`(scan "'cord'" qut)
884− q=1.685.221.219
885− > 'cord'
909+'cord'
886− 'cord'
910+
887− > `@ud`'cord'
911+> `@t`(scan "'''\0aabc\0adef\0a'''" qut)
888− 1.685.221.219
912+'abc\0adef'
889− > '''
890− Heredoc isn't prohibited from containing quotes
891− '''
892− 'Heredoc isn't prohibited from containing quotes'
893```
913```
894
914
895---
915---
@@ -903,17 +923,14 @@ Parse a triple-single quote, used for multiline strings.
903#### Source
923#### Source
904
924
905```hoon
925```hoon
906− ++ soz ;~(plug soq soq soq) :: delimiting '''
926+++ soz ;~(plug soq soq soq)
907```
927```
908
928
909#### Examples
929#### Examples
910
930
911```
931```
912− > (scan "'''" soz)
932+> (scan "'''" soz)
913− [~~~27. ~~~27. ~~~27.]
933+['\'' '\'' '\'']
914− > (rash '"""' soz)
915− ! {1 1}
916− ! exit
917```
934```
918
935
919---
936---
@@ -922,27 +939,46 @@ Parse a triple-single quote, used for multiline strings.
922
939
923Term
940Term
924
941
925−A term: a letter(lowercase), followed by letters, numbers, or `-`.
942+A term: a lowercase letter, followed by letters, numbers, or `-`.
926
943
927#### Source
944#### Source
928
945
929```hoon
946```hoon
930− ++ sym
947+++ sym
931− %+ cook
948+ %+ cook
932− |=(a=tape (rap 3 ^-((list ,@) a)))
949+ |=(a=tape (rap 3 ^-((list @) a)))
933− ;~(plug low (star ;~(pose nud low hep)))
950+ ;~(plug low (star ;~(pose nud low hep)))
934− ::
935```
951```
936
952
937#### Examples
953#### Examples
938
954
939```
955```
940− > (scan "sam-2" sym)
956+> `term`(scan "sam-2" sym)
941− 215.510.507.891
957+%sam-2
942− > `@t`(scan "sam-2" sym)
958+```
943− 'sam-2'
959+
944− > (scan "sym" sym)
960+---
945− 7.174.515
961+
962+## `++mixed-case-symbol`
963+
964+Mixed-case term
965+
966+The same as [`++sym`](#sym) but allowing uppercase letters.
967+
968+#### Source
969+
970+```hoon
971+++ mixed-case-symbol
972+ %+ cook
973+ |=(a=tape (rap 3 ^-((list @) a)))
974+ ;~(plug alf (star alp))
975+```
976+
977+#### Examples
978+
979+```
980+> `term`(scan "sAm-2" mixed-case-symbol)
981+%sAm-2
946```
982```
947
983
948---
984---
@@ -956,34 +992,28 @@ Axis syntax parser
956#### Source
992#### Source
957
993
958```hoon
994```hoon
959− ++ ven ;~ (comp |=({a/@ b/@} (peg a b))) :: +>- axis syntax
995+++ ven ;~ (comp |=([a=@ b=@] (peg a b)))
960− bet
996+ bet
961− =+ hom=`?`|
997+ =+ hom=`?`|
962− |= tub/nail
998+ |= tub=nail
963− ^- (like axis)
999+ ^- (like @)
964− =+ vex=?:(hom (bet tub) (gul tub))
1000+ =+ vex=?:(hom (bet tub) (gul tub))
965− ?~ q.vex
1001+ ?~ q.vex
966− [p.tub [~ 1 tub]]
1002+ [p.tub [~ 1 tub]]
967− =+ wag=$(p.tub p.vex, hom !hom, tub q.u.q.vex)
1003+ =+ wag=$(p.tub p.vex, hom !hom, tub q.u.q.vex)
968− ?> ?=(^ q.wag)
1004+ ?> ?=(^ q.wag)
969− [p.wag [~ (peg p.u.q.vex p.u.q.wag) q.u.q.wag]]
1005+ [p.wag [~ (peg p.u.q.vex p.u.q.wag) q.u.q.wag]]
970− ==
1006+ ==
971```
1007```
972
1008
973#### Examples
1009#### Examples
974
1010
975```
1011```
976− ~zod/arvo=/hoon/hoon> (scan "->+" ven)
1012+> (scan "->+" ven)
977− 11
1013+11
978
1014
979− ~zod/arvo=/hoon/hoon> `@ub`(scan "->+" ven)
1015+> (scan "->+<-" ven)
980− 0b1011
1016+44
981−
982− ~zod/arvo=/hoon/hoon> (peg (scan "->" ven) (scan "+" ven))
983− 11
984−
985− ~zod/arvo=/hoon/hoon> ->+:[[1 2 [3 4]] 5]
986− [3 4]
987```
1017```
988
1018
989---
1019---
@@ -997,27 +1027,30 @@ Parse a standard base64 digit.
997#### Source
1027#### Source
998
1028
999```hoon
1029```hoon
1000− ++ vit :: base64 digit
1030+++ vit
1001− ;~ pose
1031+ ;~ pose
1002− (cook |=(a/@ (sub a 65)) (shim 'A' 'Z'))
1032+ (cook |=(a=@ (sub a 65)) (shim 'A' 'Z'))
1003− (cook |=(a/@ (sub a 71)) (shim 'a' 'z'))
1033+ (cook |=(a=@ (sub a 71)) (shim 'a' 'z'))
1004− (cook |=(a/@ (add a 4)) (shim '0' '9'))
1034+ (cook |=(a=@ (add a 4)) (shim '0' '9'))
1005− (cold 62 (just '-'))
1035+ (cold 62 (just '-'))
1006− (cold 63 (just '+'))
1036+ (cold 63 (just '+'))
1007− ==
1037+ ==
1008```
1038```
1009
1039
1010#### Examples
1040#### Examples
1011
1041
1012```
1042```
1013− ~zod/arvo=/hoon/hoon> (scan "C" vit)
1043+> (scan "C" vit)
1014− 2
1044+2
1045+
1015− ~zod/arvo=/hoon/hoon> (scan "c" vit)
1046+> (scan "c" vit)
1016− 28
1047+28
1048+
1017− ~zod/arvo=/hoon/hoon> (scan "2" vit)
1049+> (scan "2" vit)
1018− 54
1050+54
1051+
1019− ~zod/arvo=/hoon/hoon> (scan "-" vit)
1052+> (scan "-" vit)
1020− 62
1053+62
1021```
1054```
1022
1055
1023---
1056---
@@ -1026,27 +1059,28 @@ Parse a standard base64 digit.
1026
1059
1027Comments to null
1060Comments to null
1028
1061
1062+Parse comments and produce a null. Note that a comment must be ended
1063+with a newline character.
1064+
1029#### Source
1065#### Source
1030
1066
1031```hoon
1067```hoon
1032− ++ vul %+ cold ~ :: comments
1068+++ vul %+ cold ~
1033− ;~ plug col col
1069+ ;~ plug col col
1034− (star prn)
1070+ (star prn)
1035− (just `@`10)
1071+ (just `@`10)
1036− ==
1072+ ==
1037```
1073```
1038
1074
1039−Parse comments and produce a null. Note that a comment must be ended
1040−with a newline character.
1041−
1042#### Examples
1075#### Examples
1043
1076
1044```
1077```
1045− > (scan "::this is a comment \0a" vul)
1078+> (scan "::this is a comment \0a" vul)
1046− ~
1079+~
1080+
1047− > (scan "::this is a comment " vul)
1081+> (scan "::this is a comment " vul)
1048− ! {1 21}
1082+! {1 21}
1049− ! exit
1083+! exit
1050```
1084```
1051
1085
1052---
1086---
content/docs/hoon/reference/stdlib/4j.md+773−631
@@ -13,15 +13,15 @@ A core containing numeric parser primitives.
13#### Source
13#### Source
14
14
15```hoon
15```hoon
16− ++ ab
16+++ ab
17− |%
17+ |%
18```
18```
19
19
20#### Examples
20#### Examples
21
21
22```
22```
23− > ab
23+> ab
24− <36.ecc 414.gly 100.xkc 1.ypj %164>
24+<36.ecc 414.gly 100.xkc 1.ypj %164>
25```
25```
26
26
27---
27---
@@ -30,330 +30,381 @@ A core containing numeric parser primitives.
30
30
31Parse hex pair
31Parse hex pair
32
32
33−Parsing `++rule`. Parses a pair of base-16 digits. Used in escapes.
33+Parsing `rule`. Parses a pair of base-16 digits. Used in escapes.
34−
35−#### Accepts
36−
37−XX
38−
39−#### Produces
40−
41−A an atom. XX
42
34
43#### Source
35#### Source
44
36
45```hoon
37```hoon
46− ++ bix (bass 16 (stun [2 2] six))
38+++ bix (bass 16 (stun [2 2] six))
47```
39```
48
40
49#### Examples
41#### Examples
50
42
51```
43```
52− > (scan "07" bix:ab)
44+> (scan "07" bix:ab)
53− q=7
45+7
54− > (scan "51" bix:ab)
46+> (scan "51" bix:ab)
55− q=81
47+81
56− > (scan "a3" bix:ab)
48+> (scan "a3" bix:ab)
57− q=163
49+163
58```
50```
59
51
60---
52---
61
53
62−### `++hif:ab`
54+### `++fem:ab`
63
55
64−Parse phonetic pair
56+Parse base58check char
65
57
66−Parsing `++rule`. Parses an atom of aura `@pE`, a phrase of two bytes
58+Parse a single base58check character.
67−encoded phonetically.
68
59
69−#### Accepts
60+#### Source
70
61
71−XX
62+```hoon
63+++ fem (sear |=(a=@ (cha:fa a)) aln)
64+```
72
65
73−#### Produces
66+#### Examples
74
67
75−An atom.
68+```
69+> (scan "6" fem:ab)
70+5
71+
72+> (scan "Z" fem:ab)
73+32
74+
75+> (scan "j" fem:ab)
76+42
77+```
78+
79+---
80+
81+### `++haf:ab`
82+
83+Parse non-doz phonetic pair
84+
85+Parsing `rule`. Parses an atom of aura `@pE`, a phrase of two bytes encoded
86+phonetically. If the leading syllable is `doz` (`0`), parsing will fail.
76
87
77#### Source
88#### Source
78
89
79```hoon
90```hoon
80− ++ hif (boss 256 ;~(plug tip tiq (easy ~)))
91+++ haf (bass 256 ;~(plug tep tiq (easy ~)))
81```
92```
82
93
83#### Examples
94#### Examples
84
95
85```
96```
86− > (scan "doznec" hif:ab)
97+> `@p`(scan "sampel" haf:ab)
87− q=256
98+~sampel
88− > (scan "pittyp" hif:ab)
99+
89− q=48.626
100+> `@p`(scan "dozpel" haf:ab)
101+{1 4}
102+syntax error
90```
103```
91
104
92---
105---
93
106
94−### `++huf:ab`
107+### `++hef:ab`
95
108
96−Parse two phonetic pairs
109+Parse non-dozzod phonetic pair
97
110
98−Parsing `++rule`. Parses and unscrambles an atom of aura @pF, a phrase
111+Parsing `rule`. Parses an atom of aura `@pE` without leading `~` or `.~`, a
99−of two two-byte pairs that are encoded (and scrambled) phonetically.
112+phrase of two bytes encoded phonetically. If it's `dozzod`, parsing will fail.
100
113
101−#### Accepts
114+#### Source
102
115
103−XX
116+```hoon
117+++ hef %+ sear |=(a=@ ?:(=(a 0) ~ (some a)))
118+ %+ bass 256
119+ ;~(plug tip tiq (easy ~))
120+```
104
121
105−#### Produces
122+#### Examples
123+
124+```
125+> `@p`(scan "sampel" hef:ab)
126+~sampel
127+
128+> `@p`(scan "dozpel" hef:ab)
129+~pel
106
130
107−An atom. XX
131+> `@p`(scan "dozzod" hef:ab)
132+{1 7}
133+syntax error
134+```
135+
136+---
137+
138+### `++hif:ab`
139+
140+Parse phonetic pair
141+
142+Parsing `rule`. Parses an atom of aura `@pE`, without leading `~` or `.~`. A
143+phrase of two bytes encoded phonetically.
108
144
109#### Source
145#### Source
110
146
111```hoon
147```hoon
112− ++ huf %+ cook
148+++ hif (boss 256 ;~(plug tip tiq (easy ~)))
113− |=([a/@ b/@] (wred:un ~(zug mu ~(zag mu [a b]))))
114− ;~(plug hif ;~(pfix hep hif))
115```
149```
116
150
117#### Examples
151#### Examples
118
152
119```
153```
120− > (scan "pittyp-pittyp" huf:ab)
154+> `@p`(scan "doznec" hif:ab)
121− 328.203.557
155+~nec
122− > (scan "tasfyn-partyv" huf:ab)
156+
123− 65.792
157+> `@p`(scan "pittyp" hif:ab)
124− > `@ux`(scan "tasfyn-partyv" huf:ab)
158+~pittyp
125− 0x1.0100
126```
159```
127
160
128---
161---
129
162
130−### `++hyf:ab`
163+### `++hof:ab`
131
164
132−Parse 8 phonetic bytes
165+Parse 2-4 @q phonetic pairs
133
166
134−Parsing `++rule`. Parses an atom of aura @pG, a phrase of eight of
167+Parsing `rule`. Parses an atom of aura `@q` (non-scrambled `@p`), without
135−phonetic bytes.
168+leading `~` or `.~`, of between two and four phrases.
136
169
137−#### Accepts
170+#### Source
138
171
139−An atom of aura `@pG`
172+```hoon
173+++ hof (bass 0x1.0000 ;~(plug hef (stun [1 3] ;~(pfix hep hif))))
174+```
140
175
141−#### Produces
176+#### Example
177+
178+```
179+> `@q`(scan "sampel-palnet" hof:ab)
180+.~sampel-palnet
142
181
143−An atom. XX
182+> `@q`(scan "sampel-sampel-palnet" hof:ab)
183+.~sampel-sampel-palnet
184+
185+> `@q`(scan "sampel-sampel-sampel-palnet" hof:ab)
186+.~sampel-sampel-sampel-palnet
187+```
188+
189+---
190+
191+### `++huf:ab`
192+
193+Parse 1-4 @q phonetic pairs
194+
195+Parsing `rule`. Parses an atom of aura `@q` (non-scrambled `@p`), without
196+leading `~` or `.~`, of between one and four phrases.
144
197
145#### Source
198#### Source
146
199
147```hoon
200```hoon
148− ++ hyf (bass 0x1.0000.0000 ;~(plug huf ;~(pfix hep huf) (easy ~)))
201+++ huf (bass 0x1.0000 ;~(plug hef (stun [0 3] ;~(pfix hep hif))))
149```
202```
150
203
151#### Examples
204#### Examples
152
205
153```
206```
154− > (scan "sondel-forsut-tillyn-nillyt" hyf:ab)
207+> `@q`(scan "sampel" huf:ab)
155− q=365.637.097.828.335.095
208+.~sampel
156− > `@u`~sondel-forsut-tillyn-nillyt
209+
157− 365.637.097.828.335.095
210+> `@q`(scan "sampel-palnet" huf:ab)
211+.~sampel-palnet
212+
213+> `@q`(scan "sampel-sampel-palnet" huf:ab)
214+.~sampel-sampel-palnet
215+
216+> `@q`(scan "sampel-sampel-sampel-palnet" huf:ab)
217+.~sampel-sampel-sampel-palnet
158```
218```
159
219
160---
220---
161
221
162−### `++pev:ab`
222+### `++hyf:ab`
163
223
164−Parse \<= 5 base-32
224+Parse four @q phonetic pairs
165
225
166−Parsing `++rule`. Parses up to five base-32 digits without a leading zero.
226+Parsing `rule`. Parses an atom of aura `@q` (non-scrambled `@p`), without
227+leading `~` or `.~`, of exactly four phrases.
167
228
168−#### Accepts
229+#### Source
169
230
170−Up to five @uv (base 64) digits.
231+```hoon
232+++ hyf (bass 0x1.0000 ;~(plug hif (stun [3 3] ;~(pfix hep hif))))
233+```
171
234
172−#### Produces
235+#### Examples
173
236
174−An atom.
237+```
238+> `@q`(scan "sampel-sampel-sampel-palnet" hyf:ab)
239+.~sampel-sampel-sampel-palnet
240+```
241+
242+---
243+
244+### `++pev:ab`
245+
246+Parse 1-5 @uv base-32 chars
247+
248+Parsing `rule`. Parses one to five `@uv` base-32 digits without the leading `0v`
249+or leading zeros.
175
250
176#### Source
251#### Source
177
252
178```hoon
253```hoon
179− ++ pev (bass 32 ;~(plug sev (stun [0 4] siv)))
254+++ pev (bass 32 ;~(plug sev (stun [0 4] siv)))
180```
255```
181
256
182#### Examples
257#### Examples
183
258
184```
259```
260+> `@uv`(scan "du3ja" pev:ab)
261+0vdu3ja
262+
263+> `@uv`(scan "3ja" pev:ab)
264+0v3ja
265+
185− > (scan "a" pev:ab)
266+> `@uv`(scan "a" pev:ab)
186− q=10
267+0va
187− > (scan "290j" pev:ab)
188− q=74.771
189− > (scan "123456" pev:ab)
190− ! {1 6}
191− ! exit
192− > (scan "090j" pev:ab)
193− ~ <syntax error at [1 11]>
194```
268```
195
269
196---
270---
197
271
198### `++pew:ab`
272### `++pew:ab`
199
273
200−Parse \<= 5 base-64
274+Parse 1-5 @uw base-64 chars
201
275
202−Parsing `++rule`. Parses up to five base-64 digits without a leading zero.
203−
204−#### Accepts
205−
206−Up to five @uw (base 64) digits.
276+Parsing `rule`. Parses one to five `@uw` base-64 digits without the leading `0w`
207−
277+or leading zeros.
208−#### Produces
209
278
210#### Source
279#### Source
211
280
212```hoon
281```hoon
213− ++ pew (bass 64 ;~(plug sew (stun [0 4] siw)))
282+++ pew (bass 64 ;~(plug sew (stun [0 4] siw)))
214```
283```
215
284
216#### Examples
285#### Examples
217
286
218```
287```
219− > (scan "Q" pew:ab)
288+> `@uw`(scan "6U0gP" pew:ab)
220− q=52
289+0w6U0gP
221− > (scan "aQ~9" pew:ab)
290+
222− q=2.838.473
223− > `@`0waQ~9
224− 2.838.473
225− > (scan "123456" pew:ab)
291+> `@uw`(scan "gP" pew:ab)
226− ! {1 6}
292+0wgP
227− ! exit
293+
228− > (scan "012345" pew:ab)
294+> `@uw`(scan "P" pew:ab)
229− ! {1 1}
295+0wP
230− ! exit
231```
296```
232
297
233---
298---
234
299
235### `++piv:ab`
300### `++piv:ab`
236
301
237−Parse 5 base-32
302+Parse 5 @uv base-32 chars
238
303
239−Parsing `++rule`. Parses exactly five base-32 digits.
304+Parsing `rule`. Parses exactly five `@uv` base-32 digits without the leading
240−
305+`0v` or leading zeros.
241−#### Accepts
242−
243−#### Produces
244
306
245#### Source
307#### Source
246
308
247```hoon
309```hoon
248− ++ piv (bass 32 (stun [5 5] siv))
310+++ piv (bass 32 (stun [5 5] siv))
249```
311```
250
312
251#### Examples
313#### Examples
252
314
253```
315```
254− > (scan "10b3l" piv:ab)
316+> `@uv`(scan "du3ja" piv:ab)
255− q=1.059.957
317+0vdu3ja
318+
256− > (scan "1" piv:ab)
319+> `@uv`(scan "u3ja" piv:ab)
257− ! {1 2}
320+{1 5}
258− ! exit
321+syntax error
259```
322```
260
323
261---
324---
262
325
263### `++piw:ab`
326### `++piw:ab`
264
327
265−Parse 5 base-64
328+Parse 5 @uw base-64 chars
266−
267−Parsing `++rule`. Parses exactly five base-64 digits.
268
329
269−#### Accepts
330+Parsing `rule`. Parses exactly five `@uw` base-64 digits without the leading
270−
331+`0w` or leading zeros.
271−#### Produces
272
332
273#### Source
333#### Source
274
334
275```hoon
335```hoon
276− ++ piw (bass 64 (stun [5 5] siw))
336+++ piw (bass 64 (stun [5 5] siw))
277```
337```
278
338
279#### Examples
339#### Examples
280
340
281```
341```
282− > (scan "2C-pZ" piw:ab)
342+> `@uw`(scan "6U0gP" piw:ab)
283− q=43.771.517
343+0w6U0gP
344+
284− > (scan "2" piv:ab)
345+> `@uw`(scan "U0gP" piw:ab)
285− ! {1 2}
346+{1 5}
286− ! exit
347+syntax error
287```
348```
288
349
289---
350---
290
351
291### `++qeb:ab`
352### `++qeb:ab`
292
353
293−Parse \<= 4 binary
354+Parse 1-4 binary digits
294−
295−Parsing `++rule`. Parses a binary number of up to 4 digits in length without
296−a leading zero.
297−
298−#### Accepts
299
355
300−#### Produces
356+Parsing `rule`. Parses a binary number of up to 4 digits in length without a
357+leading zero.
301
358
302#### Source
359#### Source
303
360
304```hoon
361```hoon
305− ++ qeb (bass 2 ;~(plug seb (stun [0 3] sib)))
362+++ qeb (bass 2 ;~(plug seb (stun [0 3] sib)))
306```
363```
307
364
308#### Examples
365#### Examples
309
366
310```
367```
311− > (scan "1" qeb:ab)
368+> `@ub`(scan "1010" qeb:ab)
312− q=1
369+0b1010
313− > (scan "101" qeb:ab)
370+
314− q=5
315− > (scan "1111" qeb:ab)
371+> `@ub`(scan "10" qeb:ab)
316− q=15
372+0b10
373+
317− > (scan "11111" qeb:ab)
374+> `@ub`(scan "1" qeb:ab)
318− ! {1 5}
375+0b1
319− ! exit
376+
320− > (scan "01" qeb:ab)
377+> `@ub`(scan "0" qeb:ab)
321− ! {1 1}
378+{1 1}
322− ! exit
379+syntax error
323```
380```
324
381
325---
382---
326
383
327### `++qex:ab`
384### `++qex:ab`
328
385
329−Parse \<= 4 hex
386+Parse 1-4 hex digits
330−
331−Parsing `++rule`. Parses a hexadecimal number of up to 4 digits in length
332−without a leading zero.
333
387
334−#### Accepts
388+Parsing `rule`. Parses a hexadecimal number of up to 4 digits in length without
335−
389+a leading zero.
336−#### Produces
337
390
338#### Source
391#### Source
339
392
340```hoon
393```hoon
341− ++ qex (bass 16 ;~(plug sex (stun [0 3] hit)))
394+++ qex (bass 16 ;~(plug sex (stun [0 3] hit)))
342```
395```
343
396
344#### Examples
397#### Examples
345
398
346```
399```
347− > (scan "ca" qex:ab)
400+> `@ux`(scan "beef" qex:ab)
348− q=202
401+0xbeef
349− > (scan "18ac" qex:ab)
402+
350− q=6.316
351− > (scan "18acc" qex:ab)
403+> `@ux`(scan "ef" qex:ab)
352− ! {1 5}
404+0xef
353− ! exit
405+
354− > (scan "08ac" qex:ab)
406+> `@ux`(scan "f" qex:ab)
355− ! {1 1}
407+0xf
356− ! exit
357```
408```
358
409
359---
410---
@@ -362,28 +413,26 @@ without a leading zero.
362
413
363Parse 4 binary
414Parse 4 binary
364
415
365−Parsing `++rule`. Parses exactly four binary digits.
416+Parsing `rule`. Parses exactly four binary digits - may have leading zeros.
366−
367−#### Accepts
368−
369−#### Produces
370
417
371#### Source
418#### Source
372
419
373```hoon
420```hoon
374− ++ qib (bass 2 (stun [4 4] sib))
421+++ qib (bass 2 (stun [4 4] sib))
375```
422```
376
423
377#### Examples
424#### Examples
378
425
379```
426```
380− > (scan "0001" qib:ab)
427+> `@ub`(scan "0001" qib:ab)
381− q=1
428+0b1
429+
382− > (scan "0100" qib:ab)
430+> `@ub`(scan "1001" qib:ab)
383− q=4
431+0b1001
432+
384− > (scan "110" qib:ab)
433+> `@ub`(scan "1" qib:ab)
385− ! {1 4}
434+{1 2}
386− ! exit
435+syntax error
387```
436```
388
437
389---
438---
@@ -392,28 +441,26 @@ Parsing `++rule`. Parses exactly four binary digits.
392
441
393Parse 4 hex
442Parse 4 hex
394
443
395−Parsing `++rule`. Parses exactly four hexadecimal digits.
444+Parsing `rule`. Parses exactly four hexadecimal digits - may have leading zeros.
396−
397−#### Accepts
398−
399−#### Produces
400
445
401#### Source
446#### Source
402
447
403```hoon
448```hoon
404− ++ qix (bass 16 (stun [4 4] six))
449+++ qix (bass 16 (stun [4 4] six))
405```
450```
406
451
407#### Examples
452#### Examples
408
453
409```
454```
410− > (scan "0100" qix:ab)
455+> `@ux`(scan "beef" qix:ab)
411− q=256
456+0xbeef
457+
412− > (scan "10ff" qix:ab)
458+> `@ux`(scan "0000" qix:ab)
413− q=4.351
459+0x0
460+
414− > (scan "0" qix:ab)
461+> `@ux`(scan "ef" qix:ab)
415− ! {1 2}
462+{1 3}
416− ! exit
463+syntax error
417```
464```
418
465
419---
466---
@@ -422,29 +469,23 @@ Parsing `++rule`. Parses exactly four hexadecimal digits.
422
469
423Parse 1
470Parse 1
424
471
425−Parsing `++rule`. Parses the number 1.
472+Parsing `rule`. Parses the number 1.
426−
427−#### Accepts
428−
429−#### Produces
430
473
431#### Source
474#### Source
432
475
433```hoon
476```hoon
434− ++ seb (cold 1 (just '1'))
477+++ seb (cold 1 (just '1'))
435```
478```
436
479
437#### Examples
480#### Examples
438
481
439```
482```
440− > (scan "1" seb:ab)
483+> (scan "1" seb:ab)
441− 1
484+1
442− > (scan "0" seb:ab)
485+
443− ! ~zod/try/~2014.10.23..22.34.21..bfdd/:<[1 1].[1 18]>
444− ! {1 1}
445− > (scan "2" seb:ab)
486+> (scan "2" seb:ab)
446− ! ~zod/try/~2014.10.23..22.34.29..d399/:<[1 1].[1 18]>
487+{1 1}
447− ! {1 1}
488+syntax error
448```
489```
449
490
450---
491---
@@ -453,26 +494,23 @@ Parsing `++rule`. Parses the number 1.
453
494
454Parse decimal
495Parse decimal
455
496
456−Parsing `++rule`. Parses a nonzero decimal digit.
497+Parsing `rule`. Parses a nonzero decimal digit.
457−
458−#### Accepts
459−
460−#### Produces
461
498
462#### Source
499#### Source
463
500
464```hoon
501```hoon
465− ++ sed (cook |=(a/@ (sub a '0')) (shim '1' '9'))
502+++ sed (cook |=(a=@ (sub a '0')) (shim '1' '9'))
466```
503```
467
504
468#### Examples
505#### Examples
469
506
470```
507```
471− > (scan "5" sed:ab)
508+> (scan "5" sed:ab)
472− 5
509+5
510+
473− > (scan "0" sed:ab)
511+> (scan "0" sed:ab)
474− ! {1 1}
512+{1 1}
475− ! exit
513+syntax error
476```
514```
477
515
478---
516---
@@ -481,26 +519,26 @@ Parsing `++rule`. Parses a nonzero decimal digit.
481
519
482Parse base-32
520Parse base-32
483
521
484−Parsing `++rule`. Parses a nonzero base-32 digit
522+Parsing `rule`. Parses a nonzero base-32 digit.
485−
486−#### Accepts
487−
488−#### Produces
489
523
490#### Source
524#### Source
491
525
492```hoon
526```hoon
493− ++ sev ;~(pose sed sov)
527+++ sev ;~(pose sed sov)
494```
528```
495
529
496#### Examples
530#### Examples
497
531
498```
532```
499− > (scan "c" sev:ab)
533+> `@uv`(scan "2" sev:ab)
500− 12
534+0v2
535+
536+> `@uv`(scan "j" sev:ab)
537+0vj
538+
501− ~zod/socialnet=> (scan "0" sev:ab)
539+> `@uv`(scan "0" sev:ab)
502− ! {1 1}
540+{1 1}
503− ! exit
541+syntax error
504```
542```
505
543
506---
544---
@@ -509,26 +547,26 @@ Parsing `++rule`. Parses a nonzero base-32 digit
509
547
510Parse base-64
548Parse base-64
511
549
512−Parsing `++rule`. Parses a nonzero base-64 digit
550+Parsing `rule`. Parses a nonzero base-64 digit.
513−
514−#### Accepts
515−
516−#### Produces
517
551
518#### Source
552#### Source
519
553
520```hoon
554```hoon
521− ++ sew ;~(pose sed sow)
555+++ sew ;~(pose sed sow)
522```
556```
523
557
524#### Examples
558#### Examples
525
559
526```
560```
527− > (scan "M" sew:ab)
561+> `@uw`(scan "I" sew:ab)
528− 48
562+0wI
563+
564+> `@uw`(scan "2" sew:ab)
565+0w2
566+
529− > (scan "0" sew:ab)
567+> `@uw`(scan "0" sew:ab)
530− ! {1 1}
568+{1 1}
531− ! exit
569+syntax error
532```
570```
533
571
534---
572---
@@ -537,26 +575,26 @@ Parsing `++rule`. Parses a nonzero base-64 digit
537
575
538Parse hex
576Parse hex
539
577
540−Parsing `++rule`. Parses a nonzero hexadecimal digit.
578+Parsing `rule`. Parses a non-zero hexadecimal digit.
541−
542−#### Accepts
543−
544−#### Produces
545
579
546#### Source
580#### Source
547
581
548```hoon
582```hoon
549− ++ sex ;~(pose sed sox)
583+++ sex ;~(pose sed sox)
550```
584```
551
585
552#### Examples
586#### Examples
553
587
554```
588```
555− > (scan "e" sex:ab)
589+> `@ux`(scan "a" sex:ab)
556− 14
590+0xa
591+
592+> `@ux`(scan "2" sex:ab)
593+0x2
594+
557− > (scan "0" sex:ab)
595+> `@ux`(scan "0" sex:ab)
558− ! {1 1}
596+{1 1}
559− ! exit
597+syntax error
560```
598```
561
599
562---
600---
@@ -565,25 +603,22 @@ Parsing `++rule`. Parses a nonzero hexadecimal digit.
565
603
566Parse binary
604Parse binary
567
605
568−Parsing `++rule`. Parses a binary digit.
606+Parsing `rule`. Parses a binary digit.
569−
570−#### Accepts
571−
572−#### Produces
573
607
574#### Source
608#### Source
575
609
576```hoon
610```hoon
577− ++ sib (cook |=(a/@ (sub a '0')) (shim '0' '1'))
611+++ sib (cook |=(a=@ (sub a '0')) (shim '0' '1'))
578```
612```
579
613
580#### Examples
614#### Examples
581
615
582```
616```
583− > (scan "1" sib:ab)
617+> `@ub`(scan "1" sib:ab)
584− 1
618+0b1
619+
585− ~zod/socialnet=> (scan "0" sib:ab)
620+> `@ub`(scan "0" sib:ab)
586− 0
621+0b0
587```
622```
588
623
589---
624---
@@ -592,23 +627,22 @@ Parsing `++rule`. Parses a binary digit.
592
627
593Parse decimal
628Parse decimal
594
629
595−Parsing `++rule`. Parses a decimal digit.
630+Parsing `rule`. Parses a decimal digit.
596−
597−#### Accepts
598−
599−#### Produces
600
631
601#### Source
632#### Source
602
633
603```hoon
634```hoon
604− ++ sid (cook |=(a/@ (sub a '0')) (shim '0' '9'))
635+++ sid (cook |=(a=@ (sub a '0')) (shim '0' '9'))
605```
636```
606
637
607#### Examples
638#### Examples
608
639
609```
640```
610− > (scan "5" sid:ab)
641+> (scan "5" sid:ab)
611− 5
642+5
643+
644+> (scan "0" sid:ab)
645+0
612```
646```
613
647
614---
648---
@@ -617,23 +651,25 @@ Parsing `++rule`. Parses a decimal digit.
617
651
618Parse base-32
652Parse base-32
619
653
620−Parsing `++rule`. Parses a base-32 digit.
654+Parsing `rule`. Parses a base-32 digit.
621−
622−#### Accepts
623−
624−#### Produces
625
655
626#### Source
656#### Source
627
657
628```hoon
658```hoon
629− ++ siv ;~(pose sid sov)
659+++ siv ;~(pose sid sov)
630```
660```
631
661
632#### Examples
662#### Examples
633
663
634```
664```
665+> `@uv`(scan "r" siv:ab)
666+0vr
667+
668+> `@uv`(scan "5" siv:ab)
669+0v5
670+
635− > (scan "c" siv:ab)
671+> `@uv`(scan "0" siv:ab)
636− 12
672+0v0
637```
673```
638
674
639---
675---
@@ -642,23 +678,25 @@ Parsing `++rule`. Parses a base-32 digit.
642
678
643Parse base-64
679Parse base-64
644
680
645−Parsing `++rule`. Parses a base-64 digit.
681+Parsing `rule`. Parses a base-64 digit.
646−
647−#### Accepts
648−
649−#### Produces
650
682
651#### Source
683#### Source
652
684
653```hoon
685```hoon
654− ++ siw ;~(pose sid sow)
686+++ siw ;~(pose sid sow)
655```
687```
656
688
657#### Examples
689#### Examples
658
690
659```
691```
660− > (scan "M" siw:ab)
692+> `@uw`(scan "M" siw:ab)
661− 48
693+0wM
694+
695+> `@uw`(scan "0" siw:ab)
696+0w0
697+
698+> `@uw`(scan "c" siw:ab)
699+0wc
662```
700```
663
701
664---
702---
@@ -667,78 +705,80 @@ Parsing `++rule`. Parses a base-64 digit.
667
705
668Parse hex
706Parse hex
669
707
670−Parsing `++rule`. Parses a hexadecimal digit.
708+Parsing `rule`. Parses a hexadecimal digit.
671−
672−#### Accepts
673−
674−#### Produces
675
709
676#### Source
710#### Source
677
711
678```hoon
712```hoon
679− ++ six ;~(pose sid sox)
713+++ six ;~(pose sid sox)
680```
714```
681
715
682#### Examples
716#### Examples
683
717
684```
718```
685− > (scan "e" six:ab)
719+> `@ux`(scan "e" six:ab)
686− 14
720+0xe
721+
722+> `@ux`(scan "0" six:ab)
723+0x0
687```
724```
688
725
689---
726---
690
727
691### `++sov:ab`
728### `++sov:ab`
692
729
693−Parse base-32
730+Parse @uv base-32 letter
694
731
695−Parsing `++rule`. Parses a base-32 letter.
732+Parsing `rule`. Parses a `@uv` base-32 letter (but not a number).
696−
697−#### Accepts
698−
699−#### Produces
700
733
701#### Source
734#### Source
702
735
703```hoon
736```hoon
704− ++ sov (cook |=(a/@ (sub a 87)) (shim 'a' 'v'))
737+++ sov (cook |=(a=@ (sub a 87)) (shim 'a' 'v'))
705```
738```
706
739
707#### Examples
740#### Examples
708
741
709```
742```
710− > (scan "c" sov:ab)
743+> `@uv`(scan "c" sov:ab)
711− 12
744+0vc
745+
746+> `@uv`(scan "j" sov:ab)
747+0vj
748+
749+> `@uv`(scan "5" sov:ab)
750+{1 1}
751+syntax error
712```
752```
713
753
714---
754---
715
755
716### `++sow:ab`
756### `++sow:ab`
717
757
718−Parse base-64
719−
720−Parsing `++rule`. Parses a base-64 letter/symbol.
758+Parse @uw base-64 letter/symbol
721−
722−#### Accepts
723
759
724−#### Produces
760+Parsing `rule`. Parses a base-64 letter/symbol (but not number).
725
761
726#### Source
762#### Source
727
763
728```hoon
764```hoon
729− ++ sow ;~ pose
765+++ sow ;~ pose
730− (cook |=(a/@ (sub a 87)) (shim 'a' 'z'))
766+ (cook |=(a=@ (sub a 87)) (shim 'a' 'z'))
731− (cook |=(a/@ (sub a 29)) (shim 'A' 'Z'))
767+ (cook |=(a=@ (sub a 29)) (shim 'A' 'Z'))
732− (cold 62 (just '-'))
768+ (cold 62 (just '-'))
733− (cold 63 (just '~'))
769+ (cold 63 (just '~'))
734− ==
770+ ==
735```
771```
736
772
737#### Examples
773#### Examples
738
774
739```
775```
740− > (scan "M" sow:ab)
776+> `@uw`(scan "M" sow:ab)
741− 48
777+0wM
778+
779+> `@uw`(scan "5" sow:ab)
780+{1 1}
781+syntax error
742```
782```
743
783
744---
784---
@@ -747,56 +787,77 @@ Parsing `++rule`. Parses a base-64 letter/symbol.
747
787
748Parse hex letter
788Parse hex letter
749
789
750−Parsing `++rule`. Parses a hexadecimal letter.
790+Parsing `rule`. Parses a hexadecimal letter (but not number).
751−
752−#### Accepts
753−
754−#### Produces
755
791
756#### Source
792#### Source
757
793
758```hoon
794```hoon
759− ++ sox (cook |=(a/@ (sub a 87)) (shim 'a' 'f'))
795+++ sox (cook |=(a=@ (sub a 87)) (shim 'a' 'f'))
760```
796```
761
797
762#### Examples
798#### Examples
763
799
764```
800```
765− > (scan "e" sox:ab)
801+> `@ux`(scan "e" sox:ab)
766− 14
802+0xe
803+
804+> `@ux`(scan "5" sox:ab)
805+{1 1}
806+syntax error
767```
807```
768
808
769---
809---
770
810
771### `++ted:ab`
811### `++ted:ab`
772
812
773−Parse \<= 3 decimal
813+Parse 1-999 decimal
774
814
775−Parsing `++rule`. Parses a decimal number of up to 3 digits without a
815+Parsing `rule`. Parses a decimal number of up to 3 digits without a
776leading zero.
816leading zero.
777
817
778−#### Accepts
818+#### Source
779
819
780−#### Produces
820+```hoon
821+++ ted (bass 10 ;~(plug sed (stun [0 2] sid)))
822+```
823+
824+#### Examples
825+
826+```
827+> (scan "214" ted:ab)
828+214
829+
830+> (scan "2" ted:ab)
831+2
832+
833+> (scan "2161" ted:ab)
834+{1 4}
835+syntax error
836+```
837+
838+---
839+
840+### `++tep:ab`
841+
842+Parse non-doz leading phonetic byte
843+
844+Parsing `rule`. Parses the leading phonetic byte , which represents a syllable.
845+Fails if it is `doz`.
781
846
782#### Source
847#### Source
783
848
784```hoon
849```hoon
785− ++ ted (bass 10 ;~(plug sed (stun [0 2] sid)))
850+++ tep (sear |=(a=@ ?:(=(a 'doz') ~ (ins:po a))) til)
786```
851```
787
852
788#### Examples
853#### Examples
789
854
790```
855```
791− > (scan "21" ted:ab)
856+> (scan "sam" tep:ab)
792− q=21
793− > (scan "214" ted:ab)
794− q=214
795− > (scan "2140" ted:ab)
796− {1 4}
857+4
858+
797− > (scan "0" ted:ab)
859+> (scan "wic" tep:ab)
798− ! {1 1}
860+99
799− ! exit
800```
861```
801
862
802---
863---
@@ -805,27 +866,22 @@ leading zero.
805
866
806Leading phonetic byte
867Leading phonetic byte
807
868
808−Parsing `++rule`. Parses the leading phonetic byte, which represents a
869+Parsing `rule`. Parses the leading phonetic byte, which represents a syllable.
809−syllable.
810−
811−#### Accepts
812−
813−#### Produces
814
870
815#### Source
871#### Source
816
872
817```hoon
873```hoon
818− ++ tip (sear |=(a/@ (ins:po a)) til)
874+++ tip (sear |=(a=@ (ins:po a)) til)
819```
875```
820
876
821#### Examples
877#### Examples
822
878
823```
879```
824− > (scan "doz" tip:ab)
880+> (scan "doz" tip:ab)
825− 0
881+0
826
882
827− > (scan "pit" tip:ab)
883+> (scan "pit" tip:ab)
828− 242
884+242
829```
885```
830
886
831---
887---
@@ -834,27 +890,21 @@ syllable.
834
890
835Trailing phonetic syllable
891Trailing phonetic syllable
836
892
837−Parsing `++rule`. Parses the trailing phonetic byte, which represents a
893+Parsing `rule`. Parses the trailing phonetic byte, which represents a syllable.
838−syllable.
839−
840−#### Accepts
841−
842−#### Produces
843
894
844#### Source
895#### Source
845
896
846```hoon
897```hoon
847− ++ tiq (sear |=(a/@ (ind:po a)) til)
898+++ tiq (sear |=(a=@ (ind:po a)) til)
848−
849```
899```
850
900
851#### Examples
901#### Examples
852
902
853```
903```
854− > (scan "zod" tiq:ab)
904+> (scan "zod" tiq:ab)
855− 0
905+0
856− > (scan "nec" tiq:ab)
906+> (scan "nec" tiq:ab)
857− 1
907+1
858```
908```
859
909
860---
910---
@@ -863,26 +913,26 @@ syllable.
863
913
864Parse 3 decimal digits
914Parse 3 decimal digits
865
915
866−Parsing `++rule`. Parses exactly three decimal digits.
916+Parsing `rule`. Parses exactly three decimal digits.
867−
868−#### Accepts
869−
870−#### Produces
871
917
872#### Source
918#### Source
873
919
874```hoon
920```hoon
875− ++ tid (bass 10 (stun [3 3] sid))
921+++ tid (bass 10 (stun [3 3] sid))
876```
922```
877
923
878#### Examples
924#### Examples
879
925
880```
926```
881− > (scan "013" tid:ab)
927+> (scan "013" tid:ab)
882− q=13
928+13
929+
883− > (scan "01" tid:ab)
930+> (scan "999" tid:ab)
931+999
932+
933+> (scan "99" tid:ab)
884− ! {1 3}
934+{1 3}
885− ! exit
935+syntax error
886```
936```
887
937
888---
938---
@@ -891,85 +941,70 @@ Parsing `++rule`. Parses exactly three decimal digits.
891
941
892Parse 3 lowercase
942Parse 3 lowercase
893
943
894−Parsing `++rule`. Parses exactly three lowercase letters.
944+Parsing `rule`. Parses exactly three lowercase letters.
895−
896−#### Accepts
897−
898−#### Produces
899
945
900#### Source
946#### Source
901
947
902```hoon
948```hoon
903− ++ til (boss 256 (stun [3 3] low))
949+++ til (boss 256 (stun [3 3] low))
904```
950```
905
951
906#### Examples
952#### Examples
907
953
908```
954```
909− > (scan "mer" til:ab)
910− q=7.497.069
911− > `@t`(scan "mer" til:ab)
955+> `@t`(scan "mer" til:ab)
912− 'mer'
956+'mer'
957+
913− > (scan "me" til:ab)
958+> `@t`(scan "me" til:ab)
914− ! {1 3}
959+{1 3}
915− ! exit
960+syntax error
916```
961```
917
962
918---
963---
919
964
920### `++urs:ab`
965### `++urs:ab`
921
966
922−Parse span characters
967+Parse knot characters
923
968
924−Parsing rule. Parses characters from an atom of the span aura `@ta`.
969+Parsing rule. Parses characters from an atom of the knot aura `@ta`.
925−
926−#### Accepts
927−
928−#### Produces
929
970
930#### Source
971#### Source
931
972
932```hoon
973```hoon
933− ++ urs %+ cook
974+++ urs %+ cook
934− |=(a/tape (rap 3 ^-((list @) a)))
975+ |=(a=tape (rap 3 ^-((list @) a)))
935− (star ;~(pose nud low hep dot sig cab))
976+ (star ;~(pose nud low hep dot sig cab))
936```
977```
937
978
938#### Examples
979#### Examples
939
980
940```
981```
941− > `@ta`(scan "asa-lom_tak" urs:ab)
982+> `@ta`(scan "asa-lom_tak" urs:ab)
942− ~.asa-lom_tak
983+~.asa-lom_tak
943− > `@t`(scan "asa-lom_tak" urs:ab)
944− 'asa-lom_tak'
945```
984```
946
985
947---
986---
948
987
949### `++urt:ab`
988### `++urt:ab`
950
989
951−Parse non-`_` span
990+Parse knot without underscores
952−
953−Parsing rule. Parses all characters of the span aura `@ta` except
954−for cab, `_`.
955−
956−#### Accepts
957
991
958−#### Produces
992+Parsing `rule`. Parses all characters of the knot aura `@ta` except for cab,
993+`_`.
959
994
960#### Source
995#### Source
961
996
962```hoon
997```hoon
963− ++ urt %+ cook
998+++ urt %+ cook
964− |=(a/tape (rap 3 ^-((list @) a)))
999+ |=(a=tape (rap 3 ^-((list @) a)))
965− (star ;~(pose nud low hep dot sig))
1000+ (star ;~(pose nud low hep dot sig))
966```
1001```
967
1002
968#### Examples
1003#### Examples
969
1004
970```
1005```
971− > `@t`(scan "asa-lom.t0k" urt:ab)
1006+> `@ta`(scan "asa-lom.t0k" urt:ab)
972− 'asa-lom.t0k'
1007+~.asa-lom.t0k
973```
1008```
974
1009
975---
1010---
@@ -978,26 +1013,25 @@ for cab, `_`.
978
1013
979Parse bas, soq, or bix
1014Parse bas, soq, or bix
980
1015
981−Parsing rule. Parses an escaped backslash, single quote, or hex pair
1016+Parsing `rule`. Parses an escaped backslash, single quote, or hex pair byte.
982−byte.
983−
984−#### Accepts
985−
986−#### Produces
987
1017
988#### Source
1018#### Source
989
1019
990```hoon
1020```hoon
991− ++ voy ;~(pfix bas ;~(pose bas soq bix))
1021+++ voy ;~(pfix bas ;~(pose bas soq bix))
992```
1022```
993
1023
994#### Examples
1024#### Examples
995
1025
996```
1026```
997− > (scan "\\0a" voy:ab)
1027+> (scan "\\\\" voy:ab)
998− q=10
1028+'\\'
1029+
999− > (scan "\\'" voy:ab)
1030+> (scan "\\'" voy:ab)
1000− q=39
1031+'\''
1032+
1033+> (scan "\\0a" voy:ab)
1034+'\0a'
1001```
1035```
1002
1036
1003---
1037---
@@ -1008,22 +1042,11 @@ Top-level atom parser engine
1008
1042
1009A core containing top-level atom parsers.
1043A core containing top-level atom parsers.
1010
1044
1011−#### Accepts
1012−
1013−#### Produces
1014−
1015#### Source
1045#### Source
1016
1046
1017```hoon
1047```hoon
1018− ++ ag
1048+++ ag
1019− |%
1049+ |%
1020−```
1021−
1022−#### Examples
1023−
1024−```
1025− > ag
1026− <14.vpu 414.mof 100.xkc 1.ypj %164>
1027```
1050```
1028
1051
1029---
1052---
@@ -1036,21 +1059,30 @@ Parser modifier. Parses 0 or the sample rule `fel`.
1036
1059
1037#### Accepts
1060#### Accepts
1038
1061
1062+`fel` is a `rule`.
1063+
1039#### Produces
1064#### Produces
1040
1065
1041−`fel` is a `rule`.
1066+A `rule`.
1042
1067
1043#### Source
1068#### Source
1044
1069
1045```hoon
1070```hoon
1046− ++ ape |*(fel/rule ;~(pose (cold 0 (just '0')) fel))
1071+++ ape |*(fel=rule ;~(pose (cold 0 (just '0')) fel))
1047```
1072```
1048
1073
1049#### Examples
1074#### Examples
1050
1075
1051```
1076```
1077+> (scan "0" (ape:ag (cold 2 (just '2'))))
1078+0
1079+
1052− > (scan "202" (star (ape:ag (cold 2 (just '2')))))
1080+> (scan "2" (ape:ag (cold 2 (just '2'))))
1053− ~[2 0 2]
1081+2
1082+
1083+> (scan "3" (ape:ag (cold 2 (just '2'))))
1084+{1 1}
1085+syntax error
1054```
1086```
1055
1087
1056---
1088---
@@ -1059,23 +1091,19 @@ Parser modifier. Parses 0 or the sample rule `fel`.
1059
1091
1060Parses binary number
1092Parses binary number
1061
1093
1062−Parsing rule. Parses a binary number without a leading zero.
1094+Parsing `rule`. Parses a binary number without a leading zero.
1063−
1064−#### Accepts
1065−
1066−#### Produces
1067
1095
1068#### Source
1096#### Source
1069
1097
1070```hoon
1098```hoon
1071− ++ bay (ape (bass 16 ;~(plug qeb:ab (star ;~(pfix dog qib:ab)))))
1099+++ bay (ape (bass 16 ;~(plug qeb:ab (star ;~(pfix dog qib:ab)))))
1072```
1100```
1073
1101
1074#### Examples
1102#### Examples
1075
1103
1076```
1104```
1077− > (scan "10.0110" bay:ag)
1105+> `@ub`(scan "101.1100.0011.1010" bay:ag)
1078− q=38
1106+0b101.1100.0011.1010
1079```
1107```
1080
1108
1081---
1109---
@@ -1086,24 +1114,18 @@ Parse IPv6
1086
1114
1087Parsing rule. Parses a `@is`, an IPv6 address.
1115Parsing rule. Parses a `@is`, an IPv6 address.
1088
1116
1089−#### Accepts
1090−
1091−#### Produces
1092−
1093#### Source
1117#### Source
1094
1118
1095```hoon
1119```hoon
1096− ++ bip =+ tod=(ape qex:ab)
1120+++ bip =+ tod=(ape qex:ab)
1097− (bass 0x1.0000 ;~(plug tod (stun [7 7] ;~(pfix dog tod))))
1121+ (bass 0x1.0000 ;~(plug tod (stun [7 7] ;~(pfix dog tod))))
1098```
1122```
1099
1123
1100#### Examples
1124#### Examples
1101
1125
1102```
1126```
1103− > (scan "0.0.ea.3e6c.0.0.0.0" bip:ag)
1104− q=283.183.420.760.121.105.516.068.864
1105− > `@is`(scan "0.0.ea.3e6c.0.0.0.0" bip:ag)
1127+> `@is`(scan "0.0.ea.3e6c.0.0.0.0" bip:ag)
1106− .0.0.ea.3e6c.0.0.0.0
1128+.0.0.ea.3e6c.0.0.0.0
1107```
1129```
1108
1130
1109---
1131---
@@ -1112,25 +1134,21 @@ Parsing rule. Parses a `@is`, an IPv6 address.
1112
1134
1113Parse decimal with dots
1135Parse decimal with dots
1114
1136
1115−Parsing rule. Parses a decimal number that includes dot separators.
1137+Parsing `rule`. Parses a decimal number that includes dot separators.
1116−
1117−#### Accepts
1118−
1119−#### Produces
1120
1138
1121#### Source
1139#### Source
1122
1140
1123```hoon
1141```hoon
1124− ++ dem (ape (bass 1.000 ;~(plug ted:ab (star ;~(pfix dog tid:ab)))))
1142+++ dem (ape (bass 1.000 ;~(plug ted:ab (star ;~(pfix dog tid:ab)))))
1125```
1143```
1126
1144
1127#### Examples
1145#### Examples
1128
1146
1129```
1147```
1130− > (scan "52" dem:ag)
1148+> (scan "52" dem:ag)
1131− q=52
1149+52
1132− > (scan "13.507" dem:ag)
1150+> (scan "13.507" dem:ag)
1133− q=13.507
1151+13.507
1134```
1152```
1135
1153
1136---
1154---
@@ -1141,24 +1159,27 @@ Parse decimal number
1141
1159
1142Parsing rule. Parses a decimal number without a leading zero.
1160Parsing rule. Parses a decimal number without a leading zero.
1143
1161
1144−#### Accepts
1145−
1146−#### Produces
1147−
1148#### Source
1162#### Source
1149
1163
1150```hoon
1164```hoon
1151− ++ dim (ape (bass 10 ;~(plug sed:ab (star sid:ab))))
1165+++ dim (ape dip)
1152```
1166```
1153
1167
1154#### Examples
1168#### Examples
1155
1169
1156```
1170```
1157− > (scan "52" dim:ag)
1171+> (scan "52" dim:ag)
1158− q=52
1172+52
1173+
1174+> (scan "0" dim:ag)
1175+0
1176+
1177+> (scan "13507" dim:ag)
1178+13.507
1179+
1159− > (scan "013507" dim:ag)
1180+> (scan "013507" dim:ag)
1160− ! {1 2}
1181+{1 2}
1161− ! exit
1182+syntax error
1162```
1183```
1163
1184
1164---
1185---
@@ -1169,25 +1190,21 @@ Parse decimal with leading `0`
1169
1190
1170Parsing rule. Parses a decmial number with leading zeroes.
1191Parsing rule. Parses a decmial number with leading zeroes.
1171
1192
1172−#### Accepts
1173−
1174−#### Produces
1175−
1176#### Source
1193#### Source
1177
1194
1178```hoon
1195```hoon
1179− ++ dum (bass 10 (plus sid:ab))
1196+++ dum (bass 10 (plus sid:ab))
1180```
1197```
1181
1198
1182#### Examples
1199#### Examples
1183
1200
1184```
1201```
1185− > (scan "52" dum:ag)
1202+> (scan "52" dum:ag)
1186− q=52
1203+52
1187− > (scan "0000052" dum:ag)
1204+> (scan "0000052" dum:ag)
1188− q=52
1205+52
1189− > (scan "13507" dim:ag)
1206+> (scan "13507" dim:ag)
1190− q=13.507
1207+13.507
1191```
1208```
1192
1209
1193---
1210---
@@ -1198,69 +1215,141 @@ Parse phonetic base
1198
1215
1199Parsing rule. Parses an atom of aura `@p`, the phonetic base.
1216Parsing rule. Parses an atom of aura `@p`, the phonetic base.
1200
1217
1201−#### Accepts
1218+#### Source
1202
1219
1203−#### Produces
1220+```hoon
1221+++ fed %+ cook fynd:ob
1222+ ;~ pose
1223+ %+ bass 0x1.0000.0000.0000.0000 :: oversized
1224+ ;~ plug
1225+ huf:ab
1226+ (plus ;~(pfix doh hyf:ab))
1227+ ==
1228+ hof:ab :: planet or moon
1229+ haf:ab :: star
1230+ tiq:ab :: galaxy
1231+ ==
1232+```
1233+
1234+#### Examples
1235+
1236+```
1237+> `@p`(scan "zod" fed:ag)
1238+~zod
1239+
1240+> `@p`(scan "sampel" fed:ag)
1241+~sampel
1242+
1243+> `@p`(scan "sampel-palnet" fed:ag)
1244+~sampel-palnet
1245+
1246+> `@p`(scan "sampel-palnet-sampel-palnet" fed:ag)
1247+~sampel-palnet-sampel-palnet
1248+
1249+> `@p`(scan "tillyn-nillyt-tasfyn-partyv--novweb-talrud-talmud-sonfyr" fed:ag)
1250+~tillyn-nillyt-tasfyn-partyv--novweb-talrud-talmud-sonfyr
1251+```
1252+
1253+---
1254+
1255+### `++feq:ag`
1256+
1257+Parse `@q` phonetic base
1258+
1259+Parsing rule. Parses an atom of aura `@q` (an unscrambled `@p`).
1204
1260
1205#### Source
1261#### Source
1206
1262
1207```hoon
1263```hoon
1208− ++ fed ;~ pose
1264+++ feq %+ cook |=(a=(list @) (rep 4 (flop a)))
1209− (bass 0x1.0000.0000.0000.0000 (most doh hyf:ab))
1265+ ;~ plug
1210− huf:ab
1211− hif:ab
1266+ ;~(pose hif:ab tiq:ab)
1212− tiq:ab
1267+ (star ;~(pfix dof hif:ab))
1213− ==
1268+ ==
1214```
1269```
1215
1270
1216#### Examples
1271#### Examples
1217
1272
1218```
1273```
1219− > (scan "zod" fed:ag)
1274+> `@q`(scan "sampel" feq:ag)
1220− 0
1275+.~sampel
1221− > (scan "nec" fed:ag)
1276+
1222− 1
1277+> `@q`(scan "sampel-palnet" feq:ag)
1223− > (scan "sondel" fed:ag)
1278+.~sampel-palnet
1224− 9.636
1279+
1225− > ~tillyn-nillyt
1280+> `@q`(scan "sampel-sampel-palnet" feq:ag)
1226− ~tillyn-nillyt
1281+.~sampel-sampel-palnet
1227− > (scan "tillyn-nillyt" fed:ag)
1282+
1228− 3.569.565.175
1283+> `@q`(scan "sampel-palnet-sampel-palnet" feq:ag)
1229− > (scan "tillyn-nillyt-tasfyn-partyv" fed:ag)
1284+.~sampel-palnet-sampel-palnet
1230− 15.331.165.687.565.582.592
1285+
1231− > (scan "tillyn-nillyt-tasfyn-partyv--novweb-talrud-talmud-sonfyr" fed:ag)
1286+> `@q`(scan "sampel-sampel-sampel-sampel-palnet-sampel-palnet" feq:ag)
1232− 282.810.089.790.159.633.869.501.053.313.363.681.181
1287+.~sampel-sampel-sampel-sampel-palnet-sampel-palnet
1233```
1288```
1234
1289
1235---
1290---
1236
1291
1237−### `++hex:ag`
1292+### `++fim:ag`
1238
1293
1239−Parse hex
1294+Parse base58check
1240
1295
1241−Parsing rule. Parses a hexadecimal number
1296+Parse a base58check value, check checksum, and return decoded value sans-checksum. If
1297+the checksum check fails, parsing will fail.
1242
1298
1243−#### Accepts
1299+#### Source
1244
1300
1245−#### Produces
1301+```hoon
1302+++ fim (sear den:fa (bass 58 (plus fem:ab)))
1303+```
1304+
1305+#### Examples
1306+
1307+With valid checksum:
1308+
1309+```
1310+> (enc:fa 0xdead.beef)
1311+0xdead.beef.938b.8b0c
1312+> (c-co:co 0xdead.beef.938b.8b0c)
1313+"eFGDJSVvRHd"
1314+> `@ux`(scan "eFGDJSVvRHd" fim:ag)
1315+0xdead.beef
1316+```
1317+
1318+With invalid checksum:
1319+
1320+```
1321+> (c-co:co 0xdead.beef.ffff)
1322+"2utUWE41U"
1323+> `@ux`(scan "2utUWE41U" fim:ag)
1324+{1 10}
1325+syntax error
1326+```
1327+
1328+---
1329+
1330+### `++hex:ag`
1331+
1332+Parse hex
1333+
1334+Parsing `rule`. Parses a hexadecimal number
1246
1335
1247#### Source
1336#### Source
1248
1337
1249```hoon
1338```hoon
1250− ++ hex (ape (bass 0x1.0000 ;~(plug qex:ab (star ;~(pfix dog qix:ab)))))
1339+++ hex (ape (bass 0x1.0000 ;~(plug qex:ab (star ;~(pfix dog qix:ab)))))
1251```
1340```
1252
1341
1253#### Examples
1342#### Examples
1254
1343
1255```
1344```
1256− > (scan "4" hex:ag)
1345+> `@ux`(scan "4" hex:ag)
1257− q=4
1346+0x4
1347+
1258− > (scan "1a" hex:ag)
1348+> `@ux`(scan "1a" hex:ag)
1259− q=26
1349+0x1a
1260− > (scan "3.ac8d" hex:ag)
1350+
1261− q=240.781
1262− > `@ux`(scan "3.ac8d" hex:ag)
1351+> `@ux`(scan "3.ac8d" hex:ag)
1263− 0x3.ac8d
1352+0x3.ac8d
1264```
1353```
1265
1354
1266---
1355---
@@ -1269,28 +1358,61 @@ Parsing rule. Parses a hexadecimal number
1269
1358
1270Parse IPv4 address
1359Parse IPv4 address
1271
1360
1272−Parsing rule. Parses an IPv4 address.
1361+Parsing `rule`. Parses an IPv4 address.
1273
1362
1274−#### Accepts
1363+#### Source
1275
1364
1276−#### Produces
1365+```hoon
1366+++ lip =+ tod=(ape ted:ab)
1367+ (bass 256 ;~(plug tod (stun [3 3] ;~(pfix dog tod))))
1368+```
1369+
1370+#### Examples
1371+
1372+```
1373+> `@if`(scan "127.0.0.1" lip:ag)
1374+.127.0.0.1
1375+```
1376+
1377+---
1378+
1379+### `++mot:ag`
1380+
1381+Parse numerical month
1382+
1383+Parse a numerical month (1-12).
1277
1384
1278#### Source
1385#### Source
1279
1386
1280```hoon
1387```hoon
1281− ++ lip =+ tod=(ape ted:ab)
1388+++ mot ;~ pose
1282− (bass 256 ;~(plug tod (stun [3 3] ;~(pfix dog tod))))
1389+ ;~ pfix
1390+ (just '1')
1391+ (cook |=(a=@ (add 10 (sub a '0'))) (shim '0' '2'))
1392+ ==
1393+ sed:ab
1394+ ==
1283```
1395```
1284
1396
1285#### Examples
1397#### Examples
1286
1398
1287```
1399```
1288− > (scan "127.0.0.1" lip:ag)
1400+> (scan "0" mot:ag)
1289− q=2.130.706.433
1401+{1 1}
1290− > `@if`(scan "127.0.0.1" lip:ag)
1402+syntax error
1291− .127.0.0.1
1403+
1292− > `@if`(scan "8.8.8.8" lip:ag)
1404+> (scan "1" mot:ag)
1293− .8.8.8.8
1405+1
1406+
1407+> (scan "6" mot:ag)
1408+6
1409+
1410+> (scan "12" mot:ag)
1411+12
1412+
1413+> (scan "13" mot:ag)
1414+{1 2}
1415+syntax error
1294```
1416```
1295
1417
1296---
1418---
@@ -1299,23 +1421,19 @@ Parsing rule. Parses an IPv4 address.
1299
1421
1300Parse Base-32 with dots
1422Parse Base-32 with dots
1301
1423
1302−Parsing rule. Parses a Base-32 number with dot separators.
1424+Parsing `rule`. Parses a Base-32 number with dot separators.
1303−
1304−#### Accepts
1305−
1306−#### Produces
1307
1425
1308#### Source
1426#### Source
1309
1427
1310```hoon
1428```hoon
1311− ++ viz (ape (bass 0x200.0000 ;~(plug pev:ab (star ;~(pfix dog piv:ab)))))
1429+++ viz (ape (bass 0x200.0000 ;~(plug pev:ab (star ;~(pfix dog piv:ab)))))
1312```
1430```
1313
1431
1314#### Examples
1432#### Examples
1315
1433
1316```
1434```
1317− > (scan "e2.ol4pm" viz:ag)
1435+> `@uv`(scan "e2.ol4pm" viz:ag)
1318− q=15.125.353.270
1436+0ve2.ol4pm
1319```
1437```
1320
1438
1321---
1439---
@@ -1324,23 +1442,19 @@ Parsing rule. Parses a Base-32 number with dot separators.
1324
1442
1325Parse base-32 string
1443Parse base-32 string
1326
1444
1327−Parsing rule. Parses a raw base-32 string.
1445+Parsing `rule`. Parses a raw base-32 string (without dots).
1328−
1329−#### Accepts
1330−
1331−#### Produces
1332
1446
1333#### Source
1447#### Source
1334
1448
1335```hoon
1449```hoon
1336− ++ vum (bass 32 (plus siv:ab))
1450+++ vum (bass 32 (plus siv:ab))
1337```
1451```
1338
1452
1339#### Examples
1453#### Examples
1340
1454
1341```
1455```
1342− > (scan "e2ol4pm" vum:ag)
1456+> `@uv`(scan "e2ol4pm" vum:ag)
1343− q=15.125.353.270
1457+0ve2.ol4pm
1344```
1458```
1345
1459
1346---
1460---
@@ -1349,25 +1463,19 @@ Parsing rule. Parses a raw base-32 string.
1349
1463
1350Parse base-64
1464Parse base-64
1351
1465
1352−Parsing rule. Parses a base-64 number.
1466+Parsing `rule`. Parses a base-64 number.
1353−
1354−#### Accepts
1355−
1356−#### Produces
1357
1467
1358#### Source
1468#### Source
1359
1469
1360```hoon
1470```hoon
1361− ++ wiz (ape (bass 0x4000.0000 ;~(plug pew:ab (star ;~(pfix dog piw:ab)))))
1471+++ wiz (ape (bass 0x4000.0000 ;~(plug pew:ab (star ;~(pfix dog piw:ab)))))
1362− --
1363− ::
1364```
1472```
1365
1473
1366#### Examples
1474#### Examples
1367
1475
1368```
1476```
1369− > (scan "e2O.l4Xpm" wiz:ag)
1477+> `@uw`(scan "e2O.l4Xpm" wiz:ag)
1370− q=61.764.130.813.526
1478+0we2O.l4Xpm
1371```
1479```
1372
1480
1373---
1481---
@@ -1382,24 +1490,15 @@ relationship between a planet and its star.
1382
1490
1383#### Accepts
1491#### Accepts
1384
1492
1385−#### Produces
1493+`top` is an atom.
1386
1494
1387`bot` is an atom.
1495`bot` is an atom.
1388
1496
1389−`top` is an atom.
1390−
1391#### Source
1497#### Source
1392
1498
1393```hoon
1499```hoon
1394− ++ mu
1500+++ mu
1395− |_ [top/@ bot/@]
1501+ |_ [top=@ bot=@]
1396−```
1397−
1398−#### Examples
1399−
1400−```
1401− > ~(. mu 0x20e5 0x5901)
1402− <3.sjm [[@ux @ux] <414.hhh 100.xkc 1.ypj %164>]>
1403```
1502```
1404
1503
1405---
1504---
@@ -1414,23 +1513,23 @@ planet.
1414
1513
1415#### Accepts
1514#### Accepts
1416
1515
1417−#### Produces
1516+`top` & `bot` are atoms, and are the sample of `+mu`.
1418
1517
1419−`bot` is an atom.
1518+#### Produces
1420
1519
1421−`top` is an atom.
1520+A `(pair @ @)`.
1422
1521
1423#### Source
1522#### Source
1424
1523
1425```hoon
1524```hoon
1426− ++ zag [p=(end 4 1 (add top bot)) q=bot]
1525+++ zag [p=(end 4 (add top bot)) q=bot]
1427```
1526```
1428
1527
1429#### Examples
1528#### Examples
1430
1529
1431```
1530```
1432− > `[@ux @ux]`~(zag mu 0x20e0 0x201)
1531+> `[@ux @ux]`~(zag mu 0x20e0 0x201)
1433− [0x22e1 0x201]
1532+[0x22e1 0x201]
1434```
1533```
1435
1534
1436---
1535---
@@ -1439,30 +1538,29 @@ planet.
1439
1538
1440Subtract bottom from top
1539Subtract bottom from top
1441
1540
1442−The inverse of `++zag`. Produces the cell of `top` and `bot` with
1541+The inverse of [`++zag`](#zagmu). Produces the cell of `top` and `bot` with
1443−`top` unscrambled. The unscrambled `top` is the sum of the sample `top`
1542+`top` unscrambled. The unscrambled `top` is the sum of the sample `top` and the
1444−and the 16-bit complement of `bot`. Used to unscramble the name of the
1543+16-bit complement of `bot`. Used to unscramble the name of the planet.
1445−planet.
1446
1544
1447#### Accepts
1545#### Accepts
1448
1546
1449−#### Produces
1547+`top` & `bot` are atoms, and are the sample of `+mu`.
1450
1548
1451−`bot` is an atom.
1549+#### Produces
1452
1550
1453−`top` is an atom.
1551+A `(pair @ @)`.
1454
1552
1455#### Source
1553#### Source
1456
1554
1457```hoon
1555```hoon
1458− ++ zig [p=(end 4 1 (add top (sub 0x1.0000 bot))) q=bot]
1556+++ zig [p=(end 4 (add top (sub 0x1.0000 bot))) q=bot]
1459```
1557```
1460
1558
1461#### Examples
1559#### Examples
1462
1560
1463```
1561```
1464− > `[@ux @ux]`~(zig mu 0x2f46 0x1042)
1562+> `[@ux @ux]`~(zig mu 0x22e1 0x201)
1465− [0x1f04 0x1042]
1563+[0x20e0 0x201]
1466```
1564```
1467
1565
1468---
1566---
@@ -1476,23 +1574,23 @@ planet name.
1476
1574
1477#### Accepts
1575#### Accepts
1478
1576
1479−#### Produces
1577+`top` & `bot` are atoms, and are the sample of `+mu`.
1480
1578
1481−`bot` is an atom.
1579+#### Produces
1482
1580
1483−`top` is an atom.
1581+An atom.
1484
1582
1485#### Source
1583#### Source
1486
1584
1487```hoon
1585```hoon
1488− ++ zug (mix (lsh 4 1 top) bot)
1586+++ zug (mix (lsh 4 top) bot)
1489```
1587```
1490
1588
1491#### Examples
1589#### Examples
1492
1590
1493```
1591```
1494− > `@ux`~(zug mu 0x10e1 0xfa)
1592+> `@ux`~(zug mu 0x22e1 0x201)
1495− 0x10e1.00fa
1593+0x22e1.0201
1496```
1594```
1497
1595
1498---
1596---
@@ -1505,22 +1603,51 @@ A door containing arms that render digits at bases 10, 16, 32, and 64.
1505
1603
1506#### Accepts
1604#### Accepts
1507
1605
1606+`tig` is an `atom`.
1607+
1608+#### Source
1609+
1610+```hoon
1611+++ ne
1612+ |_ tig=@
1613+```
1614+
1615+---
1616+
1617+### `++c:ne`
1618+
1619+Render base58check
1620+
1621+Render a single base58check character.
1622+
1623+#### Accepts
1624+
1625+`tig` is an `atom`, and is the sample of `+ne`.
1626+
1508#### Produces
1627#### Produces
1509
1628
1510−`tig` is an `atom`.
1629+An atom.
1511
1630
1512#### Source
1631#### Source
1513
1632
1514```hoon
1633```hoon
1515− ++ ne
1634+++ c (cut 3 [tig 1] key:fa)
1516− |_ tig/@
1517```
1635```
1518
1636
1519#### Examples
1637#### Examples
1520
1638
1521```
1639```
1522− > ~(. ne 20)
1640+> `@t`~(c ne 7)
1523− <4.gut [@ud <414.hhh 100.xkc 1.ypj %164>]>
1641+'8'
1642+
1643+> `@t`~(c ne 27)
1644+'U'
1645+
1646+> `@t`~(c ne 57)
1647+'z'
1648+
1649+> `@t`~(c ne 58)
1650+''
1524```
1651```
1525
1652
1526---
1653---
@@ -1533,22 +1660,23 @@ Renders a decimal digit as an atom of an ACII byte value.
1533
1660
1534#### Accepts
1661#### Accepts
1535
1662
1663+`tig` is an `atom`, and is the sample of `+ne`.
1664+
1536#### Produces
1665#### Produces
1537
1666
1538−`tig` is an `atom`.
1667+An atom.
1539
1668
1540#### Source
1669#### Source
1541
1670
1542```hoon
1671```hoon
1543− ++ d (add tig '0')
1672+++ d (add tig '0')
1544```
1673```
1545
1674
1546#### Examples
1675#### Examples
1547
1676
1548```
1677```
1549− > `@t`~(d ne 7)
1678+> `@t`~(d ne 7)
1550− '7'
1679+'7'
1551−
1552```
1680```
1553
1681
1554---
1682---
@@ -1561,24 +1689,26 @@ Renders a hexadecimal digit as an atom of an ASCII byte value.
1561
1689
1562#### Accepts
1690#### Accepts
1563
1691
1692+`tig` is an `atom`, and is the sample of `+ne`.
1693+
1564#### Produces
1694#### Produces
1565
1695
1566−`tig` is an `atom`.
1696+An atom.
1567
1697
1568#### Source
1698#### Source
1569
1699
1570```hoon
1700```hoon
1571− ++ x ?:((gte tig 10) (add tig 87) d)
1701+++ x ?:((gte tig 10) (add tig 87) d)
1572```
1702```
1573
1703
1574#### Examples
1704#### Examples
1575
1705
1576```
1706```
1577− > `@t`~(x ne 7)
1707+> `@t`~(x ne 7)
1578− '7'
1708+'7'
1579
1709
1580− > `@t`~(x ne 14)
1710+> `@t`~(x ne 14)
1581− 'e'
1711+'e'
1582```
1712```
1583
1713
1584---
1714---
@@ -1591,23 +1721,29 @@ Renders a base-32 digit as an atom of an ASCII byte value.
1591
1721
1592#### Accepts
1722#### Accepts
1593
1723
1724+`tig` is an `atom`, and is the sample of `+ne`.
1725+
1594#### Produces
1726#### Produces
1595
1727
1728+An atom.
1729+
1596#### Source
1730#### Source
1597
1731
1598```hoon
1732```hoon
1599− ++ v ?:((gte tig 10) (add tig 87) d)
1733+++ v ?:((gte tig 10) (add tig 87) d)
1600```
1734```
1601
1735
1602#### Examples
1736#### Examples
1603
1737
1604```
1738```
1605− > `@t`~(v ne 7)
1739+> `@t`~(v ne 7)
1606− '7'
1740+'7'
1741+
1607− > `@t`~(v ne 14)
1742+> `@t`~(v ne 14)
1608− 'e'
1743+'e'
1744+
1609− > `@t`~(v ne 25)
1745+> `@t`~(v ne 25)
1610− 'p'
1746+'p'
1611```
1747```
1612
1748
1613---
1749---
@@ -1620,35 +1756,41 @@ Renders a base-64 digit as an atom of an ASCII byte value.
1620
1756
1621#### Accepts
1757#### Accepts
1622
1758
1759+`tig` is an `atom`, and is the sample of `+ne`.
1760+
1623#### Produces
1761#### Produces
1624
1762
1625−`tig` is an `atom`.
1763+An atom.
1626
1764
1627#### Source
1765#### Source
1628
1766
1629```hoon
1767```hoon
1630− ++ w ?:(=(tig 63) '~' ?:(=(tig 62) '-' ?:((gte tig 36) (add tig 29) x)))
1768+++ w ?:(=(tig 63) '~' ?:(=(tig 62) '-' ?:((gte tig 36) (add tig 29) x)))
1631− --
1632− ::
1633```
1769```
1634
1770
1635#### Examples
1771#### Examples
1636
1772
1637```
1773```
1638− > `@t`~(w ne 7)
1774+> `@t`~(w ne 7)
1639− '7'
1775+'7'
1776+
1640− > `@t`~(w ne 14)
1777+> `@t`~(w ne 14)
1641− 'e'
1778+'e'
1779+
1642− > `@t`~(w ne 25)
1780+> `@t`~(w ne 25)
1643− 'p'
1781+'p'
1782+
1644− > `@t`~(w ne 52)
1783+> `@t`~(w ne 52)
1645− 'Q'
1784+'Q'
1785+
1646− > `@t`~(w ne 61)
1786+> `@t`~(w ne 61)
1647− 'Z'
1787+'Z'
1788+
1648− > `@t`~(w ne 63)
1789+> `@t`~(w ne 63)
1649− '~'
1790+'~'
1791+
1650− > `@t`~(w ne 62)
1792+> `@t`~(w ne 62)
1651− '-'
1793+'-'
1652```
1794```
1653
1795
1654---
1796---
content/docs/hoon/reference/stdlib/table-of-contents.md+60−34
@@ -84,6 +84,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
84
84
85### c
85### c
86
86
87+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#cne' title="Render base58check"><code>++c:ne</code></a>
87<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cab' title="Parse _ (cab)"><code>++cab</code></a>
88<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cab' title="Parse _ (cab)"><code>++cab</code></a>
88<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#can' title="Assemble"><code>++can</code></a>
89<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#can' title="Assemble"><code>++can</code></a>
89<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#cap' title="Tree head"><code>++cap</code></a>
90<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#cap' title="Tree head"><code>++cap</code></a>
@@ -150,6 +151,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
150<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrh' title="Divide (halfprecision float)"><code>++div:rh</code></a>
151<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrh' title="Divide (halfprecision float)"><code>++div:rh</code></a>
151<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrs' title="Divide (singleprecision float)"><code>++div:rs</code></a>
152<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrs' title="Divide (singleprecision float)"><code>++div:rs</code></a>
152<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrq' title="Divide (quadprecision float)"><code>++div:rq</code></a>
153<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#divrq' title="Divide (quadprecision float)"><code>++div:rq</code></a>
154+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dof' title="Hep & optional gap"><code>++dof</code></a>
153<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dog' title="Optional gap"><code>++dog</code></a>
155<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dog' title="Optional gap"><code>++dog</code></a>
154<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#doh' title="@p separator"><code>++doh</code></a>
156<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#doh' title="@p separator"><code>++doh</code></a>
155<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#doq' title="Parse double quote"><code>++doq</code></a>
157<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#doq' title="Parse double quote"><code>++doq</code></a>
@@ -209,8 +211,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
209<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feenob' title="Reverse +fee"><code>++feen:ob</code></a>
211<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feenob' title="Reverse +fee"><code>++feen:ob</code></a>
210<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feinob' title="Conceal structure v3"><code>++fein:ob</code></a>
212<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feinob' title="Conceal structure v3"><code>++fein:ob</code></a>
211<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feisob' title="Four-round generalised Feistel cipher over the domain [0, 2^32 - 2^16 - 1]"><code>++feis:ob</code></a>
213<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#feisob' title="Four-round generalised Feistel cipher over the domain [0, 2^32 - 2^16 - 1]"><code>++feis:ob</code></a>
214+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#femab' title="Parse base58check char"><code>++fem:ab</code></a>
212<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#fenob' title="Reverse +fe"><code>++fen:ob</code></a>
215<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#fenob' title="Reverse +fe"><code>++fen:ob</code></a>
216+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#feqag' title="Parse @q phonetic base"><code>++feq:ag</code></a>
213<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#fil' title="Fill bloqstream"><code>++fil</code></a>
217<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#fil' title="Fill bloqstream"><code>++fil</code></a>
218+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fimag' title="Parse base58check"><code>++fim:ag</code></a>
214<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#find' title="First index in list"><code>++find</code></a>
219<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#find' title="First index in list"><code>++find</code></a>
215<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#flag' title="Boolean (flag)"><code>+$flag</code></a>
220<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#flag' title="Boolean (flag)"><code>+$flag</code></a>
216<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#flifl' title="Flip sign"><code>++fli:fl</code></a>
221<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#flifl' title="Flip sign"><code>++fli:fl</code></a>
@@ -280,12 +285,14 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
280
285
281### h
286### h
282
287
288+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hafab' title="Parse non-doz phonetic pair"><code>++haf:ab</code></a>
283<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#hair' title="Parsing line and column"><code>+$hair</code></a>
289<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#hair' title="Parsing line and column"><code>+$hair</code></a>
284<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#hasby' title="Key existence check (map)"><code>++has:by</code></a>
290<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#hasby' title="Key existence check (map)"><code>++has:by</code></a>
285<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#hasin' title="Key existence check (set)"><code>++has:in</code></a>
291<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#hasin' title="Key existence check (set)"><code>++has:in</code></a>
286<a class="tooltip" href='/docs/hoon/reference/stdlib/2j/#hasju' title="Check contents (jug)"><code>++has:ju</code></a>
292<a class="tooltip" href='/docs/hoon/reference/stdlib/2j/#hasju' title="Check contents (jug)"><code>++has:ju</code></a>
287<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#hax' title="Parse # (hax)"><code>++hax</code></a>
293<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#hax' title="Parse # (hax)"><code>++hax</code></a>
288<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#head' title="Get head of cell"><code>++head</code></a>
294<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#head' title="Get head of cell"><code>++head</code></a>
295+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hefab' title="Parse non-dozzod phonetic pair"><code>++hef:ab</code></a>
289<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#here' title="Placebased apply"><code>++here</code></a>
296<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#here' title="Placebased apply"><code>++here</code></a>
290<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#hep' title="Parse (hep)"><code>++hep</code></a>
297<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#hep' title="Parse (hep)"><code>++hep</code></a>
291<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hex' title="Hexadecimal to atom"><code>++hex</code></a>
298<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hex' title="Hexadecimal to atom"><code>++hex</code></a>
@@ -293,11 +300,12 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
293<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hifab' title="Parse phonetic pair"><code>++hif:ab</code></a>
300<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hifab' title="Parse phonetic pair"><code>++hif:ab</code></a>
294<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hig' title="Parse single uppercase letter"><code>++hig</code></a>
301<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hig' title="Parse single uppercase letter"><code>++hig</code></a>
295<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hit' title="Parse single hexadecimal digit"><code>++hit</code></a>
302<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#hit' title="Parse single hexadecimal digit"><code>++hit</code></a>
303+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hofab' title="Parse 2-4 @q phonetic pair"><code>++hof:ab</code></a>
296<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#homo' title="Homogenize list"><code>++homo</code></a>
304<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#homo' title="Homogenize list"><code>++homo</code></a>
297<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#horyo' title="Seconds in hour"><code>++hor:yo</code></a>
305<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#horyo' title="Seconds in hour"><code>++hor:yo</code></a>
298−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse two phonetic pairs"><code>++huf:ab</code></a>
306+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse 1-4 @q phonetic pairs"><code>++huf:ab</code></a>
299<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#hunt' title="Select between two units by a rule"><code>++hunt</code></a>
307<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#hunt' title="Select between two units by a rule"><code>++hunt</code></a>
300−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse 8 phonetic bytes"><code>++hyf:ab</code></a>
308+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse four @q phonetic pairs"><code>++hyf:ab</code></a>
301
309
302### i
310### i
303
311
@@ -401,6 +409,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
401<a class="tooltip" href='/docs/hoon/reference/stdlib/4n/#mink' title="Mock (virtual Nock) interpreter"><code>++mink</code></a>
409<a class="tooltip" href='/docs/hoon/reference/stdlib/4n/#mink' title="Mock (virtual Nock) interpreter"><code>++mink</code></a>
402<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#mityo' title="Seconds in minute"><code>++mit:yo</code></a>
410<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#mityo' title="Seconds in minute"><code>++mit:yo</code></a>
403<a class="tooltip" href='/docs/hoon/reference/stdlib/2d/#mix' title="Binary XOR (atom)"><code>++mix</code></a>
411<a class="tooltip" href='/docs/hoon/reference/stdlib/2d/#mix' title="Binary XOR (atom)"><code>++mix</code></a>
412+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mixed-case-symbol' title="Mixed-case term"><code>++mixed-case-symbol</code></a>
404<a class="tooltip" href='/docs/hoon/reference/stdlib/4n/#mock' title="Compute formula on subject with hint"><code>++mock</code></a>
413<a class="tooltip" href='/docs/hoon/reference/stdlib/4n/#mock' title="Compute formula on subject with hint"><code>++mock</code></a>
405<a class="tooltip" href='/docs/hoon/reference/stdlib/1a/#mod' title="Modulus (atom)"><code>++mod</code></a>
414<a class="tooltip" href='/docs/hoon/reference/stdlib/1a/#mod' title="Modulus (atom)"><code>++mod</code></a>
406<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#mohyo' title="Days in month"><code>++moh:yo</code></a>
415<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#mohyo' title="Days in month"><code>++moh:yo</code></a>
@@ -410,6 +419,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
410<a class="tooltip" href='/docs/hoon/reference/stdlib/2f/#mor' title="(more) mug order"><code>++mor</code></a>
419<a class="tooltip" href='/docs/hoon/reference/stdlib/2f/#mor' title="(more) mug order"><code>++mor</code></a>
411<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#more' title="Parse list with delimiter"><code>++more</code></a>
420<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#more' title="Parse list with delimiter"><code>++more</code></a>
412<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#most' title="Parse list of at least one match"><code>++most</code></a>
421<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#most' title="Parse list of at least one match"><code>++most</code></a>
422+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#motag' title="Parse numerical month"><code>++mot:ag</code></a>
413<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#moyyo' title="Days in months of leapyear"><code>++moy:yo</code></a>
423<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#moyyo' title="Days in months of leapyear"><code>++moy:yo</code></a>
414<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#mu' title="Core used to scramble 16bit atoms"><code>++mu</code></a>
424<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#mu' title="Core used to scramble 16bit atoms"><code>++mu</code></a>
415<a class="tooltip" href='/docs/hoon/reference/stdlib/2e/#mug' title="FNV1a scrambler"><code>++mug</code></a>
425<a class="tooltip" href='/docs/hoon/reference/stdlib/2e/#mug' title="FNV1a scrambler"><code>++mug</code></a>
@@ -438,7 +448,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
438<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#newsi' title="Atom to @s"><code>++new:si</code></a>
448<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#newsi' title="Atom to @s"><code>++new:si</code></a>
439<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#next' title="Consume character"><code>++next</code></a>
449<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#next' title="Consume character"><code>++next</code></a>
440<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#nipto' title="Remove root of queue"><code>++nip:to</code></a>
450<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#nipto' title="Remove root of queue"><code>++nip:to</code></a>
441−<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and "><code>++nix</code></a>
451+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and underscore"><code>++nix</code></a>
442<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#nl' title="Noun to container operations"><code>++nl</code></a>
452<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#nl' title="Noun to container operations"><code>++nl</code></a>
443<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#nock' title="Virtual machine (see Nock)"><code>++nock</code></a>
453<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#nock' title="Virtual machine (see Nock)"><code>++nock</code></a>
444<a class="tooltip" href='/docs/hoon/reference/stdlib/2d/#not' title="Binary NOT (atom)"><code>++not</code></a>
454<a class="tooltip" href='/docs/hoon/reference/stdlib/2d/#not' title="Binary NOT (atom)"><code>++not</code></a>
@@ -465,16 +475,16 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
465<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
475<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
466<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#path' title="Like unix path"><code>+$path</code></a>
476<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#path' title="Like unix path"><code>+$path</code></a>
467<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#peg' title="Address within address"><code>++peg</code></a>
477<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#peg' title="Address within address"><code>++peg</code></a>
468−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pel' title="Parse ( (pel)"><code>++pel</code></a>
478+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pal' title="Parse ( (pal)"><code>++pal</code></a>
469−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#per' title="Parse ) (per)"><code>++per</code></a>
479+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#par' title="Parse ) (par)"><code>++par</code></a>
470<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parses dime/tiple without standard prefixes"><code>++perd:so</code></a>
480<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parses dime/tiple without standard prefixes"><code>++perd:so</code></a>
471<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#perk' title="Parse cube fork"><code>++perk</code></a>
481<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#perk' title="Parse cube fork"><code>++perk</code></a>
472−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse <=5 in base 32"><code>++pev:ab</code></a>
482+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse 1-5 @uv base-32 chars"><code>++pev:ab</code></a>
473<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
483<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
474<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#pfix' title="Discard first rule"><code>++pfix</code></a>
484<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#pfix' title="Discard first rule"><code>++pfix</code></a>
475<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#pint' title="Parsing range"><code>+$pint</code></a>
485<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#pint' title="Parsing range"><code>+$pint</code></a>
476−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 digits in base 32"><code>++piv:ab</code></a>
486+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 @uv base-32 chars"><code>++piv:ab</code></a>
477−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 digits in base 64"><code>++piw:ab</code></a>
487+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 @uw base-64 chars"><code>++piw:ab</code></a>
478<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#plug' title="Parse to tuple"><code>++plug</code></a>
488<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#plug' title="Parse to tuple"><code>++plug</code></a>
479<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#plus' title="List of at least one match"><code>++plus</code></a>
489<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#plus' title="List of at least one match"><code>++plus</code></a>
480<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#po' title="Phonetic base"><code>++po</code></a>
490<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#po' title="Phonetic base"><code>++po</code></a>
@@ -495,9 +505,10 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
495### q
505### q
496
506
497<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#qadyo' title="Seconds in 4 years"><code>++qad:yo</code></a>
507<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#qadyo' title="Seconds in 4 years"><code>++qad:yo</code></a>
508+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qat' title="Parse chars in blockcord"><code>++qat</code></a>
498−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse <=4 binary digits"><code>++qeb:ab</code></a>
509+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse 1-4 binary digits"><code>++qeb:ab</code></a>
499<a class="tooltip" href='/docs/hoon/reference/stdlib/2o/#qeu' title="Mold generator (queue)"><code>++qeu</code></a>
510<a class="tooltip" href='/docs/hoon/reference/stdlib/2o/#qeu' title="Mold generator (queue)"><code>++qeu</code></a>
500−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse <=4 hexadecimal digits"><code>++qex:ab</code></a>
511+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse 1-4 hex digits"><code>++qex:ab</code></a>
501<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qibab' title="Parse 4 binary digits"><code>++qib:ab</code></a>
512<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qibab' title="Parse 4 binary digits"><code>++qib:ab</code></a>
502<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qit' title="Parse character to cord atom"><code>++qit</code></a>
513<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qit' title="Parse character to cord atom"><code>++qit</code></a>
503<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qixab' title="Parse 4 hexadecimal digits"><code>++qix:ab</code></a>
514<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qixab' title="Parse 4 hexadecimal digits"><code>++qix:ab</code></a>
@@ -536,6 +547,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
536<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
547<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
537<code>++rood</code>
548<code>++rood</code>
538<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rorfe' title="Roll right"><code>++ror:fe</code></a>
549<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rorfe' title="Roll right"><code>++ror:fe</code></a>
550+<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rose' title="Parse to each"><code>++rose</code></a>
539<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#roufl' title="Round to nearest float with 113bit significand"><code>++rou:fl</code></a>
551<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#roufl' title="Round to nearest float with 113bit significand"><code>++rou:fl</code></a>
540<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
552<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
541<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
553<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
@@ -583,7 +595,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
583<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sebab' title="Parse 1"><code>++seb:ab</code></a>
595<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sebab' title="Parse 1"><code>++seb:ab</code></a>
584<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sedab' title="Parse nonzero decimal digit"><code>++sed:ab</code></a>
596<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sedab' title="Parse nonzero decimal digit"><code>++sed:ab</code></a>
585<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sel' title="Parse [ (sel)"><code>++sel</code></a>
597<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sel' title="Parse [ (sel)"><code>++sel</code></a>
586−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sem' title="Parse ; (sem)"><code>++sem</code></a>
598+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#mic' title="Parse ; (mic)"><code>++mic</code></a>
587<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ser' title="Parse ] (ser)"><code>++ser</code></a>
599<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ser' title="Parse ] (ser)"><code>++ser</code></a>
588<a class="tooltip" href='/docs/hoon/reference/stdlib/2o/#set' title="Mold generator (set)"><code>++set</code></a>
600<a class="tooltip" href='/docs/hoon/reference/stdlib/2o/#set' title="Mold generator (set)"><code>++set</code></a>
589<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sevab' title="Parse nonzero base 32 digit"><code>++sev:ab</code></a>
601<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sevab' title="Parse nonzero base 32 digit"><code>++sev:ab</code></a>
@@ -640,8 +652,8 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
640<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#some' title="Wrap value in unit"><code>++some</code></a>
652<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#some' title="Wrap value in unit"><code>++some</code></a>
641<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#soq' title="Parse ' (soq)"><code>++soq</code></a>
653<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#soq' title="Parse ' (soq)"><code>++soq</code></a>
642<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#sort' title="Quicksort (list)"><code>++sort</code></a>
654<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#sort' title="Quicksort (list)"><code>++sort</code></a>
643−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse base 32 letter"><code>++sov:ab</code></a>
655+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse @uv base-32 letter"><code>++sov:ab</code></a>
644−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse base 64 letter/symbol"><code>++sow:ab</code></a>
656+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse @uw base-64 letter/symbol"><code>++sow:ab</code></a>
645<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#soxab' title="Parse hexadecimal letter"><code>++sox:ab</code></a>
657<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#soxab' title="Parse hexadecimal letter"><code>++sox:ab</code></a>
646<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#soz' title="Parse triple singlequote"><code>++soz</code></a>
658<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#soz' title="Parse triple singlequote"><code>++soz</code></a>
647<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#span' title="ASCII atom"><code>++span</code></a>
659<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#span' title="ASCII atom"><code>++span</code></a>
@@ -707,10 +719,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
707<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#tape' title="List of characters"><code>+$tape</code></a>
719<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#tape' title="List of characters"><code>+$tape</code></a>
708<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#tarp' title="Parsed time"><code>+$tarp</code></a>
720<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#tarp' title="Parsed time"><code>+$tarp</code></a>
709<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#tashso' title="Parse signed dime"><code>++tash:so</code></a>
721<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#tashso' title="Parse signed dime"><code>++tash:so</code></a>
710−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tec' title="Parse ` (tec)"><code>++tec</code></a>
722+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tic' title="Parse ` (tic)"><code>++tic</code></a>
711−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse decimal number with <= 3 digits"><code>++ted:ab</code></a>
723+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse 1-999 decimal"><code>++ted:ab</code></a>
712<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#teff' title="UTF8 length"><code>++teff</code></a>
724<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#teff' title="UTF8 length"><code>++teff</code></a>
713<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#tailob' title="Reverse +feis"><code>++tail:ob</code></a>
725<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#tailob' title="Reverse +feis"><code>++tail:ob</code></a>
726+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tepab' title="Parse non-doz leading phonetic byte"><code>++tep:ab</code></a>
714<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#term' title="Hoon constant"><code>+$term</code></a>
727<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#term' title="Hoon constant"><code>+$term</code></a>
715<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#test' title="Test for equality"><code>++test</code></a>
728<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#test' title="Test for equality"><code>++test</code></a>
716<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tidab' title="Parse 3 decimal digits"><code>++tid:ab</code></a>
729<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tidab' title="Parse 3 decimal digits"><code>++tid:ab</code></a>
@@ -761,8 +774,8 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
761<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#unit' title="Mold generator (maybe)"><code>++unit</code></a>
774<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#unit' title="Mold generator (maybe)"><code>++unit</code></a>
762<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#unoby' title="General union (map)"><code>++uno:by</code></a>
775<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#unoby' title="General union (map)"><code>++uno:by</code></a>
763<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#urnby' title="Turn (with key) (map)"><code>++urn:by</code></a>
776<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#urnby' title="Turn (with key) (map)"><code>++urn:by</code></a>
764−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse span characters"><code>++urs:ab</code></a>
777+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse knot characters"><code>++urs:ab</code></a>
765−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse non_ span"><code>++urt:ab</code></a>
778+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse knot without underscores"><code>++urt:ab</code></a>
766
779
767### v
780### v
768
781
@@ -1526,6 +1539,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1526### 4g: parsing (outside caller)
1539### 4g: parsing (outside caller)
1527
1540
1528<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rash' title="Parse or crash"><code>++rash</code></a>
1541<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rash' title="Parse or crash"><code>++rash</code></a>
1542+<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rose' title="Parse to each"><code>++rose</code></a>
1529<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rush' title="Parse or null"><code>++rush</code></a>
1543<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rush' title="Parse or null"><code>++rush</code></a>
1530<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rust' title="Parse tape or null"><code>++rust</code></a>
1544<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rust' title="Parse tape or null"><code>++rust</code></a>
1531<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#scan' title="Parse tape or crash"><code>++scan</code></a>
1545<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#scan' title="Parse tape or crash"><code>++scan</code></a>
@@ -1553,15 +1567,15 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1553<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#lus' title="Parse + (lus)"><code>++lus</code></a>
1567<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#lus' title="Parse + (lus)"><code>++lus</code></a>
1554<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pam' title="Parse & (pam)"><code>++pam</code></a>
1568<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pam' title="Parse & (pam)"><code>++pam</code></a>
1555<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
1569<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
1556−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pel' title="Parse ( (pel)"><code>++pel</code></a>
1570+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pal' title="Parse ( (pal)"><code>++pal</code></a>
1557−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#per' title="Parse ) (per)"><code>++per</code></a>
1571+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#par' title="Parse ) (par)"><code>++par</code></a>
1558<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sel' title="Parse [ (sel)"><code>++sel</code></a>
1572<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sel' title="Parse [ (sel)"><code>++sel</code></a>
1559−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sem' title="Parse ; (sem)"><code>++sem</code></a>
1573+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#mic' title="Parse ; (mic)"><code>++mic</code></a>
1560<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ser' title="Parse ] (ser)"><code>++ser</code></a>
1574<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ser' title="Parse ] (ser)"><code>++ser</code></a>
1561<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sig' title="Parse ~ (sig)"><code>++sig</code></a>
1575<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#sig' title="Parse ~ (sig)"><code>++sig</code></a>
1562<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#soq' title="Parse ' (soq)"><code>++soq</code></a>
1576<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#soq' title="Parse ' (soq)"><code>++soq</code></a>
1563<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tar' title="Parse * (tar)"><code>++tar</code></a>
1577<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tar' title="Parse * (tar)"><code>++tar</code></a>
1564−<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tec' title="Parse ` (tec)"><code>++tec</code></a>
1578+<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tic' title="Parse ` (tic)"><code>++tic</code></a>
1565<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tis' title="Parse = (tis)"><code>++tis</code></a>
1579<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tis' title="Parse = (tis)"><code>++tis</code></a>
1566<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#wut' title="Parse ? (wut)"><code>++wut</code></a>
1580<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#wut' title="Parse ? (wut)"><code>++wut</code></a>
1567<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#zap' title="Parse ! (zap)"><code>++zap</code></a>
1581<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#zap' title="Parse ! (zap)"><code>++zap</code></a>
@@ -1577,6 +1591,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1577<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#cit' title="Octal digit"><code>++cit</code></a>
1591<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#cit' title="Octal digit"><code>++cit</code></a>
1578<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dem' title="Decimal to atom"><code>++dem</code></a>
1592<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dem' title="Decimal to atom"><code>++dem</code></a>
1579<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dit' title="Decimal digit"><code>++dit</code></a>
1593<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dit' title="Decimal digit"><code>++dit</code></a>
1594+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dof' title="Hep & optional gap"><code>++dof</code></a>
1580<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dog' title="Optional gap"><code>++dog</code></a>
1595<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dog' title="Optional gap"><code>++dog</code></a>
1581<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#doh' title="@p separator"><code>++doh</code></a>
1596<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#doh' title="@p separator"><code>++doh</code></a>
1582<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dun' title=" to ~"><code>++dun</code></a>
1597<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dun' title=" to ~"><code>++dun</code></a>
@@ -1594,13 +1609,15 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1594<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#iny' title="Indentation block"><code>++iny</code></a>
1609<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#iny' title="Indentation block"><code>++iny</code></a>
1595<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#low' title="Parse lowercase letter"><code>++low</code></a>
1610<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#low' title="Parse lowercase letter"><code>++low</code></a>
1596<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mes' title="Parse hexabyte"><code>++mes</code></a>
1611<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mes' title="Parse hexabyte"><code>++mes</code></a>
1597−<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and "><code>++nix</code></a>
1612+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nix' title="Parse letters and underscore"><code>++nix</code></a>
1598<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nud' title="Parse numeric character"><code>++nud</code></a>
1613<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#nud' title="Parse numeric character"><code>++nud</code></a>
1599<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#prn' title="Parse any printable character"><code>++prn</code></a>
1614<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#prn' title="Parse any printable character"><code>++prn</code></a>
1615+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qat' title="Parse chars in blockcord"><code>++qat</code></a>
1600<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qit' title="Parse character to cord atom"><code>++qit</code></a>
1616<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qit' title="Parse character to cord atom"><code>++qit</code></a>
1601<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qut' title="Parse cord"><code>++qut</code></a>
1617<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#qut' title="Parse cord"><code>++qut</code></a>
1602<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#soz' title="Parse triple singlequote"><code>++soz</code></a>
1618<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#soz' title="Parse triple singlequote"><code>++soz</code></a>
1603<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#sym' title="Term"><code>++sym</code></a>
1619<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#sym' title="Term"><code>++sym</code></a>
1620+<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#mixed-case-symbol' title="Mixed-case term"><code>++mixed-case-symbol</code></a>
1604<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#ven' title="Axis syntax parser"><code>++ven</code></a>
1621<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#ven' title="Axis syntax parser"><code>++ven</code></a>
1605<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vit' title="Parse base 64 digit"><code>++vit</code></a>
1622<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vit' title="Parse base 64 digit"><code>++vit</code></a>
1606<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vul' title="Comments to null"><code>++vul</code></a>
1623<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vul' title="Comments to null"><code>++vul</code></a>
@@ -1609,15 +1626,19 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1609
1626
1610<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ab' title="Primitive parser engine"><code>++ab</code></a>
1627<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ab' title="Primitive parser engine"><code>++ab</code></a>
1611<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#bixab' title="Parse hex pair"><code>++bix:ab</code></a>
1628<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#bixab' title="Parse hex pair"><code>++bix:ab</code></a>
1629+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#femab' title="Parse base58check char"><code>++fem:ab</code></a>
1630+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hafab' title="Parse non-doz phonetic pair"><code>++haf:ab</code></a>
1631+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hefab' title="Parse non-dozzod phonetic pair"><code>++hef:ab</code></a>
1612<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hifab' title="Parse phonetic pair"><code>++hif:ab</code></a>
1632<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hifab' title="Parse phonetic pair"><code>++hif:ab</code></a>
1613−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse two phonetic pairs"><code>++huf:ab</code></a>
1633+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hofab' title="Parse 2-4 @q phonetic pair"><code>++hof:ab</code></a>
1634+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hufab' title="Parse 1-4 @q phonetic pairs"><code>++huf:ab</code></a>
1614−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse 8 phonetic bytes"><code>++hyf:ab</code></a>
1635+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hyfab' title="Parse four @q phonetic pairs"><code>++hyf:ab</code></a>
1615−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse <=5 in base 32"><code>++pev:ab</code></a>
1636+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse 1-5 @uv base-32 chars"><code>++pev:ab</code></a>
1616<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
1637<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
1617−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 digits in base 32"><code>++piv:ab</code></a>
1638+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pivab' title="Parse 5 @uv base-32 chars"><code>++piv:ab</code></a>
1618−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 digits in base 64"><code>++piw:ab</code></a>
1639+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#piwab' title="Parse 5 @uw base-64 chars"><code>++piw:ab</code></a>
1619−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse <=4 binary digits"><code>++qeb:ab</code></a>
1640+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qebab' title="Parse 1-4 binary digits"><code>++qeb:ab</code></a>
1620−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse <=4 hexadecimal digits"><code>++qex:ab</code></a>
1641+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qexab' title="Parse 1-4 hex digits"><code>++qex:ab</code></a>
1621<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qibab' title="Parse 4 binary digits"><code>++qib:ab</code></a>
1642<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qibab' title="Parse 4 binary digits"><code>++qib:ab</code></a>
1622<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qixab' title="Parse 4 hexadecimal digits"><code>++qix:ab</code></a>
1643<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#qixab' title="Parse 4 hexadecimal digits"><code>++qix:ab</code></a>
1623<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sebab' title="Parse 1"><code>++seb:ab</code></a>
1644<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sebab' title="Parse 1"><code>++seb:ab</code></a>
@@ -1630,16 +1651,17 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1630<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sivab' title="Parse a base 32 digit"><code>++siv:ab</code></a>
1651<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sivab' title="Parse a base 32 digit"><code>++siv:ab</code></a>
1631<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#siwab' title="Parse a base 64 digit"><code>++siw:ab</code></a>
1652<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#siwab' title="Parse a base 64 digit"><code>++siw:ab</code></a>
1632<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sixab' title="Parse a hexadecimal digit"><code>++six:ab</code></a>
1653<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sixab' title="Parse a hexadecimal digit"><code>++six:ab</code></a>
1633−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse base 32 letter"><code>++sov:ab</code></a>
1654+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sovab' title="Parse @uv base-32 letter"><code>++sov:ab</code></a>
1634−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse base 64 letter/symbol"><code>++sow:ab</code></a>
1655+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#sowab' title="Parse @uw base-64 letter/symbol"><code>++sow:ab</code></a>
1635<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#soxab' title="Parse hexadecimal letter"><code>++sox:ab</code></a>
1656<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#soxab' title="Parse hexadecimal letter"><code>++sox:ab</code></a>
1636−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse decimal number with <= 3 digits"><code>++ted:ab</code></a>
1657+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tedab' title="Parse 1-999 decimal"><code>++ted:ab</code></a>
1658+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tepab' title="Parse non-doz leading phonetic byte"><code>++tep:ab</code></a>
1637<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tidab' title="Parse 3 decimal digits"><code>++tid:ab</code></a>
1659<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tidab' title="Parse 3 decimal digits"><code>++tid:ab</code></a>
1638<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tilab' title="Parse 3 lowercase letters"><code>++til:ab</code></a>
1660<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tilab' title="Parse 3 lowercase letters"><code>++til:ab</code></a>
1639<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tipab' title="Leading phonetic byte"><code>++tip:ab</code></a>
1661<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tipab' title="Leading phonetic byte"><code>++tip:ab</code></a>
1640<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tiqab' title="Trailing phonetic syllable"><code>++tiq:ab</code></a>
1662<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#tiqab' title="Trailing phonetic syllable"><code>++tiq:ab</code></a>
1641−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse span characters"><code>++urs:ab</code></a>
1663+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ursab' title="Parse knot characters"><code>++urs:ab</code></a>
1642−<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse non_ span"><code>++urt:ab</code></a>
1664+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#urtab' title="Parse knot without underscores"><code>++urt:ab</code></a>
1643<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#voyab' title="Parse bas, soq, or bix"><code>++voy:ab</code></a>
1665<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#voyab' title="Parse bas, soq, or bix"><code>++voy:ab</code></a>
1644
1666
1645<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ag' title="Toplevel atom parser engine"><code>++ag</code></a>
1667<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ag' title="Toplevel atom parser engine"><code>++ag</code></a>
@@ -1650,8 +1672,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1650<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dimag' title="Parse decimal number"><code>++dim:ag</code></a>
1672<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dimag' title="Parse decimal number"><code>++dim:ag</code></a>
1651<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dumag' title="Parse decimal with leading zero"><code>++dum:ag</code></a>
1673<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dumag' title="Parse decimal with leading zero"><code>++dum:ag</code></a>
1652<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fedag' title="Parse @p"><code>++fed:ag</code></a>
1674<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fedag' title="Parse @p"><code>++fed:ag</code></a>
1675+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#feqag' title="Parse @q phonetic base"><code>++feq:ag</code></a>
1676+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#fimag' title="Parse base58check"><code>++fim:ag</code></a>
1653<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hexag' title="Parse hexadecimal number"><code>++hex:ag</code></a>
1677<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#hexag' title="Parse hexadecimal number"><code>++hex:ag</code></a>
1654<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#lipag' title="Parse IPv4 address"><code>++lip:ag</code></a>
1678<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#lipag' title="Parse IPv4 address"><code>++lip:ag</code></a>
1679+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#motag' title="Parse numerical month"><code>++mot:ag</code></a>
1655<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vizag' title="Parse base 32 digit with dot separators"><code>++viz:ag</code></a>
1680<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vizag' title="Parse base 32 digit with dot separators"><code>++viz:ag</code></a>
1656<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vumag' title="Parse base 32 string"><code>++vum:ag</code></a>
1681<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vumag' title="Parse base 32 string"><code>++vum:ag</code></a>
1657<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wizag' title="Parse base 64 number"><code>++wiz:ag</code></a>
1682<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wizag' title="Parse base 64 number"><code>++wiz:ag</code></a>
@@ -1662,6 +1687,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1662<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#zugmu' title="Concatenate into atom"><code>++zug:mu</code></a>
1687<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#zugmu' title="Concatenate into atom"><code>++zug:mu</code></a>
1663
1688
1664<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ne' title="Digit rendering engine"><code>++ne</code></a>
1689<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#ne' title="Digit rendering engine"><code>++ne</code></a>
1690+<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#cne' title="Render base58check"><code>++c:ne</code></a>
1665<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dne' title="Render decimal"><code>++d:ne</code></a>
1691<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dne' title="Render decimal"><code>++d:ne</code></a>
1666<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vne' title="Render base 32"><code>++v:ne</code></a>
1692<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#vne' title="Render base 32"><code>++v:ne</code></a>
1667<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wne' title="Render base 64 digit"><code>++w:ne</code></a>
1693<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wne' title="Render base 64 digit"><code>++w:ne</code></a>
lib/glossary.js+116−25
@@ -1836,6 +1836,13 @@ export const glossary = [
1836 slug: "https://urbit.org/docs/reference/library/2q/#byts",
1836 slug: "https://urbit.org/docs/reference/library/2q/#byts",
1837 desc: "Used in the Hoon standard library.",
1837 desc: "Used in the Hoon standard library.",
1838 },
1838 },
1839+ {
1840+ name: "Render base58check",
1841+ symbol: "c:ne",
1842+ usage: "stdlib",
1843+ slug: "https://urbit.org/docs/reference/library/4j/#cne",
1844+ desc: "Used in the Hoon standard library.",
1845+ },
1839 {
1846 {
1840 name: "Parse _ (cab)",
1847 name: "Parse _ (cab)",
1841 symbol: "cab",
1848 symbol: "cab",
@@ -2284,6 +2291,13 @@ export const glossary = [
2284 slug: "https://urbit.org/docs/reference/library/3b/#divrq",
2291 slug: "https://urbit.org/docs/reference/library/3b/#divrq",
2285 desc: "Used in the Hoon standard library.",
2292 desc: "Used in the Hoon standard library.",
2286 },
2293 },
2294+ {
2295+ name: "Hep & optional gap",
2296+ symbol: "dof",
2297+ usage: "stdlib",
2298+ slug: "https://urbit.org/docs/reference/library/4i/#dof",
2299+ desc: "Used in the Hoon standard library.",
2300+ },
2287 {
2301 {
2288 name: "Optional gap",
2302 name: "Optional gap",
2289 symbol: "dog",
2303 symbol: "dog",
@@ -2648,6 +2662,13 @@ export const glossary = [
2648 slug: "https://urbit.org/docs/reference/library/3f/#feinob",
2662 slug: "https://urbit.org/docs/reference/library/3f/#feinob",
2649 desc: "Used in the Hoon standard library.",
2663 desc: "Used in the Hoon standard library.",
2650 },
2664 },
2665+ {
2666+ name: "Parse base58check character",
2667+ symbol: "fem:ab",
2668+ usage: "stdlib",
2669+ slug: "https://urbit.org/docs/reference/library/4j/#femab",
2670+ desc: "Used in the Hoon standard library.",
2671+ },
2651 {
2672 {
2652 name: "Reverse +fe",
2673 name: "Reverse +fe",
2653 symbol: "fen:ob",
2674 symbol: "fen:ob",
@@ -2655,6 +2676,13 @@ export const glossary = [
2655 slug: "https://urbit.org/docs/reference/library/3f/#fenob",
2676 slug: "https://urbit.org/docs/reference/library/3f/#fenob",
2656 desc: "Used in the Hoon standard library.",
2677 desc: "Used in the Hoon standard library.",
2657 },
2678 },
2679+ {
2680+ name: "Parse @q phonetic base",
2681+ symbol: "feq:ag",
2682+ usage: "stdlib",
2683+ slug: "https://urbit.org/docs/reference/library/4j/#feqag",
2684+ desc: "Used in the Hoon standard library.",
2685+ },
2658 {
2686 {
2659 name: "Restore structure v3",
2687 name: "Restore structure v3",
2660 symbol: "fynd:ob",
2688 symbol: "fynd:ob",
@@ -2676,6 +2704,13 @@ export const glossary = [
2676 slug: "https://urbit.org/docs/reference/library/2c/#fil",
2704 slug: "https://urbit.org/docs/reference/library/2c/#fil",
2677 desc: "Used in the Hoon standard library.",
2705 desc: "Used in the Hoon standard library.",
2678 },
2706 },
2707+ {
2708+ name: "Parse base58check",
2709+ symbol: "fim:ag",
2710+ usage: "stdlib",
2711+ slug: "https://urbit.org/docs/reference/library/4j/#fim:ag",
2712+ desc: "Used in the Hoon standard library.",
2713+ },
2679 {
2714 {
2680 name: "First index in list",
2715 name: "First index in list",
2681 symbol: "find",
2716 symbol: "find",
@@ -3110,6 +3145,13 @@ export const glossary = [
3110 slug: "https://urbit.org/docs/reference/library/2b/#gulf",
3145 slug: "https://urbit.org/docs/reference/library/2b/#gulf",
3111 desc: "Used in the Hoon standard library.",
3146 desc: "Used in the Hoon standard library.",
3112 },
3147 },
3148+ {
3149+ name: "Parse non-doz phonetic pair",
3150+ symbol: "haf:ab",
3151+ usage: "stdlib",
3152+ slug: "https://urbit.org/docs/reference/library/4j/#hafab",
3153+ desc: "Used in the Hoon standard library.",
3154+ },
3113 {
3155 {
3114 name: "Parsing line and column",
3156 name: "Parsing line and column",
3115 symbol: "hair",
3157 symbol: "hair",
@@ -3152,6 +3194,13 @@ export const glossary = [
3152 slug: "https://urbit.org/docs/reference/library/2n/#head",
3194 slug: "https://urbit.org/docs/reference/library/2n/#head",
3153 desc: "Used in the Hoon standard library.",
3195 desc: "Used in the Hoon standard library.",
3154 },
3196 },
3197+ {
3198+ name: "Parse non-dozzod phonetic pair",
3199+ symbol: "hef:ab",
3200+ usage: "stdlib",
3201+ slug: "https://urbit.org/docs/reference/library/4j/#hefab",
3202+ desc: "Used in the Hoon standard library.",
3203+ },
3155 {
3204 {
3156 name: "Place-based apply",
3205 name: "Place-based apply",
3157 symbol: "here",
3206 symbol: "here",
@@ -3201,6 +3250,13 @@ export const glossary = [
3201 slug: "https://urbit.org/docs/reference/library/4i/#hit",
3250 slug: "https://urbit.org/docs/reference/library/4i/#hit",
3202 desc: "Used in the Hoon standard library.",
3251 desc: "Used in the Hoon standard library.",
3203 },
3252 },
3253+ {
3254+ name: "Parse 2-4 @q phonetic pairs",
3255+ symbol: "hof:ab",
3256+ usage: "stdlib",
3257+ slug: "https://urbit.org/docs/reference/library/4j/#hofab",
3258+ desc: "Used in the Hoon standard library.",
3259+ },
3204 {
3260 {
3205 name: "Homogenize list",
3261 name: "Homogenize list",
3206 symbol: "homo",
3262 symbol: "homo",
@@ -3216,7 +3272,7 @@ export const glossary = [
3216 desc: "Used in the Hoon standard library.",
3272 desc: "Used in the Hoon standard library.",
3217 },
3273 },
3218 {
3274 {
3219− name: "Parse two phonetic pairs",
3275+ name: "Parse 1-4 @q phonetic pairs",
3220 symbol: "huf:ab",
3276 symbol: "huf:ab",
3221 usage: "stdlib",
3277 usage: "stdlib",
3222 slug: "https://urbit.org/docs/reference/library/4j/#hufab",
3278 slug: "https://urbit.org/docs/reference/library/4j/#hufab",
@@ -3230,7 +3286,7 @@ export const glossary = [
3230 desc: "Used in the Hoon standard library.",
3286 desc: "Used in the Hoon standard library.",
3231 },
3287 },
3232 {
3288 {
3233− name: "Parse 8 phonetic bytes",
3289+ name: "Parse four @q phonetic pairs",
3234 symbol: "hyf:ab",
3290 symbol: "hyf:ab",
3235 usage: "stdlib",
3291 usage: "stdlib",
3236 slug: "https://urbit.org/docs/reference/library/4j/#hyfab",
3292 slug: "https://urbit.org/docs/reference/library/4j/#hyfab",
@@ -3859,6 +3915,13 @@ export const glossary = [
3859 slug: "https://urbit.org/docs/reference/library/2d/#mix",
3915 slug: "https://urbit.org/docs/reference/library/2d/#mix",
3860 desc: "Used in the Hoon standard library.",
3916 desc: "Used in the Hoon standard library.",
3861 },
3917 },
3918+ {
3919+ name: "Mixed-case term",
3920+ symbol: "mixed-case-symbol",
3921+ usage: "stdlib",
3922+ slug: "https://urbit.org/docs/reference/library/4i/#mixed-case-symbol",
3923+ desc: "Used in the Hoon standard library.",
3924+ },
3862 {
3925 {
3863 name: "Compute formula on subject with hint",
3926 name: "Compute formula on subject with hint",
3864 symbol: "mock",
3927 symbol: "mock",
@@ -3922,6 +3985,13 @@ export const glossary = [
3922 slug: "https://urbit.org/docs/reference/library/4f/#most",
3985 slug: "https://urbit.org/docs/reference/library/4f/#most",
3923 desc: "Used in the Hoon standard library.",
3986 desc: "Used in the Hoon standard library.",
3924 },
3987 },
3988+ {
3989+ name: "Parse numerical month",
3990+ symbol: "mot:ag",
3991+ usage: "stdlib",
3992+ slug: "https://urbit.org/docs/reference/library/4j/#mot",
3993+ desc: "Used in the Hoon standard library.",
3994+ },
3925 {
3995 {
3926 name: "Days in months of leap-year",
3996 name: "Days in months of leap-year",
3927 symbol: "moy:yo",
3997 symbol: "moy:yo",
@@ -4098,7 +4168,7 @@ export const glossary = [
4098 desc: "Used in the Hoon standard library.",
4168 desc: "Used in the Hoon standard library.",
4099 },
4169 },
4100 {
4170 {
4101− name: "Parse letters and -",
4171+ name: "Parse letters and underscore",
4102 symbol: "nix",
4172 symbol: "nix",
4103 usage: "stdlib",
4173 usage: "stdlib",
4104 slug: "https://urbit.org/docs/reference/library/4i/#nix",
4174 slug: "https://urbit.org/docs/reference/library/4i/#nix",
@@ -4238,17 +4308,17 @@ export const glossary = [
4238 desc: "Used in the Hoon standard library.",
4308 desc: "Used in the Hoon standard library.",
4239 },
4309 },
4240 {
4310 {
4241− name: "Parse ( (pel)",
4311+ name: "Parse ( (pal)",
4242− symbol: "pel",
4312+ symbol: "pal",
4243 usage: "stdlib",
4313 usage: "stdlib",
4244− slug: "https://urbit.org/docs/reference/library/4h/#pel",
4314+ slug: "https://urbit.org/docs/reference/library/4h/#pal",
4245 desc: "Used in the Hoon standard library.",
4315 desc: "Used in the Hoon standard library.",
4246 },
4316 },
4247 {
4317 {
4248− name: "Parse ) (per)",
4318+ name: "Parse ) (par)",
4249− symbol: "per",
4319+ symbol: "par",
4250 usage: "stdlib",
4320 usage: "stdlib",
4251− slug: "https://urbit.org/docs/reference/library/4h/#per",
4321+ slug: "https://urbit.org/docs/reference/library/4h/#par",
4252 desc: "Used in the Hoon standard library.",
4322 desc: "Used in the Hoon standard library.",
4253 },
4323 },
4254 {
4324 {
@@ -4266,7 +4336,7 @@ export const glossary = [
4266 desc: "Used in the Hoon standard library.",
4336 desc: "Used in the Hoon standard library.",
4267 },
4337 },
4268 {
4338 {
4269− name: "Parse <=5 in base 32",
4339+ name: "Parse 1-5 @uv base-32 chars",
4270 symbol: "pev:ab",
4340 symbol: "pev:ab",
4271 usage: "stdlib",
4341 usage: "stdlib",
4272 slug: "https://urbit.org/docs/reference/library/4j/#pevab",
4342 slug: "https://urbit.org/docs/reference/library/4j/#pevab",
@@ -4294,14 +4364,14 @@ export const glossary = [
4294 desc: "Used in the Hoon standard library.",
4364 desc: "Used in the Hoon standard library.",
4295 },
4365 },
4296 {
4366 {
4297− name: "Parse 5 digits in base 32",
4367+ name: "Parse 5 @uv base-32 chars",
4298 symbol: "piv:ab",
4368 symbol: "piv:ab",
4299 usage: "stdlib",
4369 usage: "stdlib",
4300 slug: "https://urbit.org/docs/reference/library/4j/#pivab",
4370 slug: "https://urbit.org/docs/reference/library/4j/#pivab",
4301 desc: "Used in the Hoon standard library.",
4371 desc: "Used in the Hoon standard library.",
4302 },
4372 },
4303 {
4373 {
4304− name: "Parse 5 digits in base 64",
4374+ name: "Parse 5 @uw base-64 chars",
4305 symbol: "piw:ab",
4375 symbol: "piw:ab",
4306 usage: "stdlib",
4376 usage: "stdlib",
4307 slug: "https://urbit.org/docs/reference/library/4j/#piwab",
4377 slug: "https://urbit.org/docs/reference/library/4j/#piwab",
@@ -4427,7 +4497,14 @@ export const glossary = [
4427 desc: "Used in the Hoon standard library.",
4497 desc: "Used in the Hoon standard library.",
4428 },
4498 },
4429 {
4499 {
4500+ name: "Chors in blockcord",
4501+ symbol: "qat",
4502+ usage: "stdlib",
4503+ slug: "https://urbit.org/docs/reference/library/4i/#qat",
4504+ desc: "Used in the Hoon standard library.",
4505+ },
4506+ {
4430− name: "Parse <=4 binary digits",
4507+ name: "Parse 1-4 binary digits",
4431 symbol: "qeb:ab",
4508 symbol: "qeb:ab",
4432 usage: "stdlib",
4509 usage: "stdlib",
4433 slug: "https://urbit.org/docs/reference/library/4j/#qebab",
4510 slug: "https://urbit.org/docs/reference/library/4j/#qebab",
@@ -4441,7 +4518,7 @@ export const glossary = [
4441 desc: "Used in the Hoon standard library.",
4518 desc: "Used in the Hoon standard library.",
4442 },
4519 },
4443 {
4520 {
4444− name: "Parse <=4 hexadecimal digits",
4521+ name: "Parse 1-4 hex digits",
4445 symbol: "qex:ab",
4522 symbol: "qex:ab",
4446 usage: "stdlib",
4523 usage: "stdlib",
4447 slug: "https://urbit.org/docs/reference/library/4j/#qexab",
4524 slug: "https://urbit.org/docs/reference/library/4j/#qexab",
@@ -4678,6 +4755,13 @@ export const glossary = [
4678 slug: "https://urbit.org/docs/reference/library/2c/#rorfe",
4755 slug: "https://urbit.org/docs/reference/library/2c/#rorfe",
4679 desc: "Used in the Hoon standard library.",
4756 desc: "Used in the Hoon standard library.",
4680 },
4757 },
4758+ {
4759+ name: "Parse to each",
4760+ symbol: "rose",
4761+ usage: "stdlib",
4762+ slug: "https://urbit.org/docs/reference/library/4g/#rose",
4763+ desc: "Used in the Hoon standard library.",
4764+ },
4681 {
4765 {
4682 name: "Round to nearest float with 113-bit significand",
4766 name: "Round to nearest float with 113-bit significand",
4683 symbol: "rou:fl",
4767 symbol: "rou:fl",
@@ -4987,10 +5071,10 @@ export const glossary = [
4987 desc: "Used in the Hoon standard library.",
5071 desc: "Used in the Hoon standard library.",
4988 },
5072 },
4989 {
5073 {
4990− name: "Parse ; (sem)",
5074+ name: "Parse ; (mic)",
4991− symbol: "sem",
5075+ symbol: "mic",
4992 usage: "stdlib",
5076 usage: "stdlib",
4993− slug: "https://urbit.org/docs/reference/library/4h/#sem",
5077+ slug: "https://urbit.org/docs/reference/library/4h/#mic",
4994 desc: "Used in the Hoon standard library.",
5078 desc: "Used in the Hoon standard library.",
4995 },
5079 },
4996 {
5080 {
@@ -5386,14 +5470,14 @@ export const glossary = [
5386 desc: "Used in the Hoon standard library.",
5470 desc: "Used in the Hoon standard library.",
5387 },
5471 },
5388 {
5472 {
5389− name: "Parse base 32 letter",
5473+ name: "Parse @uv base-32 letter",
5390 symbol: "sov:ab",
5474 symbol: "sov:ab",
5391 usage: "stdlib",
5475 usage: "stdlib",
5392 slug: "https://urbit.org/docs/reference/library/4j/#sovab",
5476 slug: "https://urbit.org/docs/reference/library/4j/#sovab",
5393 desc: "Used in the Hoon standard library.",
5477 desc: "Used in the Hoon standard library.",
5394 },
5478 },
5395 {
5479 {
5396− name: "Parse base 64 letter/symbol",
5480+ name: "Parse @uw base-64 letter/symbol",
5397 symbol: "sow:ab",
5481 symbol: "sow:ab",
5398 usage: "stdlib",
5482 usage: "stdlib",
5399 slug: "https://urbit.org/docs/reference/library/4j/#sowab",
5483 slug: "https://urbit.org/docs/reference/library/4j/#sowab",
@@ -5834,14 +5918,14 @@ export const glossary = [
5834 desc: "Used in the Hoon standard library.",
5918 desc: "Used in the Hoon standard library.",
5835 },
5919 },
5836 {
5920 {
5837− name: "Parse ` (tec)",
5921+ name: "Parse ` (tic)",
5838− symbol: "tec",
5922+ symbol: "tic",
5839 usage: "stdlib",
5923 usage: "stdlib",
5840− slug: "https://urbit.org/docs/reference/library/4h/#tec",
5924+ slug: "https://urbit.org/docs/reference/library/4h/#tic",
5841 desc: "Used in the Hoon standard library.",
5925 desc: "Used in the Hoon standard library.",
5842 },
5926 },
5843 {
5927 {
5844− name: "Parse decimal number with <= 3 digits",
5928+ name: "Parse 1-999 decimal",
5845 symbol: "ted:ab",
5929 symbol: "ted:ab",
5846 usage: "stdlib",
5930 usage: "stdlib",
5847 slug: "https://urbit.org/docs/reference/library/4j/#tedab",
5931 slug: "https://urbit.org/docs/reference/library/4j/#tedab",
@@ -5854,6 +5938,13 @@ export const glossary = [
5854 slug: "https://urbit.org/docs/reference/library/4b/#teff",
5938 slug: "https://urbit.org/docs/reference/library/4b/#teff",
5855 desc: "Used in the Hoon standard library.",
5939 desc: "Used in the Hoon standard library.",
5856 },
5940 },
5941+ {
5942+ name: "Parse non-doz leading phonetic byte",
5943+ symbol: "tep:ab",
5944+ usage: "stdlib",
5945+ slug: "https://urbit.org/docs/reference/library/4j/#tep:ab",
5946+ desc: "Used in the Hoon standard library.",
5947+ },
5857 {
5948 {
5858 name: "Reverse +feis",
5949 name: "Reverse +feis",
5859 symbol: "tail:ob",
5950 symbol: "tail:ob",
@@ -6191,14 +6282,14 @@ export const glossary = [
6191 desc: "Used in the Hoon standard library.",
6282 desc: "Used in the Hoon standard library.",
6192 },
6283 },
6193 {
6284 {
6194− name: "Parse span characters",
6285+ name: "Parse knot characters",
6195 symbol: "urs:ab",
6286 symbol: "urs:ab",
6196 usage: "stdlib",
6287 usage: "stdlib",
6197 slug: "https://urbit.org/docs/reference/library/4j/#ursab",
6288 slug: "https://urbit.org/docs/reference/library/4j/#ursab",
6198 desc: "Used in the Hoon standard library.",
6289 desc: "Used in the Hoon standard library.",
6199 },
6290 },
6200 {
6291 {
6201− name: "Parse non-_ span",
6292+ name: "Parse knot without underscores",
6202 symbol: "urt:ab",
6293 symbol: "urt:ab",
6203 usage: "stdlib",
6294 usage: "stdlib",
6204 slug: "https://urbit.org/docs/reference/library/4j/#urtab",
6295 slug: "https://urbit.org/docs/reference/library/4j/#urtab",