/** * Returns the var associated with qualifiedName. * * @param qualifiedName a String or clojure.lang.Symbol * @return a clojure.lang.IFn */ public static IFn var(Object qualifiedName) { Symbol s = asSym(qualifiedName); return var(s.getNamespace(), s.getName()); }
public String getNamespace(){ return sym.getNamespace(); }
public String getNamespace(){ return sym.getNamespace(); }
public static boolean isClojureVar(Symbol sym) { String ns=sym.getNamespace(); if (ns==null) return false; String name=sym.getName(); return (RT.var(ns, name)!=null); }
/** * Returns the var associated with qualifiedName. * * @param qualifiedName a String or clojure.lang.Symbol * @return a clojure.lang.IFn */ public static IFn var(Object qualifiedName) { Symbol s = asSym(qualifiedName); return var(s.getNamespace(), s.getName()); }
public static Expression analyseSymbol(Environment env,Symbol sym) { if (sym.equals(Symbols.NIL)) return Constant.NULL; if (sym.equals(Symbols.TRUE)) return Constant.TRUE; if (sym.equals(Symbols.FALSE)) return Constant.FALSE; if (sym.getNamespace()!=null) return ClojureLookup.create(sym); return Lookup.create(sym); }
@Override public boolean isMacro() { Var v=RT.var(sym.getNamespace(),sym.getName()); return KissUtils.isTruthy(v.meta().valAt(Keywords.MACRO)); }
@Override public EvalResult interpret(Environment e, IPersistentMap bindings) { try { Var v=RT.var(sym.getNamespace(),sym.getName()); if (v!=null) return e.withResult(v.deref()); } catch (Throwable t) { String err="Error trying to lookp var "+sym+" "; err+=" with Environment "+e.toString(); throw new KissException(err,t); } throw new KissException("Cannot find Clojure symbol "+sym+" in environment"); }
private static Type analyseTypeSymbol(Symbol sym) { if (sym.equals(Symbols.ANY)) return Types.ANYTHING; if (sym.equals(Symbols.NOTHING)) return Types.NOTHING; if (sym.equals(Symbols.NIL)) return Types.NULL; if (sym.equals(Symbols.TYPE)) return Types.TYPE; if (sym.equals(Symbols.SYMBOL_TYPE)) return Types.SYMBOL; if (sym.equals(Symbols.KEYWORD_TYPE)) return Types.KEYWORD; if (sym.getNamespace()==null) { String name=sym.getName(); if (!name.contains(".")) name="java.lang."+name; Class<?> c=RT.classForName(name); if (c!=null) return JavaType.create(c); } throw new KissException("Unrecognised type symbol: "+sym); }
if(tag != null) hinted = true; if(p.getNamespace() != null) p = Symbol.intern(p.name); Class pclass = tagClass(tag);
"Bad binding form, expected symbol, got: " + RT.third(f)); Symbol sym = (Symbol) RT.third(f); if(sym.getNamespace() != null) throw Util.runtimeException("Can't bind qualified name:" + sym);
else throw Util.runtimeException("Invalid parameter list"); } else if(p.getNamespace() != null) { throw Util.runtimeException("Can't use qualified name as parameter: " + p); } else {
throw new IllegalArgumentException("fn params must be Symbols"); Symbol p = (Symbol) parms.nth(i); if(p.getNamespace() != null) throw Util.runtimeException("Can't use qualified name as parameter: " + p); if(p.equals(_AMP_))
"Bad binding form, expected symbol, got: " + bindings.nth(i)); Symbol sym = (Symbol) bindings.nth(i); if(sym.getNamespace() != null) throw Util.runtimeException("Can't let qualified name: " + sym); Expr init = analyze(C.EXPRESSION, bindings.nth(i + 1), sym.name);
if(tag != null) hinted = true; if(p.getNamespace() != null) p = Symbol.intern(p.name); Class pclass = tagClass(tag);
"Bad binding form, expected symbol, got: " + bindings.nth(i)); Symbol sym = (Symbol) bindings.nth(i); if(sym.getNamespace() != null) throw Util.runtimeException("Can't let qualified name: " + sym); LocalBinding lb = registerLocal(sym, tagOf(sym), null,false);
"Bad binding form, expected symbol, got: " + bindings.nth(i)); Symbol sym = (Symbol) bindings.nth(i); if(sym.getNamespace() != null) throw Util.runtimeException("Can't let qualified name: " + sym); Expr init = analyze(C.EXPRESSION, bindings.nth(i + 1), sym.name);
"Bad binding form, expected symbol, got: " + bindings.nth(i)); Symbol sym = (Symbol) bindings.nth(i); if(sym.getNamespace() != null) throw Util.runtimeException("Can't let qualified name: " + sym); LocalBinding lb = registerLocal(sym, tagOf(sym), null,false);
"Bad binding form, expected symbol, got: " + RT.third(f)); Symbol sym = (Symbol) RT.third(f); if(sym.getNamespace() != null) throw Util.runtimeException("Can't bind qualified name:" + sym);