// Syntax: thread "bla" { doSomething(); } // Also: thread var { doSomething(); } // Short for: new Thread("bla) { public void run() { doSomething(); }}.start(); !747 m { p { L tok = javaTok(loadMainJava()); for (int i = 0; i < 100; i++) { int idx = findCodeTokens(tok, "thread", "*", "{"); if (idx < 0) break; int j = findEndOfBracketPart(tok, idx+4); S tName = tok.get(idx+2); S var = "_t_" + i; S pre = "{ Thread " + var + " = new Thread(" + tName + ") {\n" + "public void run() {\n" + "try"; S post = "} catch (Exception _e) {\n" + " throw _e instanceof RuntimeException ? (RuntimeException) _e : new RuntimeException(_e); } }\n};\n" + var + ".start(); }"; tok.set(idx, pre); tok.set(idx+2, ""); tok.set(j-1, post); } saveMainJava(join(tok)); } }