str.getInit().accept(new SLIREmptyVisitor() { public void visitInitStatement(SIRInitStatement self, SIRStream target) { recurseInto(self.getTarget(), self.getArgs(), constants); } });
InitPropagator prop=new InitPropagator(constants); str.getInit().accept(prop); constants=prop.getConstants();
    private void recurseFrom(SIRContainer str, final Hashtable constants) {	// if we're at the bottom, we're done	if (str.getInit()==null) {	    return;	}	// recursion method depends on whether or not there are still	// init statements	if (Flattener.INIT_STATEMENTS_RESOLVED) {	    for (int i=0; i<str.size(); i++) {		recurseInto(str.get(i), str.getParams(i), constants);	    }	} else {	    // iterate through statements of init function, looking for	    // SIRInit's	    str.getInit().accept(new SLIREmptyVisitor() {		    public void visitInitStatement(SIRInitStatement self,						   SIRStream target) {			recurseInto(self.getTarget(), self.getArgs(), constants);		    }		});	}    }