body));
receiveCode(filter)));  statements.addStatement(body);
    private void createRawMainFunc(FlatNode node)     {	//initializeFields();	//createInitializationCode();	//createSteadyStateCode();	SIRFilter filter = (SIRFilter)node.contents;		JBlock statements = new JBlock(null, new JStatement[0], null);		//add the call to the init function	statements.addStatement	    (new 	     JExpressionStatement(null,				  new JMethodCallExpression				  (null,				   new JThisExpression(null),				   filter.getInit().getName(),				   (JExpression[])filter.getParams().				   toArray(new JExpression[1])),				  null));		//add the call to initWork	if (filter instanceof SIRTwoStageFilter) {	    SIRTwoStageFilter two = (SIRTwoStageFilter)filter;	    JBlock body = 		(JBlock)ObjectDeepCloner.deepCopy		(two.getInitWork().getBody());	    	    statements.addStatement(recExeCode(two.getInitPeek(),						   body));				}		//add the code to collect enough data necessary to fire the 	//work function for the first time	//add the calls for the work function in the initialization stage	//add the code to collect all data produced by the upstream filter 	//but not consumed by this filter in the initialization stage	//add the call to the work function		//create the method and add it to the filter	JMethodDeclaration rawMainMethod = 	    new JMethodDeclaration(null, 				   at.dms.kjc.Constants.ACC_PUBLIC,				   CStdType.Void,				   rawMain,				   JFormalParameter.EMPTY,				   CClassType.EMPTY,				   statements,				   null,				   null);	filter.addMethod(rawMainMethod);    }