[cfe-commits] [PATCH] libclang: Exposing more statement, expression and declaration types.
Manuel Holtgrewe
manuel.holtgrewe at fu-berlin.de
Thu Sep 29 00:28:23 PDT 2011
Doug, thanks for your reply.
Hopefully, I hope that I addressed all of your points in the attached
patch.
Bests,
Manuel
Am 29.09.2011 um 07:59 schrieb Douglas Gregor:
> Hello,
>
> On Sep 28, 2011, at 7:38 AM, Holtgrewe, Manuel wrote:
>
>> Dear all,
>>
>> attached is a patch that exposes more statement, expression and
>> declaration types through libclang. Also, I updated the Python
>> bindings for these changes.
>>
>> I have previously sent a patch but that has been overlooked so far.
>> Thus, I resubmit another patch, this time with [PATCH] in the
>> subject and hope that the missing [PATCH] was the reason for why
>> it was overlooked. If there are other requirements to be met before
>> submitting patches then please tell me so.
>
>
> Sorry I missed your first patch; traffic has been very high
> recently. Thanks for working on this!
>
> The libclang API intentionally avoids exposing all of the expression
> kinds, because we want to be able to refactor Clang's internal
> representation freely without breaking the libclang API. So, it's
> fine to expose more cursor kinds for cursors that map unambiguously
> to a particular language element---say, an integer literal or a C++
> "new" expression---but not to expose internal details (expression-
> with-cleanups, type trait expressions). A sampling of cursor kinds
> that I think should *not* be exposed: CXCursor_OffsetOfExpr,
> CXCursor_UnaryExprOrTypeTraitExpr,
> CXCursor_BinaryConditionalOperator, CXCursor_ImplicitCastExpr
> (debatable!), CXCursor_ImplicitValueInitExpr,
> CXCursor_ParenListExpr, CXCursor_ChooseExpr, CXCursor_CXXUuidofExpr,
> CXCursor_CXXDefaultArgExpr, CXCursor_CXXScalarValueInitExpr,
> CXCursor_UnresolvedLookupExpr (I'd rather it just be a declaration
> reference with no backing declaration), CXCursor_UnaryTypeTraitExpr,
> CXCursor_BinaryTypeTraitExpr, CXCursor_ArrayTypeTraitExpr,
> CXCursor_ExpressionTraitExpr, CXCursor_DependentScopeDeclRefExpr
> (same comment as for CXCursor_UnresolvedLookupExpr),
> CXCursor_CXXBindTemporaryExpr, CXCursor_ExprWithCleanups,
> CXCursor_CXXUnresolvedConstructExpr (one general "construct an
> object" expression would be better),
> CXCursor_CXXDependentScopeMemberExpr (just a member expression),
> CXCursor_UnresolvedMemberExpr (just a member expression),
> CXCursor_CXXNoexceptExpr (just a unary expression?),
> CXCursor_ObjCIsaExpr (just a member expression),
> CXCursor_ObjCIndirectCopyRestoreExpr, CXCursor_ShuffleVectorExpr,
> CXCursor_OpaqueValueExpr, CXCursor_AsTypeExpr,
> CXCursor_MaterializeTemporaryExpr.
>
>
> Comment is wrong here:
>
> + /** \brief C++'s try statement.
> + */
> + CXCursor_SEHTryStmt = 226,
>
>
>
> - Doug
--
Manuel Holtgrewe manuel.holtgrewe at fu-berlin.de
Freie Universität Berlin http://www.inf.fu-berlin.de/
Institut für Informatik Phone: +49 30 838 75246
Takustraße 9 Algorithmic Bioinformatics
14195 Berlin Room 021
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libclang.diff
Type: application/octet-stream
Size: 39586 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20110929/e2154d72/attachment.obj>
More information about the cfe-commits
mailing list