<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div><br></div><div>I am working on python bindings for LibTooling right now - see <a href="https://github.com/firolino/python-clang-tooling">https://github.com/firolino/python-clang-tooling</a>. So, one can use pretty things such as</div><div><br></div><div><div>recordDecl(hasDescendant(</div><div>    ifStmt(hasTrueExpression(</div><div>        expr(hasDescendant(</div><div>            ifStmt()))))))</div></div><div><br></div><div>in python as well.</div><div><br></div><div>I am almost finished. Just a few things are left:</div><div>    - Include all narrowing and traverse AST matchers</div><div>    - Fix CMakeLists.txt for other python versions</div><div>    - Transform clang AST matcher unit tests to python version and use it</div><div>    - Provide pip packages</div><div>    - Provide Rewriter</div><div>    - Clean the code</div><div><br></div><div>Unfortunately, the resulting python module is already 190 MB big. Since most of the matcher stuff are templates, I need to instantiate everything in any possible combination to make them exposable to python. If you have suggestions or improvements regarding the bindings, please let me know. </div><div><br></div></div></div></div>