!636 !standard functions !class JavaTok !quicknew main { psvm { List tok = JavaTok.split(loadMainJava()); // scan for classes, put list in "buf" new StringBuilder buf; int level = 0; for (int i = 1; i+4 < tok.size(); i += 2) { if (tok.get(i).equals("{")) ++level; else if (tok.get(i).equals("}")) --level; else if (level == 1 && tok.get(i).equals("static") && tok.get(i+2).equals("class")) buf.append(quote(tok.get(i+4)) + ",\n"); } // inject list into source code for (int i = 1; i+4 < tok.size(); i += 2) if (tok.get(i).equals("]") && tok.get(i+2).equals("innerClasses") && tok.get(i+4).equals(";")) tok.set(i+4, "={\n" + buf + "};"); // quick&dirty! saveMainJava(JavaTok.join(tok)); } }