clang 匹配器。通过翻译单元、行号、列找到ast中对应的节点
clang matchers. find the corresponding node in ast by translation unit, line number, and column
您好,感谢您的帮助。
我最近努力了解 clang 匹配系统并卡在一个特定问题上。
在编辑器中有一个源文件,光标设置在一行中的某个位置,从而具有精确的位置,有没有办法找到,return,clang ast中对应的节点通过此信息?
作为用户场景,想想我在编辑器中单击代码并从相应的 ast 中识别确切的节点和节点类型。
我认为在某种程度上可以使用访问者,但我也可以使用匹配机制吗?
我研究了给定的匹配器,但我似乎一无所获...
感谢
弗里斯乔夫
已解决。我不知道游标,感谢 Benjamin 为我指明了正确的方向。
参见 cursors 函数 clang_getCursor,它提供了一个精确的location in source code, returns 将相应的游标放入 AST,然后可以查询所引用节点的种类、名称、子级和位置。
也很抱歉我的英语,我不是母语人士。
也向那些甚至没有说明任何理由就否决了我的问题的悲伤、抱歉和痛苦的小伙子致以问候。这对像我这样的新来者来说是如此鼓舞人心。
您好,感谢您的帮助。
我最近努力了解 clang 匹配系统并卡在一个特定问题上。
在编辑器中有一个源文件,光标设置在一行中的某个位置,从而具有精确的位置,有没有办法找到,return,clang ast中对应的节点通过此信息?
作为用户场景,想想我在编辑器中单击代码并从相应的 ast 中识别确切的节点和节点类型。
我认为在某种程度上可以使用访问者,但我也可以使用匹配机制吗?
我研究了给定的匹配器,但我似乎一无所获...
感谢
弗里斯乔夫
已解决。我不知道游标,感谢 Benjamin 为我指明了正确的方向。
参见 cursors 函数 clang_getCursor,它提供了一个精确的location in source code, returns 将相应的游标放入 AST,然后可以查询所引用节点的种类、名称、子级和位置。
也很抱歉我的英语,我不是母语人士。
也向那些甚至没有说明任何理由就否决了我的问题的悲伤、抱歉和痛苦的小伙子致以问候。这对像我这样的新来者来说是如此鼓舞人心。