System.out.println(self.getName());
    private void rateMatch(SIRFilter self) {	System.out.println(self.getName());	int recvbufsize = CalcBufferSize.	    getConsBufSize(Layout.getNode(Layout.getTile(self)));	int sendbufsize = CalcBufferSize.	    getProdBufSize(Layout.getNode(Layout.getTile(self)));			//print the buffer declarations	if (!self.getInputType().equals(CStdType.Void))	    bufferDeclaration(self.getInputType(), recvBuffer, 			      (new Integer(recvbufsize)).toString());	if (!self.getOutputType().equals(CStdType.Void))	bufferDeclaration(self.getOutputType(), sendBuffer, 			  (new Integer(sendbufsize)).toString());		print ("#define " + RECVBITS + " " + (recvbufsize - 1) + "\n");	print ("#define " + SENDBITS + " " + (sendbufsize - 1) + "\n");		print(" int " + exeIndex + ";\n");	print(" int " + sendIndex + " = -1;\n");	print(" int " + recvIndex + " = -1;\n");		//Visit fields declared in the filter class	JFieldDeclaration[] fields = self.getFields();	for (int i = 0; i < fields.length; i++)	    fields[i].accept(this);	//visit methods of filter, print the declaration first	declOnly = true;	JMethodDeclaration[] methods = self.getMethods();	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);		}		//get the buffer sizes	print("void begin(void) {\n");	print("  raw_init();\n");	print("  " + self.getInit().getName() + "(");	print(InitArgument.getInitArguments(self));	print (");\n");	if (self instanceof SIRTwoStageFilter) {	    print("  " + ((SIRTwoStageFilter)self).getInitWork().getName() + "();\n");	}	print("  " + self.getWork().getName() + "();\n");	print("}\n");		createFile();    }