From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII X-Google-Thread: 103376,330ec86e1824a689 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-08-28 13:27:06 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!newsfeed1.swip.net!swipnet!nntpserver.swip.net!not-for-mail From: =?ISO-8859-1?Q?Bj=F6rn?= Lundin Subject: Re: Run-Time Type Assignment Newsgroups: comp.lang.ada References: User-Agent: KNode/0.7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Message-ID: <%lab9.27126$t4.20782@nntpserver.swip.net> NNTP-Posting-Host: 213.101.75.148 X-Complaints-To: news-abuse@swip.net X-Trace: nntpserver.swip.net 1030566395 213.101.75.148 (Wed, 28 Aug 2002 22:26:35 MET DST) NNTP-Posting-Date: Wed, 28 Aug 2002 22:26:35 MET DST Organization: A Customer of Tele2 X-Sender: x-367446@d213-101-75-148.swipnet.se Date: Wed, 28 Aug 2002 22:27:27 +0200 Xref: archiver1.google.com comp.lang.ada:28525 Date: 2002-08-28T22:27:27+02:00 List-Id: > The variant record approach possibly > would have worked in Pascal; however, it did not compile in the > cost-free GNAT compiler. > --------------------------------------------------- > --Variant Record Approach > --Does not work > type Parameter_Rec_Psuedo_Tagged_Type (Num_Parameters : > Num_Parameters_Type) is --range 1..2 > record > case Num_Parameters is > when 1 => > Parameter_1: Parameter_1_Type; > when 2 => > Parameter_1: Parameter_1_Type; > --Parameter_1 conflicts with declaration 2 lines above. > --Can not have the same signature as the one above. > Parameter_2: Parameter_2_Type; > end case; > end record; > this compiles under gnat 3.13p under Linux /Bj�rn procedure tst_34 is type Num_Parameters_Type is range 1..2; type Parameter_1_Type is range 1..56; type Parameter_2_Type is range 1..52; type Parameter_Rec_Psuedo_Tagged_Type (Num_Parameters : Num_Parameters_Type) is --range 1..2 record Parameter_1: Parameter_1_Type; case Num_Parameters is when 2 => Parameter_2: Parameter_2_Type; when others => null; end case; end record; the_test_1 : Parameter_Rec_Psuedo_Tagged_Type (1); the_test_2 : Parameter_Rec_Psuedo_Tagged_Type (2); begin null; end tst_34;