print("  init();\n"); print("  work();\n");
print("  " + init.getName() + "("); print(InitArgument.getInitArguments(self)); print (");\n"); print("  " + work.getName() + "();\n");
    public void visitFilter(SIRFilter self,			    SIRStream parent,			    JFieldDeclaration[] fields,			    JMethodDeclaration[] methods,			    JMethodDeclaration init,			    JMethodDeclaration work,			    CType inputType, CType outputType) {		//Entry point of the visitor	print("#include <raw.h>\n\n");		//print the extern for the function to init the 	//switch	print("void raw_init();\n");	    	//Visit fields declared in the filter class	for (int i = 0; i < fields.length; i++)	   fields[i].accept(this);		//visit methods of filter, print the declaration first	declOnly = true;	for (int i =0; i < methods.length; i++)	    methods[i].accept(this);	//now print the functions with body	declOnly = false;	for (int i =0; i < methods.length; i++)	    methods[i].accept(this);			print("void begin(void) {\n");	print("  raw_init();\n");	print("  init();\n");	print("  work();\n");	print("}\n");		System.out.println("Code for " + Namer.getName(self) +			   " written to tile" + Layout.getTileNumber(self) +			   ".c");	try {	    FileWriter fw = new FileWriter("tile" + Layout.getTileNumber(self) + ".c");	    fw.write(str.toString());	    fw.close();	}	catch (Exception e) {	    System.err.println("Unable to write tile code file for filter " +			       Namer.getName(self));	}    }