diff options
author | Haojian Wu <hokein.wu@gmail.com> | 2021-02-11 09:25:17 +0100 |
---|---|---|
committer | Haojian Wu <hokein.wu@gmail.com> | 2021-02-11 09:40:47 +0100 |
commit | df1a17c219c073427f9d00eb042057bb3a4a3c64 (patch) | |
tree | 4707f60d23bdf3be208a6f1105e5ab1425f2e973 | |
parent | 3b4f706ae16bb12b7d925fbf428def7cb2a6f7db (diff) | |
download | llvm-df1a17c219c073427f9d00eb042057bb3a4a3c64.zip llvm-df1a17c219c073427f9d00eb042057bb3a4a3c64.tar.gz llvm-df1a17c219c073427f9d00eb042057bb3a4a3c64.tar.bz2 |
[clang-check] Add tokens-dump in clang-check.
It is useful for syntax-tree developement.
Reviewed By: kbobyrev
Differential Revision: https://reviews.llvm.org/D96017
-rw-r--r-- | clang/tools/clang-check/ClangCheck.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/tools/clang-check/ClangCheck.cpp b/clang/tools/clang-check/ClangCheck.cpp index 4be3ce9..11fdeb7 100644 --- a/clang/tools/clang-check/ClangCheck.cpp +++ b/clang/tools/clang-check/ClangCheck.cpp @@ -88,6 +88,9 @@ static cl::opt<bool> FixWhatYouCan( static cl::opt<bool> SyntaxTreeDump("syntax-tree-dump", cl::desc("dump the syntax tree"), cl::cat(ClangCheckCategory)); +static cl::opt<bool> TokensDump("tokens-dump", + cl::desc("dump the preprocessed tokens"), + cl::cat(ClangCheckCategory)); namespace { @@ -148,6 +151,8 @@ public: void HandleTranslationUnit(clang::ASTContext &AST) override { clang::syntax::TokenBuffer TB = std::move(Collector).consume(); + if (TokensDump) + llvm::outs() << TB.dumpForTests(); clang::syntax::Arena A(AST.getSourceManager(), AST.getLangOpts(), TB); llvm::outs() << clang::syntax::buildSyntaxTree(A, AST)->dump( AST.getSourceManager()); @@ -217,7 +222,7 @@ int main(int argc, const char **argv) { FrontendFactory = newFrontendActionFactory<clang::ento::AnalysisAction>(); else if (Fixit) FrontendFactory = newFrontendActionFactory<ClangCheckFixItAction>(); - else if (SyntaxTreeDump) + else if (SyntaxTreeDump || TokensDump) FrontendFactory = newFrontendActionFactory<DumpSyntaxTree>(); else FrontendFactory = newFrontendActionFactory(&CheckFactory); |