@Override public Object eval(Reader reader, ScriptContext context) throws ScriptException { try { // Get engine bindings and send them to Clojure Bindings engineBindings = context.getBindings(ScriptContext.ENGINE_SCOPE); engineBindings.entrySet().forEach((entry) -> Var.intern(Namespace.findOrCreate(NAMESPACE_SYMBOL), Symbol.create(entry.getKey().intern()), entry.getValue(), true)); Var.pushThreadBindings( RT.map(RT.CURRENT_NS, RT.CURRENT_NS.deref(), RT.IN, new LineNumberingPushbackReader(context.getReader()), RT.OUT, context.getWriter(), RT.ERR, context.getErrorWriter())); Object result = Compiler.load(reader); return result; } catch (Exception e) { throw new ScriptException(e); } finally { Namespace.remove(NAMESPACE_SYMBOL); } }
/** * Creates the {@code ScriptContext} using a {@link GremlinScriptContext} which avoids a significant amount of * additional object creation on script evaluation. */ @Override protected ScriptContext getScriptContext(final Bindings nn) { final GremlinScriptContext ctxt = new GremlinScriptContext(context.getReader(), context.getWriter(), context.getErrorWriter()); final Bindings gs = getBindings(ScriptContext.GLOBAL_SCOPE); if (gs != null) ctxt.setBindings(gs, ScriptContext.GLOBAL_SCOPE); if (nn != null) { ctxt.setBindings(nn, ScriptContext.ENGINE_SCOPE); } else { throw new NullPointerException("Engine scope Bindings may not be null."); } return ctxt; }
@Override public Writer getErrorWriter() { return context.getErrorWriter(); }
/** * Gives access to the engine scope error writer (defaults to System.err). * @return the engine error writer */ public PrintWriter getErr() { final Writer error = context.getErrorWriter(); if (error instanceof PrintWriter) { return (PrintWriter) error; } else if (error != null) { return new PrintWriter(error, true); } else { return null; } }
/** * Gives access to the engine scope error writer (defaults to System.err). * @return the engine error writer */ public PrintWriter getErr() { final Writer error = context.getErrorWriter(); if (error instanceof PrintWriter) { return (PrintWriter) error; } else if (error != null) { return new PrintWriter(error, true); } else { return null; } }
/** * Gives access to the engine scope error writer (defaults to System.err). * @return the engine error writer */ public PrintWriter getErr() { final Writer error = context.getErrorWriter(); if (error instanceof PrintWriter) { return (PrintWriter) error; } else if (error != null) { return new PrintWriter(error, true); } else { return null; } }
/** * Gives access to the engine scope error writer (defaults to System.err). * * @return the engine error writer */ public PrintWriter getErr() { final Writer error = context.getErrorWriter(); if (error instanceof PrintWriter) { return (PrintWriter) error; } else if (error != null) { return new PrintWriter(error, true); } else { return null; } }
/** * Gives access to the engine scope error writer (defaults to System.err). * * @return the engine error writer */ public PrintWriter getErr() { final Writer error = context.getErrorWriter(); if (error instanceof PrintWriter) { return (PrintWriter) error; } else if (error != null) { return new PrintWriter(error, true); } else { return null; } }
ScriptEngine se = ...; ScriptContext sc = se.getContext(); sc.setAttribute("stderr", // name is 'stderr' (Consumer<String>) str -> { // Object is a Consumer<String> try { Writer err = sc.getErrorWriter(); err.write(str); err.flush(); } catch (Exception e) { throw new Error(e); } }, ScriptContext.ENGINE_SCOPE // i.e. don't share with other engines );
private JsContext(ScriptEngine engine) { ScriptContext sc = engine.getContext(); this.reader = sc.getReader(); this.writer = sc.getWriter(); this.errorWriter = sc.getErrorWriter(); }
ScriptingConsole(ScriptContext context) { this.reader = new BufferedReader(context.getReader()); this.writer = printWriter(context.getWriter()); this.errorWriter = printWriter(context.getErrorWriter()); }
public ScriptContextImpl(ScriptContext parent, Map<String, Object> model) { this.engineScope = new BindingsImpl(model); this.errorWriter = parent.getErrorWriter(); this.globalScope = parent.getBindings(GLOBAL_SCOPE); this.reader = parent.getReader(); this.writer = parent.getWriter(); }
static void preEval(ScriptingContainer container, ScriptContext context) { Object receiver = Utils.getReceiverObject(context); Bindings bindings = context.getBindings(ScriptContext.ENGINE_SCOPE); for (Map.Entry<String, Object> entry : bindings.entrySet()) { put(container, receiver, entry.getKey(), entry.getValue(), context); } //container.setReader(context.getReader()); setStdOut(container, context.getWriter()); setStdErr(container, context.getErrorWriter()); // if key of globalMap exists in engineMap, this key-value pair should be skipped. bindings = context.getBindings(ScriptContext.GLOBAL_SCOPE); if (bindings == null) return; for (Map.Entry<String, Object> entry : bindings.entrySet()) { if (container.getVarMap().containsKey(entry.getKey())) continue; put(container, receiver, entry.getKey(), entry.getValue(), context); } }
/** * Sets the IOLibray's standard input/output with the streams specified in the ScriptContext * @param sc the ScriptContext to use for the next evaluation */ private void setupStandardIO(ScriptContext sc) { IOLibrary ioLib = (IOLibrary) prolog.getLibrary("alice.tuprolog.lib.IOLibrary"); if(ioLib != null) { ioLib.setStandardInput(new InputStreamAdapter(sc.getReader())); outputWriter = sc.getWriter(); errorWriter = sc.getErrorWriter(); } }
protected void setup() { final ScriptContext context = getContext(); final Reader reader = context.getReader(); if (reader != null) { log().warn("Beanshell does not support redirecting the input"); } final Writer writer = context.getWriter(); if (writer != null) interpreter.setOut(new PrintStream( new WriterOutputStream(writer))); final Writer errorWriter = context.getErrorWriter(); if (errorWriter != null) interpreter.setErr(new PrintStream( new WriterOutputStream(errorWriter))); }
protected ScriptContext getScriptContext(Bindings bindings) { if (bindings == null) { throw new NullPointerException("null bindings in engine scope"); } ScriptContext newContext = new SimpleScriptContext(); newContext.setBindings(bindings, ScriptContext.ENGINE_SCOPE); Bindings global = getBindings(ScriptContext.GLOBAL_SCOPE); if (global != null) { newContext.setBindings(global, ScriptContext.GLOBAL_SCOPE); } newContext.setReader(context.getReader()); newContext.setWriter(context.getWriter()); newContext.setErrorWriter(context.getErrorWriter()); return newContext; }
protected ScriptContext getScriptContext(Bindings bindings) { if (bindings == null) { throw new NullPointerException("null bindings in engine scope"); } ScriptContext newContext = new SimpleScriptContext(); newContext.setBindings(bindings, ScriptContext.ENGINE_SCOPE); Bindings global = getBindings(ScriptContext.GLOBAL_SCOPE); if (global != null) { newContext.setBindings(global, ScriptContext.GLOBAL_SCOPE); } newContext.setReader(context.getReader()); newContext.setWriter(context.getWriter()); newContext.setErrorWriter(context.getErrorWriter()); return newContext; }
protected ScriptContext getScriptContext(Bindings bindings) { if (bindings == null) { throw new NullPointerException("null bindings in engine scope"); } ScriptContext newContext = new SimpleScriptContext(); newContext.setBindings(bindings, ScriptContext.ENGINE_SCOPE); Bindings global = getBindings(ScriptContext.GLOBAL_SCOPE); if (global != null) { newContext.setBindings(global, ScriptContext.GLOBAL_SCOPE); } newContext.setReader(context.getReader()); newContext.setWriter(context.getWriter()); newContext.setErrorWriter(context.getErrorWriter()); return newContext; }
protected ScriptContext getScriptContext(Bindings bindings) { if (bindings == null) { throw new NullPointerException("null bindings in engine scope"); } ScriptContext newContext = new SimpleScriptContext(); newContext.setBindings(bindings, ScriptContext.ENGINE_SCOPE); Bindings global = getBindings(ScriptContext.GLOBAL_SCOPE); if (global != null) { newContext.setBindings(global, ScriptContext.GLOBAL_SCOPE); } newContext.setReader(context.getReader()); newContext.setWriter(context.getWriter()); newContext.setErrorWriter(context.getErrorWriter()); return newContext; }
private Object eval(PyCode code, ScriptContext context) throws ScriptException { try { interp.setIn(context.getReader()); interp.setOut(context.getWriter()); interp.setErr(context.getErrorWriter()); interp.setLocals(new PyScriptEngineScope(this, context)); return interp.eval(code).__tojava__(Object.class); } catch (PyException pye) { throw scriptException(pye); } }