mirror of
https://github.com/intel/llvm.git
synced 2026-01-27 06:06:34 +08:00
cindex/Python: Add TranslationUnit.cursor.
llvm-svn: 94355
This commit is contained in:
@@ -308,14 +308,14 @@ class TranslationUnit(ClangObject):
|
||||
if self.free and self.obj:
|
||||
TranslationUnit_dispose(self)
|
||||
|
||||
def load(self, fun, data = None):
|
||||
# Actually call this over a lambda that attaches an object the
|
||||
# underlying void pointer.
|
||||
f = lambda t, c, x: fun(TranslationUnit(t), c, x)
|
||||
TranslationUnit_load(self.obj, Callback(f), data)
|
||||
@property
|
||||
def cursor(self):
|
||||
"""Retrieve the cursor that represents the given translation unit."""
|
||||
return TranslationUnit_cursor(self)
|
||||
|
||||
@property
|
||||
def spelling(self):
|
||||
"""Get the original translation unit source file name."""
|
||||
return TranslationUnit_spelling(self)
|
||||
|
||||
@staticmethod
|
||||
@@ -504,6 +504,10 @@ TranslationUnit_parse.argtypes = [Index, c_char_p, c_int, c_void_p,
|
||||
c_int, c_void_p]
|
||||
TranslationUnit_parse.restype = c_object_p
|
||||
|
||||
TranslationUnit_cursor = lib.clang_getTranslationUnitCursor
|
||||
TranslationUnit_cursor.argtypes = [TranslationUnit]
|
||||
TranslationUnit_cursor.restype = Cursor
|
||||
|
||||
TranslationUnit_spelling = lib.clang_getTranslationUnitSpelling
|
||||
TranslationUnit_spelling.argtypes = [TranslationUnit]
|
||||
TranslationUnit_spelling.restype = String
|
||||
|
||||
@@ -8,3 +8,11 @@ def test_spelling():
|
||||
index = Index.create()
|
||||
tu = index.parse(path)
|
||||
assert str(tu.spelling) == path
|
||||
|
||||
def test_cursor():
|
||||
path = os.path.join(kInputsDir, 'hello.cpp')
|
||||
index = Index.create()
|
||||
tu = index.parse(path)
|
||||
c = tu.cursor
|
||||
assert isinstance(c, Cursor)
|
||||
assert c.is_translation_unit
|
||||
|
||||
Reference in New Issue
Block a user