statements.addStatement(new JWhileStatement(null, new JBooleanLiteral(null, true), workBlock, null));
statements.addStatement (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), workBlock, null));
    private static void rawMainFunction(SIRFilter filter) {        JBlock statements = new JBlock();        // create the params list, for some reason        // calling toArray() on the list breaks a later pass        System.out.println(filter.getParent());        List paramList = filter.getParams();        JExpression[] paramArray;        if (paramList == null || paramList.size() == 0)            paramArray = new JExpression[0];        else            paramArray = (JExpression[]) paramList.toArray(new JExpression[0]);        // add the call to the init function        statements.addStatement(new JExpressionStatement(null,                new JMethodCallExpression(null, new JThisExpression(null),                        filter.getInit().getName(), paramArray), null));        // inline the work function in a while loop        JBlock workBlock = (JBlock) ObjectDeepCloner.deepCopy(filter.getWork()                .getBody());        if (SpaceDynamicBackend.FILTER_DEBUG_MODE) {            statements.addStatement(new SIRPrintStatement(null,                    new JStringLiteral(null, filter.getName()                            + " Starting Steady-State\\n"), null));        }        // if we are in decoupled mode do not put the work function in a for        // loop        // and add the print statements        if (KjcOptions.decoupled) {            workBlock.addStatementFirst(new SIRPrintStatement(null,                    new JIntLiteral(0), null));            workBlock.addStatement(workBlock.size(), new SIRPrintStatement(                    null, new JIntLiteral(1), null));            statements.addStatement(workBlock);        } else {            statements.addStatement(new JWhileStatement(null,                    new JBooleanLiteral(null, true), workBlock, null));        }        JMethodDeclaration rawMainFunct = new JMethodDeclaration(null,                at.dms.kjc.Constants.ACC_PUBLIC, CStdType.Void,                RawExecutionCode.rawMain, JFormalParameter.EMPTY,                CClassType.EMPTY, statements, null, null);        filter.addMethod(rawMainFunct);    }