comp.lang.ada
 help / color / mirror / Atom feed
* Visibility and Elaboration
@ 2003-06-11 10:40 And838N
  0 siblings, 0 replies; 9+ messages in thread
From: And838N @ 2003-06-11 10:40 UTC (permalink / raw)
  To: comp.lang.ada

David,

Ohhhhhhhhhhhhh...

Your talking about:

procedure x is
   astring: unbounded_string := "hello world";
   somenumber: integer := 0;
begin
   somenumber := count(astring, to_set(' '));
   put(somenumber);
end x;


When I am talking about:

procedure visibilitytest is
         astring: string := "hello world";
         somenumber: integer;
begin
         put_line(astring);
         somenumber := count(to_unbounded_string(astring), to_set(' 
'));
         put_line(Integer'image(somenumber));
end visibilitytest;


After I posted procedure x I added put_line(astring) instead of put
(somenumber) and reposted it.  I looked it up later and found procedure 
visibility test but not procedure x.  Anyway...
You have my sincere and public appologies for being rude and, with 
procedure x, I would not need ada.text_io.

Andrew




__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455



^ permalink raw reply	[flat|nested] 9+ messages in thread
* Visibility and Elaboration
@ 2003-06-10  8:33 And838N
  0 siblings, 0 replies; 9+ messages in thread
From: And838N @ 2003-06-10  8:33 UTC (permalink / raw)
  To: comp.lang.ada

> David C. Hoos, Sr. wrote:
>The compiler did _not_ complain when the unneeded "with" of 
>Ada.Text_IO was removed.
Huh, that's interesting. �adagcc says that "put" is undefined and that
the is possibly a missing with of Text_IO, therefore, for me, it is
a necessity. �Let's move on.

In the b~newelaborations.adb file I don't see any mention of an
'Elab_<anything> for the elo package. �Regardless, I'm not real
concerned about that aspect. �My concern is learning what happens
differently in an elaboration verses what happens by using the "new"
reserved word. �If I define a package such as elo outside the
newelaboration procedure and "with" and "use" it then it is only 
elaborated once.

I can still create new elos by using the "new" reserved word. �My
question is how is this different? �The elo "objects" (I don't even 
know if they are objects) that were created using "new" should all have 
their own copy of the data (value) and the printvalue procedure (by 
some means) like the elaborations would have in the 
newelabroations doelaborations subprocedure.

The way it is now, each time the doelaborations subprocedure is called 
the elo package is elaborated (before the actual call) and, like using 
"new", each one has their own copy of value and printvalue. �Is the 
only difference their scope and lifetime? �

Andrew






__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455



^ permalink raw reply	[flat|nested] 9+ messages in thread
[parent not found: <7BD8CDF4.671052CE.0015D3EC@netscape.net>]
* Visibility and Elaboration
@ 2003-06-09 10:47 And838N
  0 siblings, 0 replies; 9+ messages in thread
From: And838N @ 2003-06-09 10:47 UTC (permalink / raw)
  To: comp.lang.ada

David C. Hoos, Sr. wrote:
>If you look at your original post (on June 4), there was no "put_line"
>statement -- hence, the reason for my question
Ok, your right, there was no put_line statement.  There was only the
"put" statement.  The compiler would still have complained.

>GNAT did _not_ tell you it didn't know which one to use.
Ok, that must be why I wrote "Thus, GNAT's compiler message tells me 
not that GNAT can't determine which count to use but that I need to 
specify, for future readers, which count I needed."

>Using the GNAT compiler, the object file resulting from the
>compilation of your package would contain a procedure named 
>my_pkg___elabs. That procedure contains the elaboration code for your 
>package specification.
Cool!  I'm going to check that out.  Thank you.

>Elaboration is nothing at all like the instantiation of a C++ class.
Ok, elaboration is like the "preparation" of something declared static 
in C++ or Java? So your saying that all the elaborations in the 
following code happen before the main procedure is called?

with
ada.text_io,
ada.integer_text_io;

use
ada.text_io,
ada.integer_text_io;

procedure newelaboration is

    procedure doelaboration(i: integer) is
        package elo is
            value: Integer;
            procedure printvalue;
        end elo;

        package body elo is
            procedure printvalue is
            begin
                put(value);
            end printvalue;
        end elo;
    
    begin
        if i < 10 then
            elo.value := i;
            doelaboration(i+1);
            elo.printvalue;
        end if;
    end doelaboration;

begin

doelaboration(1);

end newelaboration;

So using the "new" reserved word is different than an elaboration?

Thanks for the help!

Andrew


__________________________________________________________________
McAfee VirusScan Online from the Netscape Network.
Comprehensive protection for your entire computer. Get your free trial today!
http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397

Get AOL Instant Messenger 5.1 free of charge.  Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promo=380455



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2003-06-11 21:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-11 10:40 Visibility and Elaboration And838N
  -- strict thread matches above, loose matches on Subject: below --
2003-06-10  8:33 And838N
     [not found] <7BD8CDF4.671052CE.0015D3EC@netscape.net>
2003-06-09 11:35 ` David C. Hoos, Sr.
2003-06-09 18:14   ` Robert I. Eachus
2003-06-09 18:29     ` tmoran
2003-06-11  6:50       ` Robert I. Eachus
2003-06-11  7:49         ` tmoran
2003-06-11 21:11           ` Robert I. Eachus
2003-06-09 10:47 And838N

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