In case the previous email was too long, here's a quick summary:<br><br>I am trying to parse the code<br><br> class Toaster : Base<int,7> { ... };<br><br>I can get to the base specifier corresponding to Base<int,7> and from there to a RECORD type, but there appears to be no way to access the template arguments of a template reference from either the Python or C bindings to clang. If I'm correct that this isn't exposed yet, what's the right way to do it?<br>
<br>Thanks,<br>Geoffrey<br><br><div class="gmail_quote">On Tue, Aug 13, 2013 at 12:26 PM, Geoffrey Irving <span dir="ltr"><<a href="mailto:irving@naml.us" target="_blank">irving@naml.us</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I am trying to parse the following code with the Python interface to libclang (full listing attached):<br><br> class Toaster : Base<int,7> { ... };<br><br>Unfortunately, traversing cursors via getChildren gives me the following tree (see clang_dump() in autodescribe.py for the code that generated this tree):<br>
<br>CLASS_DECL Toaster<br> CXX_BASE_SPECIFIER None : Base<int,7><br> TEMPLATE_REF None : Base<br> INTEGER_LITERAL None : 7<br> CXX_ACCESS_SPEC_DECL PUBLIC : public:<br> ...<br><br>The base specifier only seems to mention "Base" and "7", not "int". Should I be able to fully inspect Base<int,7> using cursors?<br>
<br>I also tried traversing the Type object corresponding to Base<int,7>, but I don't see any methods for accessing template parameters either in libclang's Python bindings or in the original C. If I'm correct that the functionality is missing from the C layer, what's the easiest way to add it? The C++ structure of template references seems quite complicated (I imagine by necessity :)).<br>
<br>Background: I'm working on a clang-based front end for the xdress Python binding generator project. I've already made a couple minor improvements to the libclang Python bindings (exposing formatDiagnostic and the details of access specifiers), and am happy to contribute these back once I'm done.<br>
<br>Thanks for any suggestions!<span class="HOEnZb"><font color="#888888"><br>Geoffrey<br>
</font></span></blockquote></div><br><br>