首页 > 编程语言 > 详细

libClang python binding介绍

时间:2014-03-12 22:48:38      阅读:598      评论:0      收藏:0      [点我收藏+]

llvm clang编译工具不仅用于编译,还可以用来对代码分析。也可以用于代码翻译。

libclang python binding 安装过程:

下载llvm,clang,编译后生成一大票库文件。

编译可以通过常见的configure,make方法,也可以通过cmake.

而libclang python binding是通过ctype来访问libClang的,无需编译。

将libclang python binding的python文件拷贝到当前目录,并且设置一下libClang的路径就可以使用了。

#!/usr/bin/env python
""" Usage: call with <filename> <typename>
"""

import sys
import clang.cindex
from clang.cindex import Config
Config.set_library_path("/Users/mahongquan/llvm3.4/llvm_build/lib")
#os.environ["DYLD_LIBRARY_PATH"]="/Users/mahongquan/llvm3.4/llvm_build/lib"
def find_typerefs(node, typename):
    """ Find all references to the type named ‘typename‘
    """
    if node.kind.is_reference():
        ref_node = clang.cindex.Cursor_ref(node)
        if ref_node.spelling == typename:
            print ‘Found %s [line=%s, col=%s]‘ % (
                typename, node.location.line, node.location.column)
    # Recurse for children of this node
    for c in node.get_children():
        find_typerefs(c, typename)

index = clang.cindex.Index.create()
tu = index.parse(sys.argv[1])
print ‘Translation unit:‘, tu.spelling
find_typerefs(tu.cursor, sys.argv[2])



libClang python binding介绍,布布扣,bubuko.com

libClang python binding介绍

原文:http://blog.csdn.net/mahongquan/article/details/21109729

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!