问题标签 [clang-ast-matchers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
15 浏览

clang - 如何在 Clang AST 中获取 DeclRefExpr 的父级

代码的 AST

源代码:

我使用 ASTMatcher 找到了所有 DeclRefExpr

对于每一个DeclRefExpr,我都想得到它的父节点,就像图中的MemberExpr,应该怎么做呢?

0 投票
1 回答
26 浏览

constructor - AST MATCHER:如何在构造函数中匹配un init double param

我有一个匹配构造函数中的 uninit 双字段的问题。鉴于下面的代码

我想匹配未在构造函数中调用二元运算符 = 的 un_init_param_ 字段。但我找不到这样做的方法。

我在 clang-query 中输入以下命令

但是如何指定 memberExpr 与 prew 部分 fieldDecl 相关?换句话说,如何指定fieldDecl和memberExpr的连接?

我找到了匹配 init_param_ 的方法,但是如何找到没有匹配的字段?

0 投票
0 回答
12 浏览

clang-tidy - 使用 Clang AST 匹配器将多个参数分别匹配到特定函数

我正在尝试将不必要的调用匹配到c_str()调用乐于std::string直接使用的函数时,以便我可以删除不必要的调用,以便我可以编写一个clang-tidy检查来自动转换语句,例如:

进入

虽然我已经能够想出一个匹配整个语句的匹配器,但如果我可以c_str单独绑定所有调用会更方便。我试过了

但无论调用多少个参数,我都只能得到一个匹配c_str。有没有办法迭代我绑定的单独参数匹配,或者我是否需要自己在check成员中迭代所有参数(无论它们是否匹配)?