comp.lang.ada
 help / color / mirror / Atom feed
From: stuart clark <clark.stuart.au@gmail.com>
Subject: Re: how to i get the type of a parameter specification is ASIS
Date: Mon, 25 Oct 2010 06:32:47 -0700 (PDT)
Date: 2010-10-25T06:32:47-07:00	[thread overview]
Message-ID: <421b3b56-b784-48e3-a0fc-38b1dbd81052@l14g2000yqb.googlegroups.com> (raw)
In-Reply-To: 59c38ed3-2a17-4db7-841f-75b4d050c780@v20g2000yqb.googlegroups.com

On Oct 25, 10:24 pm, Julian Leyh <jul...@vgai.de> wrote:
> On 25 Okt., 15:12, stuart clark <clark.stuart...@gmail.com> wrote:
>
>
>
> > On Oct 25, 10:07 pm, Julian Leyh <jul...@vgai.de> wrote:
>
> > > On 25 Okt., 13:55, stuart clark <clark.stuart...@gmail.com> wrote:
>
> > > > 1) i am getting the parameter_specification using
>
> > > >  params : Asis.Parameter_Specification_List :=
> > > >                  asis.Declarations.Parameter_Profile
> > > >                    (element);
>
> > > > 2) from params i am getting the parameter name using
>
> > > >  names: asis.Defining_Name_list :=
> > > >                        asis.declarations.Names(params(i));
>
> > > > 3) i am also getting the parameter mode_kind using
>
> > > > mode_kind : Asis.Mode_Kinds :=
> > > >                        asis.elements.mode_kind
> > > >                          (params(i));
>
> > > > it looks like this
>
> > > > param  =  b : in out float
> > > > name  =   b
> > > > mode kind  = AN_IN_OUT_MODE
>
> > > > but i also want the type of the parameter, eg float.
>
> > > > anybody know how ???
>
> > > from AdaBrowse source:
>
> > >       declare
> > >          Params : constant Parameter_Specification_List :=
> > >            Parameter_Profile (Decl);
> > >       begin
> > >          for I in Params'Range loop
> > >             declare
> > >                T : constant Type_Descriptor :=
> > >                  Type_Of (Declaration_Subtype_Mark (Params (I)));
> > >             begin
> > >                if T.Attrs = No_Attributes and then
> > >                   Is_Equal (T.Decl, The_Type)
> > >                then
> > >                   return True;
> > >                end if;
> > >             end;
> > >          end loop;
> > >       end;
>
> > thanks but which package is type_descriptor from ???
>
> Oh, sorry... Type_Descriptor and Type_Of are from AdaBrowse... You
> could have a look at the body of Type_Of to find out how they did it.
>
> AdaBrowse:http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/

this works...

                  declare
                     x: Asis.Expression :=
                       asis.declarations.Declaration_Subtype_Mark
(Params (I));
                  begin
                     ada.Text_IO.Put_Line("type  = " &
 
ada.characters.Handling.To_String
 
(asis.Text.Element_Image(x)));
                  end;

thanks heaps, i've been doing it the dumb way, ie parsing strings
searching/deleting/using :in out etc.



      parent reply	other threads:[~2010-10-25 13:32 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-25 11:55 how to i get the type of a parameter specification is ASIS stuart clark
2010-10-25 13:07 ` Julian Leyh
2010-10-25 13:12   ` stuart clark
2010-10-25 13:24     ` Julian Leyh
2010-10-25 13:26       ` stuart clark
2010-10-25 13:32       ` stuart clark [this message]
replies disabled

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