Clang AST 解释

Clang AST Interpretation

我正在尝试解释您在下图中看到的部分 Clang AST。简而言之,我要做的是检查两个变量在不同的程序点是否相同。检查 AST 后,我注意到 AST 部分之间唯一的共同点是用蓝色圈出的部分。

谁能帮我看看这些十六进制数字在 AST 中对应的是什么? 我知道第一个块对应于变量声明,第二个块对应于表达式。 Stmt 和 Expr 类 上是否有可以调用的方法来获取这些十六进制数?

这些确实是原始指针值。

您很可能需要检查 DeclRefExpr 个节点及其引用的相应声明(即 getDecl 方法)。指向其声明的指针是您要查找的十六进制数。

祝您使用 Clang 愉快!