static S evalJava_prep(S code) { ret evalJava_prep(code, "calc"); } static S evalJava_prep(S code, S mainName) { ret evalJava_prep(code, mainName, ""); } static S evalJava_prep(S code, S mainName, S preCode) { L tok = javaTok(trim(code)); if (tok_shouldAddReturn(tok) && eqGet(tok, 3, "(") && isIdentifier(get(tok, 1)) && isKnownVoidFunction(get(tok, 1)))) tokAppend_reTok(tok, l(tok)-2, ";"); code = tok_addReturn(tok); S returnType = containsReturnWithArgument(code) ? "O" : "void"; S main = // "!include #1003911\n" + // functions for quick eval "static " + returnType + " " + mainName + "() throws Exception { " + preCode + code + "\n" + "}"; ret main; }