if (func!=null) { symtab.registerFn(func); }
    public Object visitFunction(Function func)    {        SymbolTable oldSymTab = symtab;        symtab = new SymbolTable(symtab);        for (Iterator iter = func.getParams().iterator(); iter.hasNext(); )        {            Parameter param = (Parameter)iter.next();            symtab.registerVar(param.getName(),                               actualType(param.getType()),                               param,                               SymbolTable.KIND_FUNC_PARAM);        }	if (func!=null) { symtab.registerFn(func); }        Object result = super.visitFunction(func);        symtab = oldSymTab;        return result;    }