private Associative applyBindings(final Map<String, Object> bindings, Associative mappings) { if (bindings != null) { final Set<Entry<String, Object>> entrySet = bindings.entrySet(); for (final Entry<String, Object> entry : entrySet) { final Symbol symbol = Symbol.intern(entry.getKey()); final Namespace userNs = Namespace.findOrCreate(Symbol.create("user".intern())); final Var var = Var.intern(userNs, symbol); var.setDynamic(true); mappings = mappings.assoc(var, entry.getValue()); } } return mappings; }
public Object eval() { try { if(initProvided) { // if(init instanceof FnExpr && ((FnExpr) init).closes.count()==0) // var.bindRoot(new FnLoaderThunk((FnExpr) init,var)); // else var.bindRoot(init.eval()); } if(meta != null) { IPersistentMap metaMap = (IPersistentMap) meta.eval(); if (initProvided || true)//includesExplicitMetadata((MapExpr) meta)) var.setMeta((IPersistentMap) meta.eval()); } return var.setDynamic(isDynamic); } catch(Throwable e) { if(!(e instanceof CompilerException)) throw new CompilerException(source, line, column, e); else throw (CompilerException) e; } }
public static void pushNSandLoader(ClassLoader loader){ Var.pushThreadBindings(RT.map(Var.intern(Symbol.intern("clojure.core"), Symbol.intern("*ns*")).setDynamic(), null, RT.FN_LOADER_VAR, loader, RT.READEVAL, RT.T )); }
public static void pushNS(){ Var.pushThreadBindings(PersistentHashMap.create(Var.intern(Symbol.intern("clojure.core"), Symbol.intern("*ns*")).setDynamic(), null)); }
public Object eval() { try { if(initProvided) { // if(init instanceof FnExpr && ((FnExpr) init).closes.count()==0) // var.bindRoot(new FnLoaderThunk((FnExpr) init,var)); // else var.bindRoot(init.eval()); } if(meta != null) { IPersistentMap metaMap = (IPersistentMap) meta.eval(); if (initProvided || true)//includesExplicitMetadata((MapExpr) meta)) var.setMeta((IPersistentMap) meta.eval()); } return var.setDynamic(isDynamic); } catch(Throwable e) { if(!(e instanceof CompilerException)) throw new CompilerException(source, line, column, e); else throw (CompilerException) e; } }
boolean isDynamic = RT.booleanCast(RT.get(mm,dynamicKey)); if(isDynamic) v.setDynamic(); if(!isDynamic && sym.name.startsWith("*") && sym.name.endsWith("*") && sym.name.length() > 1)
boolean isDynamic = RT.booleanCast(RT.get(mm,dynamicKey)); if(isDynamic) v.setDynamic(); if(!isDynamic && sym.name.startsWith("*") && sym.name.endsWith("*") && sym.name.length() > 2)