throw new Error("Unsupported predefined filter " +filter.getIdent());
p.print(" p.print("  return " + pushname + "(" + popname + "());"); p.newline();
    private void predefinedFilterWork(SIRPredefinedFilter self,				      String peekname, String pushname,				      String popname, int selfID) {	// 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.indent();	p.print ("// predefinedFilterWork " + self.getIdent()); p.newLine();	p.print ("for (; 0 < ____n; ____n--) {");	p.outdent(); p.newLine();	if (filter instanceof SIRFileReader) {	    String theType = ""+filter.getOutputType();	    // pop into a location.	    // Is the cast sufficisnt for the bit type?	    p.print(theType + " v;"); p.newLine();	    p.print("fwrite(" +		  "&v, " +		  "sizeof(v), " +		  "1, " +		  fpName(filter) +		  ");"); p.newLine();		p.print(pushname + "(v);"); p.newLine();	} else if (filter instanceof SIRFileWriter) {	    String theType = ""+filter.getInputType();	    // pop into a location.	    // Is the cast sufficisnt for the bit type?	    p.print(theType + " v = (" + theType +")(" + popname + "());"); p.newLine();	    p.print("fwrite(" +		  "&v, " +		  "sizeof(v), " +		  "1, " +		  fpName(filter) +		  ");"); p.newLine();	} else if (filter instanceof SIRIdentity) {	    throw new Error("Unsupported predefined filter " 				+filter.getIdent());	} else if (filter instanceof SIRDummySink) {	    // TODO:  get right exception for unimplemented.	    throw new Error("Unsupported predefined filter " 				+filter.getIdent());	} else if (filter instanceof SIRDummySource) {	    throw new Error("Unsupported predefined filter " 				+filter.getIdent());	} else {	    // TODO:  get right unchecked exception for unextended code...	    throw new Error("Unknown predefined filter " 				+filter.getIdent());	}        p.print ("}");		// end of for loop.	p.indent();	p.newLine();	p.outdent();		// end of function body    }