comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: I need a little help - it's been a long time - with enumeration type  and for use representation
Date: Fri, 13 Nov 2009 21:53:15 +0100
Date: 2009-11-13T21:53:16+01:00	[thread overview]
Message-ID: <1hgihvw2ld2nr.cg5ve3xaww03.dlg@40tude.net> (raw)
In-Reply-To: hdkfm2$u10$1@news.tornevall.net

On Fri, 13 Nov 2009 13:32:52 -0700, Jeffrey R. Carter wrote:

> Dmitry A. Kazakov wrote:
>> On Fri, 13 Nov 2009 11:48:12 -0700, Jeffrey R. Carter wrote:
>> 
>>> Dmitry A. Kazakov wrote:
>>>> You parse "0x", then you do a hexadecimal number following it, then you
>>>> pass that number (x) to:
>>>>
>>>>    Spell_School_Type'Val (x)
>>> This doesn't work with a non-default representation. 'Val reverses 'Pos, and 
>>> 'Pos gives sequential values starting with zero, regardless of the representation.
>> 
>> But it works with the modular type proposed. An enumeration type was not
>> meant. For enumeration types one should parse names, rather than arbitrary
>> bit patterns.
> 
> I see. I cannot imagine using 'Val in this case. Since you start with a String 
> containing the hexadecimal image of a value, I'd simply do
> 
> Numeric_Type_Name'Value ("16#" & Source (Start .. Stop) & '#');

I do it differently. I have the pattern:

procedure Get (Text : String; Pointer : in out Integer; Value : out Type)

which I consistently deploy everywhere. Get takes a textual representation
of Type from Text at Pointer and advances Pointer to the first position
following it. The result is returned though Value.

However, yes, usually I use a plain type conversion:

   Get (Text, Pointer, Integer (Value));

rather than Type'Val (when I am too lazy to instantiate the generic
packages once again with Type)

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2009-11-13 20:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-13 16:03 I need a little help - it's been a long time - with enumeration type and for use representation Harry Tucker
2009-11-13 17:24 ` Niklas Holsti
2009-11-13 17:24 ` Dmitry A. Kazakov
2009-11-13 18:48   ` Jeffrey R. Carter
2009-11-13 19:13     ` Dmitry A. Kazakov
2009-11-13 20:32       ` Jeffrey R. Carter
2009-11-13 20:53         ` Dmitry A. Kazakov [this message]
2009-11-13 21:30           ` Jeffrey R. Carter
2009-11-14  9:24             ` Dmitry A. Kazakov
2009-11-13 18:46 ` Jeffrey R. Carter
replies disabled

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