Skip to content

Commit 51707b2

Browse files
committedOct 24, 2018
[clang-query] Add 'detailed-ast' output as an alias for 'dump'
Summary: Future development can then dump other content than AST. Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D53500 llvm-svn: 345193
1 parent 4c3d7a9 commit 51707b2

File tree

5 files changed

+20
-10
lines changed

5 files changed

+20
-10
lines changed
 

‎clang-tools-extra/clang-query/Query.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,10 @@ bool HelpQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const {
5353
"Pretty-print bound nodes.\n"
5454
" diag "
5555
"Diagnostic location for bound nodes.\n"
56+
" detailed-ast "
57+
"Detailed AST output for bound nodes.\n"
5658
" dump "
57-
"Detailed AST output for bound nodes.\n\n";
59+
"Detailed AST output for bound nodes (alias of detailed-ast).\n\n";
5860
return true;
5961
}
6062

@@ -124,7 +126,7 @@ bool MatchQuery::run(llvm::raw_ostream &OS, QuerySession &QS) const {
124126
OS << "\n";
125127
break;
126128
}
127-
case OK_Dump: {
129+
case OK_DetailedAST: {
128130
OS << "Binding for \"" << BI->first << "\":\n";
129131
BI->second.dump(OS, AST->getSourceManager());
130132
OS << "\n";

‎clang-tools-extra/clang-query/Query.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
namespace clang {
1919
namespace query {
2020

21-
enum OutputKind { OK_Diag, OK_Print, OK_Dump };
21+
enum OutputKind { OK_Diag, OK_Print, OK_DetailedAST };
2222

2323
enum QueryKind {
2424
QK_Invalid,

‎clang-tools-extra/clang-query/QueryParser.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,13 @@ QueryRef QueryParser::parseSetOutputKind() {
111111
unsigned OutKind = LexOrCompleteWord<unsigned>(this, ValStr)
112112
.Case("diag", OK_Diag)
113113
.Case("print", OK_Print)
114-
.Case("dump", OK_Dump)
114+
.Case("detailed-ast", OK_DetailedAST)
115+
.Case("dump", OK_DetailedAST)
115116
.Default(~0u);
116117
if (OutKind == ~0u) {
117-
return new InvalidQuery("expected 'diag', 'print' or 'dump', got '" +
118-
ValStr + "'");
118+
return new InvalidQuery(
119+
"expected 'diag', 'print', 'detailed-ast' or 'dump', got '" + ValStr +
120+
"'");
119121
}
120122
return new SetQuery<OutputKind>(&QuerySession::OutKind, OutputKind(OutKind));
121123
}

‎clang-tools-extra/unittests/clang-query/QueryEngineTest.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ TEST_F(QueryEngineTest, Basic) {
103103

104104
Str.clear();
105105

106-
EXPECT_TRUE(SetQuery<OutputKind>(&QuerySession::OutKind, OK_Dump).run(OS, S));
106+
EXPECT_TRUE(
107+
SetQuery<OutputKind>(&QuerySession::OutKind, OK_DetailedAST).run(OS, S));
107108
EXPECT_TRUE(MatchQuery(FooMatcherString, FooMatcher).run(OS, S));
108109

109110
EXPECT_TRUE(OS.str().find("FunctionDecl") != std::string::npos);

‎clang-tools-extra/unittests/clang-query/QueryParserTest.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ TEST_F(QueryParserTest, Set) {
7070

7171
Q = parse("set output");
7272
ASSERT_TRUE(isa<InvalidQuery>(Q));
73-
EXPECT_EQ("expected 'diag', 'print' or 'dump', got ''",
73+
EXPECT_EQ("expected 'diag', 'print', 'detailed-ast' or 'dump', got ''",
7474
cast<InvalidQuery>(Q)->ErrStr);
7575

7676
Q = parse("set bind-root true foo");
@@ -79,13 +79,18 @@ TEST_F(QueryParserTest, Set) {
7979

8080
Q = parse("set output foo");
8181
ASSERT_TRUE(isa<InvalidQuery>(Q));
82-
EXPECT_EQ("expected 'diag', 'print' or 'dump', got 'foo'",
82+
EXPECT_EQ("expected 'diag', 'print', 'detailed-ast' or 'dump', got 'foo'",
8383
cast<InvalidQuery>(Q)->ErrStr);
8484

8585
Q = parse("set output dump");
8686
ASSERT_TRUE(isa<SetQuery<OutputKind> >(Q));
8787
EXPECT_EQ(&QuerySession::OutKind, cast<SetQuery<OutputKind> >(Q)->Var);
88-
EXPECT_EQ(OK_Dump, cast<SetQuery<OutputKind> >(Q)->Value);
88+
EXPECT_EQ(OK_DetailedAST, cast<SetQuery<OutputKind>>(Q)->Value);
89+
90+
Q = parse("set output detailed-ast");
91+
ASSERT_TRUE(isa<SetQuery<OutputKind>>(Q));
92+
EXPECT_EQ(&QuerySession::OutKind, cast<SetQuery<OutputKind>>(Q)->Var);
93+
EXPECT_EQ(OK_DetailedAST, cast<SetQuery<OutputKind>>(Q)->Value);
8994

9095
Q = parse("set bind-root foo");
9196
ASSERT_TRUE(isa<InvalidQuery>(Q));

0 commit comments

Comments
 (0)
Please sign in to comment.