Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] How to find binding definition

Have you tried IASTTranslationUnit.getDeclarationsInAST()?
This probably will give you what you need (if I correctly understand
its description).

2008/11/7 Sanjesh R Nair <sanjesh.nair@xxxxxxxxxx>:
> Thanks Markus,
>
>      Will this hold true if, say,    Project1 refers Project2 and Project3
> for certain declarations,  and Project2 and Project3 both have a
> declaration of a class named Class2(same name). And a file(Class1.h) from
> Project1 includes the header file(Class2.h) for the declaration of Class2
> in Project2.    Now to get the declaration of Class2 which is referred by
> Class1.h if i do  ---
>
>       (IIndexManager.getIndex(ICProject)),   where ICProject is Project1.
>
>      and then index.findDefinitions(binding)
>
>      gives back two declarations one from Project2 and other from
> Project3, probably because both of these projects are referred by Project1,
> even though Class2.h from Project2 is the only include statement Class1.h
> has.
>
>
> Sanjesh.
>
>
>
>  From:       "Schorn, Markus" <Markus.Schorn@xxxxxxxxxxxxx>
>
>  To:         "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
>
>  Date:       11/07/2008 02:34 PM
>
>  Subject:    RE: [cdt-dev] How to find binding definition
>
>
>
>
>
>
> You should limit your index to the project of interest, then the other
> projects will not be searched. (IIndexManager.getIndex(ICProject))
>
> Markus.
>
>> -----Original Message-----
>> From: cdt-dev-bounces@xxxxxxxxxxx
>> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Sanjesh R Nair
>> Sent: Friday, November 07, 2008 5:14 AM
>> To: cdt-dev@xxxxxxxxxxx
>> Subject: [cdt-dev] How to find binding definition
>> Importance: Low
>>
>>
>> Hi All,
>>
>>       How can we find the definition of a given binding?
>>
>>       Say, I have a class like below:
>>       #include "Class2.h"
>>       class Class1 {
>>             private:
>>                   Class2 attribute1;
>>       };
>>
>> And Class2 is declared in a different project. I have the
>> ASTTranslationUnit of this file, which I am processing and
>> find the attribute with type Class2(a binding). I need to
>> identify the file containing the declaration of this binding
>> type. How can I achieve this programmatically?
>>
>> One of the ways I found that can be used was to get the
>> index(IIndex) of the project containing Class1 and then
>> finding the binding with it by calling:
>>       index.findDefinitions(binding);
>>
>> This method returns me back an array of IndexName. This is
>> fine if there is only one definition for the given binding.
>> But if there are multiple definitions(say, there is a class
>> named Class2 declared in a third project as well) then this
>> method would return multiple IndexNames. In this, scenario
>> how can I identify the correct definition referenced in the project?
>>
>> Is there any other way to get the definition? Right now I
>> just want to find the file containing the referenced
>> definition. I am using CDT 5.0.
>>
>> Thanks,
>> Sanjesh.
>>
>> _______________________________________________
>> 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