@atomist/clj-editors
Version:
We build a node module `@atomist/clj-editors` here. This allows us to construct clojure editors using `rewrite-cljs`. After adding this dependency, the node application will have access to javascript functions transpiled from clojurescript.
363 lines (323 loc) • 15.8 kB
JavaScript
// Compiled by ClojureScript 1.9.946 {:target :nodejs}
goog.provide('rewrite_clj.node.fn');
goog.require('cljs.core');
goog.require('rewrite_clj.node.protocols');
goog.require('clojure.walk');
/**
* Construct function form.
*/
rewrite_clj.node.fn.construct_fn = (function rewrite_clj$node$fn$construct_fn(syms,vararg,body){
return cljs.core._conj.call(null,(function (){var x__8740__auto__ = cljs.core.vec.call(null,cljs.core.concat.call(null,syms,(cljs.core.truth_(vararg)?cljs.core._conj.call(null,(function (){var x__8740__auto__ = vararg;
return cljs.core._conj.call(null,cljs.core.List.EMPTY,x__8740__auto__);
})(),new cljs.core.Symbol(null,"&","&",-2144855648,null)):null)));
return cljs.core._conj.call(null,(function (){var x__8740__auto____$1 = body;
return cljs.core._conj.call(null,cljs.core.List.EMPTY,x__8740__auto____$1);
})(),x__8740__auto__);
})(),new cljs.core.Symbol(null,"fn*","fn*",-752876845,null));
});
/**
* Get index based on the substring following the parameter's `%`.
* Zero means vararg.
*/
rewrite_clj.node.fn.sym_index = (function rewrite_clj$node$fn$sym_index(n){
if(cljs.core._EQ_.call(null,n,"&")){
return (0);
} else {
if(cljs.core._EQ_.call(null,n,"")){
return (1);
} else {
if(cljs.core.truth_(cljs.core.re_matches.call(null,/\d+/,n))){
return parseInt(n);
} else {
throw (new Error("arg literal must be %, %& or %integer."));
}
}
}
});
/**
* If symbol starting with `%`, convert to respective gensym.
*/
rewrite_clj.node.fn.symbol__GT_gensym = (function rewrite_clj$node$fn$symbol__GT_gensym(sym_seq,vararg_QMARK_,max_n,sym){
if((sym instanceof cljs.core.Symbol)){
var nm = cljs.core.name.call(null,sym);
if(cljs.core._EQ_.call(null,nm.indexOf("%"),(0))){
var i = rewrite_clj.node.fn.sym_index.call(null,cljs.core.subs.call(null,nm,(1)));
cljs.core.swap_BANG_.call(null,max_n,cljs.core.max,i);
return cljs.core.nth.call(null,sym_seq,i);
} else {
return null;
}
} else {
return null;
}
});
/**
* Walk the form and create an expand function form.
*/
rewrite_clj.node.fn.fn_walk = (function rewrite_clj$node$fn$fn_walk(form){
var syms = (function (){var iter__8686__auto__ = (function rewrite_clj$node$fn$fn_walk_$_iter__10148(s__10149){
return (new cljs.core.LazySeq(null,(function (){
var s__10149__$1 = s__10149;
while(true){
var temp__4657__auto__ = cljs.core.seq.call(null,s__10149__$1);
if(temp__4657__auto__){
var s__10149__$2 = temp__4657__auto__;
if(cljs.core.chunked_seq_QMARK_.call(null,s__10149__$2)){
var c__8684__auto__ = cljs.core.chunk_first.call(null,s__10149__$2);
var size__8685__auto__ = cljs.core.count.call(null,c__8684__auto__);
var b__10151 = cljs.core.chunk_buffer.call(null,size__8685__auto__);
if((function (){var i__10150 = (0);
while(true){
if((i__10150 < size__8685__auto__)){
var i = cljs.core._nth.call(null,c__8684__auto__,i__10150);
var base = ((cljs.core._EQ_.call(null,i,(0)))?"rest__":["p",cljs.core.str.cljs$core$IFn$_invoke$arity$1(i),"__"].join(''));
var s = cljs.core.name.call(null,cljs.core.gensym.call(null,base));
cljs.core.chunk_append.call(null,b__10151,cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),"#"].join('')));
var G__10156 = (i__10150 + (1));
i__10150 = G__10156;
continue;
} else {
return true;
}
break;
}
})()){
return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__10151),rewrite_clj$node$fn$fn_walk_$_iter__10148.call(null,cljs.core.chunk_rest.call(null,s__10149__$2)));
} else {
return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__10151),null);
}
} else {
var i = cljs.core.first.call(null,s__10149__$2);
var base = ((cljs.core._EQ_.call(null,i,(0)))?"rest__":["p",cljs.core.str.cljs$core$IFn$_invoke$arity$1(i),"__"].join(''));
var s = cljs.core.name.call(null,cljs.core.gensym.call(null,base));
return cljs.core.cons.call(null,cljs.core.symbol.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),"#"].join('')),rewrite_clj$node$fn$fn_walk_$_iter__10148.call(null,cljs.core.rest.call(null,s__10149__$2)));
}
} else {
return null;
}
break;
}
}),null,null));
});
return iter__8686__auto__.call(null,cljs.core.range.call(null));
})();
var vararg_QMARK_ = false;
var max_n = cljs.core.atom.call(null,(0));
var body = clojure.walk.prewalk.call(null,((function (syms,vararg_QMARK_,max_n){
return (function (p1__10147_SHARP_){
var or__7878__auto__ = rewrite_clj.node.fn.symbol__GT_gensym.call(null,syms,vararg_QMARK_,max_n,p1__10147_SHARP_);
if(cljs.core.truth_(or__7878__auto__)){
return or__7878__auto__;
} else {
return p1__10147_SHARP_;
}
});})(syms,vararg_QMARK_,max_n))
,form);
return rewrite_clj.node.fn.construct_fn.call(null,cljs.core.take.call(null,cljs.core.deref.call(null,max_n),cljs.core.rest.call(null,syms)),null,body);
});
/**
* @constructor
* @implements {cljs.core.IRecord}
* @implements {cljs.core.IEquiv}
* @implements {cljs.core.IHash}
* @implements {cljs.core.ICollection}
* @implements {cljs.core.ICounted}
* @implements {rewrite_clj.node.protocols.InnerNode}
* @implements {cljs.core.ISeqable}
* @implements {cljs.core.IMeta}
* @implements {cljs.core.ICloneable}
* @implements {cljs.core.IPrintWithWriter}
* @implements {cljs.core.IIterable}
* @implements {rewrite_clj.node.fn.Object}
* @implements {rewrite_clj.node.protocols.Node}
* @implements {cljs.core.IWithMeta}
* @implements {cljs.core.IAssociative}
* @implements {cljs.core.IMap}
* @implements {cljs.core.ILookup}
*/
rewrite_clj.node.fn.FnNode = (function (children,__meta,__extmap,__hash){
this.children = children;
this.__meta = __meta;
this.__extmap = __extmap;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition0$ = 2229667594;
this.cljs$lang$protocol_mask$partition1$ = 139264;
});
rewrite_clj.node.fn.FnNode.prototype.toString = (function (){
var self__ = this;
var this$ = this;
return this$.rewrite_clj$node$protocols$Node$string$arity$1(null);
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__8518__auto__,k__8519__auto__){
var self__ = this;
var this__8518__auto____$1 = this;
return this__8518__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__8519__auto__,null);
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__8520__auto__,k10160,else__8521__auto__){
var self__ = this;
var this__8520__auto____$1 = this;
var G__10164 = k10160;
var G__10164__$1 = (((G__10164 instanceof cljs.core.Keyword))?G__10164.fqn:null);
switch (G__10164__$1) {
case "children":
return self__.children;
break;
default:
return cljs.core.get.call(null,self__.__extmap,k10160,else__8521__auto__);
}
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__8532__auto__,writer__8533__auto__,opts__8534__auto__){
var self__ = this;
var this__8532__auto____$1 = this;
var pr_pair__8535__auto__ = ((function (this__8532__auto____$1){
return (function (keyval__8536__auto__){
return cljs.core.pr_sequential_writer.call(null,writer__8533__auto__,cljs.core.pr_writer,""," ","",opts__8534__auto__,keyval__8536__auto__);
});})(this__8532__auto____$1))
;
return cljs.core.pr_sequential_writer.call(null,writer__8533__auto__,pr_pair__8535__auto__,"#rewrite-clj.node.fn.FnNode{",", ","}",opts__8534__auto__,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"children","children",-940561982),self__.children],null))], null),self__.__extmap));
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__10159){
var self__ = this;
var G__10159__$1 = this;
return (new cljs.core.RecordIter((0),G__10159__$1,1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"children","children",-940561982)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator.call(null,self__.__extmap):cljs.core.nil_iter.call(null))));
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__8516__auto__){
var self__ = this;
var this__8516__auto____$1 = this;
return self__.__meta;
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__8513__auto__){
var self__ = this;
var this__8513__auto____$1 = this;
return (new rewrite_clj.node.fn.FnNode(self__.children,self__.__meta,self__.__extmap,self__.__hash));
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__8522__auto__){
var self__ = this;
var this__8522__auto____$1 = this;
return (1 + cljs.core.count.call(null,self__.__extmap));
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__8514__auto__){
var self__ = this;
var this__8514__auto____$1 = this;
var h__8332__auto__ = self__.__hash;
if(!((h__8332__auto__ == null))){
return h__8332__auto__;
} else {
var h__8332__auto____$1 = ((function (h__8332__auto__,this__8514__auto____$1){
return (function (coll__8515__auto__){
return (-1740346885 ^ cljs.core.hash_unordered_coll.call(null,coll__8515__auto__));
});})(h__8332__auto__,this__8514__auto____$1))
.call(null,this__8514__auto____$1);
self__.__hash = h__8332__auto____$1;
return h__8332__auto____$1;
}
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this10161,other10162){
var self__ = this;
var this10161__$1 = this;
return (!((other10162 == null))) && ((this10161__$1.constructor === other10162.constructor)) && (cljs.core._EQ_.call(null,this10161__$1.children,other10162.children)) && (cljs.core._EQ_.call(null,this10161__$1.__extmap,other10162.__extmap));
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$Node$ = cljs.core.PROTOCOL_SENTINEL;
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$Node$tag$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return new cljs.core.Keyword(null,"fn","fn",-1175266204);
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$Node$printable_only_QMARK_$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return false;
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$Node$sexpr$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return rewrite_clj.node.fn.fn_walk.call(null,rewrite_clj.node.protocols.sexprs.call(null,self__.children));
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$Node$length$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return ((3) + rewrite_clj.node.protocols.sum_lengths.call(null,self__.children));
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$Node$string$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return ["#(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(rewrite_clj.node.protocols.concat_strings.call(null,self__.children)),")"].join('');
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__8527__auto__,k__8528__auto__){
var self__ = this;
var this__8527__auto____$1 = this;
if(cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"children","children",-940561982),null], null), null),k__8528__auto__)){
return cljs.core.dissoc.call(null,cljs.core._with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this__8527__auto____$1),self__.__meta),k__8528__auto__);
} else {
return (new rewrite_clj.node.fn.FnNode(self__.children,self__.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,self__.__extmap,k__8528__auto__)),null));
}
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$InnerNode$ = cljs.core.PROTOCOL_SENTINEL;
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$InnerNode$inner_QMARK_$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return true;
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$InnerNode$children$arity$1 = (function (_){
var self__ = this;
var ___$1 = this;
return self__.children;
});
rewrite_clj.node.fn.FnNode.prototype.rewrite_clj$node$protocols$InnerNode$replace_children$arity$2 = (function (this$,children_SINGLEQUOTE_){
var self__ = this;
var this$__$1 = this;
return cljs.core.assoc.call(null,this$__$1,new cljs.core.Keyword(null,"children","children",-940561982),children_SINGLEQUOTE_);
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__8525__auto__,k__8526__auto__,G__10159){
var self__ = this;
var this__8525__auto____$1 = this;
var pred__10165 = cljs.core.keyword_identical_QMARK_;
var expr__10166 = k__8526__auto__;
if(cljs.core.truth_(pred__10165.call(null,new cljs.core.Keyword(null,"children","children",-940561982),expr__10166))){
return (new rewrite_clj.node.fn.FnNode(G__10159,self__.__meta,self__.__extmap,null));
} else {
return (new rewrite_clj.node.fn.FnNode(self__.children,self__.__meta,cljs.core.assoc.call(null,self__.__extmap,k__8526__auto__,G__10159),null));
}
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__8530__auto__){
var self__ = this;
var this__8530__auto____$1 = this;
return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"children","children",-940561982),self__.children],null))], null),self__.__extmap));
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__8517__auto__,G__10159){
var self__ = this;
var this__8517__auto____$1 = this;
return (new rewrite_clj.node.fn.FnNode(self__.children,G__10159,self__.__extmap,self__.__hash));
});
rewrite_clj.node.fn.FnNode.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__8523__auto__,entry__8524__auto__){
var self__ = this;
var this__8523__auto____$1 = this;
if(cljs.core.vector_QMARK_.call(null,entry__8524__auto__)){
return this__8523__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth.call(null,entry__8524__auto__,(0)),cljs.core._nth.call(null,entry__8524__auto__,(1)));
} else {
return cljs.core.reduce.call(null,cljs.core._conj,this__8523__auto____$1,entry__8524__auto__);
}
});
rewrite_clj.node.fn.FnNode.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"children","children",699969545,null)], null);
});
rewrite_clj.node.fn.FnNode.cljs$lang$type = true;
rewrite_clj.node.fn.FnNode.cljs$lang$ctorPrSeq = (function (this__8554__auto__){
return cljs.core._conj.call(null,cljs.core.List.EMPTY,"rewrite-clj.node.fn/FnNode");
});
rewrite_clj.node.fn.FnNode.cljs$lang$ctorPrWriter = (function (this__8554__auto__,writer__8555__auto__){
return cljs.core._write.call(null,writer__8555__auto__,"rewrite-clj.node.fn/FnNode");
});
rewrite_clj.node.fn.__GT_FnNode = (function rewrite_clj$node$fn$__GT_FnNode(children){
return (new rewrite_clj.node.fn.FnNode(children,null,null,null));
});
rewrite_clj.node.fn.map__GT_FnNode = (function rewrite_clj$node$fn$map__GT_FnNode(G__10163){
return (new rewrite_clj.node.fn.FnNode(new cljs.core.Keyword(null,"children","children",-940561982).cljs$core$IFn$_invoke$arity$1(G__10163),null,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,G__10163,new cljs.core.Keyword(null,"children","children",-940561982))),null));
});
/**
* Create node representing an anonymous function.
*/
rewrite_clj.node.fn.fn_node = (function rewrite_clj$node$fn$fn_node(children){
return rewrite_clj.node.fn.__GT_FnNode.call(null,children);
});
//# sourceMappingURL=fn.js.map