|
@@ -241,6 +241,11 @@ match(MatcherT Matcher, const ast_type_traits::DynTypedNode &Node,
|
|
|
ASTContext &Context);
|
|
|
/// @}
|
|
|
|
|
|
+/// \brief Returns the results of matching \p Matcher on the translation unit of
|
|
|
+/// \p Context and collects the \c BoundNodes of all callback invocations.
|
|
|
+template <typename MatcherT>
|
|
|
+SmallVector<BoundNodes, 1> match(MatcherT Matcher, ASTContext &Context);
|
|
|
+
|
|
|
/// \brief Returns the first result of type \c NodeT bound to \p BoundTo.
|
|
|
///
|
|
|
/// Returns \c NULL if there is no match, or if the matching node cannot be
|
|
@@ -288,6 +293,16 @@ match(MatcherT Matcher, const NodeT &Node, ASTContext &Context) {
|
|
|
return match(Matcher, ast_type_traits::DynTypedNode::create(Node), Context);
|
|
|
}
|
|
|
|
|
|
+template <typename MatcherT>
|
|
|
+SmallVector<BoundNodes, 1>
|
|
|
+match(MatcherT Matcher, ASTContext &Context) {
|
|
|
+ internal::CollectMatchesCallback Callback;
|
|
|
+ MatchFinder Finder;
|
|
|
+ Finder.addMatcher(Matcher, &Callback);
|
|
|
+ Finder.matchAST(Context);
|
|
|
+ return std::move(Callback.Nodes);
|
|
|
+}
|
|
|
+
|
|
|
} // end namespace ast_matchers
|
|
|
} // end namespace clang
|
|
|
|