libclang的get_tokens()在解析的ast中不返回任何内容

gcxthw6b  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(204)

我正在尝试为此文件生成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列的示例,我们使用一个包含简单二进制表达式的括号表达式。

下面是由生成的ast中显示的内容 libclang .

如果我使用 .get_tokens()binary_expression 如上图所示,我将一无所获。虽然我应该得到3个代币,即 BITS_PER_DIMENSION , - , 1 . 这是我的错误,我是如何解析文件的,还是李克朗的问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题