mirror of
https://github.com/urbit/ares.git
synced 2024-11-30 15:39:01 +03:00
305 lines
7.4 KiB
Plaintext
305 lines
7.4 KiB
Plaintext
/+ line
|
|
=> $:line
|
|
=* line .
|
|
=/ ip=? |
|
|
|%
|
|
++ this .
|
|
++ hour
|
|
=* thus .
|
|
|= [s=* f=*]
|
|
^- [(unit) _this]
|
|
=<
|
|
=^ cone thus (cope s f)
|
|
=* n nomm.norm.cone
|
|
|- ^- [(unit) _this]
|
|
?- -.n
|
|
%par
|
|
=^ l thus $(n left.n)
|
|
?~ l [~ thus]
|
|
=^ r thus $(n rite.n)
|
|
?~ r [~ thus]
|
|
[`[u.l u.r] thus]
|
|
::
|
|
%not
|
|
?: =(0 here.n) ~& %axe-none-crash [~ this]
|
|
|- ^- [(unit) _this]
|
|
?: =(1 here.n) [`s this]
|
|
?@ s ~& %axe-miss-crash [~ this]
|
|
?- (cap here.n)
|
|
%2 $(s -.s, here.n (mas here.n))
|
|
%3 $(s +.s, here.n (mas here.n))
|
|
==
|
|
::
|
|
%one
|
|
[`moan.n this]
|
|
::
|
|
%two
|
|
=^ t thus $(n cost.n)
|
|
?~ t [~ this]
|
|
=^ g thus $(n corn.n)
|
|
?~ g [~ this]
|
|
=/ bull (~(get by ices.norm.cone) rail.n)
|
|
=^ cane thus
|
|
?~ bull
|
|
~& [%indirect t g] (cope u.t u.g)
|
|
?> (~(huge so sock.u.bull) [& u.t])
|
|
=/ kine (mose u.bull)
|
|
?> ?=(^ kine)
|
|
[u.kine this]
|
|
$(s u.t, cone cane)
|
|
::
|
|
%the
|
|
=^ p thus $(n pell.n)
|
|
?~ p [~ this]
|
|
[`?^(u.p 0 1) this]
|
|
::
|
|
%for
|
|
=^ m thus $(n mall.n)
|
|
?~ m [~ this]
|
|
?^ u.m ~& %inc-cell-crash [~ this]
|
|
[`.+(u.m) this]
|
|
::
|
|
%ivy
|
|
=^ i thus $(n this.n)
|
|
?~ i [~ this]
|
|
=^ o thus $(n that.n)
|
|
?~ o [~ this]
|
|
[`.=(u.i u.o) this]
|
|
::
|
|
%six
|
|
=^ c thus $(n what.n)
|
|
?~ c [~ this]
|
|
?. ?=(? u.c) ~& %cond-not-loobean [~ this]
|
|
?: u.c $(n then.n)
|
|
$(n else.n)
|
|
::
|
|
%eve
|
|
=^ t thus $(n once.n)
|
|
?~ t [~ this]
|
|
$(s u.t, n then.n)
|
|
::
|
|
%ten
|
|
?: =(0 here.n) ~& %edit-none-crash [~ this]
|
|
=^ w thus $(n twig.n)
|
|
?~ w [~ this]
|
|
=^ r thus $(n tree.n)
|
|
?~ r [~ this]
|
|
=| tack=(list [?(%2 %3) *])
|
|
|- ^- [(unit) _this]
|
|
?. =(1 here.n)
|
|
?@ u.r ~& %edit-miss-crash [~ this]
|
|
?- (cap here.n)
|
|
%2 $(u.r -.u.r, tack [[%2 +.u.r] tack], here.n (mas here.n))
|
|
%3 $(u.r +.u.r, tack [[%3 -.u.r] tack], here.n (mas here.n))
|
|
==
|
|
|- ^- [(unit) _this]
|
|
?~ tack [w this]
|
|
?- -.i.tack
|
|
%2 $(tack t.tack, u.w [u.w +.i.tack])
|
|
%3 $(tack t.tack, u.w [+.i.tack u.w])
|
|
==
|
|
::
|
|
%sip
|
|
$(n then.n)
|
|
::
|
|
%tip
|
|
=^ h thus $(n vice.n)
|
|
?~ h [~ this]
|
|
$(n then.n)
|
|
::
|
|
%elf
|
|
~| %no-scry !!
|
|
==
|
|
|%
|
|
++ mose
|
|
|= [s=sock f=*]
|
|
^- (unit hone)
|
|
=/ huns (~(get ja moan) f)
|
|
|- ^- (unit hone)
|
|
?~ huns ~
|
|
?: =(s soot.i.huns) `i.huns
|
|
$(huns t.huns)
|
|
++ mope
|
|
|= [s=* f=*]
|
|
^- (unit hone)
|
|
~! moan
|
|
=/ huns (~(get ja moan) f)
|
|
|- ^- (unit hone)
|
|
?~ huns ~
|
|
:: ~& [%mope-i soot.i.huns]
|
|
~! so
|
|
?: (~(huge so soot.i.huns) [& s])
|
|
`i.huns
|
|
$(huns t.huns)
|
|
++ cope
|
|
|= [s=* f=*]
|
|
^- [hone _this]
|
|
=/ roan (mope s f)
|
|
?: ?=(^ roan) [u.roan this]
|
|
=. sack (rout:sack s f)
|
|
~& %rout-done
|
|
:: ~& [%cope-moan moan]
|
|
=/ sewn (mope s f)
|
|
?. ?=(^ sewn) ~| [%mope-miss s f] !!
|
|
[u.sewn this]
|
|
--
|
|
++ tine
|
|
|= [s=* f=*]
|
|
=<
|
|
=^ [=bell hall=_hill] line (peep s f)
|
|
=/ pill (~(got by hall) bell)
|
|
=/ blob (~(got by will.pill) wish.pill)
|
|
=/ rasp (star sire.pill s)
|
|
=| vile=(set @uvre)
|
|
|^ ^- (unit *)
|
|
?^ body.blob
|
|
=* i i.body.blob
|
|
~? ip i
|
|
?- -.i
|
|
%imm $(rasp (p d.i n.i), body.blob t.body.blob)
|
|
%mov
|
|
?: (~(has in vile) s.i)
|
|
$(vile (~(put in vile) d.i), body.blob t.body.blob)
|
|
$(rasp (mov s.i d.i), body.blob t.body.blob)
|
|
%inc
|
|
=/ v (g s.i)
|
|
?^ v ~& [%inc-cell-crash v] ~
|
|
$(rasp (p d.i .+(v)), body.blob t.body.blob)
|
|
::
|
|
%con $(rasp (p d.i [(g h.i) (g t.i)]), body.blob t.body.blob)
|
|
%hed
|
|
=/ c (g s.i)
|
|
?@ c
|
|
~? ip [%poison d.i c]
|
|
$(vile (~(put in vile) d.i), body.blob t.body.blob)
|
|
$(rasp (p d.i -.c), body.blob t.body.blob)
|
|
::
|
|
%tal
|
|
=/ c (g s.i)
|
|
?@ c
|
|
~? ip [%poison d.i c]
|
|
$(vile (~(put in vile) d.i), body.blob t.body.blob)
|
|
$(rasp (p d.i +.c), body.blob t.body.blob)
|
|
::
|
|
%men ~& %mean-todo $(body.blob t.body.blob)
|
|
%man ~& %mean-todo $(body.blob t.body.blob)
|
|
%slo ~& %slow-todo $(body.blob t.body.blob)
|
|
%sld ~& %slow-todo $(body.blob t.body.blob)
|
|
%hit ~& %skip-hit $(body.blob t.body.blob)
|
|
%slg ~& (g s.i) $(body.blob t.body.blob)
|
|
%mew ~& %memo-todo $(body.blob t.body.blob)
|
|
%tim ~& %skip-tim $(body.blob t.body.blob)
|
|
%tom ~& %skip-tom $(body.blob t.body.blob)
|
|
%mem ~& %skip-mem $(body.blob t.body.blob)
|
|
%poi $(vile (~(put in vile) p.i), body.blob t.body.blob)
|
|
%ipb
|
|
|- ^- (unit *)
|
|
?~ p.i ^$(body.blob t.body.blob)
|
|
?: (~(has in vile) i.p.i) ~
|
|
$(p.i t.p.i)
|
|
==
|
|
=* i bend.blob
|
|
~? ip i
|
|
?- -.i
|
|
%clq ?^((g s.i) (goto z.i) (goto o.i))
|
|
%eqq ?:(=((g l.i) (g r.i)) (goto z.i) (goto o.i))
|
|
%brn
|
|
=/ c (g s.i)
|
|
?- c
|
|
%0 (goto z.i)
|
|
%1 (goto o.i)
|
|
* ~
|
|
==
|
|
::
|
|
%hop (goto t.i)
|
|
%hip ~& %no-hip !!
|
|
%lnk
|
|
=/ s (g u.i)
|
|
=/ f (g f.i)
|
|
=/ r (tine s f)
|
|
?~ r ~
|
|
=. rasp (p d.i u.r)
|
|
(goto t.i)
|
|
::
|
|
%cal
|
|
=/ pins (~(got by hill) a.i)
|
|
=/ blub (~(got by will.pins) long.pins)
|
|
=/ r
|
|
%= $
|
|
pill pins
|
|
blob blub
|
|
rasp (afar v.i walt.pins)
|
|
vile (soil v.i walt.pins)
|
|
==
|
|
?~ r ~
|
|
=. rasp (p d.i u.r)
|
|
(goto t.i)
|
|
::
|
|
%caf ~| %caf-todo !!
|
|
%lnt (tine (g u.i) (g f.i))
|
|
%jmp
|
|
=/ pins (~(got by hill) a.i)
|
|
=/ blub (~(got by will.pins) long.pins)
|
|
%= $
|
|
pill pins
|
|
blob blub
|
|
rasp (afar v.i walt.pins)
|
|
vile (soil v.i walt.pins)
|
|
==
|
|
::
|
|
%jmf ~| %jmf-todo !!
|
|
%spy ~& %no-scry !!
|
|
%mer ~& %skip-mem (goto m.i)
|
|
%don `(g s.i)
|
|
%bom ~
|
|
==
|
|
++ g
|
|
|= r=@uvre
|
|
(~(got by rasp) r)
|
|
++ p
|
|
|= [r=@uvre v=*]
|
|
~? ip [%p r v]
|
|
(~(put by rasp) r v)
|
|
++ mov
|
|
|= [s=@uvre d=@uvre]
|
|
^- _rasp
|
|
=/ mv (~(get by rasp) s)
|
|
?~ mv ~& [%rasp-miss s (~(has in vile) s)] rasp
|
|
~? ip [%p d u.mv] (~(put by rasp) d u.mv)
|
|
++ goto |=(b=bile ^$(blob (~(got by will.pill) b)))
|
|
++ afar
|
|
|= [v=(list @uvre) walt=(list @uvre)]
|
|
=| m=(map @uvre *)
|
|
|- ^- (map @uvre *)
|
|
?~ v ?> =(~ walt) ~& [%c m] m
|
|
?> ?=(^ walt)
|
|
=/ mv (~(get by rasp) i.v)
|
|
?~ mv
|
|
~? ip [%rasp-miss-afar i.v (~(has in vile) i.v)]
|
|
$(v t.v, walt t.walt)
|
|
$(m (~(put by m) i.walt u.mv), v t.v, walt t.walt)
|
|
++ soil
|
|
|= [b=(list @uvre) bait=(list @uvre)]
|
|
=| p=(set @uvre)
|
|
|- ^- (set @uvre)
|
|
?~ b ?> =(~ bait) p
|
|
?> ?=(^ bait)
|
|
=? p (~(has in vile) i.b) (~(put in p) i.bait)
|
|
$(b t.b, bait t.bait)
|
|
--
|
|
|%
|
|
++ peep
|
|
|= [s=* f=*]
|
|
^- [[=bell hall=_hill] _line]
|
|
=/ bull (peek:line s f)
|
|
?: ?=(^ bull) [u.bull line]
|
|
=. line this:(poke:line [%comp ~ s f])
|
|
=/ ball (peek:line s f)
|
|
?> ?=(^ ball)
|
|
[u.ball line]
|
|
++ star
|
|
|= [r=@uvre s=*]
|
|
(~(put by *(map @uvre *)) r s)
|
|
--
|
|
--
|