From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,11dba0f9ae4a6499 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Received: by 10.180.107.38 with SMTP id gz6mr227685wib.0.1348667885364; Wed, 26 Sep 2012 06:58:05 -0700 (PDT) Path: q11ni60107576wiw.1!nntp.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Niklas Holsti Newsgroups: comp.lang.ada Subject: Re: subtype definitions Date: Wed, 26 Sep 2012 16:58:03 +0300 Organization: Tidorum Ltd Message-ID: References: Mime-Version: 1.0 X-Trace: individual.net 7GJvot0e25nARFG3CCCu8ghM6RjfhlSF14FvFpeE+pNjbCk5hvAS7t3cKxDkRFiT+F Cancel-Lock: sha1:dooQxaXxoF9vSZQNLS339eBVH6E= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Date: 2012-09-26T16:58:03+03:00 List-Id: On 12-09-26 16:45 , bj�rn lundin wrote: > Hi! > > I got a type definition as > > type Assignment_Type_Type is (Transport, Store, Retrieve, Rearrange, Check, > Set_Error, Restore, Mob_Trsp1, Mob_Trsp2, > Mob_Trsp3, Mob_Trsp4, Mob_Store, Mob_Check); > > I want to loop through some of the values, in another order > > for Asm_Type in Transport | Check | Restore | Set_Error | Store loop > Do_Something(Asm_Type); > end loop; > > The above does not compile. > > subtype Asm_Type_Type is Assignment_Type_Type range Transport | Check | Restore | Set_Error | Store ; > no go . > > Is there a valid construction in Ada 05 (gnat) that I can use? This is what comes to mind, apart from a simple sequence of calls to Do_Something: Loop_Order : constant array (Integer range <>) of Assignment_Type_Type := (Transport, Check, Restore, Set_Error, Store); for L in Loop_Order'Range loop Do_Something (Loop_Order(L)); end loop; -- Niklas Holsti Tidorum Ltd niklas holsti tidorum fi . @ .