:: :::: /hoon/tree/lib :: /? 314 :: |% ++ getall :: search in manx |= tag=(list mane) |= ele=manx ^- marl ?: (lien tag |=(a=mane =(a n.g.ele))) ~[ele] (zing (turn c.ele ..$)) :: :: a.b_c.d => [[%a %b] [%c %d]] :: a.b_c, a_b__c => [[%a %b] %c] :: a_b_c, a__b_c => [%a [%b %c]] ++ read-schem :: decode gapped noun =< (cook to-noun (cook build-grove apex)) |% ++ noun $@(term [noun noun]) :: shadow :: improper list of possible entry points ++ grove $@(term [gap=@ sealed=noun pending=grove]) ++ apex ;~(plug sym (star ;~(plug delim sym))) ++ delim ;~(pose (cold 0 dot) (cook lent (plus cab))) ++ to-noun |=(a=grove ?@(a a [sealed.a $(a pending.a)])) ++ build-grove |= [a=grove b=(list [p=@u q=term])] ^- grove %+ roll b =< .(acc a) |= [[gap=@u v=term] acc=grove] ^- grove ?@ acc [gap acc v] ?: (gth gap gap.acc) [gap (to-noun acc) v] acc(pending $(acc pending.acc)) -- --