758 lines
32 KiB
JavaScript
758 lines
32 KiB
JavaScript
goog.provide('sci.core');
|
|
/**
|
|
* Returns a new sci var.
|
|
*/
|
|
sci.core.new_var = (function sci$core$new_var(var_args){
|
|
var G__49554 = arguments.length;
|
|
switch (G__49554) {
|
|
case 1:
|
|
return sci.core.new_var.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
|
|
break;
|
|
case 2:
|
|
return sci.core.new_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
case 3:
|
|
return sci.core.new_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.new_var.cljs$core$IFn$_invoke$arity$1 = (function (name){
|
|
var G__49557 = sci.core.new_var.cljs$core$IFn$_invoke$arity$3(name,null,null);
|
|
sci.impl.vars.unbind(G__49557);
|
|
|
|
return G__49557;
|
|
}));
|
|
|
|
(sci.core.new_var.cljs$core$IFn$_invoke$arity$2 = (function (name,init_val){
|
|
return sci.core.new_var.cljs$core$IFn$_invoke$arity$3(name,init_val,cljs.core.meta(name));
|
|
}));
|
|
|
|
(sci.core.new_var.cljs$core$IFn$_invoke$arity$3 = (function (name,init_val,meta){
|
|
return (new sci.lang.Var(init_val,name,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(meta,new cljs.core.Keyword(null,"name","name",1843675177),(sci.impl.utils.unqualify_symbol.cljs$core$IFn$_invoke$arity$1 ? sci.impl.utils.unqualify_symbol.cljs$core$IFn$_invoke$arity$1(name) : sci.impl.utils.unqualify_symbol.call(null,name))),false,false,null));
|
|
}));
|
|
|
|
(sci.core.new_var.cljs$lang$maxFixedArity = 3);
|
|
|
|
/**
|
|
* Same as new-var but adds :dynamic true to meta.
|
|
*/
|
|
sci.core.new_dynamic_var = (function sci$core$new_dynamic_var(var_args){
|
|
var G__49564 = arguments.length;
|
|
switch (G__49564) {
|
|
case 1:
|
|
return sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
|
|
break;
|
|
case 2:
|
|
return sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
case 3:
|
|
return sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$1 = (function (name){
|
|
var G__49566 = sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$3(name,null,null);
|
|
sci.impl.vars.unbind(G__49566);
|
|
|
|
return G__49566;
|
|
}));
|
|
|
|
(sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$2 = (function (name,init_val){
|
|
return sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$3(name,init_val,cljs.core.meta(name));
|
|
}));
|
|
|
|
(sci.core.new_dynamic_var.cljs$core$IFn$_invoke$arity$3 = (function (name,init_val,meta){
|
|
return (new sci.lang.Var(init_val,name,cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(meta,new cljs.core.Keyword(null,"dynamic","dynamic",704819571),true,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),(sci.impl.utils.unqualify_symbol.cljs$core$IFn$_invoke$arity$1 ? sci.impl.utils.unqualify_symbol.cljs$core$IFn$_invoke$arity$1(name) : sci.impl.utils.unqualify_symbol.call(null,name))], 0)),false,false,null));
|
|
}));
|
|
|
|
(sci.core.new_dynamic_var.cljs$lang$maxFixedArity = 3);
|
|
|
|
/**
|
|
* Establish thread local binding of dynamic var
|
|
*/
|
|
sci.core.set_BANG_ = (function sci$core$set_BANG_(dynamic_var,v){
|
|
return sci.impl.types.setVal(dynamic_var,v);
|
|
});
|
|
/**
|
|
* Same as new-var but adds :macro true to meta as well
|
|
* as :sci/macro true to meta of the fn itself.
|
|
*/
|
|
sci.core.new_macro_var = (function sci$core$new_macro_var(var_args){
|
|
var G__49572 = arguments.length;
|
|
switch (G__49572) {
|
|
case 2:
|
|
return sci.core.new_macro_var.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
case 3:
|
|
return sci.core.new_macro_var.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.new_macro_var.cljs$core$IFn$_invoke$arity$2 = (function (name,init_val){
|
|
return sci.core.new_macro_var.cljs$core$IFn$_invoke$arity$3(name,init_val,cljs.core.meta(name));
|
|
}));
|
|
|
|
(sci.core.new_macro_var.cljs$core$IFn$_invoke$arity$3 = (function (name,init_val,meta){
|
|
return (new sci.lang.Var(cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(init_val,cljs.core.assoc,new cljs.core.Keyword("sci","macro","sci/macro",-868536151),true),name,cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(meta,new cljs.core.Keyword(null,"macro","macro",-867863404),true,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),(sci.impl.utils.unqualify_symbol.cljs$core$IFn$_invoke$arity$1 ? sci.impl.utils.unqualify_symbol.cljs$core$IFn$_invoke$arity$1(name) : sci.impl.utils.unqualify_symbol.call(null,name))], 0)),false,false,null));
|
|
}));
|
|
|
|
(sci.core.new_macro_var.cljs$lang$maxFixedArity = 3);
|
|
|
|
/**
|
|
* Copies Clojure var to SCI var. Runtime analog of compile time `copy-var`.
|
|
*/
|
|
sci.core.copy_var_STAR_ = (function sci$core$copy_var_STAR_(clojure_var,sci_ns){
|
|
var m = cljs.core.meta(clojure_var);
|
|
var nm = new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(m);
|
|
var doc = new cljs.core.Keyword(null,"doc","doc",1913296891).cljs$core$IFn$_invoke$arity$1(m);
|
|
var arglists = new cljs.core.Keyword(null,"arglists","arglists",1661989754).cljs$core$IFn$_invoke$arity$1(m);
|
|
var dynamic = new cljs.core.Keyword(null,"dynamic","dynamic",704819571).cljs$core$IFn$_invoke$arity$1(m);
|
|
var macro = new cljs.core.Keyword(null,"macro","macro",-867863404).cljs$core$IFn$_invoke$arity$1(m);
|
|
var new_m = (function (){var G__49585 = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"ns","ns",441598760),sci_ns,new cljs.core.Keyword(null,"name","name",1843675177),nm], null);
|
|
var G__49585__$1 = (cljs.core.truth_(macro)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__49585,new cljs.core.Keyword(null,"macro","macro",-867863404),true):G__49585);
|
|
var G__49585__$2 = (cljs.core.truth_(doc)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__49585__$1,new cljs.core.Keyword(null,"doc","doc",1913296891),doc):G__49585__$1);
|
|
var G__49585__$3 = (cljs.core.truth_(arglists)?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__49585__$2,new cljs.core.Keyword(null,"arglists","arglists",1661989754),arglists):G__49585__$2);
|
|
if(cljs.core.truth_(dynamic)){
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__49585__$3,new cljs.core.Keyword(null,"dynamic","dynamic",704819571),dynamic);
|
|
} else {
|
|
return G__49585__$3;
|
|
}
|
|
})();
|
|
return sci.core.new_var.cljs$core$IFn$_invoke$arity$3(nm,cljs.core.deref(clojure_var),new_m);
|
|
});
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*in*`
|
|
*/
|
|
sci.core.in$ = sci.impl.io.in$;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*out*`
|
|
*/
|
|
sci.core.out = sci.impl.io.out;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*err*`
|
|
*/
|
|
sci.core.err = sci.impl.io.err;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*ns*`
|
|
*/
|
|
sci.core.ns = sci.impl.utils.current_ns;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*file*`
|
|
*/
|
|
sci.core.file = sci.impl.utils.current_file;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*read-eval*`
|
|
*/
|
|
sci.core.read_eval = sci.impl.parser.read_eval;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*print-length*`
|
|
*/
|
|
sci.core.print_length = sci.impl.io.print_length;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*print-level*`
|
|
*/
|
|
sci.core.print_level = sci.impl.io.print_level;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*print-meta*`
|
|
*/
|
|
sci.core.print_meta = sci.impl.io.print_meta;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*print-readably*`
|
|
*/
|
|
sci.core.print_readably = sci.impl.io.print_readably;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*print-dup*`
|
|
*/
|
|
sci.core.print_dup = sci.impl.io.print_dup_var;
|
|
/**
|
|
* SCI var that represents SCI's `clojure.core/*print-namespace-maps*`
|
|
*/
|
|
sci.core.print_namespace_maps = sci.impl.io.print_namespace_maps;
|
|
/**
|
|
* SCI var that represents SCI's `cljs.core/*print-fn*`
|
|
*/
|
|
sci.core.print_fn = sci.impl.io.print_fn;
|
|
/**
|
|
* SCI var that represents SCI's `cljs.core/*print-err-fn*`
|
|
*/
|
|
sci.core.print_err_fn = sci.impl.io.print_err_fn;
|
|
/**
|
|
* SCI var that represents SCI's `cljs.core/*print-newline*`
|
|
*/
|
|
sci.core.print_newline = sci.impl.io.print_newline;
|
|
/**
|
|
* SCI var that represents SCI's clojure.core/*assert*
|
|
*/
|
|
sci.core.assert = sci.impl.namespaces.assert_var;
|
|
sci.core._STAR_1 = sci.impl.namespaces._STAR_1;
|
|
sci.core._STAR_2 = sci.impl.namespaces._STAR_2;
|
|
sci.core._STAR_3 = sci.impl.namespaces._STAR_3;
|
|
sci.core._STAR_e = sci.impl.namespaces._STAR_e;
|
|
/**
|
|
* Atomically alters the root binding of sci var v by applying f to its
|
|
* current value plus any args.
|
|
*/
|
|
sci.core.alter_var_root = (function sci$core$alter_var_root(var_args){
|
|
var G__49615 = arguments.length;
|
|
switch (G__49615) {
|
|
case 2:
|
|
return sci.core.alter_var_root.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
default:
|
|
var args_arr__5774__auto__ = [];
|
|
var len__5749__auto___49733 = arguments.length;
|
|
var i__5750__auto___49734 = (0);
|
|
while(true){
|
|
if((i__5750__auto___49734 < len__5749__auto___49733)){
|
|
args_arr__5774__auto__.push((arguments[i__5750__auto___49734]));
|
|
|
|
var G__49735 = (i__5750__auto___49734 + (1));
|
|
i__5750__auto___49734 = G__49735;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5775__auto__ = ((((2) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);
|
|
return sci.core.alter_var_root.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__auto__);
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.alter_var_root.cljs$core$IFn$_invoke$arity$2 = (function (v,f){
|
|
var _STAR_unrestricted_STAR__orig_val__49616 = sci.impl.unrestrict._STAR_unrestricted_STAR_;
|
|
var _STAR_unrestricted_STAR__temp_val__49617 = true;
|
|
(sci.impl.unrestrict._STAR_unrestricted_STAR_ = _STAR_unrestricted_STAR__temp_val__49617);
|
|
|
|
try{return sci.impl.vars.alter_var_root.cljs$core$IFn$_invoke$arity$2(v,f);
|
|
}finally {(sci.impl.unrestrict._STAR_unrestricted_STAR_ = _STAR_unrestricted_STAR__orig_val__49616);
|
|
}}));
|
|
|
|
(sci.core.alter_var_root.cljs$core$IFn$_invoke$arity$variadic = (function (v,f,args){
|
|
var _STAR_unrestricted_STAR__orig_val__49623 = sci.impl.unrestrict._STAR_unrestricted_STAR_;
|
|
var _STAR_unrestricted_STAR__temp_val__49624 = true;
|
|
(sci.impl.unrestrict._STAR_unrestricted_STAR_ = _STAR_unrestricted_STAR__temp_val__49624);
|
|
|
|
try{return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(sci.impl.vars.alter_var_root,v,f,args);
|
|
}finally {(sci.impl.unrestrict._STAR_unrestricted_STAR_ = _STAR_unrestricted_STAR__orig_val__49623);
|
|
}}));
|
|
|
|
/** @this {Function} */
|
|
(sci.core.alter_var_root.cljs$lang$applyTo = (function (seq49612){
|
|
var G__49613 = cljs.core.first(seq49612);
|
|
var seq49612__$1 = cljs.core.next(seq49612);
|
|
var G__49614 = cljs.core.first(seq49612__$1);
|
|
var seq49612__$2 = cljs.core.next(seq49612__$1);
|
|
var self__5734__auto__ = this;
|
|
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49613,G__49614,seq49612__$2);
|
|
}));
|
|
|
|
(sci.core.alter_var_root.cljs$lang$maxFixedArity = (2));
|
|
|
|
/**
|
|
* Finds or creates a sci var named by the symbol name in the namespace
|
|
* ns (which can be a symbol or a sci namespace), setting its root
|
|
* binding to val if supplied. The namespace must exist in the ctx. The
|
|
* sci var will adopt any metadata from the name symbol. Returns the
|
|
* sci var.
|
|
*/
|
|
sci.core.intern = (function sci$core$intern(var_args){
|
|
var G__49628 = arguments.length;
|
|
switch (G__49628) {
|
|
case 3:
|
|
return sci.core.intern.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
case 4:
|
|
return sci.core.intern.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.intern.cljs$core$IFn$_invoke$arity$3 = (function (ctx,sci_ns,name){
|
|
var _STAR_ctx_STAR__orig_val__49629 = sci.ctx_store._STAR_ctx_STAR_;
|
|
var _STAR_ctx_STAR__temp_val__49630 = ctx;
|
|
(sci.ctx_store._STAR_ctx_STAR_ = _STAR_ctx_STAR__temp_val__49630);
|
|
|
|
try{return sci.impl.namespaces.sci_intern.cljs$core$IFn$_invoke$arity$2(sci_ns,name);
|
|
}finally {(sci.ctx_store._STAR_ctx_STAR_ = _STAR_ctx_STAR__orig_val__49629);
|
|
}}));
|
|
|
|
(sci.core.intern.cljs$core$IFn$_invoke$arity$4 = (function (ctx,sci_ns,name,val){
|
|
var _STAR_ctx_STAR__orig_val__49633 = sci.ctx_store._STAR_ctx_STAR_;
|
|
var _STAR_ctx_STAR__temp_val__49634 = ctx;
|
|
(sci.ctx_store._STAR_ctx_STAR_ = _STAR_ctx_STAR__temp_val__49634);
|
|
|
|
try{return sci.impl.namespaces.sci_intern.cljs$core$IFn$_invoke$arity$3(sci_ns,name,val);
|
|
}finally {(sci.ctx_store._STAR_ctx_STAR_ = _STAR_ctx_STAR__orig_val__49633);
|
|
}}));
|
|
|
|
(sci.core.intern.cljs$lang$maxFixedArity = 4);
|
|
|
|
/**
|
|
* Evaluates string `s` as one or multiple Clojure expressions using the Small Clojure Interpreter.
|
|
*
|
|
* The map `opts` may contain the following:
|
|
*
|
|
* - `:namespaces`: a map of symbols to namespaces, where a namespace
|
|
* is a map with symbols to values, e.g.: `{'foo.bar {'x 1}}`. These
|
|
* namespaces can be used with `require`.
|
|
*
|
|
* - `:allow`: a seqable of allowed symbols. All symbols, even those
|
|
* brought in via `:namespaces` have to be explicitly
|
|
* enumerated.
|
|
*
|
|
* - `:deny`: a seqable of disallowed symbols, e.g.: `[loop quote
|
|
* recur]`.
|
|
*
|
|
* - `:features`: when provided a non-empty set of keywords, sci will process reader conditionals using these features (e.g. #{:bb}).
|
|
*
|
|
* - `:ns-aliases`: a map of aliases to namespaces that are globally valid, e.g. `{'clojure.test 'cljs.test}`
|
|
*
|
|
* - `:bindings`: DEPRECATED - `:bindings x` is the same as `:namespaces {'user x}`.
|
|
*/
|
|
sci.core.eval_string = (function sci$core$eval_string(var_args){
|
|
var G__49637 = arguments.length;
|
|
switch (G__49637) {
|
|
case 1:
|
|
return sci.core.eval_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
|
|
break;
|
|
case 2:
|
|
return sci.core.eval_string.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.core.eval_string.cljs$core$IFn$_invoke$arity$1 = (function (s){
|
|
return sci.core.eval_string.cljs$core$IFn$_invoke$arity$2(s,null);
|
|
}));
|
|
|
|
(sci.core.eval_string.cljs$core$IFn$_invoke$arity$2 = (function (s,opts){
|
|
return sci.impl.interpreter.eval_string.cljs$core$IFn$_invoke$arity$2(s,opts);
|
|
}));
|
|
|
|
(sci.core.eval_string.cljs$lang$maxFixedArity = 2);
|
|
|
|
/**
|
|
* Creates an initial sci context from given options `opts`. The context
|
|
* can be used with `eval-string*`. See `eval-string` for available
|
|
* options. The internal organization of the context is implementation
|
|
* detail and may change in the future.
|
|
*/
|
|
sci.core.init = (function sci$core$init(opts){
|
|
return sci.impl.opts.init(opts);
|
|
});
|
|
/**
|
|
* Updates a context with opts merged in and returns it.
|
|
*/
|
|
sci.core.merge_opts = (function sci$core$merge_opts(ctx,opts){
|
|
return sci.impl.opts.merge_opts(ctx,opts);
|
|
});
|
|
/**
|
|
* Forks a context (as produced with `init`) into a new context. Any new
|
|
* vars created in the new context won't be visible in the original
|
|
* context.
|
|
*/
|
|
sci.core.fork = (function sci$core$fork(ctx){
|
|
return cljs.core.update.cljs$core$IFn$_invoke$arity$3(ctx,new cljs.core.Keyword(null,"env","env",-1815813235),(function (env){
|
|
return cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(env));
|
|
}));
|
|
});
|
|
/**
|
|
* Evaluates string `s` in the context of `ctx` (as produced with
|
|
* `init`).
|
|
*/
|
|
sci.core.eval_string_STAR_ = (function sci$core$eval_string_STAR_(ctx,s){
|
|
return sci.impl.interpreter.eval_string_STAR_.cljs$core$IFn$_invoke$arity$2(ctx,s);
|
|
});
|
|
/**
|
|
* Evaluates string `s` in the context of `ctx` (as produced with
|
|
* `init`).
|
|
*
|
|
* Options:
|
|
* *`:ns` - the namespace to start evaluation in (defaults to the value of `sci/ns`)
|
|
*
|
|
* Returns map with:
|
|
* * `:val` - the evaluated value
|
|
* * `:ns` - the namespace object
|
|
*/
|
|
sci.core.eval_string_PLUS_ = (function sci$core$eval_string_PLUS_(var_args){
|
|
var G__49642 = arguments.length;
|
|
switch (G__49642) {
|
|
case 2:
|
|
return sci.core.eval_string_PLUS_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
case 3:
|
|
return sci.core.eval_string_PLUS_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.eval_string_PLUS_.cljs$core$IFn$_invoke$arity$2 = (function (ctx,s){
|
|
return sci.core.eval_string_PLUS_.cljs$core$IFn$_invoke$arity$3(ctx,s,null);
|
|
}));
|
|
|
|
(sci.core.eval_string_PLUS_.cljs$core$IFn$_invoke$arity$3 = (function (ctx,s,opts){
|
|
return sci.impl.interpreter.eval_string_STAR_.cljs$core$IFn$_invoke$arity$3(ctx,s,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(opts,new cljs.core.Keyword("sci.impl","eval-string+","sci.impl/eval-string+",-178784582),true));
|
|
}));
|
|
|
|
(sci.core.eval_string_PLUS_.cljs$lang$maxFixedArity = 3);
|
|
|
|
/**
|
|
* Creates namespace object. Can be used in var metadata.
|
|
*/
|
|
sci.core.create_ns = (function sci$core$create_ns(var_args){
|
|
var G__49649 = arguments.length;
|
|
switch (G__49649) {
|
|
case 1:
|
|
return sci.core.create_ns.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
|
|
break;
|
|
case 2:
|
|
return sci.core.create_ns.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.core.create_ns.cljs$core$IFn$_invoke$arity$1 = (function (sym){
|
|
return sci.core.create_ns.cljs$core$IFn$_invoke$arity$2(sym,null);
|
|
}));
|
|
|
|
(sci.core.create_ns.cljs$core$IFn$_invoke$arity$2 = (function (sym,meta){
|
|
return sci.lang.__GT_Namespace(sym,meta);
|
|
}));
|
|
|
|
(sci.core.create_ns.cljs$lang$maxFixedArity = 2);
|
|
|
|
/**
|
|
* Parses string `s` in the context of `ctx` (as produced with
|
|
* `init`).
|
|
*/
|
|
sci.core.parse_string = (function sci$core$parse_string(ctx,s){
|
|
return sci.impl.parser.parse_string(ctx,s);
|
|
});
|
|
/**
|
|
* Coerces x into indexing pushback-reader to be used with
|
|
* parse-next. Accepts: string or java.io.Reader.
|
|
*/
|
|
sci.core.reader = (function sci$core$reader(x){
|
|
return sci.impl.parser.reader(x);
|
|
});
|
|
sci.core.source_reader = (function sci$core$source_reader(x){
|
|
return edamame.core.source_reader(x);
|
|
});
|
|
sci.core.get_line_number = (function sci$core$get_line_number(reader){
|
|
return sci.impl.parser.get_line_number(reader);
|
|
});
|
|
sci.core.get_column_number = (function sci$core$get_column_number(reader){
|
|
return sci.impl.parser.get_column_number(reader);
|
|
});
|
|
/**
|
|
* Parses next form from reader
|
|
*/
|
|
sci.core.parse_next = (function sci$core$parse_next(var_args){
|
|
var G__49656 = arguments.length;
|
|
switch (G__49656) {
|
|
case 2:
|
|
return sci.core.parse_next.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
case 3:
|
|
return sci.core.parse_next.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.parse_next.cljs$core$IFn$_invoke$arity$2 = (function (ctx,reader){
|
|
return sci.core.parse_next.cljs$core$IFn$_invoke$arity$3(ctx,reader,cljs.core.PersistentArrayMap.EMPTY);
|
|
}));
|
|
|
|
(sci.core.parse_next.cljs$core$IFn$_invoke$arity$3 = (function (ctx,reader,opts){
|
|
var v = sci.impl.parser.parse_next.cljs$core$IFn$_invoke$arity$3(ctx,reader,opts);
|
|
if(cljs.core.keyword_identical_QMARK_(new cljs.core.Keyword("sci.impl.parser.edamame","eof","sci.impl.parser.edamame/eof",-917261517),v)){
|
|
var or__5025__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(opts,new cljs.core.Keyword(null,"eof","eof",-489063237));
|
|
if(cljs.core.truth_(or__5025__auto__)){
|
|
return or__5025__auto__;
|
|
} else {
|
|
return new cljs.core.Keyword("sci.core","eof","sci.core/eof",-808584945);
|
|
}
|
|
} else {
|
|
return v;
|
|
}
|
|
}));
|
|
|
|
(sci.core.parse_next.cljs$lang$maxFixedArity = 3);
|
|
|
|
/**
|
|
* Parses next form from reader
|
|
*/
|
|
sci.core.parse_next_PLUS_string = (function sci$core$parse_next_PLUS_string(var_args){
|
|
var G__49662 = arguments.length;
|
|
switch (G__49662) {
|
|
case 2:
|
|
return sci.core.parse_next_PLUS_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
|
|
break;
|
|
case 3:
|
|
return sci.core.parse_next_PLUS_string.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
|
|
break;
|
|
default:
|
|
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
|
|
}
|
|
});
|
|
|
|
(sci.core.parse_next_PLUS_string.cljs$core$IFn$_invoke$arity$2 = (function (ctx,reader){
|
|
return sci.core.parse_next_PLUS_string.cljs$core$IFn$_invoke$arity$3(ctx,reader,cljs.core.PersistentArrayMap.EMPTY);
|
|
}));
|
|
|
|
(sci.core.parse_next_PLUS_string.cljs$core$IFn$_invoke$arity$3 = (function (ctx,reader,opts){
|
|
if(cljs.tools.reader.reader_types.source_logging_reader_QMARK_(reader)){
|
|
var v = sci.core.parse_next.cljs$core$IFn$_invoke$arity$3(ctx,reader,opts);
|
|
var s = clojure.string.trim(cljs.core.str.cljs$core$IFn$_invoke$arity$1(edamame.impl.parser.buf(reader)));
|
|
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [v,s], null);
|
|
} else {
|
|
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("parse-next+string must be called with source-reader",cljs.core.PersistentArrayMap.EMPTY);
|
|
}
|
|
}));
|
|
|
|
(sci.core.parse_next_PLUS_string.cljs$lang$maxFixedArity = 3);
|
|
|
|
/**
|
|
* Evaluates form (as produced by `parse-string` or `parse-next`) in the
|
|
* context of `ctx` (as produced with `init`). To allow namespace
|
|
* switches, establish root binding of `sci/ns` with `sci/binding` or
|
|
* `sci/with-bindings.`
|
|
*/
|
|
sci.core.eval_form = (function sci$core$eval_form(ctx,form){
|
|
var ctx__$1 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ctx,new cljs.core.Keyword(null,"id","id",-1388402092),(function (){var or__5025__auto__ = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(ctx);
|
|
if(cljs.core.truth_(or__5025__auto__)){
|
|
return or__5025__auto__;
|
|
} else {
|
|
return cljs.core.gensym.cljs$core$IFn$_invoke$arity$0();
|
|
}
|
|
})());
|
|
return sci.impl.interpreter.eval_form(ctx__$1,form);
|
|
});
|
|
/**
|
|
* Returns list of stacktrace element maps from exception, if available.
|
|
*/
|
|
sci.core.stacktrace = (function sci$core$stacktrace(ex){
|
|
var G__49668 = ex;
|
|
var G__49668__$1 = (((G__49668 == null))?null:cljs.core.ex_data(G__49668));
|
|
var G__49668__$2 = (((G__49668__$1 == null))?null:new cljs.core.Keyword("sci.impl","callstack","sci.impl/callstack",-1621010557).cljs$core$IFn$_invoke$arity$1(G__49668__$1));
|
|
if((G__49668__$2 == null)){
|
|
return null;
|
|
} else {
|
|
return sci.impl.callstack.stacktrace(G__49668__$2);
|
|
}
|
|
});
|
|
/**
|
|
* Returns a list of formatted stack trace elements as strings from stacktrace.
|
|
*/
|
|
sci.core.format_stacktrace = (function sci$core$format_stacktrace(stacktrace){
|
|
return sci.impl.callstack.format_stacktrace(stacktrace);
|
|
});
|
|
/**
|
|
* Returns name of SCI ns as symbol.
|
|
*/
|
|
sci.core.ns_name = (function sci$core$ns_name(sci_ns){
|
|
return sci.impl.types.getName(sci_ns);
|
|
});
|
|
sci.core._copy_ns = (function sci$core$_copy_ns(ns_publics_map,sci_ns){
|
|
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ns_map,p__49669){
|
|
var vec__49670 = p__49669;
|
|
var var_name = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49670,(0),null);
|
|
var var$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49670,(1),null);
|
|
var m = new cljs.core.Keyword(null,"meta","meta",1499536964).cljs$core$IFn$_invoke$arity$1(var$);
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ns_map,var_name,sci.core.new_var.cljs$core$IFn$_invoke$arity$3(var_name,(function (){var temp__5821__auto__ = new cljs.core.Keyword(null,"var","var",-769682797).cljs$core$IFn$_invoke$arity$1(var$);
|
|
if(cljs.core.truth_(temp__5821__auto__)){
|
|
var var$__$1 = temp__5821__auto__;
|
|
return cljs.core.deref(var$__$1);
|
|
} else {
|
|
return new cljs.core.Keyword(null,"val","val",128701612).cljs$core$IFn$_invoke$arity$1(var$);
|
|
}
|
|
})(),cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(m,new cljs.core.Keyword(null,"ns","ns",441598760),sci_ns,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"name","name",1843675177),var_name], 0))));
|
|
}),cljs.core.PersistentArrayMap.EMPTY,ns_publics_map);
|
|
});
|
|
sci.core.process_publics = (function sci$core$process_publics(publics,p__49674){
|
|
var map__49675 = p__49674;
|
|
var map__49675__$1 = cljs.core.__destructure_map(map__49675);
|
|
var exclude = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__49675__$1,new cljs.core.Keyword(null,"exclude","exclude",-1230250334));
|
|
var publics__$1 = (cljs.core.truth_(exclude)?cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,publics,exclude):publics);
|
|
return publics__$1;
|
|
});
|
|
sci.core.exclude_when_meta = (function sci$core$exclude_when_meta(publics_map,meta_fn,key_fn,val_fn,skip_keys){
|
|
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ns_map,p__49680){
|
|
var vec__49681 = p__49680;
|
|
var var_name = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49681,(0),null);
|
|
var var$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49681,(1),null);
|
|
var temp__5821__auto__ = (meta_fn.cljs$core$IFn$_invoke$arity$1 ? meta_fn.cljs$core$IFn$_invoke$arity$1(var$) : meta_fn.call(null,var$));
|
|
if(cljs.core.truth_(temp__5821__auto__)){
|
|
var m = temp__5821__auto__;
|
|
if(cljs.core.truth_(cljs.core.some(m,skip_keys))){
|
|
return ns_map;
|
|
} else {
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(ns_map,(key_fn.cljs$core$IFn$_invoke$arity$1 ? key_fn.cljs$core$IFn$_invoke$arity$1(var_name) : key_fn.call(null,var_name)),(val_fn.cljs$core$IFn$_invoke$arity$2 ? val_fn.cljs$core$IFn$_invoke$arity$2(var$,m) : val_fn.call(null,var$,m)));
|
|
}
|
|
} else {
|
|
return ns_map;
|
|
}
|
|
}),cljs.core.PersistentArrayMap.EMPTY,publics_map);
|
|
});
|
|
sci.core.normalize_meta = (function sci$core$normalize_meta(m){
|
|
var temp__5821__auto__ = new cljs.core.Keyword("sci","macro","sci/macro",-868536151).cljs$core$IFn$_invoke$arity$1(m);
|
|
if(cljs.core.truth_(temp__5821__auto__)){
|
|
var sci_macro = temp__5821__auto__;
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,new cljs.core.Keyword(null,"macro","macro",-867863404),sci_macro);
|
|
} else {
|
|
return m;
|
|
}
|
|
});
|
|
sci.core.meta_fn = (function sci$core$meta_fn(opts){
|
|
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"all","all",892129742),opts)){
|
|
return sci.core.normalize_meta;
|
|
} else {
|
|
if(cljs.core.truth_(opts)){
|
|
return (function (p1__49689_SHARP_){
|
|
return sci.core.normalize_meta(cljs.core.select_keys(p1__49689_SHARP_,opts));
|
|
});
|
|
} else {
|
|
return (function (p1__49690_SHARP_){
|
|
return sci.core.normalize_meta(cljs.core.select_keys(p1__49690_SHARP_,new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"arglists","arglists",1661989754),new cljs.core.Keyword(null,"no-doc","no-doc",1559921891),new cljs.core.Keyword(null,"macro","macro",-867863404),new cljs.core.Keyword("sci","macro","sci/macro",-868536151),new cljs.core.Keyword(null,"doc","doc",1913296891),new cljs.core.Keyword(null,"dynamic","dynamic",704819571)], null)));
|
|
});
|
|
|
|
}
|
|
}
|
|
});
|
|
/**
|
|
* Adds import of class named by `class-name` (a symbol) to namespace named by `ns-name` (a symbol) under alias `alias` (a symbol). Returns mutated context.
|
|
*/
|
|
sci.core.add_import_BANG_ = (function sci$core$add_import_BANG_(ctx,ns_name,class_name,alias){
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx),(function (env){
|
|
return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(cljs.core.assoc_in(env,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name,new cljs.core.Keyword(null,"imports","imports",-1249933394),alias], null),class_name),new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name,new cljs.core.Keyword(null,"refer","refer",-964295553),new cljs.core.Symbol(null,"clojure.core","clojure.core",-189332625,null),new cljs.core.Keyword(null,"exclude","exclude",-1230250334)], null),cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentHashSet.EMPTY),alias);
|
|
}));
|
|
|
|
return ctx;
|
|
});
|
|
/**
|
|
* Adds class (JVM class or JS object) to `ctx` as `class-name` (a
|
|
* symbol). Returns mutated context.
|
|
*/
|
|
sci.core.add_class_BANG_ = (function sci$core$add_class_BANG_(ctx,class_name,class$){
|
|
var env = new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx);
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(env,(function (env__$1){
|
|
return cljs.core.assoc_in(cljs.core.assoc_in(env__$1,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"class->opts","class->opts",2061906477),class_name,new cljs.core.Keyword(null,"class","class",-2030961996)], null),class$),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"raw-classes","raw-classes",1669916511),class_name], null),class$);
|
|
}));
|
|
|
|
return ctx;
|
|
});
|
|
/**
|
|
* Adds namespace map `ns-map` named by the symbol `ns-name` to
|
|
* `ctx`. Returns mutated context.
|
|
*/
|
|
sci.core.add_namespace_BANG_ = (function sci$core$add_namespace_BANG_(ctx,ns_name,ns_map){
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.update_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"namespaces","namespaces",-1444157469),ns_name], null),cljs.core.merge,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ns_map], 0));
|
|
|
|
return ctx;
|
|
});
|
|
/**
|
|
* Returns SCI ns object as created with `sci/create-ns` from `ctx` found by `ns-sym`.
|
|
*/
|
|
sci.core.find_ns = (function sci$core$find_ns(ctx,ns_sym){
|
|
return sci.impl.namespaces.sci_find_ns_STAR_(ctx,ns_sym);
|
|
});
|
|
/**
|
|
* Returns all SCI ns objects in the `ctx`
|
|
*/
|
|
sci.core.all_ns = (function sci$core$all_ns(ctx){
|
|
var _STAR_ctx_STAR__orig_val__49703 = sci.ctx_store._STAR_ctx_STAR_;
|
|
var _STAR_ctx_STAR__temp_val__49704 = ctx;
|
|
(sci.ctx_store._STAR_ctx_STAR_ = _STAR_ctx_STAR__temp_val__49704);
|
|
|
|
try{return sci.impl.namespaces.sci_all_ns();
|
|
}finally {(sci.ctx_store._STAR_ctx_STAR_ = _STAR_ctx_STAR__orig_val__49703);
|
|
}});
|
|
/**
|
|
* Calling this will enable
|
|
* - Altering core vars using `alter-var-root`
|
|
* - In CLJS: `set!` is able to set the value of any var.
|
|
* - In CLJS: instance method calls are not restricted to only `:classes`
|
|
*
|
|
* In the future, more unrestricted access may be added, so only use this when you're not using SCI as a sandbox.
|
|
*/
|
|
sci.core.enable_unrestricted_access_BANG_ = (function sci$core$enable_unrestricted_access_BANG_(){
|
|
return (sci.impl.unrestrict._STAR_unrestricted_STAR_ = true);
|
|
});
|
|
/**
|
|
* Returns a fully qualified symbol from a `sci.lang.Var`
|
|
*/
|
|
sci.core.var__GT_symbol = (function sci$core$var__GT_symbol(sci_var){
|
|
var m = cljs.core.meta(sci_var);
|
|
var sci_ns = new cljs.core.Keyword(null,"ns","ns",441598760).cljs$core$IFn$_invoke$arity$1(m);
|
|
var n = new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(m);
|
|
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(sci_ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(n));
|
|
});
|
|
sci.core.resolve = (function sci$core$resolve(ctx,sym){
|
|
var G__49711 = ctx;
|
|
var G__49712 = cljs.core.PersistentArrayMap.EMPTY;
|
|
var G__49713 = sym;
|
|
var fexpr__49710 = cljs.core.deref(sci.impl.utils.eval_resolve_state);
|
|
return (fexpr__49710.cljs$core$IFn$_invoke$arity$3 ? fexpr__49710.cljs$core$IFn$_invoke$arity$3(G__49711,G__49712,G__49713) : fexpr__49710.call(null,G__49711,G__49712,G__49713));
|
|
});
|
|
/**
|
|
* Add js library to context, so it can be used with `require`.
|
|
*/
|
|
sci.core.add_js_lib_BANG_ = (function sci$core$add_js_lib_BANG_(ctx,name_str,js_lib){
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"env","env",-1815813235).cljs$core$IFn$_invoke$arity$1(ctx),cljs.core.assoc_in,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"js-libs","js-libs",-502933721),name_str], null),js_lib);
|
|
|
|
return ctx;
|
|
});
|
|
|
|
//# sourceMappingURL=sci.core.js.map
|