fixed frontmatter detection

This commit is contained in:
Anton Dyudin 2015-08-04 14:45:29 -07:00
parent 381d7ec483
commit 01027ba611

View File

@ -1,20 +1,23 @@
/- tree-include
!:
|%
++ baff |*([a=(unit) b=(trap)] ?^(a a *b))
++ find-in-tree
|* [paz=fist:jo fun=$+(* (unit))]
|= a=json ^+ *fun
%+ biff (paz a)
|= a=(list json)
|^ (try)
++ try
|. ^+ *fun
?~ a ~
%+ biff (paz i.a)
|* [b=(list json) c=*] ^+ *fun
%+ baff (fun c)
|.
?~ b ~
(baff ^^$(a i.b) |.(^$(b t.b)))
(baff (baff (fun c) try(a b)) try(a t.a))
--
::
++ json-front
|= a=json ^- json
=- (fall `(unit json)`- ~)
%+ biff ((ot body/some ~):jo a)
%+ biff ((ar some):jo a)
%+ find-in-tree (ot c/(ar some) gn/so ga/(om so) ~):jo
|= [nom=span atr=(map span cord)] ^- (unit json)
?. (~(has by atr) 'urb:front') ~
@ -24,16 +27,17 @@
++ read-schem
=< (cook to-noun (cook to-tree apex))
|%
++ data $|(term [n=@ l=data r=data])
++ noun $|(term [noun noun]) :: shadow
++ data $|(term [n=@ l=noun r=data])
++ apex ;~(plug sym (star ;~(plug delim sym)))
++ delim ;~(pose (cold 0 dot) (cook lent (plus cab)))
++ to-noun |=(a=data ?@(a a [$(a l.a) $(a r.a)]))
++ to-noun |=(a=data ?@(a a [l.a $(a r.a)]))
++ to-tree
|= [acc=data a=(list ,[p=@u q=term])]
%+ roll a =< .(acc ^acc)
|= [[n=@u v=term] acc=data]
?@ acc [n acc v]
?: (gth n n.acc) [n acc v]
?: (gth n n.acc) [n (to-noun acc) v]
acc(r $(acc r.acc))
--
--