<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<div></div>
Hello,<br>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt"><br>
I'd like to get the AST cursor of a function/method call from a line of code, with libclang (or better, with the python bindings).<br>
<br>
These are two sample lines of C++ code:<br>
<br>
helSum[0] = antUsrPtr->antennaFunction(y12ant,y23ant,mu1ant,mu2ant,mu3ant, //$<br>
        9,9,9,9,9); <br>
<br>
The first line has a special-format comment '//$' that indicates to me that in that code line there is a relevant call:  antennaFunction( , , , , , , , , ...). I want to pick it up usign libclang (the AST node / cursor of that precise call). This is the general
 problem. More precisions follow.<br>
<br>
======<br>
I have the information on the extent of the source code where my call is being done:<br>
(line, start_column) --> (line, end_column)<br>
In the example, start_column corresponds to the starting 'h' and end_column corresponds to the ending ','<br>
<br>
I know that I can get a Cursor from a given location in libclang with<br>
clang_getCursor(tu, location)<br>
I am actually using the python bindings (so there is an extra point if you can reply in the pythonic language :-)<br>
 <br>
Is that cursor a good starting point? What algorithm would you use next to identify the call? parent nodes? childs? siblings?
<br>
<br>
======<br>
<br>
Thank you for reading. I would appreciate any ideas.<br>
Best regards,<br>
<br>
Juan J. Lopez-Villarejo<br>
Postdoc, Paris, CEA-Saclay<br>
<br>
</div>
</div>
</div>
</div>
</body>
</html>