libclang相关内容
我在 Windows 上使用 64 位 Vim,thisHaroogan 的版本: +python27+蟒蛇33+巨大的 我正在尝试使用 clang_complete,所以我使用了 libclang.dll 库 这里 并且我设置了我的 vimrc 正确.libclang.dll 找到了. 但是,当我打开 *.cpp 文件时,我现在收到一条消息: libclang 找不到内置的包含这
..
我最近开始使用 libclang 来解析 C 文件.我遇到的问题显然是,libclang 在生成 AST 之前启动了预处理器.我想禁止预处理器运行,而是提供预处理器指令在文件中的信息... 我使用以下 python 脚本(cindex.py 和 libclang) 导入编解码器从 clang.cindex 导入 *类源文件(对象):def __init__(self, path):使用 c
..
在下面的头文件中,我想对类和成员变量获取相应的 + reflect 注释: #ifndef __HEADER_FOO#定义__HEADER_FOO//+反射Foo类{上市:私人的:int m_int;//+反射};#万一 使用libclang的python绑定和以下脚本: import sys导入clang.cindexdef dumpnode(node,indent):打印''*缩进
..
我正在使用libclang的python绑定,但我认为此问题是由libclang而不是python绑定引起的. 我有一个标头 object.h #ifndef OBJECT_H#define OBJECT_H类Object {上市:int run();};#万一 和实现 object.cpp #include"object.h"int Object :: run(){int a
..
假设我拥有CXCursor左右,如何使用Clang/Libclang作为字符串获取函数的签名(或至少是整个定义?)? 我认为可以通过使用游标的范围来以某种方式获得定义,但是我真的不知道如何使用(使用什么函数). 解决方案 您可以使用此简单代码获取函数的原型(名称,返回类型,参数数量和arguments [name,data type]). string Convert(const
..
遵循此问题和 Andrew的建议,我正在尝试 liblang 添加编译器系统的包含路径(在Windows中)以获取我的Python代码 import clang.cindex def parse_decl(node): reference_node = node.get_definition() if node.kind.is_declaration():
..
我需要解析一个C ++代码文件,并使用完全限定的名称查找其中的所有函数调用.我使用libclang的Python绑定是因为,即使文档很稀疏,这似乎比编写自己的C ++解析器还容易. 示例C ++代码: namespace a { namespace b { class Thing { public: Thing(); void DoSomet
..
简短说明:使用libclang自动完成代码不适用于Sublime Text 3随附的python. 详细信息: Github 本质上,存在一个脚本,该脚本使用稍作更改的cindex.py(与python 3和clang 3.8兼容),并从测试源文件构建转换单元.然后重新解析并尝试完成. 该脚本在使用Powershell中的Python 3.3.5时可以按预期工作. 当放入S
..
在通过Python中的libclang解析C ++源文件时,我试图查找(行和列的位置)特定函数声明的所有引用. 例如: #include using namespace std; int addition (int a, int b) { int r; r=a+b; return r; } int main () { int z, q; z
..
如何使用libclang获取原始文字的值? 例如,如果我有一个游标类型为CXCursor_IntegerLiteral的CXCursor,那么如何提取文字值. 更新: 使用libclang遇到了很多问题.我强烈建议完全避免使用它,而应使用clang提供的C ++接口. C ++界面具有很高的可用性,并且有很好的文档记录: http://clang.llvm.org/doxygen
..
我正在编写一个实用程序,该实用程序应该解析C ++(和C)头文件,提取结构,枚举,字段等,并根据提取的信息以其他语言生成代码.我决定为此使用libclang. 我正在使用RecursiveASTVisitor,看来我能够提取我需要的所有信息,但注释除外. 我想读取每条声明(字段,结构,类,枚举)上方的注释,并在生成其他语言的代码时添加其文本. 问题是我看到的所有使用注释的示例都使
..
如果我在一个大型项目中有多个文件,所有这些文件共享大量包含的头文件,是否有任何方法可以共享头文件的解析工作?我曾希望创建一个索引,然后向其中添加多个translationUnits可能会导致某些工作被共享-但是,即使是沿着(pseudocode)的代码进行编码, index = clang_createIndex(); clang_parseTranslationUnit(index, "m
..
我正在尝试使用libclang解析库,但我遇到了一个非常简单的问题:如何使用STL对其进行配置? 目前,它无法解析翻译单元,因为找不到. 这就是我尝试过的: char *args[] = {"-x", "c++", "-Ic:/my/library/includes", "-IG:/Prog/libcxx-3.4/include"}; clang_parseTransl
..
我正在尝试使用cmake构建LLVM安装,但它给我有关LLVM_ENABLE_DIA_SDK的错误.在没有PDB的情况下,我设法构建了LLVM,但是我试图从libclang开始,所以我需要PDB. Cmake给我以下错误: cmake/config-ix.cmake上的CMake错误:482(消息): 找不到DIA SDK.如果您同时安装了VS 2012和2013,则可以 需要卸载前者,
..
我正在学习使用我的目标是解析C ++文件并为这些文件中存在的函数标识函数边界.我期望建立这种形式的python字典: {:(, ), ...} 为此,我能够获得函数名称(对于CursorKind.FUNCTION_DECL或CursorKind.CXX_METHOD类型的AST节点使用cursor.spe
..
假设我有两个文件main.c和func.c func.c是从main.c的main函数调用的.通常,我将生成main.o和func.o,链接器将找到func的定义并将其与main .c 中的调用相关联 现在,我想通过libclang API做同样的事情.这是我正在制作的Doxygen类型代码浏览实用程序.我能够解析这两个文件.从这里开始,我不知道如何进行. 我应该生成* .o文件并用clang
..
我需要实现一个使用LLVM/Clang作为后端将C代码编译为eBPF字节码的库.这些代码将从内存中读取,我也需要在内存中获取生成的汇编代码. 到目前为止,我已经可以使用以下代码编译为LLVM IR: #include #include #include #include
..
我一直在寻找一些易于理解的libclang指南.我在这里或其他论坛上看到过一些话题,但是唯一推荐的信息来源是libclang source/doxygen doc,vim的clang完整插件或所以我的问题是,除了上面提到的那些教程之外,还有没有其他易于理解的教程了?也许某些高级libclang用户可以编写一个:) 注意:我对编写clang插件不感兴趣. 解决方案 我写了
..
我目前正在使用clang C API构建一个用于C ++代码的解析器。解析器将处理一个头文件并为其生成一个定义和缺失符号的列表(它忽略包含指令,因此它将严格解析头的内容)。我的问题是,如果我有一个 typedef 为一个函数指针,接受一个未定义类型的参数,如: typedef SOME_TYPE(* funcPtrName)(SOME_UNDEF_TYPE x); AS
..
我写了一个测试程序(parse_ast.c)来解析ac源文件(tt.c),看看libclang是如何工作的,输出是AST的层次结构: 这里是测试文件: / * tt.c * / // line 1 #include #include typedef ssize_t(* write_fn_t)(int,const void *,
..