我试着用clang了解几个星期的操作原理 AST,但同时我没有回答主要问题:如何走这条路 树? 我阅读了我发现的所有指南,研究了doxygen文档甚至 在YouTube观看了几场讲座,但理解却没有 来。
我理解:
1)树的AST没有一般类型的节点
2)为了在树上移动,可以使用RecursiveASTVisitor, 或匹配。第一个递归地实现深度绕行,第二个 允许查找那些有趣的节点。
问题出在我所处的两个选项之一的树的哪一部分 无法学习。我不知道如何定义我的访客通过的那一刻 到其他分支,在什么时候继续深入。 理想情况下,我希望知道我访问的节点的深度。它是 可能的?
我非常喜欢dump()函数输出,因为在它的通信中 节点之间准确显示。但是如何以纯粹的形式接收它 (但不是文本)我不知道。
一般来说,问题如下:我是否可以构建树 AST的基础,但统一的节点类型以及如何制作它?