if (init != null) init.accept(this); if (self instanceof SIRTwoStageFilter) { ((SIRTwoStageFilter)self).getInitWork().accept(this); } if (work != null) print("work " + work.getName());
for (int i=0; i < methods.length; i++) methods[i].accept(this);
    public Object visitFilter(SIRFilter self,                              JFieldDeclaration[] fields,                              JMethodDeclaration[] methods,                              JMethodDeclaration init,                              JMethodDeclaration work,                              CType inputType, CType outputType)    {        printHeader(self, "filter");        print("{");        newLine();        pos += TAB_SIZE;        for (int i = 0; i < fields.length; i++)            fields[i].accept(this);        if (init != null)            init.accept(this);	if (self instanceof SIRTwoStageFilter) {	    ((SIRTwoStageFilter)self).getInitWork().accept(this);	}        if (work != null)	    print("work " + work.getName());        pos -= TAB_SIZE;        newLine();        print("}");        newLine();        return null;    }