EXPECT_EQ("1:9: Error parsing matcher. Found token <NewLine> "
"while looking for '('.",
cast<InvalidQuery>(Q)->ErrStr);
+
+ Q = parse("let someMatcher\nm parmVarDecl()");
+
+ ASSERT_TRUE(isa<InvalidQuery>(Q));
+ EXPECT_EQ("1:1: Invalid token <NewLine> found when looking for a value.", cast<InvalidQuery>(Q)->ErrStr);
+
+ Q = parse("\nm parmVarDecl()\nlet someMatcher\nm parmVarDecl()");
+
+ ASSERT_TRUE(isa<MatchQuery>(Q));
+ Q = parse(Q->RemainingContent);
+
+ ASSERT_TRUE(isa<InvalidQuery>(Q));
+ EXPECT_EQ("1:1: Invalid token <NewLine> found when looking for a value.", cast<InvalidQuery>(Q)->ErrStr);
+
+ Q = parse("\nlet someMatcher\n");
+
+ ASSERT_TRUE(isa<InvalidQuery>(Q));
+ EXPECT_EQ("1:1: Invalid token <NewLine> found when looking for a value.", cast<InvalidQuery>(Q)->ErrStr);
}
// This error was already reported by the tokenizer.
return false;
case TokenInfo::TK_NewLine:
- llvm_unreachable("Newline should never be found here");
- return false;
case TokenInfo::TK_OpenParen:
case TokenInfo::TK_CloseParen:
case TokenInfo::TK_Comma:
case TokenInfo::TK_Period:
case TokenInfo::TK_InvalidChar:
const TokenInfo Token = Tokenizer->consumeNextToken();
- Error->addError(Token.Range, Error->ET_ParserInvalidToken) << Token.Text;
+ Error->addError(Token.Range, Error->ET_ParserInvalidToken) << (Token.Kind == TokenInfo::TK_NewLine ? "NewLine" : Token.Text);
return false;
}