Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Finding references using PDOM and then finding the AST elements that contain the reference..


Oks, that clarifies a few things for me..if we add those relationships it could be used for creating things like an inheritance hierarchy...an IASTName of the reference to a class can be associated with an ICPPBase and with some way (currently there is not I think) to get the binding of the subclass from the ICPPBase we can navigate the inheritance hierarchy (much more efficiently?). Maybe some more stuff is possible too.
Thanks all for the responses,
--
neeraj


cdt-dev-bounces@xxxxxxxxxxx wrote on 09/07/2006 12:18:00 AM:

> I think I understand now. You want to find where the reference
> occurs in the IType for the field. Unfortunately, right now we don’t
> store that information in the PDOM. I think the thing to remember is
> the PDOM is an index. Its job is to map references and declarations
> of bindings to where they occur in a file. From there, if more
> information is needed, you need to create the DOM objects. This was
> the general workflow with the old index architecture as well.

>  
> Having said that, it should be possible to add these relationships.
> We have the pointer from the field to the type to the binding for
> the class. We just need add the pointers in the other direction.
> Feel free to send in an enhancement request and we can look at it
> for 4.0. As always, we need to analyze the affects of adding this in
> to make sure we remain compatible for the DOM interfaces (which may
> need to change to add this) and to ensure the PDOM database doesn’t
> get too big.

>  
> Hope this helps (finally J).
> Doug Schaefer
> QNX Software Systems
> Eclipse CDT Project Lead
> http://cdtdoug.blogspot.com
>  
>
> From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
> On Behalf Of Neeraj U Bhope
> Sent: Wednesday, September 06, 2006 1:04 PM
> To: CDT General developers list.
> Subject: RE: [cdt-dev] Finding references using PDOM and then
> finding the AST elements that contain the reference..

>  
>
> And probably in more concise words what I really really want is to
> walk the PDOM upwards from a given PDOMName.
> --
> neeraj
>
> cdt-dev-bounces@xxxxxxxxxxx wrote on 09/06/2006 10:24:03 PM:
>
> >
> > >  can you not use IASTName.resolveBinding (PDOMName is an IASTName)
> > > to get the IBinding?
> >
> > Ok I think I was not very articulate the first time over..and maybe
> > am not even now :)..but let me elaborate with the example that I
> gave first..
> >
> > We have
> > class A {};
> > class B {
> >   A myA;
> > };
> >
> > If I search for the references of A, I will get a PDOMName. If I
> > call IASTName.resolveBinding() on this I get the binding for class A
> > which is an instance of PDOMCPPClassType. I do not get the
> > PDOMCPPField binding that uses A. If I search for myA and call
> > IASTName.resolveBinding() I will get a PDOMCPPField. So what I
> > wanted is to search for references of A and then somehow get to the
> > PDOMCPPField associated with myA and then from there to get its
> > owner i.e the PDOMCPPClassType instance for the class B.
> > --
> > neeraj
> >
> > >
> > > (ICPPField) PDOMCPPField and (ICPPBase) PDOMCPPBase are both
> > IBinding subtypes
> > >
> > > thanks,
> > > Andrew
> > >  
> > > > Oks..maybe not exactly the AST per se...I saw in the code that when
> > > > we add IASTNames to the PDOM we add stuff like PDOMCPPField,
> > > > PDOMCPPBase etc...if there is a way of getting to these from the
> > > > PDOMName that is returned as the reference it would be good enough
> > > > for me so that I save on recreating the AST and walking over it.
> > > > --
> > > > neeraj
> > > >
> > > > cdt-dev-bounces@xxxxxxxxxxx wrote on 09/06/2006 01:51:04 AM:
> > > >
> > > > > The PDOM does not store the AST. It only contains IASTNames and
> > > > > IBindings and ITypes. You would need to recreate the AST for the
> > > > > file and walk it to find the right name given the file location
> > > > > stored in the PDOMName.
> > > > >  
> > > > > Doug Schaefer
> > > > > QNX Software Systems
> > > > > Eclipse CDT Project Lead
> > > > > http://cdtdoug.blogspot.com
> > >
> > > Don't miss out on your chance to...Do more with Symbian.
> > > Make sure you visit the Symbian Smartphone Show, 17-18 October
> > > 2006, Excel, London
> > >
> > >
> > > www.symbiansmartphoneshow.com
> > >
> > >
> > >
> > > *******************************************************************
> > > *** Symbian Software Ltd is a company registered in England and
> > > Wales with registered number 4190020 and registered office at 2-6
> > > Boundary Row, Southwark, London, SE1 8HP, UK. This message is
> > > intended only for use by the named addressee and may contain
> > > privileged and/or confidential information. If you are not the
> > > named addressee you should not disseminate, copy or take any action
> > > in reliance on it. If you have received this message in error
> > > please notify postmaster@xxxxxxxxxxx and delete the message and any
> > > attachments accompanying it immediately. Neither Symbian nor any of
> > > its Affiliates accepts liability for any corruption, interception,
> > > amendment, tampering or viruses occurring to this message in
> > > transit or for any message sent by its employees which is not in
> > > compliance with Symbian corporate policy. *************************
> > > *********************************************
> > > _______________________________________________
> > > cdt-dev mailing list
> > > cdt-dev@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> > _______________________________________________
> > cdt-dev mailing list
> > cdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev

Back to the top