我需要在 AST 中插入新节点。 例如,向函数添加命名空间:把这个——
void foo();
进入这个——
namespace bar {
void foo();
}
我读了如何克隆或创建 slang 的 AST Stmt 节点? 但我不喜欢使用源到源编译
嘟嘟
答案可以在这里找到http://clang-developers.42468.n3.nabble.com/Adding-nodes-to-Clang-s-AST-td4054800.html
但是,节点被添加到编译的 AST 中 - 例如,如果想要将命名空间注入代码,他不能直接通过代码使用命名空间,因为词法分析器不知道它。