是否可以列出clang-query
中所有可能的匹配项? AST matcher reference列表不一定是最新版本。甚至ASTMatchers.h
lang页眉(clang-6.0.0
)中的列表也不显示当前可用的内容。例如,equalsNode
匹配器包含在列表中,而clang-query
中不可用。
答案 0 :(得分:0)
似乎某些匹配器存在缺陷,并且仍在进行中。因此,尽管它们的名称包含在ASTMatchers.h
头文件中,但不能使用它们。可以从clang-6.0.0/lib/ASTMatchers/Dynamic/Registry.cpp:Line 95
处的以下注释中推论得出:
// TODO: Here is the list of the missing matchers, grouped by reason.
//
// Need Variant/Parser fixes:
// ofKind
//
// Polymorphic + argument overload:
// findAll
//
// Other:
// equalsNode
REGISTER_OVERLOADED_2(callee);
...
可以看出,equalsNode
也是缺少的匹配项之一。支持的匹配器在以下各行中注册。