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