module: walker author: jonathan bachrach Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND // STATISTICS define method do-deep-walk (walker :: , function :: , parent, object :: ) walker-register-walked(walker, parent, object, object); function(object); end method; define method walker-required-instance-size (class == ) 2 end method; define method walker-required-instance-size (class == ) 2 end method; define method walker-required-instance-size (class == ) 2 end method; define method walker-required-instance-size (class :: subclass()) 3 end method; define constant $default-walker = make(); define method walker-required-instance-size (class :: ) size(walker-deep-slot-descriptors($default-walker, class)) end method; define method walker-required-instance-size (class == ) 1 end method; define method walker-instance-size (element) walker-required-instance-size(object-class(element)) end method; define method walker-instance-class (element) object-class(element) end method; define method walker-debug-name (element :: ) debug-name(element) end method; define method walker-instance-size (element :: ) round/(size(element), 4) + 2 end method; define method walker-instance-size (element :: ) round/(size(element), 4) + 2 end method; define method walker-instance-size (element :: ) size(element) + 2 end method; define function walker-stats (walker :: , display?) walker-instance-statistics (display?, identity, walker-instance-class, walker-debug-name, walker-instance-size, walker-required-instance-size, walker-walked(walker)) end function;