TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Classic View

Use Monospaced Font
Show HTML Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
"Bek, Greg" <[log in to unmask]>
Fri, 31 Aug 2001 00:17:12 -0700
text/plain (71 lines)
You are doing the right thing.

Don't be confused about the 'Pos attribute however.

It returs the ordinal postion in the range of the type,
ie: 0..n-1 where n is the number of distinct values
of the type.

Your representation specification will ensure that values
of the type are stored using the values you want.

Greg

-----Original Message-----
From: Krishna, Buska (IE10)
To: [log in to unmask]
Sent: 8/31/2001 1:47 AM
Subject: Referring Enum values.
Importance: High

Hi all,
        I have written a piece of code, in which I am using an
enumeartion
type. I am assigning some values to the enumeration items by using for
statement. I want to refer the assigned vales using the enumeration
items.
That is as shown in the code I wanna refer the values 16#10# using the
enum
item "one", 16#20# using "two" etc. Is there any ways to do this? My aim
is
to assign some values to the enumeration type and use those values in
the
place of the enum items just like in C.

Ada code:

with Ada.Text_Io;
use Ada.Text_Io;
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;

procedure Test is
   type Enum is
         (One,
          Two,
          Three);
   for Enum use
      (
      One   => 16#10#,
      Two   => 16#20#,
      Three => 16#30#);
begin
   Put( Enum'Pos (Three));
   New_Line;
   Put_Line (Enum'Image (Three));
end Test;

in C:
enum {
one = Ox10,
two =Ox20,
three =0x30
} ;

later I can use "one" to refer its value and son on.

Could any body clarify me, if there is any way to do this.

Thanx in advance.
Krishna

ATOM RSS1 RSS2