diff options
| author | Samuel Benzaquen <sbenza@google.com> | 2014-04-03 12:50:47 +0000 |
|---|---|---|
| committer | Samuel Benzaquen <sbenza@google.com> | 2014-04-03 12:50:47 +0000 |
| commit | 5548eadb1cc1550e83cfcddae647a771d95b2a7b (patch) | |
| tree | 10acfac147704a107ae566bf1da37e15bf4e5b2b /clang/lib/ASTMatchers/Dynamic | |
| parent | cabf0f41e0fef71f29fdee70547711ef9cae461a (diff) | |
| download | bcm5719-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.cpp | 48 |
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) { |

