[clang.py] Add Cursor.get_arguments()
Patch provided by Matthias Kleine <matthias_kleine@gmx.de> llvm-svn: 167216
This commit is contained in:
parent
ebe8c8cea2
commit
245296ed40
@ -1271,6 +1271,12 @@ class Cursor(Structure):
|
||||
# created.
|
||||
return self._tu
|
||||
|
||||
def get_arguments(self):
|
||||
"""Return an iterator for accessing the arguments of this cursor."""
|
||||
num_args = conf.lib.clang_Cursor_getNumArguments(self)
|
||||
for i in range(0, num_args):
|
||||
yield conf.lib.clang_Cursor_getArgument(self, i)
|
||||
|
||||
def get_children(self):
|
||||
"""Return an iterator for accessing the children of this cursor."""
|
||||
|
||||
@ -2973,6 +2979,15 @@ functionList = [
|
||||
("clang_visitChildren",
|
||||
[Cursor, callbacks['cursor_visit'], py_object],
|
||||
c_uint),
|
||||
|
||||
("clang_Cursor_getNumArguments",
|
||||
[Cursor],
|
||||
c_int),
|
||||
|
||||
("clang_Cursor_getArgument",
|
||||
[Cursor, c_uint],
|
||||
Cursor,
|
||||
Cursor.from_result),
|
||||
]
|
||||
|
||||
class LibclangError(Exception):
|
||||
|
||||
@ -241,3 +241,12 @@ def test_get_tokens():
|
||||
assert len(tokens) == 7
|
||||
assert tokens[0].spelling == 'int'
|
||||
assert tokens[1].spelling == 'foo'
|
||||
|
||||
def test_get_arguments():
|
||||
tu = get_tu('void foo(int i, int j);')
|
||||
foo = get_cursor(tu, 'foo')
|
||||
arguments = list(foo.get_arguments())
|
||||
|
||||
assert len(arguments) == 2
|
||||
assert arguments[0].spelling == "i"
|
||||
assert arguments[1].spelling == "j"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user