on master help sign in
thru 4L
commitccd1a0899d3a5e3e0a8746a3770bdd791a098163 authorHenry Ault <henry@tlon.io> dateMon 21 Mar 2016, 17:18 (11 years ago) parent35b7e29
8 files changed+345−300
docs/system/hoon/library/src/4k/core/co.md+140−214 docs/system/hoon/library/src/4k/gate/iny.md+3−3 docs/system/hoon/library/src/4k/gate/mes.md+1−1 docs/system/hoon/library/src/4k/gate/ven.md+2−2 docs/system/hoon/library/src/4k/gate/vit.md+3−3 docs/system/hoon/library/src/4k/gate/vul.md+1−1 docs/system/hoon/library/src/4l/core/.so.md.swp docs/system/hoon/library/src/4l/core/so.md+195−76
docs/system/hoon/library/src/4k/core/co.md+140−214
@@ -2,7 +2,7 @@
22
33Literal rendering engine
44
5−A [door]() that contains arms that operate on the sample coin `lot`.
5+A door that contains arms that operate on the sample coin `lot`.
66
77Accepts
88-------
@@ -10,27 +10,24 @@ Accepts
1010Produces
1111--------
1212
13−`lot` is a [`++coin`]().
13+`lot` is a `++coin`.
1414
1515Source
1616------
1717
18− ++ co
19− =< |_ lot=coin
18+ ++ co !.
19+ ~% %co ..co ~
20+ =< |_ lot/coin
21+
2022
2123Examples
2224--------
2325
24− ~zod/try=> ~(. co many/~[`ta/'mo' `ud/5])
25− < 3.dhd
26− [ [ %many
27− [%~ %ta @t]
28− [%~ %ud @ud]
29− %~
30− ]
31− <10.utz 3.zid [rex="" <414.hmb 100.xkc 1.ypj %164>]>
32− ]
33− >
26+ ~zod/try=> < 3.nta
27+ { lot/{$many {$~ $ta @t} {$~ $ud @ud} $~}
28+ <10.cfg 4.jjn {rep/"" <402.arm 110.jyx 1.ztu $151>}>
29+ }
30+ >
3431
3532------------------------------------------------------------------------
3633
@@ -38,7 +35,7 @@ Examples
3835
3936Prepend & render as tape
4037
41−Renders a coin `lot` as a [tape]() prepended to the sample tape `rom`.
38+Renders a coin `lot` as a tape prepended to the sample tape `rom`.
4239
4340Accepts
4441-------
@@ -46,14 +43,14 @@ Accepts
4643Produces
4744--------
4845
49−`rom` is a [`pe`]()
46+`rom` is a `pe`
5047
51−`lot` is a [`++coin`]().
48+`lot` is a `++coin`.
5249
5350Source
5451------
5552
56− ++ rear |=(rom=tape =>(.(rex rom) rend))
53+ ++ rear |=(rom/tape =>(.(rex rom) rend))
5754
5855Examples
5956--------
@@ -75,7 +72,7 @@ Accepts
7572Produces
7673--------
7774
78−`lot` is a [`++coin`]().
75+`lot` is a `++coin`.
7976
8077Source
8178------
@@ -104,216 +101,145 @@ Accepts
104101Produces
105102--------
106103
107−`lot` is a [`++coin`]().
104+`lot` is a `++coin`.
108105
109106Source
110107------
111108
112− ++ rend
113− ^- tape
114− ?: ?=(%blob -.lot)
115− ['~' '0' ((v-co 1) (jam p.lot))]
116− ?: ?=(%many -.lot)
117− :- '.'
118− |- ^- tape
119− ?~ p.lot
120− ['_' '_' rex]
121− ['_' (weld (trip (wack rent(lot i.p.lot))) $(p.lot t.p.lot))]
122− =+ [yed=(end 3 1 p.p.lot) hay=(cut 3 [1 1] p.p.lot)]
123− |- ^- tape
124− ?+ yed (z-co q.p.lot)
125− %c ['~' '-' (weld (rip 3 (wood (tuft q.p.lot))) rex)]
126− %d
127− ?+ hay (z-co q.p.lot)
128− %a
129− =+ yod=(yore q.p.lot)
130− => ^+(. .(rex ?~(f.t.yod rex ['.' (s-co f.t.yod)])))
131− => ^+ .
132− %= .
133− rex
134− ?: &(=(~ f.t.yod) =(0 h.t.yod) =(0 m.t.yod) =(0 s.t.yod))
135− rex
136− => .(rex ['.' (y-co s.t.yod)])
137− => .(rex ['.' (y-co m.t.yod)])
138− ['.' '.' (y-co h.t.yod)]
139− ==
140− => .(rex ['.' (a-co d.t.yod)])
141− => .(rex ['.' (a-co m.yod)])
142− => .(rex ?:(a.yod rex ['-' rex]))
143− ['~' (a-co y.yod)]
144− ::
145− %r
146− =+ yug=(yell q.p.lot)
147− => ^+(. .(rex ?~(f.yug rex ['.' (s-co f.yug)])))
148− :- '~'
149− ?: &(=(0 d.yug) =(0 m.yug) =(0 h.yug) =(0 s.yug))
150− ['.' 's' '0' rex]
151− => ^+(. ?:(=(0 s.yug) . .(rex ['.' 's' (a-co s.yug)])))
152− => ^+(. ?:(=(0 m.yug) . .(rex ['.' 'm' (a-co m.yug)])))
153− => ^+(. ?:(=(0 h.yug) . .(rex ['.' 'h' (a-co h.yug)])))
154− => ^+(. ?:(=(0 d.yug) . .(rex ['.' 'd' (a-co d.yug)])))
155− +.rex
156− ==
157− ::
158− %f
159− ?: =(& q.p.lot)
160− ['.' 'y' rex]
161− ?:(=(| q.p.lot) ['.' 'n' rex] (z-co q.p.lot))
162− ::
163− %n ['~' rex]
164− %i
165− ?+ hay (z-co q.p.lot)
166− %f ((ro-co [3 10 4] |=(a=@ ~(d ne a))) q.p.lot)
167− %s ((ro-co [4 16 8] |=(a=@ ~(x ne a))) q.p.lot)
168− ==
169− ::
170− %p
171− =+ dyx=(met 3 q.p.lot)
172− :- '~'
173− ?: (lte dyx 1)
174− (weld (trip (tod:po q.p.lot)) rex)
175− ?: =(2 dyx)
176− ;: weld
177− (trip (tos:po (end 3 1 q.p.lot)))
178− (trip (tod:po (rsh 3 1 q.p.lot)))
179− rex
180− ==
181− =+ [dyz=(met 5 q.p.lot) fin=|]
182− |- ^- tape
183− ?: =(0 dyz)
184− rex
185− %= $
186− fin &
187− dyz (dec dyz)
188− q.p.lot (rsh 5 1 q.p.lot)
189− rex
190− =+ syb=(wren:un (end 5 1 q.p.lot))
191− =+ cog=~(zig mu [(rsh 4 1 syb) (end 4 1 syb)])
192− ;: weld
193− (trip (tos:po (end 3 1 p.cog)))
194− (trip (tod:po (rsh 3 1 p.cog)))
195− `tape`['-' ~]
196− (trip (tos:po (end 3 1 q.cog)))
197− (trip (tod:po (rsh 3 1 q.cog)))
198− `tape`?:(fin ['-' ?:(=(1 (end 0 1 dyz)) ~ ['-' ~])] ~)
199− rex
109+ ++ rend
110+ ^- tape
111+ ?: ?=($blob -.lot)
112+ ['~' '0' ((v-co 1) (jam p.lot))]
113+ ?: ?=($many -.lot)
114+ :- '.'
115+ |- ^- tape
116+ ?~ p.lot
117+ ['_' '_' rep]
118+ ['_' (weld (trip (wack rent(lot i.p.lot))) $(p.lot t.p.lot))]
119+ =+ [yed=(end 3 1 p.p.lot) hay=(cut 3 [1 1] p.p.lot)]
120+ |- ^- tape
121+ ?+ yed (z-co q.p.lot)
122+ $c ['~' '-' (weld (rip 3 (wood (tuft q.p.lot))) rep)]
123+ $d
124+ ?+ hay (z-co q.p.lot)
125+ $a
126+ =+ yod=(yore q.p.lot)
127+ => ^+(. .(rep ?~(f.t.yod rep ['.' (s-co f.t.yod)])))
128+ => ^+ .
129+ %= .
130+ rep
131+ ?: &(=(~ f.t.yod) =(0 h.t.yod) =(0 m.t.yod) =(0 s.t.yod))
132+ rep
133+ => .(rep ['.' (y-co s.t.yod)])
134+ => .(rep ['.' (y-co m.t.yod)])
135+ ['.' '.' (y-co h.t.yod)]
200136 ==
201− ==
202− ::
203− %r
204− ?+ hay (z-co q.p.lot)
205− %d
206− =+ r=(rlyd q.p.lot)
207− ?~ e.r
208− ['.' '~' (r-co r)]
209− ['.' '~' u.e.r]
210− %h ['.' '~' '~' (r-co (rlyh q.p.lot))]
211− %q ['.' '~' '~' '~' (r-co (rlyq q.p.lot))]
212− %s ['.' (r-co (rlys q.p.lot))]
213− ==
214− ::
215− %u
216− =- (weld p.gam ?:(=(0 q.p.lot) `tape`['0' ~] q.gam))
217− ^= gam ^- [p=tape q=tape]
218− ?+ hay [~ ((ox-co [10 3] |=(a=@ ~(d ne a))) q.p.lot)]
219− %b [['0' 'b' ~] ((ox-co [2 4] |=(a=@ ~(d ne a))) q.p.lot)]
220− %i [['0' 'i' ~] ((d-co 1) q.p.lot)]
221− %x [['0' 'x' ~] ((ox-co [16 4] |=(a=@ ~(x ne a))) q.p.lot)]
222− %v [['0' 'v' ~] ((ox-co [32 5] |=(a=@ ~(x ne a))) q.p.lot)]
223− %w [['0' 'w' ~] ((ox-co [64 5] |=(a=@ ~(w ne a))) q.p.lot)]
224− ==
225− ::
226− %s
227− %+ weld
228− ?:((syn:si q.p.lot) "--" "-")
229− $(yed 'u', q.p.lot (abs:si q.p.lot))
230− ::
231− %t
232− ?: =('a' hay)
233− ?: =('s' (cut 3 [2 1] p.p.lot))
234−
235− (weld (rip 3 q.p.lot) rex)
236− ['~' '.' (weld (rip 3 q.p.lot) rex)]
237− ['~' '~' (weld (rip 3 (wood q.p.lot)) rex)]
238− ==
239− --
240− =+ rex=*tape
241− =< |%
242− ++ a-co |=(dat=@ ((d-co 1) dat))
243− ++ d-co |=(min=@ (em-co [10 min] |=([? b=@ c=tape] [~(d ne b) c])))
244− ++ r-co
245− |= [syn=? nub=@ der=@ ign=(unit tape) ne=?]
246− => .(rex ['.' (t-co ((d-co 1) der) ne)])
247− => .(rex ((d-co 1) nub))
248− ?:(syn rex ['-' rex])
249− ++ t-co |= [a=tape n=?] ^- tape
250− ?: n a
251− ?~ a ~|(%empty-frac !!) t.a
137+ => .(rep ['.' (a-co d.t.yod)])
138+ => .(rep ['.' (a-co m.yod)])
139+ => .(rep ?:(a.yod rep ['-' rep]))
140+ ['~' (a-co y.yod)]
252141 ::
253− ++ s-co
254− |= esc=(list ,@) ^- tape
255− ~| [%so-co esc]
256− ?~ esc
257− rex
258− :- '.'
259− =>(.(rex $(esc t.esc)) ((x-co 4) i.esc))
260−
142+ $r
143+ =+ yug=(yell q.p.lot)
144+ => ^+(. .(rep ?~(f.yug rep ['.' (s-co f.yug)])))
145+ :- '~'
146+ ?: &(=(0 d.yug) =(0 m.yug) =(0 h.yug) =(0 s.yug))
147+ ['s' '0' rep]
148+ => ^+(. ?:(=(0 s.yug) . .(rep ['.' 's' (a-co s.yug)])))
149+ => ^+(. ?:(=(0 m.yug) . .(rep ['.' 'm' (a-co m.yug)])))
150+ => ^+(. ?:(=(0 h.yug) . .(rep ['.' 'h' (a-co h.yug)])))
151+ => ^+(. ?:(=(0 d.yug) . .(rep ['.' 'd' (a-co d.yug)])))
152+ +.rep
153+ ==
261154 ::
262− ++ v-co |=(min=@ (em-co [32 min] |=([? b=@ c=tape] [~(v ne b) c])))
263− ++ w-co |=(min=@ (em-co [64 min] |=([? b=@ c=tape] [~(w ne b) c])))
264− ++ x-co |=(min=@ (em-co [16 min] |=([? b=@ c=tape] [~(x ne b) c])))
265− ++ y-co |=(dat=@ ((d-co 2) dat))
266− ++ z-co |=(dat=@ `tape`['0' 'x' ((x-co 1) dat)])
267− --
268− ~% %co +> ~
269− |%
270− ++ em-co
271− ~/ %emco
272− |= [[bas=@ min=@] [par=$+([? @ tape] tape)]]
273− |= hol=@
274− ^- tape
275− ?: &(=(0 hol) =(0 min))
276− rex
277− =+ [rad=(mod hol bas) dar=(div hol bas)]
278− %= $
279− min ?:(=(0 min) 0 (dec min))
280− hol dar
281− rex (par =(0 dar) rad rex)
155+ $f
156+ ?: =(& q.p.lot)
157+ ['.' 'y' rep]
158+ ?:(=(| q.p.lot) ['.' 'n' rep] (z-co q.p.lot))
159+ ::
160+ $n ['~' rep]
161+ $i
162+ ?+ hay (z-co q.p.lot)
163+ $f ((ro-co [3 10 4] |=(a/@ ~(d ne a))) q.p.lot)
164+ $s ((ro-co [4 16 8] |=(a/@ ~(x ne a))) q.p.lot)
165+ ==
166+ ::
167+ $p
168+ =+ dyx=(met 3 q.p.lot)
169+ :- '~'
170+ ?: (lte dyx 1)
171+ (weld (trip (tod:po q.p.lot)) rep)
172+ ?: =(2 dyx)
173+ ;: weld
174+ (trip (tos:po (end 3 1 q.p.lot)))
175+ (trip (tod:po (rsh 3 1 q.p.lot)))
176+ rep
177+ ==
178+ =+ [dyz=(met 5 q.p.lot) fin=| dub=&]
179+ |- ^- tape
180+ ?: =(0 dyz)
181+ rep
182+ %= $
183+ fin &
184+ dub !dub
185+ dyz (dec dyz)
186+ q.p.lot (rsh 5 1 q.p.lot)
187+ rep
188+ =+ syb=(wren:un (end 5 1 q.p.lot))
189+ =+ cog=~(zig mu [(rsh 4 1 syb) (end 4 1 syb)])
190+ ;: weld
191+ (trip (tos:po (end 3 1 p.cog)))
192+ (trip (tod:po (rsh 3 1 p.cog)))
193+ `tape`['-' ~]
194+ (trip (tos:po (end 3 1 q.cog)))
195+ (trip (tod:po (rsh 3 1 q.cog)))
196+ `tape`?.(fin ~ ['-' ?.(dub ~ ['-' ~])])
197+ rep
198+ ==
199+ ==
200+ ::
201+ $r
202+ ?+ hay (z-co q.p.lot)
203+ $d ['.' '~' (r-co (rlyd q.p.lot))]
204+ $h ['.' '~' '~' (r-co (rlyh q.p.lot))]
205+ $q ['.' '~' '~' '~' (r-co (rlyq q.p.lot))]
206+ $s ['.' (r-co (rlys q.p.lot))]
207+ ==
208+ ::
209+ $u
210+ ?: ?=($c hay)
211+ %+ welp ['0' 'c' (reap (pad:fa q.p.lot) '1')]
212+ (c-co (enc:fa q.p.lot))
213+ =- (weld p.gam ?:(=(0 q.p.lot) `tape`['0' ~] q.gam))
214+ ^= gam ^- {p/tape q/tape}
215+ ?+ hay [~ ((ox-co [10 3] |=(a/@ ~(d ne a))) q.p.lot)]
216+ $b [['0' 'b' ~] ((ox-co [2 4] |=(a/@ ~(d ne a))) q.p.lot)]
217+ $i [['0' 'i' ~] ((d-co 1) q.p.lot)]
218+ $x [['0' 'x' ~] ((ox-co [16 4] |=(a/@ ~(x ne a))) q.p.lot)]
219+ $v [['0' 'v' ~] ((ox-co [32 5] |=(a/@ ~(x ne a))) q.p.lot)]
220+ $w [['0' 'w' ~] ((ox-co [64 5] |=(a/@ ~(w ne a))) q.p.lot)]
221+ ==
222+ ::
223+ $s
224+ %+ weld
225+ ?:((syn:si q.p.lot) "--" "-")
226+ $(yed 'u', q.p.lot (abs:si q.p.lot))
227+ ::
228+ $t
229+ ?: =('a' hay)
230+ ?: =('s' (cut 3 [2 1] p.p.lot))
231+ (weld (rip 3 q.p.lot) rep)
232+ ['~' '.' (weld (rip 3 q.p.lot) rep)]
233+ ['~' '~' (weld (rip 3 (wood q.p.lot)) rep)]
282234 ==
283− ::
284− ++ ox-co
285− ~/ %oxco
286− |= [[bas=@ gop=@] dug=$+(@ @)]
287− %+ em-co
288− [|-(?:(=(0 gop) 1 (mul bas $(gop (dec gop))))) 0]
289− |= [top=? seg=@ res=tape]
290− %+ weld
291− ?:(top ~ `tape`['.' ~])
292− %. seg
293− %+ em-co(rex res)
294− [bas ?:(top 0 gop)]
295− |=([? b=@ c=tape] [(dug b) c])
296− ::
297− ++ ro-co
298− ~/ %roco
299− |= [[buz=@ bas=@ dop=@] dug=$+(@ @)]
300− |= hol=@
301− ^- tape
302− ?: =(0 dop)
303− rex
304− => .(rex $(dop (dec dop)))
305− :- '.'
306− %- (em-co [bas 1] |=([? b=@ c=tape] [(dug b) c]))
307− [(cut buz [(dec dop) 1] hol)]
308235 --
309− ::
310236
311237Examples
312238--------
313239
314240 ~zod/try=> ~(rend co ~ %ux 200)
315241 "0xc8"
316− ~zod/try=> ~(rend co %many ~[[%$ ux/200] [%$ p/40]])
242+ ~zod/try=> ~(rend co %many ~[[%$ ux+200] [%$ p+40]])
317243 "._0xc8_~~tem__"
318244 ~zod/try=> ~(rend co ~ %p 32.819)
319245 "~pillyt"
docs/system/hoon/library/src/4k/gate/iny.md+3−3
@@ -2,13 +2,13 @@
22
33Indentation block
44
5−Apply [`++rule`]() to indented block starting at current column number, omitting
5+Apply `++rule` to indented block starting at current column number, omitting
66the leading whitespace.
77
88Accepts
99-------
1010
11−`sef` is a [`++rule`]()
11+`sef` is a `++rule`
1212
1313Produces
1414--------
@@ -18,7 +18,7 @@ A `++rule`.
1818Source
1919------
2020
21− ++ iny |* sef=_rule :: indentation block
21+ ++ inde |* sef/rule :: indentation block
2222 |= nail ^+ (sef)
2323 =+ [har tap]=[p q]:+<
2424 =+ lev=(fil 3 (dec q.har) ' ')
docs/system/hoon/library/src/4k/gate/mes.md+1−1
@@ -8,7 +8,7 @@ Source
88------
99
1010 ++ mes %+ cook :: hexbyte
11− |=([a=@ b=@] (add (mul 16 a) b))
11+ |=({a/@ b/@} (add (mul 16 a) b))
1212 ;~(plug hit hit)
1313
1414Examples
docs/system/hoon/library/src/4k/gate/ven.md+2−2
@@ -7,10 +7,10 @@ Axis syntax parser
77Source
88------
99
10− ++ ven ;~ (comp |=([a=@ b=@] (peg a b))) :: +>- axis syntax
10+ ++ ven ;~ (comp |=({a/@ b/@} (peg a b))) :: +>- axis syntax
1111 bet
1212 =+ hom=`?`|
13− |= tub=nail
13+ |= tub/nail
1414 ^- (like axis)
1515 =+ vex=?:(hom (bet tub) (gul tub))
1616 ?~ q.vex
docs/system/hoon/library/src/4k/gate/vit.md+3−3
@@ -9,9 +9,9 @@ Source
99
1010 ++ vit :: base64 digit
1111 ;~ pose
12− (cook |=(a=@ (sub a 65)) (shim 'A' 'Z'))
13− (cook |=(a=@ (sub a 71)) (shim 'a' 'z'))
14− (cook |=(a=@ (add a 4)) (shim '0' '9'))
12+ (cook |=(a/@ (sub a 65)) (shim 'A' 'Z'))
13+ (cook |=(a/@ (sub a 71)) (shim 'a' 'z'))
14+ (cook |=(a/@ (add a 4)) (shim '0' '9'))
1515 (cold 62 (just '-'))
1616 (cold 63 (just '+'))
1717 ==
docs/system/hoon/library/src/4k/gate/vul.md+1−1
@@ -5,7 +5,7 @@ Comments to null
55Source
66------
77
8− ++ vul %- cold :- ~ :: comments
8+ ++ vul %+ cold ~ :: comments
99 ;~ plug col col
1010 (star prn)
1111 (just `@`10)
docs/system/hoon/library/src/4l/core/.so.md.swpnew file

Binary file not shown.

docs/system/hoon/library/src/4l/core/so.md+195−76
@@ -2,7 +2,7 @@
22
33Coin parser engine
44
5−Core containing arms that parse [`++coin`]s.
5+Core containing arms that parse `++coin`.
66
77Accepts
88-------
@@ -29,7 +29,7 @@ Examples
2929Parse odor-atom pair
3030
3131Parsing rule. Parses an unsigned integer of any permitted base,
32−producing a [`++dime`]().
32+producing a `++dime`.
3333
3434Accepts
3535-------
@@ -69,8 +69,8 @@ Examples
6969Parse `@da`, `@dr`, `@p`, `@t`
7070
7171Parsing rule. Parses any atom of any of the following odors after a
72−leading sig, `~` into a [`++dime`](): [`@da`](), [`@dr`](), [`@p`](),
73−and [`@t`](), producing a [`++dime`]().
72+leading sig, `~` into a `++dime`: `@da`, `@dr`, `@p`,
73+and `@t`, producing a `++dime`.
7474
7575Accepts
7676-------
@@ -82,12 +82,13 @@ Source
8282------
8383
8484 ++ crub
85+ ~+
8586 ;~ pose
8687 %+ cook
87− |=(det=date `dime`[%da (year det)])
88+ |=(det/date `dime`[%da (year det)])
8889 ;~ plug
8990 %+ cook
90− |=([a=@ b=?] [b a])
91+ |=({a/@ b/?} [b a])
9192 ;~(plug dim:ag ;~(pose (cold | hep) (easy &)))
9293 ;~(pfix dot dim:ag) :: month
9394 ;~(pfix dot dim:ag) :: day
@@ -106,16 +107,16 @@ Source
106107 ==
107108 ::
108109 %+ cook
109− |= [a=(list ,[p=?(%d %h %m %s) q=@]) b=(list ,@)]
110+ |= {a/(list {p/?($d $h $m $s) q/@}) b/(list @)}
110111 =+ rop=`tarp`[0 0 0 0 b]
111112 |- ^- dime
112113 ?~ a
113114 [%dr (yule rop)]
114115 ?- p.i.a
115− %d $(a t.a, d.rop (add q.i.a d.rop))
116− %h $(a t.a, h.rop (add q.i.a h.rop))
117− %m $(a t.a, m.rop (add q.i.a m.rop))
118− %s $(a t.a, s.rop (add q.i.a s.rop))
116+ $d $(a t.a, d.rop (add q.i.a d.rop))
117+ $h $(a t.a, h.rop (add q.i.a h.rop))
118+ $m $(a t.a, m.rop (add q.i.a m.rop))
119+ $s $(a t.a, s.rop (add q.i.a s.rop))
119120 ==
120121 ;~ plug
121122 %+ most
@@ -131,20 +132,122 @@ Source
131132 ::
132133 (stag %p fed:ag)
133134 ;~(pfix dot (stag %ta urs:ab))
134− ;~(pfix sig (stag %t (cook woad urs:ab)))
135− ;~(pfix hep (stag %c (cook turf (cook woad urs:ab))))
135+ ;~(pfix sig (stag %t urx:ab))
136+ ;~(pfix hep (stag %c (cook turf urx:ab)))
136137 ==
138+ ++ nuck
139+ ~/ %nuck |= a/nail %. a
140+ %+ knee *coin |. ~+
141+ %- stew
142+ ^. stet ^. limo
143+ :~ :- ['a' 'z'] (cook |=(a/@ta [%$ %tas a]) sym)
144+ :- ['0' '9'] (stag %$ bisk)
145+ :- '-' (stag %$ tash)
146+ :- '.' ;~(pfix dot perd)
147+ :- '~' ;~(pfix sig ;~(pose twid (easy [%$ %n 0])))
148+ ==
149+ ++ nusk
150+ ~+
151+ :(sear |=(a/@ta (rush a nuck)) wick urt:ab)
152+ ++ perd
153+ ~+
154+ ;~ pose
155+ (stag %$ zust)
156+ (stag %many (ifix [cab ;~(plug cab cab)] (more cab nusk)))
157+ ==
158+ ++ royl
159+ ~+
160+ =+ ^= moo
161+ |= a/tape
162+ :- (lent a)
163+ (scan a (bass 10 (plus sid:ab)))
164+ =+ ^= voy
165+ %+ cook royl-cell
166+ ;~ pose
167+ ;~ plug
168+ (easy %d)
169+ ;~ pose (cold | hep) (easy &) ==
170+ ;~ plug dim:ag
171+ ;~ pose
172+ ;~(pfix dot (cook moo (plus (shim '0' '9'))))
173+ (easy [0 0])
174+ ==
175+ ;~ pose
176+ ;~ pfix
177+ (just 'e')
178+ ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)
179+ ==
180+ (easy [& 0])
181+ ==
182+ ==
183+ ==
184+ ;~ plug
185+ (easy %i)
186+ ;~ sfix
187+ ;~ pose (cold | hep) (easy &) ==
188+ (jest 'inf')
189+ ==
190+ ==
191+ ;~ plug
192+ (easy %n)
193+ (cold ~ (jest 'nan'))
194+ ==
195+ ==
196+ ;~ pose
197+ (stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy)))
198+ (stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy)))
199+ (stag %rd (cook ryld ;~(pfix sig voy)))
200+ (stag %rs (cook ryls voy))
201+ ==
202+ ::
203+ ++ royl-cell
204+ |= rn
205+ ^- dn
206+ ?. ?=({$d *} +<) +<
207+ =+ ^= h
208+ (dif:si (new:si f.b i.b) (sun:si d.b))
209+ [%d a h (add (mul c.b (pow 10 d.b)) e.b)]
210+ ::
211+ ++ tash
212+ ~+
213+ =+ ^= neg
214+ |= {syn/? mol/dime} ^- dime
215+ ?> =('u' (end 3 1 p.mol))
216+ [(cat 3 's' (rsh 3 1 p.mol)) (new:si syn q.mol)]
217+ ;~ pfix hep
218+ ;~ pose
219+ (cook |=(a/dime (neg | a)) bisk)
220+ ;~(pfix hep (cook |=(a/dime (neg & a)) bisk))
221+ ==
222+ ==
223+ ::
224+ ++ twid
225+ ~+
226+ ;~ pose
227+ (cook |=(a/@ [%blob (cue a)]) ;~(pfix (just '0') vum:ag))
228+ (stag %$ crub)
229+ ==
230+ ::
231+ ++ zust
232+ ~+
233+ ;~ pose
234+ (stag %is bip:ag)
235+ (stag %if lip:ag)
236+ (stag %f ;~(pose (cold & (just 'y')) (cold | (just 'n'))))
237+ royl
238+ ==
239+ --
137240
138241Examples
139242--------
140243
141244 ~zod/try=> (scan "1926.5.12" crub:so)
142245 [p=~.da q=170.141.184.449.747.016.871.285.095.307.149.312.000]
143− ~zod/try=> (,[%da @da] (scan "1926.5.12" crub:so))
246+ ~zod/try=> ([%da @da] (scan "1926.5.12" crub:so))
144247 [%da ~1926.5.12]
145248 ~zod/try=> (scan "s10" crub:so)
146249 [p=~.dr q=184.467.440.737.095.516.160]
147− ~zod/try=> (,[%dr @dr] (scan "s10" crub:so))
250+ ~zod/try=> ([%dr @dr] (scan "s10" crub:so))
148251 [%dr ~s10]
149252 ~zod/try=> (scan "doznec" crub:so)
150253 [%p 256]
@@ -158,7 +261,7 @@ Examples
158261Top-level coin parser
159262
160263Parsing rule. Switches on the first character and applies the
161−corresponding [`++coin`]() parser.
264+corresponding `++coin` parser.
162265
163266Accepts
164267-------
@@ -169,16 +272,19 @@ Produces
169272Source
170273------
171274
172− ++ nuck
173− %+ knee *coin |. ~+
174− %- stew
175− ^. stet ^. limo
176− :~ :- ['a' 'z'] (cook |=(a=@ta [~ %tas a]) sym)
177− :- ['0' '9'] (stag ~ bisk)
178− :- '-' (stag ~ tash)
179− :- '.' ;~(pfix dot perd)
180− :- '~' ;~(pfix sig ;~(pose twid (easy [~ %n 0])))
181− ==
275+ ++ nuck
276+ ~/ %nuck |= a/nail %. a
277+ %+ knee *coin |. ~+
278+ %- stew
279+ ^. stet ^. limo
280+ :~ :- ['a' 'z'] (cook |=(a/@ta [%$ %tas a]) sym)
281+ :- ['0' '9'] (stag %$ bisk)
282+ :- '-' (stag %$ tash)
283+ :- '.' ;~(pfix dot perd)
284+ :- '~' ;~(pfix sig ;~(pose twid (easy [%$ %n 0])))
285+ ==
286+
287+
182288
183289Examples
184290--------
@@ -224,7 +330,7 @@ Source
224330------
225331
226332 ++ nusk
227− (sear |=(a=@ta (rush (wick a) nuck)) urt:ab)
333+ (sear |=(a/@ta (rush (wick a) nuck)) urt:ab)
228334
229335Examples
230336--------
@@ -235,7 +341,7 @@ Examples
235341 [1 ~.asd_a]
236342 ~zod/try=> (scan "~~.asd~-a" nusk:so)
237343 [% p=[p=~.ta q=418.212.246.369]]
238− ~zod/try=> (,[~ %ta @ta] (scan "~~.asd~-a" nusk:so))
344+ ~zod/try=> ([~ %ta @ta] (scan "~~.asd~-a" nusk:so))
239345 [~ %ta ~.asd_a]
240346
241347------------------------------------------------------------------------
@@ -280,7 +386,7 @@ Examples
280386
281387Parse dime float
282388
283−Parsing rule. Parses a number into a [`++dime`]() float.
389+Parsing rule. Parses a number into a `++dime` float.
284390
285391Accepts
286392-------
@@ -291,28 +397,51 @@ Produces
291397Source
292398------
293399
294− ++ royl
295− =+ ^= zer
296− (cook lent (star (just '0')))
297− =+ ^= voy
298− %+ cook royl-cell
299− ;~ plug
300− ;~(pose (cold | hep) (easy &))
301− ;~(plug dim:ag ;~(pose ;~(pfix dot ;~(plug zer dim:ag)) (easy [0 0])))
302− ;~ pose
303− ;~ pfix
304− (just 'e')
305− (cook some ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag))
306− ==
307− (easy ~)
400+ ++ royl
401+ ~+
402+ =+ ^= moo
403+ |= a/tape
404+ :- (lent a)
405+ (scan a (bass 10 (plus sid:ab)))
406+ =+ ^= voy
407+ %+ cook royl-cell
408+ ;~ pose
409+ ;~ plug
410+ (easy %d)
411+ ;~ pose (cold | hep) (easy &) ==
412+ ;~ plug dim:ag
413+ ;~ pose
414+ ;~(pfix dot (cook moo (plus (shim '0' '9'))))
415+ (easy [0 0])
416+ ==
417+ ;~ pose
418+ ;~ pfix
419+ (just 'e')
420+ ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)
308421 ==
422+ (easy [& 0])
309423 ==
310− ;~ pose
311− (stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy)))
312− (stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy)))
313− (stag %rd (cook ryld ;~(pfix sig voy)))
314− (stag %rs (cook ryls voy)
424+ ==
425+ ==
426+ ;~ plug
427+ (easy %i)
428+ ;~ sfix
429+ ;~ pose (cold | hep) (easy &) ==
430+ (jest 'inf')
431+ ==
432+ ==
433+ ;~ plug
434+ (easy %n)
435+ (cold ~ (jest 'nan'))
315436 ==
437+ ==
438+ ;~ pose
439+ (stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy)))
440+ (stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy)))
441+ (stag %rd (cook ryld ;~(pfix sig voy)))
442+ (stag %rs (cook ryls voy))
443+ ==
444+ ::
316445
317446Examples
318447--------
@@ -330,6 +459,15 @@ XX still not fully functional
330459
331460Intermediate parsed float convereter
332461
462+ ++ royl-cell
463+ |= rn
464+ ^- dn
465+ ?. ?=({$d *} +<) +<
466+ =+ ^= h
467+ (dif:si (new:si f.b i.b) (sun:si d.b))
468+ [%d a h (add (mul c.b (pow 10 d.b)) e.b)]
469+ ::
470+
333471------------------------------------------------------------------------
334472
335473### `++tash`
@@ -339,46 +477,27 @@ Parse signed dime
339477Accepts
340478-------
341479
342−Accepts
343−-------
344−
345480Produces
346481--------
347482
348−Produces
349−--------
350−
351−Parsing rule. Parses a signed number into a [`++dime`]().
352−
353−Source
354−------
355−
356− ++ royl-cell
357− |= [a=? b=[c=@ d=@ e=@] f=(unit ,[h=? i=@])]
358− ^- [? @ @ @ (unit ,@s)]
359− ?~ f
360− [a c.b d.b e.b ~]
361− ?: h.u.f
362− [a c.b d.b e.b [~ (mul i.u.f 2)]]
363− [a c.b d.b e.b [~ (dec (mul i.u.f 2))]]
364−
365−Examples
366−--------
483+Parsing rule. Parses a signed number into a `++dime`.
367484
368485Source
369486------
370487
371488 ++ tash
489+ ~+
372490 =+ ^= neg
373− |= [syn=? mol=dime] ^- dime
491+ |= {syn/? mol/dime} ^- dime
374492 ?> =('u' (end 3 1 p.mol))
375493 [(cat 3 's' (rsh 3 1 p.mol)) (new:si syn q.mol)]
376494 ;~ pfix hep
377495 ;~ pose
378− (cook |=(a=dime (neg | a)) bisk)
379− ;~(pfix hep (cook |=(a=dime (neg & a)) bisk))
496+ (cook |=(a/dime (neg | a)) bisk)
497+ ;~(pfix hep (cook |=(a/dime (neg & a)) bisk))
380498 ==
381499 ==
500+ ::
382501
383502Examples
384503--------
@@ -411,7 +530,7 @@ Source
411530
412531 ++ twid
413532 ;~ pose
414− (cook |=(a=@ [%blob (cue a)]) ;~(pfix (just '0') vum:ag))
533+ (cook |=(a/@ [%blob (cue a)]) ;~(pfix (just '0') vum:ag))
415534 (stag ~ crub)
416535 ==
417536 ::
@@ -436,8 +555,8 @@ Examples
436555
437556Parse prefixed dimes from `@if`, `@f`, `@rd`
438557
439−Parsing rule. Parses an atom of either [`@if`]() (IP address), [`@f`]()
440−(loobean), or [`rf`]()(floating point) into a [`++dime`]().
558+Parsing rule. Parses an atom of either `@if` (IP address), `@f`
559+(loobean), or `rf`(floating point) into a `++dime`.
441560
442561Accepts
443562-------