叮当匹配者.在 AST 中按翻译单位、行号和列查找相应的节点

clang matchers. find the corresponding node in ast by translation unit, line number, and column

本文关键字:查找 节点 单位 AST 翻译 叮当      更新时间:2023-10-16

你好,提前感谢您的帮助。

我最近做了一些努力来理解 Clang 匹配系统,并卡在一个特定的问题上。

在编辑器中将光标设置为行中某个位置的源文件,从而具有精确的位置,有没有办法通过此信息查找并返回 clang ast 中的相应节点?

作为用户场景,请考虑我在编辑器中单击代码并从相应的 AST 中识别确切的节点和节点类型。

我认为在某种程度上可以使用访问者,但是我也可以使用匹配机制吗?

我研究了给定的匹配器,但我似乎一无所获......

感谢

弗里特约夫

已解决。我不知道光标,感谢本杰明为我指出了正确的方向。

请参阅函数的游标clang_getCursor该函数在源代码中为其提供精确位置,将相应的游标返回到 AST 中,然后可以查询该游标的种类、名称、子节点和引用节点的位置。

对不起我的英语,我不是母语人士。

也向那个悲伤、抱歉和痛苦的小伙子致以问候,他甚至没有说明任何理由就否决了我的问题。对于像我这样的新来者来说,这是非常鼓舞人心的。