comp.lang.ada
 help / color / mirror / Atom feed
From: mheaney@ni.net (Matthew Heaney)
Subject: Re: operands of membership tests
Date: 1997/10/26
Date: 1997-10-26T00:00:00+00:00	[thread overview]
Message-ID: <mheaney-ya023680002610972222570001@news.ni.net> (raw)
In-Reply-To: dewar.877921177@merv


In article <dewar.877921177@merv>, dewar@merv.cs.nyu.edu (Robert Dewar) wrote:

><<Let's suppose 33_000.0 isn't even in the base range of Fixed>>
>
>Then this is obviously statically illegal, end of discussion

Perhaps I mistated my question; please forgive me.  The code below compiles
cleanly (using GNAT 3.10), and produces the following output:

33_000 > T'Base'Last: TRUE
33_000 in T: FALSE      
33_000 in T'Base: FALSE                                       

Since this code is "statically legal," then it begs another question: What
is the definition of "base range"?  I assumed that if 33_000 were greater
than T'Base'Last, then that meant it wasn't in the base range.  Is this
assumption incorrect?

Sometimes a (static) literal, outside the base range of the type, is
flagged as illegal at compile-time.  Yet in this example, we have a literal
outside the base range of the type, that isn't flagged.  My question is
this.  What are the circumstances under which a static literal expression
is illegal, because it's outside the base range of the type?  


-- STX
with Ada.Text_IO; use Ada.Text_IO;
procedure Test_Mem is

   type Fixed is delta 1.0 range 0.0 .. 256.0;
   for Fixed'Small use 1.0;

begin

   Put ("33_000 > T'Base'Last: ");
   Put (Boolean'Image (33_000.0 > Fixed'Base'Last));
   New_Line;

   Put ("33_000 in T: ");
   Put (Boolean'Image (33_000.0 in Fixed));
   New_Line;

   Put ("33_000 in T'Base: ");
   Put (Boolean'Image (33_000.0 in Fixed'Base));
   New_Line;

end;
-- ETX

--------------------------------------------------------------------
Matthew Heaney
Software Development Consultant
<mailto:matthew_heaney@acm.org>
(818) 985-1271




  reply	other threads:[~1997-10-26  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-10-26  0:00 operands of membership tests Matthew Heaney
1997-10-26  0:00 ` Robert Dewar
1997-10-26  0:00   ` Matthew Heaney [this message]
1997-10-27  0:00 ` Tucker Taft
replies disabled

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