static void tok_ifCast(L tok) { if (!tok.contains("cast")) ret; int i; while ((i = jfind(tok, "if ( cast ")) >= 0) { int iClosing = indexOf(tok, i, ")")-1; S var = tok.get(i+4), type = joinSubList(tok, i+8, j-2); int start = iClosing+2, end = findEndOfStatement(tok, start); tok.set(i+6, "instanceof"); for (int j = start; j < end; j += 2) if (eq(tok.get(j), var) && neqGet(tok, j-2, ".")) tok.set(j, "((" + type + ") " + var + ")"); reTok(tok, i+6, end); } }