goog.provide('sci.impl.destructure'); sci.impl.destructure.destructure_STAR_ = (function sci$impl$destructure$destructure_STAR_(bindings,loc){ var bents = cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),bindings); var pb = (function sci$impl$destructure$destructure_STAR__$_pb(bvec,b,v){ var pvec = (function (bvec__$1,b__$1,val){ var gvec = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("vec__"); var gseq = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("seq__"); var gfirst = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("first__"); var has_rest = cljs.core.some(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,"&","&",-2144855648,null),null], null), null),b__$1); var ret = (function (){var ret = cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(bvec__$1,gvec,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([val], 0)); if(cljs.core.truth_(has_rest)){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(ret,gseq,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.seq,(new cljs.core.List(null,gvec,null,(1),null)),(2),null))], 0)); } else { return ret; } })(); var n = (0); var bs = b__$1; var seen_rest_QMARK_ = false; while(true){ if(cljs.core.seq(bs)){ var firstb = cljs.core.first(bs); if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(firstb,new cljs.core.Symbol(null,"&","&",-2144855648,null))){ var G__43328 = sci$impl$destructure$destructure_STAR__$_pb(ret,cljs.core.second(bs),gseq); var G__43329 = n; var G__43330 = cljs.core.nnext(bs); var G__43331 = true; ret = G__43328; n = G__43329; bs = G__43330; seen_rest_QMARK_ = G__43331; continue; } else { if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(firstb,new cljs.core.Keyword(null,"as","as",1148689641))){ return sci$impl$destructure$destructure_STAR__$_pb(ret,cljs.core.second(bs),gvec); } else { if(cljs.core.truth_(seen_rest_QMARK_)){ throw (new Error("Unsupported binding form, only :as can follow & parameter")); } else { var G__43332 = sci$impl$destructure$destructure_STAR__$_pb((cljs.core.truth_(has_rest)?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(ret,gfirst,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,cljs.core.first,null,(1),null)),(new cljs.core.List(null,gseq,null,(1),null))))),gseq,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,cljs.core.next,null,(1),null)),(new cljs.core.List(null,gseq,null,(1),null)))))], 0)):ret),firstb,(cljs.core.truth_(has_rest)?gfirst:(function (){var G__43260 = (new cljs.core.List(null,cljs.core.nth,(new cljs.core.List(null,gvec,(new cljs.core.List(null,n,(new cljs.core.List(null,null,null,(1),null)),(2),null)),(3),null)),(4),null)); if(cljs.core.truth_(loc)){ return cljs.core.with_meta(G__43260,loc); } else { return G__43260; } })())); var G__43333 = (n + (1)); var G__43334 = cljs.core.next(bs); var G__43335 = seen_rest_QMARK_; ret = G__43332; n = G__43333; bs = G__43334; seen_rest_QMARK_ = G__43335; continue; } } } } else { return ret; } break; } }); var pmap = (function (bvec__$1,b__$1,v__$1){ var gmap = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("map__"); var defaults = new cljs.core.Keyword(null,"or","or",235744169).cljs$core$IFn$_invoke$arity$1(b__$1); var ret = ((function (gmap,defaults,pvec,bents){ return (function (ret){ if(cljs.core.truth_(new cljs.core.Keyword(null,"as","as",1148689641).cljs$core$IFn$_invoke$arity$1(b__$1))){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(ret,new cljs.core.Keyword(null,"as","as",1148689641).cljs$core$IFn$_invoke$arity$1(b__$1),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([gmap], 0)); } else { return ret; } });})(gmap,defaults,pvec,bents)) (cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bvec__$1,gmap),v__$1),gmap),(new cljs.core.List(null,new cljs.core.Symbol(null,"if","if",1181717262,null),(new cljs.core.List(null,(new cljs.core.List(null,cljs.core.seq_QMARK_,(new cljs.core.List(null,gmap,null,(1),null)),(2),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","seq-to-map-for-destructuring","cljs.core/seq-to-map-for-destructuring",240595294,null),null,(1),null)),(new cljs.core.List(null,gmap,null,(1),null))))),(new cljs.core.List(null,gmap,null,(1),null)),(2),null)),(3),null)),(4),null)))); var bes = (function (){var transforms = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (ret,gmap,defaults,pvec,bents){ return (function (transforms,mk){ if((mk instanceof cljs.core.Keyword)){ var mkns = cljs.core.namespace(mk); var mkn = cljs.core.name(mk); if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(mkn,"keys")){ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(transforms,mk,(function (p1__43221_SHARP_){ return cljs.core.keyword.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ = mkns; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { return cljs.core.namespace(p1__43221_SHARP_); } })(),cljs.core.name(p1__43221_SHARP_)); })); } else { if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(mkn,"syms")){ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(transforms,mk,(function (p1__43222_SHARP_){ return (new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),(new cljs.core.List(null,cljs.core.symbol.cljs$core$IFn$_invoke$arity$2((function (){var or__5025__auto__ = mkns; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { return cljs.core.namespace(p1__43222_SHARP_); } })(),cljs.core.name(p1__43222_SHARP_)),null,(1),null)),(2),null)); })); } else { if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(mkn,"strs")){ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(transforms,mk,cljs.core.str); } else { return transforms; } } } } else { return transforms; } });})(ret,gmap,defaults,pvec,bents)) ,cljs.core.PersistentArrayMap.EMPTY,cljs.core.keys(b__$1)); return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (transforms,ret,gmap,defaults,pvec,bents){ return (function (bes,entry){ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__43223_SHARP_,p2__43224_SHARP_){ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__43223_SHARP_,p2__43224_SHARP_,(function (){var fexpr__43294 = cljs.core.val(entry); return (fexpr__43294.cljs$core$IFn$_invoke$arity$1 ? fexpr__43294.cljs$core$IFn$_invoke$arity$1(p2__43224_SHARP_) : fexpr__43294.call(null,p2__43224_SHARP_)); })()); }),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(bes,cljs.core.key(entry)),(function (){var fexpr__43295 = cljs.core.key(entry); return (fexpr__43295.cljs$core$IFn$_invoke$arity$1 ? fexpr__43295.cljs$core$IFn$_invoke$arity$1(bes) : fexpr__43295.call(null,bes)); })()); });})(transforms,ret,gmap,defaults,pvec,bents)) ,cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(b__$1,new cljs.core.Keyword(null,"as","as",1148689641),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"or","or",235744169)], 0)),transforms); })(); while(true){ if(cljs.core.seq(bes)){ var bb = cljs.core.key(cljs.core.first(bes)); var bk = cljs.core.val(cljs.core.first(bes)); var local = (((((!((bb == null))))?(((((bb.cljs$lang$protocol_mask$partition1$ & (4096))) || ((cljs.core.PROTOCOL_SENTINEL === bb.cljs$core$INamed$))))?true:false):false))?cljs.core.with_meta(cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(null,cljs.core.name(bb)),cljs.core.meta(bb)):bb); var bv = ((cljs.core.contains_QMARK_(defaults,local))?(new cljs.core.List(null,new cljs.core.Symbol("cljs.core","get","cljs.core/get",-296075407,null),(new cljs.core.List(null,gmap,(new cljs.core.List(null,bk,(new cljs.core.List(null,(defaults.cljs$core$IFn$_invoke$arity$1 ? defaults.cljs$core$IFn$_invoke$arity$1(local) : defaults.call(null,local)),null,(1),null)),(2),null)),(3),null)),(4),null)):(new cljs.core.List(null,new cljs.core.Symbol("cljs.core","get","cljs.core/get",-296075407,null),(new cljs.core.List(null,gmap,(new cljs.core.List(null,bk,null,(1),null)),(2),null)),(3),null))); var G__43347 = (((((bb instanceof cljs.core.Keyword)) || ((bb instanceof cljs.core.Symbol))))?cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(ret,local,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([bv], 0)):sci$impl$destructure$destructure_STAR__$_pb(ret,bb,bv)); var G__43348 = cljs.core.next(bes); ret = G__43347; bes = G__43348; continue; } else { return ret; } break; } }); if((b instanceof cljs.core.Symbol)){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bvec,(cljs.core.truth_(cljs.core.namespace(b))?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(b)):b)),v); } else { if((b instanceof cljs.core.Keyword)){ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(bvec,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.name(b))),v); } else { if(cljs.core.vector_QMARK_(b)){ return pvec(bvec,b,v); } else { if(cljs.core.map_QMARK_(b)){ return pmap(bvec,b,v); } else { throw (new Error(["Unsupported binding form: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)].join(''))); } } } } }); var process_entry = (function (bvec,b){ return pb(bvec,cljs.core.first(b),cljs.core.second(b)); }); if(cljs.core.every_QMARK_(cljs.core.symbol_QMARK_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,bents))){ return bindings; } else { var temp__5821__auto__ = cljs.core.seq(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__43227_SHARP_){ return (cljs.core.first(p1__43227_SHARP_) instanceof cljs.core.Keyword); }),bents)); if(temp__5821__auto__){ var kwbs = temp__5821__auto__; throw (new Error(["Unsupported binding key: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.ffirst(kwbs))].join(''))); } else { return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(process_entry,cljs.core.PersistentVector.EMPTY,bents); } } }); sci.impl.destructure.destructure = (function sci$impl$destructure$destructure(var_args){ var G__43321 = arguments.length; switch (G__43321) { case 1: return sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$1 = (function (b){ return sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$2(b,null); })); (sci.impl.destructure.destructure.cljs$core$IFn$_invoke$arity$2 = (function (b,loc){ return sci.impl.destructure.destructure_STAR_(b,loc); })); (sci.impl.destructure.destructure.cljs$lang$maxFixedArity = 2); //# sourceMappingURL=sci.impl.destructure.js.map