p.println("  return " + ClusterUtils.pushName(selfID) + "("
p.println("  " + ClusterUtils.pushName(selfID) + "("
    static void predefinedFilterWork(SIRPredefinedFilter filter, int selfID,                                     CodegenPrintWriter p) {        // Caller has printed function name and an iteration parameter ____n        // Generate loop to execute body of this function ____n times,        // In loop generate specialized code for function.        p.print("void " + ClusterUtils.getWorkName(filter, selfID)                + "(int ____n) {");        p.indent();        p.newLine();        p.indent();        //        p.println("// predefinedFilterWork " + filter.getName());        p.println("for (; 0 < ____n; ____n--) {");        p.indent();        // SIRFileReader        if (filter instanceof SIRFileReader) {            genFileReaderWork((SIRFileReader)filter,selfID,p);            // SIRFileWriter        } else if (filter instanceof SIRFileWriter) {            genFileWriterWork((SIRFileWriter)filter,selfID,p);            // SIRIdentity        } else if (filter instanceof SIRIdentity) {            p.println("  return " + ClusterUtils.pushName(selfID) + "("                      + ClusterUtils.popName(selfID) + "());");        } else if (filter instanceof SIRDummySink                   || filter instanceof SIRDummySource) {            // DummySource and SummySink do not appear in any of our            // application code.  Are they part of the language?            // TODO: get right exception for unimplemented.            throw new Error("Unsupported predefined filter "                            + filter.getName());        } else {            // TODO: get right unchecked exception for unextended code...            throw new Error("Unknown predefined filter " + filter.getName());        }        p.outdent();        p.print("}"); // end of for loop.        p.newLine();        p.outdent(); // end of method body        p.outdent(); // end of method definition        p.print("}");        p.newLine();        p.newLine();    }