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