static Pair prepareEvalWithDollarVars(S code) { L tok = javaTok(code); new LinkedHashSet vars; for (int i = 1; i < l(tok); i += 2) { S t = tok.get(i); if (isDollarVar(t)) vars.add(t); } temp tempSetThreadLocal(evalJava_prep_args, joinWithComma(map(func(S var) -> S { "S " + var }, vars))); S src = evalJava_prep(code); O c = evalJava_prep2(src); ret pair(asList(vars), c)); }