[cfe-commits] [PATCH] Expose clang_Cursor_getArgument via Python-bindings

Gregory Szorc gregory.szorc at gmail.com
Tue Oct 16 11:27:46 PDT 2012


Looks good to me!

On 10/16/12 10:19 AM, Matthias Kleine wrote:
> http://llvm-reviews.chandlerc.com/D64
>
> Files:
>    bindings/python/clang/cindex.py
>    bindings/python/tests/cindex/test_cursor.py
>
> Index: bindings/python/clang/cindex.py
> ===================================================================
> --- bindings/python/clang/cindex.py
> +++ bindings/python/clang/cindex.py
> @@ -1271,6 +1271,12 @@
>           # 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 @@
>     ("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):
> Index: bindings/python/tests/cindex/test_cursor.py
> ===================================================================
> --- bindings/python/tests/cindex/test_cursor.py
> +++ bindings/python/tests/cindex/test_cursor.py
> @@ -241,3 +241,12 @@
>       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"
>
>
> _______________________________________________
> 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/20121016/c7e82838/attachment.html>


More information about the cfe-commits mailing list