libClang python binding介绍
来源:互联网 发布:温泽三坐标编程视频 编辑:程序博客网 时间:2024/05/21 16:09
llvm clang编译工具不仅用于编译,还可以用来对代码分析。也可以用于代码翻译。
libclang python binding 安装过程:
下载llvm,clang,编译后生成一大票库文件。
编译可以通过常见的configure,make方法,也可以通过cmake.
而libclang python binding是通过ctypes来访问libClang的,无需编译。
将libclang python binding的python文件拷贝到当前目录,并且设置一下libClang的路径就可以使用了。
#!/usr/bin/env pythonimport sysimport clang.cindexfrom clang.cindex import ConfigConfig.set_library_path("/Users/mahongquan/llvm3.4/llvm_build/lib")def showToken(node): ts=node.get_tokens() for t in ts: print t.spellingindex = clang.cindex.Index.create()tu = index.parse("ToyClangPlugin.cpp")showToken(tu.cursor)
例子2,查找类的引用
#!/usr/bin/env pythonimport sysimport clang.cindexfrom clang.cindex import ConfigConfig.set_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 = node.get_definition() #print ref_node.spelling 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("person.cpp")find_typerefs(tu.cursor,"Person")
0 0
- libClang python binding介绍
- ftk的python binding
- Android Data Binding简单介绍
- Angular 1.3 one-time binding介绍
- Binding
- binding
- Binding
- Binding
- Notes on Python Naming and binding
- Python中inner function的binding处理
- 创建Matlab engine的python binding
- python 延迟绑定(late binding)
- 深入研究Clang(三) libclang
- Android数据绑定库Data Binding Library介绍
- Android Data Binding 系列(一) -- 详细介绍与使用
- Android Data Binding 系列(一) -- 详细介绍与使用
- Android Data Binding 系列(一) -- 详细介绍与使用
- Android Data Binding 系列 (一) -- 详细介绍与使用
- 游戏
- Android自定义适配器,BaseAdapter的使用方法
- 打发v吧
- OWB初始化配置
- hive抛出NullPointerException异常处理
- libClang python binding介绍
- 《算法概论》思维导图
- 【LeetCode】Remove Duplicates from Sorted List
- poj1011 stick(搜索,剪枝)
- 通过Nutch-655和urlmeta学习如何使用nutch插件
- Java NIO ByteBuffer读取文件
- 解决JSP中文乱码问题
- ceshi
- hdu 1565 状态压缩DP