From: Scott Ingram <scott@silver.jhuapl.edu>
Subject: Using an array of variant records
Date: 2000/01/27
Date: 2000-01-27T18:09:15+00:00 [thread overview]
Message-ID: <389089CB.85F9FF72@silver.jhuapl.edu> (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
next reply other threads:[~2000-01-27 0:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-01-27 0:00 Scott Ingram [this message]
2000-01-27 0:00 ` Using an array of variant records David
2000-01-28 0:00 ` Scott Ingram
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox