148 lines
9.1 KiB
JavaScript
148 lines
9.1 KiB
JavaScript
goog.provide('edamame.impl.ns_parser');
|
|
/**
|
|
* Returns true if x is a libspec
|
|
*/
|
|
edamame.impl.ns_parser.libspec_QMARK_ = (function edamame$impl$ns_parser$libspec_QMARK_(x){
|
|
return (((x instanceof cljs.core.Symbol)) || (((cljs.core.vector_QMARK_(x)) && ((((cljs.core.second(x) == null)) || ((cljs.core.second(x) instanceof cljs.core.Keyword)))))));
|
|
});
|
|
/**
|
|
* Prepends a symbol or a seq to coll
|
|
*/
|
|
edamame.impl.ns_parser.prependss = (function edamame$impl$ns_parser$prependss(x,coll){
|
|
if((x instanceof cljs.core.Symbol)){
|
|
return cljs.core.cons(x,coll);
|
|
} else {
|
|
return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(x,coll);
|
|
}
|
|
});
|
|
edamame.impl.ns_parser.load_lib = (function edamame$impl$ns_parser$load_lib(var_args){
|
|
var args__5755__auto__ = [];
|
|
var len__5749__auto___39136 = arguments.length;
|
|
var i__5750__auto___39137 = (0);
|
|
while(true){
|
|
if((i__5750__auto___39137 < len__5749__auto___39136)){
|
|
args__5755__auto__.push((arguments[i__5750__auto___39137]));
|
|
|
|
var G__39138 = (i__5750__auto___39137 + (1));
|
|
i__5750__auto___39137 = G__39138;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
|
|
return edamame.impl.ns_parser.load_lib.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__);
|
|
});
|
|
|
|
(edamame.impl.ns_parser.load_lib.cljs$core$IFn$_invoke$arity$variadic = (function (prefix,lib,options){
|
|
var lib__$1 = (cljs.core.truth_(prefix)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix),".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(lib)].join('')):lib);
|
|
var opts = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,options);
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword(null,"lib","lib",191808726),lib__$1);
|
|
}));
|
|
|
|
(edamame.impl.ns_parser.load_lib.cljs$lang$maxFixedArity = (2));
|
|
|
|
/** @this {Function} */
|
|
(edamame.impl.ns_parser.load_lib.cljs$lang$applyTo = (function (seq39087){
|
|
var G__39088 = cljs.core.first(seq39087);
|
|
var seq39087__$1 = cljs.core.next(seq39087);
|
|
var G__39089 = cljs.core.first(seq39087__$1);
|
|
var seq39087__$2 = cljs.core.next(seq39087__$1);
|
|
var self__5734__auto__ = this;
|
|
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__39088,G__39089,seq39087__$2);
|
|
}));
|
|
|
|
edamame.impl.ns_parser.load_libs = (function edamame$impl$ns_parser$load_libs(kw,args){
|
|
var args_STAR_ = cljs.core.cons(kw,args);
|
|
var flags = cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.keyword_QMARK_,args_STAR_);
|
|
var opts = cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(flags,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(true));
|
|
var args_STAR___$1 = cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.complement(cljs.core.keyword_QMARK_),args_STAR_);
|
|
return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (arg){
|
|
if(edamame.impl.ns_parser.libspec_QMARK_(arg)){
|
|
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.apply.cljs$core$IFn$_invoke$arity$3(edamame.impl.ns_parser.load_lib,null,edamame.impl.ns_parser.prependss(arg,opts))], null);
|
|
} else {
|
|
var vec__39092 = arg;
|
|
var seq__39093 = cljs.core.seq(vec__39092);
|
|
var first__39094 = cljs.core.first(seq__39093);
|
|
var seq__39093__$1 = cljs.core.next(seq__39093);
|
|
var prefix = first__39094;
|
|
var args_STAR___$2 = seq__39093__$1;
|
|
if((prefix == null)){
|
|
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("prefix cannot be nil",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"args","args",1315556576),args], null));
|
|
} else {
|
|
}
|
|
|
|
return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (arg__$1){
|
|
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.apply.cljs$core$IFn$_invoke$arity$3(edamame.impl.ns_parser.load_lib,prefix,edamame.impl.ns_parser.prependss(arg__$1,opts))], null);
|
|
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args_STAR___$2], 0));
|
|
}
|
|
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args_STAR___$1], 0));
|
|
});
|
|
edamame.impl.ns_parser._ns = (function edamame$impl$ns_parser$_ns(p__39102){
|
|
var vec__39103 = p__39102;
|
|
var seq__39104 = cljs.core.seq(vec__39103);
|
|
var first__39105 = cljs.core.first(seq__39104);
|
|
var seq__39104__$1 = cljs.core.next(seq__39104);
|
|
var _ns = first__39105;
|
|
var first__39105__$1 = cljs.core.first(seq__39104__$1);
|
|
var seq__39104__$2 = cljs.core.next(seq__39104__$1);
|
|
var name = first__39105__$1;
|
|
var references = seq__39104__$2;
|
|
var docstring = ((typeof cljs.core.first(references) === 'string')?cljs.core.first(references):null);
|
|
var references__$1 = (cljs.core.truth_(docstring)?cljs.core.next(references):references);
|
|
var name__$1 = (cljs.core.truth_(docstring)?cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(name,cljs.core.assoc,new cljs.core.Keyword(null,"doc","doc",1913296891),docstring):name);
|
|
var metadata = ((cljs.core.map_QMARK_(cljs.core.first(references__$1)))?cljs.core.first(references__$1):null);
|
|
var references__$2 = (cljs.core.truth_(metadata)?cljs.core.next(references__$1):references__$1);
|
|
var references__$3 = cljs.core.filter.cljs$core$IFn$_invoke$arity$2(cljs.core.seq_QMARK_,references__$2);
|
|
var references__$4 = cljs.core.group_by(cljs.core.first,references__$3);
|
|
var requires = cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p1__39100_SHARP_){
|
|
return edamame.impl.ns_parser.load_libs(new cljs.core.Keyword(null,"require","require",-468001333),cljs.core.rest(p1__39100_SHARP_));
|
|
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"require","require",-468001333).cljs$core$IFn$_invoke$arity$1(references__$4)], 0));
|
|
var imports = cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (p__39117){
|
|
var vec__39118 = p__39117;
|
|
var seq__39119 = cljs.core.seq(vec__39118);
|
|
var first__39120 = cljs.core.first(seq__39119);
|
|
var seq__39119__$1 = cljs.core.next(seq__39119);
|
|
var _ = first__39120;
|
|
var specs = seq__39119__$1;
|
|
return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (spec){
|
|
if((spec instanceof cljs.core.Symbol)){
|
|
var last_dot_idx = clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec),".");
|
|
var spec_str = cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec);
|
|
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"full-classname","full-classname",-750434875),spec,new cljs.core.Keyword(null,"classname","classname",777390796),(cljs.core.truth_(last_dot_idx)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$2(spec_str,(last_dot_idx + (1)))):spec),new cljs.core.Keyword(null,"package","package",1189062786),(cljs.core.truth_(last_dot_idx)?cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(spec_str,(0),last_dot_idx)):null)], null)], null);
|
|
} else {
|
|
var vec__39126 = spec;
|
|
var seq__39127 = cljs.core.seq(vec__39126);
|
|
var first__39128 = cljs.core.first(seq__39127);
|
|
var seq__39127__$1 = cljs.core.next(seq__39127);
|
|
var pkg = first__39128;
|
|
var classes = seq__39127__$1;
|
|
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (clazz){
|
|
return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"full-classname","full-classname",-750434875),cljs.core.symbol.cljs$core$IFn$_invoke$arity$1([cljs.core.str.cljs$core$IFn$_invoke$arity$1(pkg),".",cljs.core.str.cljs$core$IFn$_invoke$arity$1(clazz)].join('')),new cljs.core.Keyword(null,"package","package",1189062786),pkg,new cljs.core.Keyword(null,"classname","classname",777390796),clazz], null);
|
|
}),classes);
|
|
}
|
|
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([specs], 0));
|
|
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"import","import",-1399500709).cljs$core$IFn$_invoke$arity$1(references__$4)], 0));
|
|
return new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"current","current",-1088038603),name__$1,new cljs.core.Keyword(null,"meta","meta",1499536964),metadata,new cljs.core.Keyword(null,"requires","requires",-1201390927),requires,new cljs.core.Keyword(null,"aliases","aliases",1346874714),cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,require){
|
|
var temp__5821__auto__ = (function (){var or__5025__auto__ = new cljs.core.Keyword(null,"as","as",1148689641).cljs$core$IFn$_invoke$arity$1(require);
|
|
if(cljs.core.truth_(or__5025__auto__)){
|
|
return or__5025__auto__;
|
|
} else {
|
|
return new cljs.core.Keyword(null,"as-alias","as-alias",82482467).cljs$core$IFn$_invoke$arity$1(require);
|
|
}
|
|
})();
|
|
if(cljs.core.truth_(temp__5821__auto__)){
|
|
var alias = temp__5821__auto__;
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,alias,new cljs.core.Keyword(null,"lib","lib",191808726).cljs$core$IFn$_invoke$arity$1(require));
|
|
} else {
|
|
return acc;
|
|
}
|
|
}),cljs.core.PersistentArrayMap.EMPTY,requires),new cljs.core.Keyword(null,"imports","imports",-1249933394),imports], null);
|
|
});
|
|
edamame.impl.ns_parser.parse_ns_form = (function edamame$impl$ns_parser$parse_ns_form(ns_form){
|
|
return edamame.impl.ns_parser._ns(ns_form);
|
|
});
|
|
|
|
//# sourceMappingURL=edamame.impl.ns_parser.js.map
|