sclass RunTranspiler { settable S transpilerID = #759; O transpiler; settable S sourceInput; S sourceOutput; settable S mainSnippetID; settable int coresToUse = numberOfCores(); // transpilation options bool asFragment, asInclude; event preparingTranspiler(O transpiler); void loadTranspiler() { transpiler = hotwire(transpilerID); } void prepareTranspiler { setOpt(transpiler, localStuffOnly := asFragment); setOpt(transpiler, +asInclude); sourceInput = dropTranslators(sourceInput); set(transpiler, mainJava := sourceInput); set(transpiler, +print_byThread()); setOpt(transpiler, +mainSnippetID); setOpt(transpiler, numberOfCores_value := coresToUse); preparingTranspiler(transpiler); } void runTranspiler { callMain(transpiler); sourceOutput = (S) _get(transpiler, "mainJava"); } S get(S sourceInput) { if (transpiler == null) loadTranspiler(); sourceInput(sourceInput); prepareTranspiler(); runTranspiler(); ret sourceOutput; } }