if (RawBackend.FILTER_DEBUG_MODE) { block.addStatement (new SIRPrintStatement(null, new JStringLiteral(null, filter.getName() + " firing (init)."), null)); }
    JStatement generateInitWorkLoop(SIRFilter filter, 				    LocalVariables localVariables)     {	JStatement innerReceiveLoop = 	    makeForLoop(receiveCode(filter, filter.getInputType(),				    localVariables),			localVariables.exeIndex,			new JIntLiteral(filter.getPopInt()));		JExpression isFirst = 	    new JEqualityExpression(null,				    false,				    new JLocalVariableExpression				    (null, 				     localVariables.exeIndex1),				    new JIntLiteral(0));	JStatement ifStatement = 	    new JIfStatement(null,			     isFirst,			     innerReceiveLoop,			     null, 			     null);		JBlock block = new JBlock(null, new JStatement[0], null);	//if a simple filter, reset the simpleIndex	if (isSimple(filter)){	    block.addStatement		(new JExpressionStatement(null,					  (new JAssignmentExpression					   (null,					    new JLocalVariableExpression					    (null, localVariables.simpleIndex),					    new JIntLiteral(-1))), null));	}		//add the if statement	block.addStatement(ifStatement);		//clone the work function and inline it	JBlock workBlock = 	    (JBlock)ObjectDeepCloner.deepCopy(filter.getWork().getBody());	block.addStatement(workBlock);		//return the for loop that executes the block init - 1	//times	return makeForLoop(block, localVariables.exeIndex1, 			   new JIntLiteral(initFire - 1));    }