From: David C. Hoos, Sr. <david.c.hoos.sr@ada95.com>
To: scott@silver.jhuapl.edu
Subject: Re: Using an array of variant records
Date: 2000/01/27
Date: 2000-01-27T00:00:00+00:00 [thread overview]
Message-ID: <86qg16$ug3$1@nnrp1.deja.com> (raw)
In-Reply-To: 389089CB.85F9FF72@silver.jhuapl.edu
In article <389089CB.85F9FF72@silver.jhuapl.edu>,
Scott Ingram <scott@silver.jhuapl.edu> wrote:
> 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?
Yes. The expression to the right of the dot is not a selector, but an
aggregate.
I believe you wanted :
S1(i) := (caged => True,
snake_kind => green,
health => (shed => true,
active => true));
Sent via Deja.com http://www.deja.com/
Before you buy.
next prev parent 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 Using an array of variant records Scott Ingram
2000-01-27 0:00 ` David [this message]
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