From 1f6066c9acced984fb808284f40c834a8740fb2b Mon Sep 17 00:00:00 2001 From: Samuel Benzaquen Date: Wed, 23 Apr 2014 14:04:52 +0000 Subject: Add new 'let' command to bind arbitrary values into constants. Summary: Add new 'let' command to bind arbitrary values into constants. These constants can then be used in the matcher expressions. Reviewers: pcc CC: cfe-commits Differential Revision: http://reviews.llvm.org/D3383 llvm-svn: 206984 --- clang-tools-extra/clang-query/Query.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'clang-tools-extra/clang-query/Query.cpp') diff --git a/clang-tools-extra/clang-query/Query.cpp b/clang-tools-extra/clang-query/Query.cpp index dcfa80c5277..65a68edea9d 100644 --- a/clang-tools-extra/clang-query/Query.cpp +++ b/clang-tools-extra/clang-query/Query.cpp @@ -54,7 +54,7 @@ struct CollectBoundNodes : MatchFinder::MatchCallback { } }; -} +} // namespace bool MatchQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const { unsigned MatchCount = 0; @@ -124,6 +124,15 @@ bool MatchQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const { return true; } +bool LetQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const { + if (Value) { + QS.NamedValues[Name] = Value; + } else { + QS.NamedValues.erase(Name); + } + return true; +} + #ifndef _MSC_VER const QueryKind SetQueryKind::value; const QueryKind SetQueryKind::value; -- cgit v1.2.3