svoid tok_for_unpair(LS tok) { int i = -1; while (i = jfind(tok, "for ( , : unpair ", i+1))) { S type1 = tok.get(i+2), type2 = tok.get(i+10); int j = indexOf(tok, "unpair", i); int k = indexOf(tok, "{", j); S pairVar = makeVar(); replaceTokens(tok, i+4, j+1, "Pair<" + type1 + ", " + type2 + "> " + pairVar + ":"); tok.set(k, "{ " + type1 + " " + tok.get(i+4) + " = pairA(" + pairVar + "); " + type2 + " " + tok.get(i+12) + " = pairB(" + pairVar + "); "); reTok(tok, i, k+1); } }