comp.lang.ada
 help / color / mirror / Atom feed
From: agate!howland.reston.ans.net!noc.near.net!nic.umass.edu!ymir.cs.umass.edu !rcfnews!sandy@ucbvax.Berkeley.EDU  (Sandy Wise)
Subject: Re: Retrieving Rep Spec'ed Enumeration Values
Date: 29 Jun 93 16:39:29 GMT	[thread overview]
Message-ID: <SANDY.93Jun29093929@beeker.cs.umass.edu> (raw)

In article <1993Jun28.205806.11601@wdl.loral.com> mab@dst17.wdl.loral.com (Mark
 A Biggar) writes:
   In article I write:
   >Suppose you had a type like so:
   >  type Color is ( Red, Green, Blue );
   >  for Color use ( Red   => 4, Green => 8, Blue  => 16 );
   >I cannot seem to find a portable way to retrieve the values assigned
   >in the rep-spec.  Color'Pos is explicitly defined to be unaffected by
   >the rep spec (LRM 13.3 paragraph 6).

   The only protable way is to use Unchecked_conversion.

Yech!  And not very portable.  Makes assumptions about the size
and representation of enumeration types.

   But, why does your program even need to get at the rep values?  If
   your program needs to work with anything other then the enumeration
   identifiers, then it very likely has a very badly broken
   abstraction.

No it just needs to communicate with a very broken language... (C)

I need to be able to communicate enumeration types over a network
link.  Transmitting them a string rep ('image) is expensive at both
ends of the link -- so the rational thing to do seemed to be set the
numeric representation (they are called ENUMERATION types, you know
:-) and send that!

   I have never seen an Ada program that required
   emuneration rep specs, that really required the internal
   representation to become visible in the program.

They don't need to become visible in the program but are needed in the
external data representation code...

   But, if you really really need it just declare an anonymous array to be
   used for conversions:

   internal_colors: array (Color) of integer := (4,8,16);

Ah ha!  A portable solution!  I knew you had it in you... :-)
        /s
--
Alexander Erskine Wise /\/\/\/\/\/\/\/\/\/\/\/\ Software Development Laboratory
/\/\/\/\/\/\/\/\/\/\/\/\/\/\ WISE@CS.UMASS.EDU /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\ This situation calls for large amounts of unadulterated CHOCOLATE! /\/\/\

             reply	other threads:[~1993-06-29 16:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-06-29 16:39 agate!howland.reston.ans.net!noc.near.net!nic.umass.edu!ymir.cs.umass.edu [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-06-29 21:05 Retrieving Rep Spec'ed Enumeration Values David Emery
1993-06-29 20:25 Gene Ouye
1993-06-29 17:44 Dave Bashford
1993-06-28 20:58 Mark A Biggar
1993-06-28 20:47 cis.ohio-state.edu!magnus.acs.ohio-state.edu!math.ohio-state.edu!howland.
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox