comp.lang.ada
 help / color / mirror / Atom feed
* Using an array of variant records
@ 2000-01-27  0:00 Scott Ingram
  2000-01-27  0:00 ` David
  0 siblings, 1 reply; 3+ messages in thread
From: Scott Ingram @ 2000-01-27  0:00 UTC (permalink / raw)


What I would like to do is to treat a set of variant records
as an array.  The discrimanant of the records is unconstrained,
but I seem unable to access it when trying to initialize the
record as element of an array.  The example below illustrates
what I want to accomplish, but gnat complains that it expects
a selector at the point that I want to select the discriminant.

Is it possible to do what I want?  

procedure snake_test is
   type snake is (garter, green);
   type snake_health is
      record
         Shed : Boolean;
         Active : Boolean;
   end record;
   type captive_snake (caged : Boolean := False) is
      record
        snake_kind : snake;
      case caged is
         when true =>
            health : snake_health;
         when others =>
            null;
      end case;
   end record;
   type snake_array is array (1..3) of captive_snake;
S1 : snake_array;
begin
   for i in 1..3 loop
      S1(i).(caged => True,
            snake_kind => green,
            health => (shed => true, active => true));
   end loop;
end snake_test;

Output from gnat:

Compiling: snake_test.adb (source file time stamp: 2000-01-27 18:07:28)
    22.       S1(i).(caged => True,
                    |
        >>> selector expected

Is there something that I have overlooked?  TIA,
-- 
Scott Ingram
Sonar Processing and Analysis Laboratory
Johns Hopkins University Applied Physics Laboratory




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

end of thread, other threads:[~2000-01-28  0:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-01-27  0:00 Using an array of variant records Scott Ingram
2000-01-27  0:00 ` David
2000-01-28  0:00   ` Scott Ingram

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