微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。