diff options
author | Manuel Klimek <klimek@google.com> | 2012-05-07 05:56:03 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2012-05-07 05:56:03 +0000 |
commit | 667fd80de4c3b7b143ba98a3b73e9b9b200f6af0 (patch) | |
tree | 3eb2a8e22c19772fe24a2579ac3c79c46c478913 /bindings/python/clang/cindex.py | |
parent | 0a84e7a4d6e2b8f52879ebdf03ce0a682ba0eb8b (diff) |
- Adding lexical_parent and semantic_parent properties to clang.cindex.Cursor
- Two new tests (one for each property), require libclang built from r155858 or later to pass
- New test utility function (get_cursors) that gets all the nodes with a specific spelling.
Patch by Evan Pipho.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156286 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'bindings/python/clang/cindex.py')
-rw-r--r-- | bindings/python/clang/cindex.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py index d988e7685a..a88c12b88d 100644 --- a/bindings/python/clang/cindex.py +++ b/bindings/python/clang/cindex.py @@ -1047,6 +1047,22 @@ class Cursor(Structure): return self._hash + @property + def semantic_parent(self): + """Return the semantic parent for this cursor.""" + if not hasattr(self, '_semantic_parent'): + self._semantic_parent = Cursor_semantic_parent(self) + + return self._semantic_parent + + @property + def lexical_parent(self): + """Return the lexical parent for this cursor.""" + if not hasattr(self, '_lexical_parent'): + self._lexical_parent = Cursor_lexical_parent(self) + + return self._lexical_parent + def get_children(self): """Return an iterator for accessing the children of this cursor.""" @@ -1974,6 +1990,16 @@ Cursor_objc_type_encoding.argtypes = [Cursor] Cursor_objc_type_encoding.restype = _CXString Cursor_objc_type_encoding.errcheck = _CXString.from_result +Cursor_semantic_parent = lib.clang_getCursorSemanticParent +Cursor_semantic_parent.argtypes = [Cursor] +Cursor_semantic_parent.restype = Cursor +Cursor_semantic_parent.errcheck = Cursor.from_result + +Cursor_lexical_parent = lib.clang_getCursorLexicalParent +Cursor_lexical_parent.argtypes = [Cursor] +Cursor_lexical_parent.restype = Cursor +Cursor_lexical_parent.errcheck = Cursor.from_result + Cursor_visit_callback = CFUNCTYPE(c_int, Cursor, Cursor, py_object) Cursor_visit = lib.clang_visitChildren Cursor_visit.argtypes = [Cursor, Cursor_visit_callback, py_object] |