for (Iterator iter = spec.getFuncs().iterator(); iter.hasNext(); ) { Function func = (Function)iter.next(); symtab.registerFn(func); }
    public Object visitStreamSpec(StreamSpec spec)    {        StreamType oldStreamType = streamType;        SymbolTable oldSymTab = symtab;        symtab = new SymbolTable(symtab);        streamType = spec.getStreamType();        for (Iterator iter = spec.getParams().iterator(); iter.hasNext(); )        {            Parameter param = (Parameter)iter.next();            symtab.registerVar(param.getName(),                               actualType(param.getType()),                               param,                               SymbolTable.KIND_STREAM_PARAM);        }        Object result = super.visitStreamSpec(spec);        symtab = oldSymTab;        streamType = oldStreamType;        return result;    }