[cfe-commits] [PATCH 2/2] [clang.py] Implement Token API

Carlos Andrade carlosviansi at gmail.com
Thu Jul 12 17:25:33 PDT 2012


Hi,

I was using the old version of lib clang python interface and have been
following up on this. I checked llvm, clang and the compiler as recommended
on the get started of the clang webpage (
http://clang.llvm.org/get_started.html). After changing the python path to
the new build I am now getting an error while trying to run the code.

Traceback (most recent call last):
  File "aura.py", line 7, in <module>
    import clang.cindex
  File
"/Users/carlosandrade/Desktop/llvm/tools/clang/bindings/python/clang/cindex.py",
line 2816, in <module>
    register_functions(lib)
  File
"/Users/carlosandrade/Desktop/llvm/tools/clang/bindings/python/clang/cindex.py",
line 2407, in register_functions
    lib.clang_CompilationDatabase_dispose.argtypes = [c_object_p]
  File
"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py",
line 378, in __getattr__
    func = self.__getitem__(name)
  File
"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py",
line 383, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: dlsym(0x1003b21b0, clang_CompilationDatabase_dispose):
symbol not found


Does anyone know what is that?

Thanks,


Carlos Andrade
http://carlosandrade.co



2012/7/11 Manuel Klimek <klimek at google.com>

> On Tue, Jul 10, 2012 at 3:27 PM, Manuel Klimek <klimek at google.com> wrote:
> > On Mon, Jul 9, 2012 at 8:13 AM, Gregory Szorc <gregory.szorc at gmail.com>
> wrote:
> >> On 7/1/12 11:48 PM, Manuel Klimek wrote:
> >>
> >> +        lib.clang_tokenize(tu, extent, byref(tokens_memory),
> >> +                byref(tokens_count))
> >>
> >> Strange indent. Hm, after reading further I see that that kind of
> indent is
> >> quite common. Is there a guideline for how to indent this?
> >>
> >> It appears my editor is indenting 8 spaces when wrapping lines. I'm
> pretty
> >> sure that's provided by a popular "macro" settings file to handle
> Python.
> >> I'll change it to 4 spaces, as that seems more conventional.
> >>
> >>
> >>
> >> --- /dev/null
> >> +++ b/bindings/python/clang/enumerations.py
> >>
> >> +TokenKinds = [
> >> +    ('PUNCTUATION', 0),
> >> +    ('KEYWORD', 1),
> >> +    ('IDENTIFIER', 2),
> >> +    ('LITERAL', 3),
> >> +    ('COMMENT', 4),
> >> +]
> >>
> >> This doesn't seem to match the comment. Those "TokenKinds" are different
> >> from what I see in clang/Basic/TokenKinds.def. Am I missing something?
> >>
> >> What doesn't match the comment?
> >>
> >> Also, these come from
> >>
> http://clang.llvm.org/doxygen/group__CINDEX__LEX.html#gaf63e37eee4280e2c039829af24bbc201
> ,
> >> not the low-level tokens from TokenKinds.def.
> >
> > Oh, wow. Can you add a comment on where these TokenKinds come from.
> > With the overloaded meaning it's really confusing.
>
> And apart from that lgtm.
>
> >
> > Thanks!
> > /Manuel
> >
> >>
> >>
> >> On Sat, Jun 30, 2012 at 4:16 AM, Gregory Szorc <gregory.szorc at gmail.com
> >
> >> wrote:
> >>>
> >>> Updated patch attached.
> >>>
> >>> * Added Cursor.get_tokens()
> >>> * Refactored TokenGroup out of TranslationUnit to support above
> >>> * Refactored with TranslationUnit.get_* API changes from last patch.
> >>>
> >>> On Fri, Jun 29, 2012 at 12:18 AM, Gregory Szorc <
> gregory.szorc at gmail.com>
> >>> wrote:
> >>> > This exposes all of libclang's token functions in the Python
> bindings.
> >>> >
> >>> > I'm putting the TokenKind enumerations in a new module,
> >>> > clang.enumerations. I plan to eventually move all existing
> >>> > enumerations there so they are all consolidated. And, maybe one day,
> >>> > we can even generate that file automatically by parsing the libclang
> >>> > header files. I know Anders has code around somewhere that does
> >>> > this...
> >>> >
> >>> > ---
> >>> >  bindings/python/clang/cindex.py                    | 177
> >>> > +++++++++++++++++++--
> >>> >  bindings/python/clang/enumerations.py              |  32 ++++
> >>> >  bindings/python/tests/cindex/test_token_kind.py    |  43 +++++
> >>> >  bindings/python/tests/cindex/test_tokens.py        |  52 ++++++
> >>> >  .../python/tests/cindex/test_translation_unit.py   |  24 ++-
> >>> >  5 files changed, 312 insertions(+), 16 deletions(-)
> >>> >  create mode 100644 bindings/python/clang/enumerations.py
> >>> >  create mode 100644 bindings/python/tests/cindex/test_token_kind.py
> >>> >  create mode 100644 bindings/python/tests/cindex/test_tokens.py
> >>>
> >>> _______________________________________________
> >>> cfe-commits mailing list
> >>> cfe-commits at cs.uiuc.edu
> >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> >>>
> >>
> >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120712/126c41a0/attachment.html>


More information about the cfe-commits mailing list