urbit/main/app/shell/core.hook
2014-09-22 18:00:25 -07:00

127 lines
3.6 KiB
Plaintext

:: Terminal
::
:::: /hook/core/terminal/app
::
/? 314
/- term-line
::
:::: structures
::
|% ::
++ gift ::
$% [%mean p=ares] ::
[%nice ~] ::
== ::
++ hapt ,[p=ship q=path] ::
++ move ,[p=bone q=(mold note gift)] ::
++ note ::
$% $: %g ::
$% [%cide p=span] ::
[%show p=hapt q=ship r=path] ::
[%sire p=term q=span] ::
[%mess p=hapt q=ship r=cage] ::
== == == ::
++ coma ::
$% [%start p=cord q=(unit tape)] ::
[%end p=cord] ::
[%path p=path] ::
== ::
++ sign ::
$% $: %g ::
$% [%gone p=hapt] ::
[%mean p=ares] ::
[%nice ~] ::
[%rush p=%txt q=cord] ::
[%rust p=%txt q=cord] ::
== == == ::
--
!:
:::: program
::
|_ [hid=hide pax=_`path`%]
++ maybe
|* fel=_rule
;~ pose
(stag ~ fel)
(easy ~)
==
::
++ args
(maybe ;~(pfix ace (star prn)))
::
++ parse
^- $+(nail (like coma))
;~ pose
(stag %start ;~(pfix col ;~(plug sym args)))
(stag %end ;~(pfix sem sym))
(stag %path (sear plex rood):(vang | pax))
==
::
++ poke-txt
|= [ost=bone you=ship txt=cord]
^- [(list move) _+>]
=+ paf=(rush txt parse)
?~ paf
:_ +>.$
:~ [ost %give %nice ~]
(print ost you "Clarify {(trip txt)}")
==
?- -.u.paf
%path
=. pax p.u.paf
:_ +>.$
:~ [ost %give %nice ~]
(print ost you "=% {(spud p.u.paf)}")
==
::
%start
:_ +>.$
=* cil p.u.paf
:~ :^ ost %pass /child/[cil]/main
[%g %mess [our.hid cil imp.hid] you [%txt !>((crip (fall q.u.paf "")))]]
[ost %pass /child/[cil]/lines %g %show [our.hid cil imp.hid] you /lines]
[ost %pass /child/[cil] %g %sire cil cil] :: XX strange order?
(print ost you "running {(trip p.u.paf)}")
==
::
%end
:_ +>.$
=* cil p.u.paf
:~ (print ost you "killing {(trip cil)}")
[ost %pass /child/[cil] %g %cide cil]
==
==
::
++ pour
|= [ost=bone pax=path sih=*]
^- [(list move) _+>]
=+ sih=((hard sign) sih)
:_ +>.$
?~ pax ~& %no-path !!
?+ &1.pax ~& %strange-path !!
%print
~
::
%child
?~ |1.pax ~& %no-child !!
?~ |2.pax
?> ?=(%gone +<.sih)
[ost %give %nice ~]~
?+ &3.pax ~& %strange-child-path !!
%main
?> ?=(?(%nice %mean) +<.sih)
[ost %give +.sih]~
%lines
?. ?=(?(%rust %rush) +<.sih) ~
:_ ~ (print ost our.hid :(welp (trip &2.pax) ": " (trip q.sih)))
==
==
::
++ print
|= [ost=bone you=ship lin=tape]
:* ost %pass /print %g %mess
[our.hid +.imp.hid] you
%term-line !>(`term-line`[(spat pax) leaf/lin ~])
==
--