svoid tok_tildeCalls(LS tok) { int iTilde; jreplace(tok, ".~", "~."); // calls without type while ((iTilde = jfind(tok, "~.(")) >= 0) { int iStart = tok_findBeginningOfJavaXTerm(tok, iTilde-2); S fname = tok.get(iTilde+4); tokPrepend(tok, iStart, "call("); replaceTokens(tok, iTilde, iTilde+8, ", " + quote(fname) + (eqGet(tok, iTilde+8, ")") ? "" : ", ")); reTok(tok, iStart, iTilde+8); } // calls with type while ((iTilde = jfind(tok, "~. (")) >= 0) { int iStart = tok_findBeginningOfJavaXTerm(tok, iTilde-2); S type = get(tok, iTilde+4); int iFname = iTilde+6; S fname = tok.get(iFname); // TODO: brackets around the whole thing tokPrepend(tok, iStart, "(" + type + ") call("); replaceTokens(tok, iTilde, iFname+4, ", " + quote(fname) + (eqGet(tok, iFname+4, ")") ? "" : ", ")); reTok(tok, iStart, iFname+4); } // field access while ((iTilde = jfind(tok, "~.")) >= 0) { int iStart = tok_findBeginningOfJavaXTerm(tok, iTilde-2); S fieldName = tok.get(iTilde+4); tokPrepend(tok, iStart, "getOpt " + fieldName + "("); replaceTokens(tok, iTilde, iTilde+5, ")"); reTok(tok, iStart, iTilde+5); } }