aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2022-08-11 17:16:24 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2023-01-31 14:16:49 +0100
commit5be4c2687a89e4bdcbd95c439b22b694c3880afe (patch)
treedd2ab3643b327ac07fdfdc4cf650b5509000d669
parent9e56306f4d7c15e7667d8ac0b62ae6efb93ba756 (diff)
downloadgcc-5be4c2687a89e4bdcbd95c439b22b694c3880afe.zip
gcc-5be4c2687a89e4bdcbd95c439b22b694c3880afe.tar.gz
gcc-5be4c2687a89e4bdcbd95c439b22b694c3880afe.tar.bz2
gccrs: session-manager: Add ast-pretty-expanded dump
gcc/rust/ChangeLog: * rust-session-manager.cc (Session::compile_crate): Allow the dump of prettified AST (Session::dump_ast_pretty): New * rust-session-manager.h: Add new output file for pretty AST dump
-rw-r--r--gcc/rust/rust-session-manager.cc10
-rw-r--r--gcc/rust/rust-session-manager.h2
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 2b33ddf..157f509 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -58,6 +58,7 @@ namespace Rust {
const char *kLexDumpFile = "gccrs.lex.dump";
const char *kASTDumpFile = "gccrs.ast.dump";
const char *kASTPrettyDumpFile = "gccrs.ast-pretty.dump";
+const char *kASTPrettyDumpFileExpanded = "gccrs.ast-pretty-expanded.dump";
const char *kASTExpandedDumpFile = "gccrs.ast-expanded.dump";
const char *kHIRDumpFile = "gccrs.hir.dump";
const char *kHIRPrettyDumpFile = "gccrs.hir-pretty.dump";
@@ -531,6 +532,7 @@ Session::compile_crate (const char *filename)
// dump AST with expanded stuff
rust_debug ("BEGIN POST-EXPANSION AST DUMP");
dump_ast_expanded (parser, parsed_crate);
+ dump_ast_pretty (parsed_crate, true);
rust_debug ("END POST-EXPANSION AST DUMP");
}
@@ -832,10 +834,14 @@ Session::dump_ast (Parser<Lexer> &parser, AST::Crate &crate) const
}
void
-Session::dump_ast_pretty (AST::Crate &crate) const
+Session::dump_ast_pretty (AST::Crate &crate, bool expanded) const
{
std::ofstream out;
- out.open (kASTPrettyDumpFile);
+ if (expanded)
+ out.open (kASTPrettyDumpFileExpanded);
+ else
+ out.open (kASTPrettyDumpFile);
+
if (out.fail ())
{
rust_error_at (Linemap::unknown_location (), "cannot open %s:%m; ignored",
diff --git a/gcc/rust/rust-session-manager.h b/gcc/rust/rust-session-manager.h
index 055aea6..db91599 100644
--- a/gcc/rust/rust-session-manager.h
+++ b/gcc/rust/rust-session-manager.h
@@ -319,7 +319,7 @@ private:
void dump_lex (Parser<Lexer> &parser) const;
void dump_ast (Parser<Lexer> &parser, AST::Crate &crate) const;
- void dump_ast_pretty (AST::Crate &crate) const;
+ void dump_ast_pretty (AST::Crate &crate, bool expanded = false) const;
void dump_ast_expanded (Parser<Lexer> &parser, AST::Crate &crate) const;
void dump_hir (HIR::Crate &crate) const;
void dump_hir_pretty (HIR::Crate &crate) const;