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