static void tok_ifCast(L tok) { int i; while ((i = jfind_check cast(tok, "if ( cast ")) >= 0) { int iClosing = indexOf(tok, i, ")"); S var = tok.get(i+4), type = joinSubList(tok, i+8, iClosing-1); int start = iClosing+2, end = findEndOfStatement(tok, start); tok.set(i+6, "instanceof"); // replace "var" with "((Type) var)" in enclosed block // unless it's another cast expression for (int j = start; j < end; j += 2) if (eq(tok.get(j), var) && neqGet(tok, j-2, ".") && neqGet(tok, j+2, "cast")) tok.set(j, "((" + type + ") " + var + ")"); reTok(tok, i+6, end); } }