Revert "Add support for named values in the parser."
This was submitted before it was ready.
This reverts commit 62060a01e095cf35eb9ca42a333752d12714f35c.
llvm-svn: 205533
diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
index bc6f73c..24ffdcd 100644
--- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
+++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -424,18 +424,8 @@
*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 @@
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) {