comp.lang.ada
 help / color / mirror / Atom feed
From: gauthier@alphainfo.unilim.fr (Michel Gauthier)
Subject: Re: Iterator Syntax [was: Re: STL in Ada95]
Date: 1997/05/23
Date: 1997-05-23T00:00:00+00:00	[thread overview]
Message-ID: <gauthier-2305971803260001@193.50.185.13> (raw)
In-Reply-To: 33859890.5587@spam.innocon.com


In article <33859890.5587@spam.innocon.com>, carter@spam.innocon.com wrote:

>>  Brian Rogoff wrote:
>>  > 
>>  > John Volan wrote:
>>  ...
>>  > >   generic
>>  > >     type Iterator_Type is private;
>>  > >     type Item_Type is private;
>>  > >     with procedure Advance (Iterator : in out Iterator_Type);
>>  > >     with function Get_Item (Iterator : in Iterator_Type) return
>>  > > Item_Type;
>>  > >     ... -- whatever other formals
>>  > >   procedure Do_Whatever                     -- whatever the algorithm is
>>  > >     (Start, Stop : in Iterator_Type; ... ); -- whatever parameters
>>  
>>  I'm curious. What is the advantage of "exposed" iterators like these
>>  over encapsulated iterators for a structure:
>>  
>>  generic -- Iterate
>>     with procedure Action (Item : in out Element; Continue : out
>>  Boolean);
>>  procedure Iterate (Over : in Structure);
>>  
>>  [...]

A personal answer : "file-like" iterators can be put together into
more complex ones like iterators for tuples, for abstract types
(for instances dates from years, months and days), or like
merges of various kinds. Generic iterators can't (to be honest ;
all specific solutions exist, but they require copying and editing,
whereas merges, tuple and abstract composers are components).

Additionally, I prefer richer specifications like the following :

with ADA . EXCEPTIONS ;
with NO_OPERATION ;
with CONSTANT_UNARY ;

generic

    type ITEM_TYPE is private ;

package SCANS . SIMPLE is

    type SCAN_ROOT is abstract tagged limited null record ;
    type SCAN_CLASS is access all SCAN_ROOT ' CLASS ;
    type SCAN_ARRAY is array ( POSITIVE range <> ) of SCAN_CLASS ; -- for
non-binary merges

--## polymorphic subprograms for normal usage ##--
    -- building SCAN_CLASS values is always specific
    procedure RESET ( THE_SCAN : in out SCAN_CLASS ) ;
    procedure CLOSE ( THE_SCAN : in out SCAN_CLASS ) ;
    procedure FORCE ( THE_SCAN : in out SCAN_CLASS ) ; -- CLOSE without
exception
    procedure READ  ( THE_SCAN : in     SCAN_CLASS ; THE_ITEM : out
ITEM_TYPE ) ;
    procedure SKIP  ( THE_SCAN : in     SCAN_CLASS ) ;
    function  NEXT        ( OF_SCAN : SCAN_CLASS ) return ITEM_TYPE ;
    function  ITEM        ( OF_SCAN : SCAN_CLASS ) return ITEM_TYPE ;
    function  END_OF_SCAN ( OF_SCAN : SCAN_CLASS ) return BOOLEAN   ;

    function NEW_OBJECT ( LIKE : SCAN_CLASS ) return SCAN_CLASS ;

    function OBJECT_NAME ( OF_SCAN : SCAN_CLASS ) return STRING ;
    function CLASS_NAME  ( OF_SCAN : SCAN_CLASS ) return STRING ;
    function CLASS_NAME return STRING ;

    NAME_OF_CLASS : STRING := "simple-scans" ;

--## default generic parameters with no other usage (not private because
of technical reasons) ##--
    function TRUE is new CONSTANT_UNARY ( ITEM_TYPE , BOOLEAN , STANDARD .
TRUE ) ;

--## polymorphic iterator for normal use ##--
    generic
        with procedure REPEAT ( USING : in ITEM_TYPE ) ;
        with procedure BEFORE_SCANNING is NO_OPERATION ;
        with procedure AFTER_SCANNING  is NO_OPERATION ;
        with procedure ON_EMPTY_SET    is NO_OPERATION ;
        with procedure FOR_REPEAT_ERROR
              ( REPORT : in ADA . EXCEPTIONS . EXCEPTION_OCCURRENCE ) is
                  ADA . EXCEPTIONS . EXCEPTION_OCCURRENCE.RERAISE_OCCURRENCE ;
        with procedure FOR_SCAN_ERROR
              ( REPORT : in ADA . EXCEPTIONS . EXCEPTION_OCCURRENCE ) is
                  ADA . EXCEPTIONS . EXCEPTION_OCCURRENCE.RERAISE_OCCURRENCE ;
        with function CONDITION ( USING : ITEM_TYPE ) return BOOLEAN is TRUE ;
    procedure SIMPLE_APPLYER ( SCAN : in out SCAN_CLASS ) ;
        -- the scan is assumed to be opened and reset before the call and
is returned opened and reset

--## abstract subprograms for exceptional cases (not private because of
technical reasons) ##--
    -- no OPEN can be specified at this root point since the set type is
always specific
    procedure RESET ( THE_SCAN : in out SCAN_ROOT ) is abstract ;
    procedure CLOSE ( THE_SCAN : in out SCAN_ROOT ) is abstract ;
    procedure FORCE ( THE_SCAN : in out SCAN_ROOT ) is abstract ;
    procedure READ  ( THE_SCAN : in     SCAN_ROOT ; THE_ITEM : out
ITEM_TYPE ) is abstract ;
    procedure SKIP  ( THE_SCAN : in     SCAN_ROOT ) is abstract ;
    function  NEXT        ( OF_SCAN : SCAN_ROOT ) return ITEM_TYPE is abstract ;
    function  ITEM        ( OF_SCAN : SCAN_ROOT ) return ITEM_TYPE is abstract ;
    function  END_OF_SCAN ( OF_SCAN : SCAN_ROOT ) return BOOLEAN   is abstract ;
    function OBJECT_NAME ( OF_SCAN : SCAN_ROOT ) return STRING ;
    function CLASS_NAME  ( OF_SCAN : SCAN_ROOT ) return STRING ;

private

    function CREATE ( LIKE : access SCAN_ROOT ) return SCAN_CLASS is abstract ;
        -- suitable to build specific bodies

end SCANS . SIMPLE ;

How to use it ?
First ; declare and create the iterator object :
    SCAN : constant SPECIFIC_SCAN . SCAN_TYPE := SPECIFIC_SCAN . NEW_OBJECT
            ( with possible parameters defining the set to be scanned) ;
Then either use it exactly like a file
or use it in the call of an instantiation :
    procedure REAL_SCAN is new SIMPLE_APPLYER ( REPEAT => to_be_repeated ) ;
   ...
    REAL_SCAN ( SCAN ) ;

A complex specification, but with a very versatile extensibility and
combinability,
and also with a very simple use in both file-like and generic forms.

----------          ----------          ----------          ---------- 
Michel Gauthier / Laboratoire d'informatique
123 avenue Albert Thomas / F-87060 Limoges
telephone + 33 5 55 43 69 73
fax +33 5 55 43 69 77
----------          ----------          ----------          ----------
Si l'an 2000 est pour vous un mysticisme stupide, utilisez la base 9
If you feel year 2000 a stupid mystic craze, use numeration base 9
----------          ----------          ----------          ----------




  parent reply	other threads:[~1997-05-23  0:00 UTC|newest]

Thread overview: 267+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-04-09  0:00 Any research putting c above ada? Konstantin B. Goldin
1997-04-10  0:00 ` Thomas Aho
1997-04-10  0:00 ` Bob Stout
1997-04-10  0:00 ` Matthew Heaney
1997-04-10  0:00 ` Richard Krehbiel
1997-04-10  0:00   ` Tom Wheeley
1997-04-11  0:00     ` Richard Kenner
1997-04-16  0:00     ` Daniel P Hudson
1997-04-17  0:00     ` Stephen Leake
1997-04-10  0:00   ` Philip Brashear
1997-04-10  0:00     ` CubanPete
1997-04-11  0:00       ` John Thomas Apa
1997-04-10  0:00   ` Andrew Dunstan
1997-04-11  0:00   ` Gary W Smith
1997-04-11  0:00   ` James Youngman
1997-04-11  0:00     ` Steve Summit
1997-04-12  0:00       ` Dave Wood
1997-04-14  0:00         ` Chris Lomont
1997-04-16  0:00           ` Dave Wood
1997-04-11  0:00   ` Steve Jones - JON
1997-04-11  0:00     ` Terry Colligan
1997-04-11  0:00       ` Larry J. Elmore
1997-04-12  0:00         ` Terry Colligan
1997-04-11  0:00     ` Kaz Kylheku
1997-04-12  0:00       ` Tom Wheeley
     [not found]       ` <01bc46be$fb54cae0$3f6700cf@default>
1997-04-13  0:00         ` Kaz Kylheku
1997-04-14  0:00           ` Craig Franck
1997-04-14  0:00       ` Roy Grimm
     [not found]       ` <33526cbf.41c6@cca.rockwell.com>
     [not found]         ` <5iusvd$118e@newssvr01-int.news.prodigy.com>
1997-04-14  0:00           ` James S. Rogers
     [not found]           ` <33530e22.5940@worldnet.att.net>
1997-04-16  0:00             ` Matthew Givens
1997-04-18  0:00               ` Kenneth Almquist
1997-04-20  0:00                 ` Matthew Givens
1997-04-22  0:00                   ` Alan Brain
     [not found]                   ` <335d880c.324@dynamite.com.au>
1997-05-04  0:00                     ` Matthew Givens
1997-05-05  0:00                       ` Alan Brain
     [not found]                       ` <336ea9ca.3c92@dynamite.com.au>
1997-05-07  0:00                         ` Matthew Givens
1997-05-06  0:00                           ` Tom Moran
1997-05-07  0:00                             ` Jon S Anthony
1997-05-07  0:00                           ` Kevin Cline
1997-05-07  0:00                           ` Jon S Anthony
     [not found]                           ` <5aedd9b0882ea1bf.69856d7f77cd2ae3.229bf1374681c88b@library-proxy.airnews.net>
1997-05-10  0:00                             ` Matthew Givens
1997-05-10  0:00                               ` Robert S. White
1997-05-11  0:00                               ` Kevin Cline
1997-05-16  0:00                               ` brad.balfour
1997-05-14  0:00                           ` T Wheeley
1997-04-19  0:00               ` Tom Wheeley
     [not found]           ` <33541be1.14961570@news.airmail.net>
1997-04-16  0:00             ` Matthew Givens
1997-04-16  0:00               ` Dale Stanbrough
     [not found]           ` <3353a187.1062@bix.com>
1997-04-16  0:00             ` Matthew Givens
1997-04-17  0:00               ` Tom Moran
     [not found]               ` <33545F8D.2AF4@worldnet.att.net>
     [not found]                 ` <335569F1.55A0@pratique.fr>
1997-04-20  0:00                   ` Nick Roberts
     [not found]         ` <5j0e5i$qgi@bcrkh13.bnr.ca>
1997-04-16  0:00           ` Matthew Givens
     [not found]           ` <5j4ijn$3ta1@news.knox.edu>
1997-04-17  0:00             ` Kaz Kylheku
1997-04-18  0:00               ` Tim Behrendsen
     [not found]           ` <33552C53.41C6@cca.rockwell.com>
1997-04-20  0:00             ` Steve Doiel
1997-04-20  0:00               ` Jay Martin
1997-04-21  0:00             ` Robert I. Eachus
     [not found]     ` <3359e813.340466234@news.pacificnet.net>
1997-04-11  0:00       ` James S. Rogers
1997-04-12  0:00         ` Steve Summit
1997-04-12  0:00         ` Danette & Murray Root
1997-04-12  0:00       ` David Weller
1997-04-12  0:00       ` Dave Wood
1997-04-13  0:00         ` Larry Kilgallen
     [not found]         ` <3373409f.494266577@news.pacificnet.net>
1997-04-13  0:00           ` Dave Wood
     [not found]             ` <E8pxJ0.I3s@thomsoft.com>
     [not found]               ` <3355E0F2.56E5@aonix.com>
1997-04-18  0:00                 ` David Hanley
1997-04-20  0:00                   ` Nick Roberts
1997-04-14  0:00           ` Robert S. White
1997-04-14  0:00             ` Kaz Kylheku
1997-04-15  0:00               ` Robert S. White
     [not found]                 ` <5ivtcu$puv@huron.eel.ufl.edu>
1997-04-16  0:00                   ` Kaz Kylheku
1997-04-16  0:00                     ` Byron
1997-04-16  0:00                       ` John Winters
     [not found]                     ` <5j31dt$o3j@huron.eel.ufl.edu>
1997-04-17  0:00                       ` Kaz Kylheku
1997-04-18  0:00                       ` David Thornley
     [not found]                         ` <338a1835.439086993@news.pacificnet.net>
1997-04-25  0:00                           ` Alan Bowler
     [not found]                     ` <01bc4da9$75237100$f4f582c1@xhv46.dial.pipex.com>
1997-04-21  0:00                       ` Daniel P Hudson
1997-04-21  0:00                         ` Robert I. Eachus
1997-04-14  0:00           ` Kaz Kylheku
1997-04-14  0:00           ` Stephen Leake
1997-04-13  0:00       ` Kaz Kylheku
1997-04-27  0:00         ` Richard Riehle
1997-04-29  0:00           ` Kaz Kylheku
1997-04-30  0:00             ` Jon S Anthony
1997-05-01  0:00               ` Kaz Kylheku
1997-05-02  0:00                 ` Jon S Anthony
1997-05-03  0:00                   ` Craig Franck
1997-05-03  0:00                 ` Matthew Givens
1997-05-03  0:00                   ` Robert S. White
1997-04-30  0:00             ` Robert I. Eachus
1997-04-30  0:00               ` Kaz Kylheku
1997-05-01  0:00                 ` Robert I. Eachus
1997-05-03  0:00                   ` Student responsability (Was: Any research putting c above ada?) Laurent Gasser
1997-05-03  0:00                     ` John Bode
1997-05-05  0:00                     ` Steven Huang
1997-05-05  0:00                   ` Any research putting c above ada? John Apa
1997-05-06  0:00                     ` Kevin Cline
1997-05-06  0:00                       ` Roy Grimm
1997-05-07  0:00                         ` John Apa
1997-05-08  0:00                           ` Kevin Cline
1997-05-10  0:00                             ` John Apa
1997-05-11  0:00                               ` Kevin Cline
1997-05-14  0:00                                 ` Nick Roberts
1997-05-08  0:00                           ` Roy Grimm
1997-05-07  0:00                         ` Kevin Cline
1997-05-07  0:00                           ` Roy Grimm
1997-05-07  0:00                             ` Kaz Kylheku
1997-05-08  0:00                             ` Kevin Cline
1997-05-08  0:00                               ` Roy Grimm
1997-05-08  0:00                                 ` Kaz Kylheku
1997-05-09  0:00                                 ` Kevin Cline
1997-05-10  0:00                                   ` Dan Shea
1997-05-11  0:00                                     ` Kevin Cline
1997-05-08  0:00                       ` Alan Brain
1997-05-07  0:00                     ` Adam Beneschan
1997-05-09  0:00                   ` Richard A. O'Keefe
1997-05-09  0:00                     ` Larry Weiss
1997-05-11  0:00                       ` Kevin Cline
1997-05-11  0:00                         ` Jay Martin
1997-05-12  0:00                           ` Kevin Cline
1997-05-12  0:00                         ` Craig Franck
1997-05-12  0:00                           ` Kevin Cline
1997-05-13  0:00                             ` Craig Franck
1997-05-13  0:00                               ` Jonathan Guthrie
1997-05-14  0:00                                 ` Mathew Hendry
     [not found]                           ` <F4243E31257E3230.1400B453F19F7D1B.A88AC4B6A31D <5l8gf8$2jp@mtinsc05.worldnet.att.net>
1997-05-13  0:00                             ` Kaz Kylheku
1997-05-13  0:00                               ` Lawrence Kirby
1997-05-14  0:00                               ` T Wheeley
1997-05-15  0:00                               ` Ray Blaak
1997-05-16  0:00                                 ` Alan Brain
1997-05-12  0:00                         ` Robert I. Eachus
1997-05-14  0:00                           ` Kevin Cline
     [not found]                         ` <5lb2mi$3i2@mtinsc03.worldnet.att.net>
1997-05-14  0:00                           ` Jonathan Guthrie
1997-05-14  0:00                             ` Szu-Wen Huang
1997-05-15  0:00                               ` Jonathan Guthrie
     [not found]                             ` <EA8sny.HKJ@thinkage.on.ca>
1997-05-16  0:00                               ` W. Wesley Groleau (Wes)
     [not found]                     ` <rayEA5A7D.932@netcom.com>
1997-05-14  0:00                       ` W. Wesley Groleau (Wes)
1997-05-14  0:00                       ` Steve Jones - JON
1997-05-17  0:00                       ` Robert I. Eachus
1997-05-14  0:00                     ` M. Prasad
1997-04-30  0:00               ` Jay Martin
1997-05-01  0:00                 ` Kevin Cline
1997-05-01  0:00                 ` Robert I. Eachus
1997-05-05  0:00                   ` Jay Martin
1997-05-06  0:00                     ` Kevin Cline
1997-05-07  0:00                       ` Robert I. Eachus
1997-04-30  0:00             ` Roy Grimm
1997-04-30  0:00               ` Kaz Kylheku
1997-04-30  0:00                 ` Jay Martin
1997-05-02  0:00                   ` Samuel A. Mize
1997-05-05  0:00                     ` Roy Grimm
1997-05-06  0:00                       ` Robert I. Eachus
1997-05-07  0:00                         ` Jay Martin
1997-05-07  0:00                           ` Kaz Kylheku
1997-05-08  0:00                             ` Jay Martin
1997-05-08  0:00                           ` Robert I. Eachus
1997-05-09  0:00                             ` Kevin Cline
1997-05-08  0:00                           ` Kevin Cline
1997-05-09  0:00                             ` Alan Brain
1997-05-11  0:00                       ` deafen
1997-05-12  0:00                         ` Kaz Kylheku
1997-05-12  0:00                         ` Roy Grimm
1997-05-01  0:00                 ` Roy Grimm
1997-05-01  0:00                   ` Kaz Kylheku
1997-05-02  0:00                     ` Roy Grimm
1997-05-02  0:00                       ` Jon S Anthony
1997-05-05  0:00                         ` Steve Furlong
1997-05-06  0:00                           ` Robert A Duff
1997-05-06  0:00                           ` Kevin Cline
1997-05-06  0:00                             ` Jon S Anthony
1997-05-08  0:00                           ` Lawrence Kirby
1997-05-14  0:00                         ` T Wheeley
1997-05-14  0:00                           ` Kaz Kylheku
1997-05-01  0:00                   ` Jay Martin
1997-05-10  0:00                   ` Fritz W Feuerbacher
1997-05-11  0:00                     ` Wilbur Streett
1997-05-12  0:00                       ` Kevin Cline
1997-05-20  0:00                       ` T Wheeley
     [not found]       ` <33508283.56dd@aonix.com>
     [not found]         ` <33526280.62b3@gsfc.nasa.gov>
     [not found]           ` <5ivths$pv2@huron.eel.ufl.edu>
1997-04-16  0:00             ` Matthew Givens
     [not found]               ` <m2ragbrmij.fsf@acm.org>
1997-04-20  0:00                 ` Nick Roberts
1997-04-14  0:00   ` Alan Brain
1997-04-17  0:00   ` Jon S Anthony
1997-04-10  0:00 ` Daniel P Hudson
1997-04-14  0:00 ` Steve Jones - JON
1997-04-14  0:00   ` Kaz Kylheku
1997-04-15  0:00   ` Matthew Givens
1997-04-20  0:00     ` Alan Brain
     [not found]     ` <335ae79e.55ed@dynamite.com.au>
1997-04-20  0:00       ` Matthew Givens
1997-04-28  0:00         ` Andrew Dunstan
1997-04-29  0:00           ` Matthew Givens
1997-05-06  0:00             ` Andrew Dunstan
1997-05-07  0:00               ` Kevin Cline
1997-05-07  0:00                 ` Jon S Anthony
1997-05-07  0:00                 ` Jeff Carter
1997-05-08  0:00                 ` Robert I. Eachus
1997-05-09  0:00                   ` Kevin Cline
1997-05-09  0:00                     ` John G. Volan
1997-05-11  0:00                       ` Kevin Cline
1997-05-12  0:00                         ` John G. Volan
1997-05-12  0:00                         ` John G. Volan
1997-05-13  0:00                         ` Alan Brain
1997-05-14  0:00                           ` Kevin Cline
1997-05-16  0:00                             ` Alan Brain
1997-05-17  0:00                               ` Dale Stanbrough
1997-05-17  0:00                               ` Kevin Cline
1997-05-17  0:00                                 ` John G. Volan
1997-05-18  0:00                                   ` Kevin Cline
1997-05-18  0:00                                     ` Jon S Anthony
1997-05-18  0:00                                       ` Brian Rogoff
1997-05-19  0:00                                       ` Kevin Cline
1997-05-19  0:00                                         ` Jon S Anthony
1997-05-19  0:00                                     ` John G. Volan
1997-05-20  0:00                                       ` Kevin Cline
1997-05-20  0:00                                         ` Jeff Carter
1997-05-21  0:00                                       ` Alan Brain
1997-05-21  0:00                                       ` Brian Rogoff
1997-05-21  0:00                                         ` STL in Ada95 [was: Any research putting c above ada?] John G. Volan
1997-05-22  0:00                                           ` Brian Rogoff
1997-05-23  0:00                                             ` Iterator Syntax [was: Re: STL in Ada95] Jeff Carter
1997-05-23  0:00                                               ` Brian Rogoff
1997-05-23  0:00                                               ` Michel Gauthier [this message]
1997-05-23  0:00                                               ` John G. Volan
1997-05-22  0:00                                           ` STL in Ada95 [was: Any research putting c above ada?] Brian Rogoff
1997-05-23  0:00                                             ` Jon S Anthony
1997-05-24  0:00                                               ` Brian Rogoff
1997-05-12  0:00                       ` Any research putting c above ada? Robert I. Eachus
1997-04-30  0:00           ` Daniel P Hudson
1997-04-30  0:00             ` Adam Beneschan
1997-05-02  0:00               ` Daniel P Hudson
     [not found] ` <5j078b$b25$1@NNTP.MsState.Edu>
1997-04-16  0:00   ` Peter Amey
     [not found]     ` <5j31lj$qnk@huron.eel.ufl.edu>
1997-04-24  0:00       ` Suzette Norby
1997-04-25  0:00         ` Kaz Kylheku
1997-04-26  0:00           ` Mike Haertel
1997-04-26  0:00             ` Kaz Kylheku
1997-04-27  0:00             ` Nick Roberts
1997-04-28  0:00             ` Istvan.Simon
1997-04-26  0:00           ` Larry Wissig
1997-04-26  0:00             ` Kaz Kylheku
1997-04-26  0:00             ` Nick Roberts
1997-04-26  0:00               ` Lawrence Kirby
1997-04-27  0:00                 ` b-see
1997-04-28  0:00             ` Jon S Anthony
1997-04-27  0:00           ` Jerry van Dijk
1997-04-25  0:00         ` Craig Franck
1997-04-28  0:00           ` Jon S Anthony
1997-04-29  0:00             ` Andrew Koenig
1997-04-29  0:00               ` Tom Moran
1997-04-30  0:00               ` Jon S Anthony
1997-05-01  0:00                 ` Kaz Kylheku
1997-04-30  0:00               ` Robert I. Eachus
1997-05-01  0:00                 ` Alan Brain
1997-04-30  0:00               ` Kaz Kylheku
1997-04-30  0:00             ` Craig Franck
1997-04-30  0:00               ` Robert I. Eachus
1997-04-30  0:00                 ` Pat Rogers
1997-05-02  0:00                 ` Jon S Anthony
1997-05-01  0:00               ` Jon S Anthony
1997-04-17  0:00   ` Daniel P Hudson
     [not found]   ` <335458A4.4C1D@worldnet.att.net>
     [not found]     ` <5j416b$hau@mtinsc04.worldnet.att.net>
1997-04-18  0:00       ` Mark & Zurima McKinney
1997-04-19  0:00         ` Craig Franck
1997-04-21  0:00           ` Robert I. Eachus
     [not found]     ` <5j30oa$ia9@bcrkh13.bnr.ca>
     [not found]       ` <3355739E.7B24@pratique.fr>
1997-04-18  0:00         ` Kaz Kylheku
1997-04-23  0:00       ` David Emery
1997-04-17  0:00 ` Jon S Anthony
1997-04-17  0:00 ` Chris Morgan
1997-04-17  0:00 ` Jon S Anthony
1997-04-18  0:00 ` David Emery
1997-04-21  0:00   ` Jim Hyslop
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox