// i is index of last token of expression // return value is C token static int tok_findBeginningOfJavaXTerm(L tok, int i) { i |= 1; int level = 0; while (i > 1) { S t = get(tok, i); if (eqOneOf(t, "}", ")")) level++; else if (eqOneOf(t, "{", "(")) level--; if (level == 0) { S prev = get(tok, i-2); printVars_str(+prev, +t); if (eqOneOf(prev, "ret", "return") || isIdentifier(t) && !isIdentifier(prev) && !eq(prev, ".")) { ifdef tok_findBeginningOfJavaXTerm_debug print("Returning " + i + " / " + t); endifdef ret i; } } i -= 2; } ret i; }