// script that recognizes images or performs some kind of analysis on an image concept G22RecognizerScript > G22LeftArrowScript { void modifyParser(GazelleV_LeftArrowScriptParser parser) { parser.addVar("image", BufferedImage.class, false); } class CompiledAnalyzer > LASCompileResult { settable double timeout = 10; O get(BufferedImage image) { if (parsedScript == null) throw(parseError); if (image == null) fail("Need image"); ret evalWithTimeout(timeout, -> { new VarContext ctx; ctx.set(+image); ret parsedScript.get(ctx); }); } } LASCompileResult newCompileResult() { ret new CompiledAnalyzer; } CompiledAnalyzer compileForAutoRun() { ret (CompiledAnalyzer) super.compileForAutoRun(); } }