From: stt@henning.camb.inmet.com (Tucker Taft)
Subject: Re: Use of generic child formal package
Date: Tue, 28 Feb 1995 20:35:37 GMT
Date: 1995-02-28T20:35:37+00:00 [thread overview]
Message-ID: <D4q97E.8Mr@inmet.camb.inmet.com> (raw)
In-Reply-To: D4IyJB.5C2@thomsoft.com
Ed Falis (falis@east.alsys.com) wrote:
: I'd like to provide an instance of a generic child unit as a formal package
: actual parameter to another generic. To wit:
: generic
: -- parent's formals
: package parent is ... ; end parent;
: generic
: -- child's formals
: package parent.child is ...; end parent.child;
: with parent;
: generic
: -- client formals
: package client is
: package parent_instance is new parent(...);
: end client;
: -- Here's the hitch:
: with parent.child;
: generic
: -- ??:
: with parent_instance.child is new parent.child (...);
: package client.child is ...;
: Gnat 2.02 doesn't like the syntax for the formal package parameter: the selected
: name notation is rejected. I've tried a few other ways of declaring the formal
: package, without success.
: So, is it legal, or is it GNAT?
The rules for children of generic packages changed in the final months
before the standard was released. I don't know whether GNAT has
implemented the final semantics. However, your usage above is not
correct. With the final formulation for children of generics,
the effect of a with clause for a child of a generic is to make
a corresponding generic subpackage of the same name appear in
every instance of the parent.
In other words, when you mention a child of a generic
in a with clause, it is as though the parent unit had
*always* included the child as a generic subpackage,
so that any instances of the parent would hence include a
corresponding generic subpackage.
Given the above rules, what you should write (though
no guarantees that GNAT will understand it yet):
with Parent.Child;
generic
with package Child_Instance is new Client.Parent_Instance.Child(<>);
package Client.Child is ...
: What I'm trying to do is to use multiple child units for distinct generic
: implementations of generic component, binding the implementation at the
: time of instantiating client.child, which will present an interface to its
: own clients.
: - Ed
-Tucker Taft stt@inmet.com
Intermetrics, Inc.
next prev parent reply other threads:[~1995-02-28 20:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1995-02-24 22:01 Use of generic child formal package Ed Falis
1995-02-28 20:35 ` Tucker Taft [this message]
1995-03-02 2:48 ` Robert Dewar
1995-03-08 0:12 ` Jack Beidler
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox