That sounds good.

On Oct 23, 2013, at 1:43 PM, Russell Harmon <[email protected]> wrote:

> That's fine with me.
> 
> Since an enumeration member has no corresponding QualType (there's only 
> EnumConstantDecl), in order to put all the logic of enumerating enum members 
> into QualASTType, QualASTType would have to be able to create instances of 
> itself not directly backed by a QualType. I think probably the best way to go 
> would be to have the TypeEnumMemberImpl that I'm writing recieve a reference 
> to the QualASTType of the enum itself and the index of this enum member and 
> either eagerly or lazily pull the relevant information out. What do you think?
> 
> --
> Russell Harmon
> 
> 
> On Tue, Oct 22, 2013 at 5:57 PM, Greg Clayton <[email protected]> wrote:
> How about SBTypeEnumMember? Everything in SBType.h currently starts with 
> SBType.
> 
> On Oct 22, 2013, at 3:53 PM, Russell Harmon <[email protected]> wrote:
> 
> > I had a full email saying why I disagree written when I convinced myself 
> > that I agree. My thinking is that an enum member is the only "type" (that I 
> > can think of) which is itself also a value. Anyway, I'm fine with what 
> > you've outlined, although the name SBTypeEnumerator is a bit confusing. How 
> > about SBValuedType or SBEnumTypeMember?
> >
> > --
> > Russell Harmon
> >
> >
> > On Mon, Oct 14, 2013 at 10:45 AM, Enrico Granata <[email protected]> wrote:
> > Russell,
> > I agree with Greg that this is a more sensible approach than hijacking 
> > SBTypeList for something that is not a type
> > If you want to go ahead and work in this area, you are most welcome to
> >
> > Just a side note, since our SB objects are backed by one opaque-pointer 
> > type instance variable, it might make sense to define a TypeEnumeratorImpl 
> > class (and a corresponding TypeEnumeratorListImpl) much like SBType is 
> > backed by TypeImpl (technically, shared_ptr<TypeImpl>)
> > Having these classes in lldb-core would allow us to implement this 
> > functionality at the ClangASTType level and then just export it at the SB 
> > API level
> >
> > What are your thoughts on this approach?
> >
> > Enrico Granata
> > 📩 egranata@.com
> > ☎️ 27683
> >
> > On Oct 14, 2013, at 10:22 AM, Greg Clayton <[email protected]> wrote:
> >
> >> An SBTypeList contains a list of SBType objects. It would not be very 
> >> useful since SBType objects do not contain a values.
> >>
> >> We should probably make an SBTypeEnumerator. Something like:
> >>
> >>
> >> class SBTypeEnumerator
> >> {
> >>      bool
> >>      IsSigned();
> >>
> >>      // Get the enumerator value as a signed integer
> >>      int64_t
> >>      GetValueAsSigned();
> >>
> >>      // Get the enumerator value as an unsigned integer
> >>        uint64_t
> >>      GetValueAsUnsigned();
> >>
> >>      // Return the exact integer type for this enumerator
> >>      SBType
> >>      GetType();
> >>
> >>      const char *
> >>      GetName();
> >> };
> >>
> >> Then we would need to add a SBTypeEnumeratorList class as well:
> >>
> >> class SBTypeEnumeratorList
> >> {
> >>      SBTypeEnumerator
> >>      GetEnumeratorAtIndex (uint32_t idx);
> >>
> >>      SBTypeEnumerator
> >>      GetEnumeratorByName (const char *name);
> >>
> >>      SBTypeEnumeratorList
> >>      GetEnumeratorsByValue (int64_t value);
> >>
> >>      SBTypeEnumeratorList
> >>      GetEnumeratorsByValue (uint64_t value);
> >> };
> >>
> >> Then we would need to add functions to SBType:
> >>
> >> class SBType
> >> {
> >>      SBTypeEnumeratorList
> >>      GetEnumerators();
> >> }
> >>
> >> This would return a valid SBTypeEnumeratorList only if the SBType it was 
> >> run on is an enumeration type.
> >>
> >>
> >>
> >> On Oct 13, 2013, at 5:14 PM, Russell Harmon <[email protected]> wrote:
> >>
> >>> According to the C11 standard, N1570, §6.7.2.2.3, "The identifiers in an 
> >>> enumerator list are declared as constants that have type int". Based on 
> >>> this, wouldn't it make most sense to have a function that returns an 
> >>> SBTypeList of ints?
> >>>
> >>> Is there an easy work around for this missing bit of API, or shall I add 
> >>> the necessary pieces?
> >>>
> >>> --
> >>> Russell Harmon
> >>>
> >>>
> >>> On Mon, Oct 7, 2013 at 10:45 AM, Enrico Granata <[email protected]> 
> >>> wrote:
> >>> As far as I can tell/remember, this is missing API
> >>>
> >>> Technically, it would not be an SBTypeList since the entries in an 
> >>> enumerator are *NOT* types.
> >>>
> >>> We would probably have to come up with a new class like an 
> >>> SBEnumeratorEntry (I am sure better names are possible :-) that wraps the 
> >>> notion of a (numeric_value,string_name) pair
> >>>
> >>> Enrico Granata
> >>> 📩 egranata@.com
> >>> ☎️ 27683
> >>>
> >>> On Oct 7, 2013, at 12:23 AM, Russell Harmon <[email protected]> wrote:
> >>>
> >>>> Is there a way to enumerate the fields of an enum (e.x. get an 
> >>>> SBTypeList from an enum), or is that missing API?
> >>>>
> >>>> Thanks
> >>>> Russell Harmon
> >>>> _______________________________________________
> >>>> lldb-dev mailing list
> >>>> [email protected]
> >>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> >>>
> >>>
> >>> _______________________________________________
> >>> lldb-dev mailing list
> >>> [email protected]
> >>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> >>
> >
> >
> 
> 


_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to