Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Find IBindings for qualifiedName

I created a feature request in Bug 422765 and pushed our existing implementation to Gerrit (linked in the bug).

-Andrew

On 13-11-27 04:02 PM, Andrew Eidsness wrote:
> The qualified name does not appear in the AST.
> 
> As background, I'm working on extensions to better support Qt development.  Qt uses macros (with an empty expansion) to
> indicate various things.
> 
> In this particular case, the C++ code looks like:
> 
>     class Q1 : public QObject
>     {
>     Q_OBJECT
>     enum E { e1 };
>     };
> 
>     class Q2 : public QObject
>     {
>     Q_OBJECT
>     Q_ENUMS( Q1::E )
>     };
> 
> The Qt tooling is processing the Q_ENUMS expansion.  I have the macro expansion parameter, "Q1::E", and need to find the
> CPPEnumeration for it.
> 
> -Andrew
> 
> On 13-11-27 03:51 PM, Nathan Ridge wrote:
>>> As part of the Qt enhancements, I have a String that contains a qualified name (with embedded ::) and I need to find the
>>> list of matching IBindings.
>>>
>>> It seems that I'm looking for a method like CPPSemantics.findBindings(IScope scope, String name, boolean qualified),
>>> except that method doesn't like the name to contain "::". I'm not sure what the third parameter is for, but I've tried
>>> both values.
>>>
>>> Until now I've been using my own implementation of findBindings. This implementation just splits the name based on ::
>>> and then tries to use the existing implementation to find each component of the name.
>>>
>>> If there is already a way to get the list of IBindings for a qualifiedName, then I would like to start using it. If
>>> there is not a way, then I can contribute my implementation.
>>
>> Does the qualified name appear in a file for which you have an AST?
>>
>> If so, you can find the IASTName for it (e.g. with IASTNodeSelector) and call resolveBinding()
>> on that name.
>>
>> Regards,
>> Nate 		 	   		  
>> _______________________________________________
>> 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