Skip to main content

用于匹配 clang AST 中节点的功能工具

项目描述

概述

Glud 是 libclang 库的抽象,它使 Clang AST 的匹配片段变得简单和 Pythonic,就像libclangastmatchers 为 C++ Clang API 所做的那样。

麻省理工学院许可证 持续集成 覆盖测试结果

例子

在代码片段上

// input.cpp
namespace X {
    class Y {};
}
class Y {};

您可以将命名空间 Y 中名为 X 的类与匹配器匹配:

from glud import *
m = cxxRecordDecl(
         hasName('Y'),
         hasAncestor(namespaceDecl(hasName('X'))))
tu = parse('input.cpp')
matches = walk(m, tu.cursor)

先决条件

安装最新版本的 Clang 和 python libclang 绑定。在 Ubuntu Trusty 上,您可以从 LLVM apt 存储库安装预构建的二进制文件:

wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.8 main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update -qq
sudo apt-get install -y python-clang-3.8 libclang1-3.8

要运行 glu,您需要确保 libclang.so 在您的加载程序路径上。

export LD_LIBRARY_PATH=/usr/lib/llvm-3.8/lib

安装

您可以从 PyPI 安装最新的稳定版本

$ pip install glud

或者,您可以从 GitHub 安装最新的开发版本

$ pip install git+git://github.com/AndrewWalker/glud.git

致谢

该项目与 LLVM 团队或伊利诺伊大学厄巴纳-香槟分校无关。

贡献

如果您在使用 gud 时遇到问题,请将其记录在 GitHub 上。如果您想贡献代码,请分叉代码提交拉取请求

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

glud-0.3.3.tar.gz (8.0 kB 查看哈希)

已上传 source