static O safeInterpretedJavaEval(S s) { ret safeInterpretedJavaEval(javaTok(s)); } static O safeInterpretedJavaEval(L tok) { Pair> p = tok_parseFunctionCall(tok); if (p != null) ret callAndMakeOrDirect_safe(p.a, map safeInterpretedJavaEval(p.b)); if (lCodeTokens(tok) == 2 && eqGet(tok, 1, "#") && isIdentifier(get(tok, 3))) ret ai_getVar("#" + get(tok, 3)); if (lCodeTokens(tok) == 1) { S t = get(tok, 1); if (isQuoted(t)) ret unquote(t); if (isInteger(t)) ret parseInt(t); if (eq(t, "null")) ret null; if (eq(t, "false")) ret false; if (eq(t, "true")) ret true; if (isIdentifier(t)) ret ai_getVar(t); } fail("Can't interpret: " + join(tok)); }