Libclang 的 get_tokens() 在解析后的 AST 中不返回任何内容

问题描述

我正在尝试为此文件生成 AST [https://bitbucket.org/phopkins/gizmo-public/src/master/gravity/forcetree.c]。

我使用以下代码执行此操作:

arguments = "-O3 -std=c99 " \
            "-I/usr/include/mpi " \
            "-I/usr/include/hdf5/serial " \
            "-I/home/... /GIZMO-CMZ-master/grackle/src/clib"

index = Index.create()
tu = index.parse(args.file,args=arguments.split())

在某些情况下,虽然 AST 似乎不正确。作为第 211 行和第 22 列的示例,我们有一个括号表达式,其中包含一个简单的二进制表达式。

enter image description here

这是 libclang 生成的 AST 中显示内容

enter image description here

如果我在上图中看到的 .get_tokens() 上使用 binary_expression,那么我将一无所获。即使我应该得到 3 个令牌,即 BITS_PER_DIMENSION-1。这是我的错误吗?我是如何解析文件的,还是 liclang 的问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)