home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!spool.mu.edu!umn.edu!The-Star.honeywell.com!saifr00.cfsat.honeywell.com!lam
- From: lam@saifr00.cfsat.honeywell.com (Josh Lam)
- Subject: Novice Question on Record Representation
- Message-ID: <1992Dec16.225712.23791@saifr00.cfsat.honeywell.com>
- Organization: Honeywell Air Transport Systems Division
- Date: Wed, 16 Dec 92 22:57:12 GMT
- Lines: 63
-
- There is a type in another package I need to use in a record in my package.
- Unfortunately, that type is private and I need to use record representation
- for my record.
-
- package Some_Package is
-
- type Some_Int is new integer;
- for Some_Int'size use 16;
-
- type Some_Type is private
-
- -- etc etc
-
- private
-
- type Some_Type is new integer;
- for Some_Type'size use 32;
-
- end Some_Package;
-
-
- with Some_Package;
- package My_Package is
-
- 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;
-
- -- 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!
-
- --
- Josh Lam
- Honeywell Inc
- lam@saifr00.cfsat.honeywell.com
-
-