return new JWhileStatement(null, new JBooleanLiteral(null, true), block, null);
return new JWhileStatement(null, KjcOptions.standalone ? (JExpression) new JPostfixExpression( null, Constants.OPE_POSTDEC, new JFieldAccessExpression(new JThisExpression(null), FlatIRToC.MAINMETHOD_COUNTER)) : (JExpression) new JBooleanLiteral(null, true), block, null);
    JStatement generateSteadyStateLoop(SIRFilter filter,            LocalVariables localVariables) {        // is we are rate matching generate the appropriate code        if (KjcOptions.ratematch)            return generateRateMatchSteadyState(filter, localVariables);        JBlock block = new JBlock(null, new JStatement[0], null);        // reset the simple index        if (isSimple(filter)) {            block.addStatement(new JExpressionStatement(null,                    (new JAssignmentExpression(null,                            new JLocalVariableExpression(null,                                    localVariables.simpleIndex),                            new JIntLiteral(-1))), null));        }        // add the statements to receive pop items into the buffer        block.addStatement(makeForLoop(receiveCode(filter, filter                .getInputType(), localVariables), localVariables.exeIndex,                new JIntLiteral(filter.getPopInt())));        JBlock workBlock = (JBlock) ObjectDeepCloner.deepCopy(filter.getWork()                .getBody());        // if we are in debug mode, print out that the filter is firing        if (SpaceDynamicBackend.FILTER_DEBUG_MODE) {            block.addStatement(new SIRPrintStatement(null, new JStringLiteral(                    null, filter.getName() + " firing.\\n"), null));        }        // add the cloned work function to the block        block.addStatement(workBlock);        // }        // return block;        // if we are in decoupled mode do not put the work function in a for        // loop        // and add the print statements        if (KjcOptions.decoupled) {            block.addStatementFirst(new SIRPrintStatement(null,                    new JIntLiteral(0), null));            block.addStatement(block.size(), new SIRPrintStatement(null,                    new JIntLiteral(1), null));            return block;        }        // return the infinite loop        return new JWhileStatement(null, new JBooleanLiteral(null, true),                block, null);    }