forked from OSchip/llvm-project
Allow comments with '#' in dynamic AST Matchers
Summary: This is necessary for clang-query to be able to handle comments. Reviewers: aaron.ballman Reviewed By: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52751 llvm-svn: 343665
This commit is contained in:
parent
42668a4d03
commit
7c787b8adf
|
@ -110,6 +110,10 @@ private:
|
|||
}
|
||||
|
||||
switch (Code[0]) {
|
||||
case '#':
|
||||
Result.Kind = TokenInfo::TK_Eof;
|
||||
Result.Text = "";
|
||||
return Result;
|
||||
case ',':
|
||||
Result.Kind = TokenInfo::TK_Comma;
|
||||
Result.Text = Code.substr(0, 1);
|
||||
|
|
|
@ -148,8 +148,8 @@ TEST(ParserTest, ParseMatcher) {
|
|||
const uint64_t ExpectedBar = Sema.expectMatcher("Bar");
|
||||
const uint64_t ExpectedBaz = Sema.expectMatcher("Baz");
|
||||
Sema.parse(" Foo ( Bar ( 17), Baz( \n \"B A,Z\") ) .bind( \"Yo!\") ");
|
||||
for (size_t i = 0, e = Sema.Errors.size(); i != e; ++i) {
|
||||
EXPECT_EQ("", Sema.Errors[i]);
|
||||
for (const auto &E : Sema.Errors) {
|
||||
EXPECT_EQ("", E);
|
||||
}
|
||||
|
||||
EXPECT_NE(ExpectedFoo, ExpectedBar);
|
||||
|
@ -181,6 +181,21 @@ TEST(ParserTest, ParseMatcher) {
|
|||
EXPECT_EQ("Yo!", Foo.BoundID);
|
||||
}
|
||||
|
||||
TEST(ParserTest, ParseComment) {
|
||||
MockSema Sema;
|
||||
const uint64_t ExpectedFoo = Sema.expectMatcher("Foo");
|
||||
Sema.parse(" Foo() # Bar() ");
|
||||
for (const auto &E : Sema.Errors) {
|
||||
EXPECT_EQ("", E);
|
||||
}
|
||||
|
||||
EXPECT_EQ(1ULL, Sema.Matchers.size());
|
||||
|
||||
Sema.parse("Foo(#) ");
|
||||
|
||||
EXPECT_EQ("1:4: Error parsing matcher. Found end-of-code while looking for ')'.", Sema.Errors[1]);
|
||||
}
|
||||
|
||||
using ast_matchers::internal::Matcher;
|
||||
|
||||
Parser::NamedValueMap getTestNamedValues() {
|
||||
|
|
Loading…
Reference in New Issue