diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-08-11 17:16:24 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-01-31 14:16:49 +0100 |
commit | 5be4c2687a89e4bdcbd95c439b22b694c3880afe (patch) | |
tree | dd2ab3643b327ac07fdfdc4cf650b5509000d669 | |
parent | 9e56306f4d7c15e7667d8ac0b62ae6efb93ba756 (diff) | |
download | gcc-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.cc | 10 | ||||
-rw-r--r-- | gcc/rust/rust-session-manager.h | 2 |
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; |