gpt4 book ai didi

c++ - 如何使用 clang::TreeTransform?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:25 24 4
gpt4 key购买 nike

我正在尝试找出 clang::TreeTransform 的集成点。

目标是在代码生成之前转换 AST。

提前致谢。

最佳答案

一种方法是使用 ASTFrontEndAction ,然后重新定义方法 CreateASTConsumer 以创建 SemaConsumer(而不是 ASTConsumer)。

然后在 handleTopLevelDecl 方法中通过将 Sema 传递给 RecursiveASTVisitor 创建一个 RecursiveASTVisitor,这对于 TreeTransform 是必需的。

然后 RecursiveASTVisitor 的 Visit 方法可以创建 TreeTransform 的实例,然后调用适当的转换方法。

PS:有时在转换 compund 语句时,函数作用域可能为空。你可以做

SemaRef.PushFunctionScope();
SemaRef.PushCompoundScope();

在调用转换函数之前。

关于c++ - 如何使用 clang::TreeTransform?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38146529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com