summaryrefslogtreecommitdiffstats
path: root/clang/lib/ASTMatchers/Dynamic
diff options
context:
space:
mode:
authorSamuel Benzaquen <sbenza@google.com>2014-04-03 12:50:47 +0000
committerSamuel Benzaquen <sbenza@google.com>2014-04-03 12:50:47 +0000
commit5548eadb1cc1550e83cfcddae647a771d95b2a7b (patch)
tree10acfac147704a107ae566bf1da37e15bf4e5b2b /clang/lib/ASTMatchers/Dynamic
parentcabf0f41e0fef71f29fdee70547711ef9cae461a (diff)
downloadbcm5719-llvm-5548eadb1cc1550e83cfcddae647a771d95b2a7b.tar.gz
bcm5719-llvm-5548eadb1cc1550e83cfcddae647a771d95b2a7b.zip
Revert "Add support for named values in the parser."
This was submitted before it was ready. This reverts commit 62060a01e095cf35eb9ca42a333752d12714f35c. llvm-svn: 205533
Diffstat (limited to 'clang/lib/ASTMatchers/Dynamic')
-rw-r--r--clang/lib/ASTMatchers/Dynamic/Parser.cpp48
1 files changed, 21 insertions, 27 deletions
diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
index bc6f73ca452..24ffdcda51b 100644
--- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
+++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -424,18 +424,8 @@ bool Parser::parseExpressionImpl(VariantValue *Value) {
*Value = Tokenizer->consumeNextToken().Value;
return true;
- case TokenInfo::TK_Ident: {
- // Identifier could be a name known by Sema as a named value.
- const VariantValue NamedValue =
- S->getNamedValue(Tokenizer->peekNextToken().Text);
- if (!NamedValue.isNothing()) {
- Tokenizer->consumeNextToken(); // Actually consume it.
- *Value = NamedValue;
- return true;
- }
- // Fallback to full matcher parsing.
+ case TokenInfo::TK_Ident:
return parseMatcherExpressionImpl(Value);
- }
case TokenInfo::TK_CodeCompletion:
addExpressionCompletions();
@@ -467,23 +457,27 @@ Parser::Parser(CodeTokenizer *Tokenizer, Sema *S,
Diagnostics *Error)
: Tokenizer(Tokenizer), S(S), Error(Error) {}
-Parser::RegistrySema::~RegistrySema() {}
-
-llvm::Optional<MatcherCtor> Parser::RegistrySema::lookupMatcherCtor(
- StringRef MatcherName, const SourceRange &NameRange, Diagnostics *Error) {
- return Registry::lookupMatcherCtor(MatcherName, NameRange, Error);
-}
-
-VariantMatcher Parser::RegistrySema::actOnMatcherExpression(
- MatcherCtor Ctor, const SourceRange &NameRange, StringRef BindID,
- ArrayRef<ParserValue> Args, Diagnostics *Error) {
- if (BindID.empty()) {
- return Registry::constructMatcher(Ctor, NameRange, Args, Error);
- } else {
- return Registry::constructBoundMatcher(Ctor, NameRange, BindID, Args,
- Error);
+class RegistrySema : public Parser::Sema {
+public:
+ virtual ~RegistrySema() {}
+ llvm::Optional<MatcherCtor> lookupMatcherCtor(StringRef MatcherName,
+ const SourceRange &NameRange,
+ Diagnostics *Error) {
+ return Registry::lookupMatcherCtor(MatcherName, NameRange, Error);
}
-}
+ VariantMatcher actOnMatcherExpression(MatcherCtor Ctor,
+ const SourceRange &NameRange,
+ StringRef BindID,
+ ArrayRef<ParserValue> Args,
+ Diagnostics *Error) {
+ if (BindID.empty()) {
+ return Registry::constructMatcher(Ctor, NameRange, Args, Error);
+ } else {
+ return Registry::constructBoundMatcher(Ctor, NameRange, BindID, Args,
+ Error);
+ }
+ }
+};
bool Parser::parseExpression(StringRef Code, VariantValue *Value,
Diagnostics *Error) {
OpenPOWER on IntegriCloud