From: agate!spool.mu.edu!sdd.hp.com!saimiri.primate.wisc.edu!aplcen.apl.jhu.edu !ddsdx2.jhuapl.edu!dlc@ucbvax.Berkeley.EDU (Dave Collard x7468)
Subject: Re: Novice Question on Record Representation
Date: 17 Dec 92 13:28:50 GMT [thread overview]
Message-ID: <1992Dec17.132850.2305@aplcen.apl.jhu.edu> (raw)
>Josh Lam
>Honeywell Inc
>lam@saifr00.cfsat.honeywell.com
-- OOH, OOH, OOH!!! Something technical on comp.lang.ada! Wow!
-- Today should become a federal holiday! :-)
package Some_Package is
type Some_Int is new short_integer;
for Some_Int'size use 16;
type Some_Type is private;
private
type Some_Type is new integer;
for Some_Type'size use 32;
end Some_Package;
with Some_Package;
package My_Package is
XX : constant Integer := Integer(Some_Package.Some_Type'Size);
type My_Rec (Choice: Boolean := True) is record
case Choice is
when True =>
A : Some_Package.Some_Int;
B : Some_Package.Some_Int;
C : Some_Package.Some_Type;
when False =>
D : Some_Package.Some_Int;
end case;
end record;
-- for My_Rec use record
-- A at 0 range 0..15;
-- B at 0 range 16..31;
-- C at 1 range 0..31; -- of course there is an error here!
-- Choice at 2 range 0..31;
-- D at 0 range 0..15;
-- end record;
-- Is the storage unit on your machine really 32 bits? the '0' in "A at 0"
-- refers to which storage unit to start the component at. But the answer
-- to your question is that you CAN use rep specs with private types. The
-- attributes of private types are also available (such as 'SIZE). The
-- problem in your example is overlapping components of your record. Try:
for My_Rec use record
A at 0 range 0..15;
B at 2 range 0..15;
C at 4 range 0..31; -- of course there is an error here! NOT!
Choice at 8 range 0..31;
D at 0 range 0..15;
end record;
-- This works for me. Yes I actually compiled it.
-- etc etc
end My_Package;
--I know that I cannot do the above cos C is of Some_Package.Some_Type which
--is a private type.
--
--So, other than yelling at the person and getting him to change his type
--to public, what are my alternatives given that I need to use record
--representation. Please also let me know some pros and cons (if any) to any
--alternative.
--
--Thanks in advance!
--
--Thor
--dlc@ddsdx2.jhuapl.edu
--collard@capsrv.jhuapl.edu
next reply other threads:[~1992-12-17 13:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1992-12-17 13:28 agate!spool.mu.edu!sdd.hp.com!saimiri.primate.wisc.edu!aplcen.apl.jhu.edu [this message]
-- strict thread matches above, loose matches on Subject: below --
1992-12-18 0:22 Novice Question on Record Representation zaphod.mps.ohio-state.edu!cis.ohio-state.edu!udecc.engr.udayton.edu!black
1992-12-17 22:32 Douglas N. Surber
1992-12-17 18:24 Gary Morris @pulsar
1992-12-17 14:29 Douglas N. Surber
1992-12-16 22:57 Josh Lam
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox