/** * 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()); }
String namespace = ns.name.getName();
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); }
public String getName(){ return sym.getName(); }
/** * 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 getName(){ return sym.getName(); }
@Override public boolean isMacro() { Var v=RT.var(sym.getNamespace(),sym.getName()); return KissUtils.isTruthy(v.meta().valAt(Keywords.MACRO)); }
public Object invoke(Object reader, Object quote, Object opts, Object pendingForms) { System.out.println("WARNING: reader macro " + macro + " is deprecated; use " + sym.getName() + " instead"); PushbackReader r = (PushbackReader) reader; Object o = read(r, true, null, true, opts, ensurePending(pendingForms)); return RT.list(sym, o); }
@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"); }
public Object invoke(Object reader, Object quote) { System.out.println("WARNING: reader macro " + macro + " is deprecated; use " + sym.getName() + " instead"); PushbackReader r = (PushbackReader) reader; Object o = read(r, true, null, true); return RT.list(sym, o); }
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); }
@Override public FilterResult apply(Namespace namespace) { String name = namespace.getName().getName(); return FilterResult.includedIf(pattern.matcher(name).matches()); }
public Object invoke(Object reader, Object firstChar){ PushbackReader r = (PushbackReader) reader; Object name = read(r, true, null, false); if (!(name instanceof Symbol)) throw new RuntimeException("Reader tag must be a symbol"); Symbol sym = (Symbol)name; return sym.getName().contains(".") ? readRecord(r, sym) : readTagged(r, sym); }
public Object invoke(Object reader, Object firstChar, Object opts, Object pendingForms){ PushbackReader r = (PushbackReader) reader; pendingForms = ensurePending(pendingForms); Object name = read(r, true, null, false, opts, pendingForms); if (!(name instanceof Symbol)) throw new RuntimeException("Reader tag must be a symbol"); Symbol sym = (Symbol)name; Object form = read(r, true, null, true, opts, pendingForms); if(isPreserveReadCond(opts) || RT.suppressRead()) { return TaggedLiteral.create(sym, form); } else { return sym.getName().contains(".") ? readRecord(form, sym, opts, pendingForms) : readTagged(form, sym, opts, pendingForms); } }