This revision was automatically updated to reflect the committed changes.
Closed by commit rL343665: Allow comments with '#' in dynamic AST
Matchers (authored by steveire, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D52751?vs=167987&id=168078#toc
Repository:
rL LLVM
https://reviews.llvm.org/D52751
Files:
cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
Index: cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
===================================================================
--- cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
+++ cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -110,6 +110,10 @@
}
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);
Index: cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
===================================================================
--- cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
+++ cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
@@ -148,8 +148,8 @@
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 @@
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() {
Index: cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
===================================================================
--- cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
+++ cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -110,6 +110,10 @@
}
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);
Index: cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
===================================================================
--- cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
+++ cfe/trunk/unittests/ASTMatchers/Dynamic/ParserTest.cpp
@@ -148,8 +148,8 @@
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 @@
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() {
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits