{
rust_error_at (
Location (),
- "dump option was not given a name. choose %<lex%>, %<parse%>, "
+ "dump option was not given a name. choose %<lex%>, "
"%<register_plugins%>, %<injection%>, %<expansion%>, %<resolution%>,"
" %<target_options%>, %<hir%>, or %<all%>");
return false;
{
options.enable_dump_option (CompileOptions::LEXER_DUMP);
}
- else if (arg == "parse")
- {
- options.enable_dump_option (CompileOptions::PARSER_AST_DUMP);
- }
else if (arg == "ast-pretty")
{
options.enable_dump_option (CompileOptions::AST_DUMP_PRETTY);
handle_crate_name (*ast_crate.get ());
// dump options except lexer dump
- if (options.dump_option_enabled (CompileOptions::PARSER_AST_DUMP))
- {
- dump_ast (parser, *ast_crate.get ());
- }
if (options.dump_option_enabled (CompileOptions::AST_DUMP_TOKENSTREAM))
{
dump_tokenstream (*ast_crate.get ());
{
// 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");
}
rust_debug ("finished expansion");
}
-void
-Session::dump_ast (Parser<Lexer> &parser, AST::Crate &crate) const
-{
- std::ofstream out;
- out.open (kASTDumpFile);
- if (out.fail ())
- {
- rust_error_at (Linemap::unknown_location (), "cannot open %s:%m; ignored",
- kASTDumpFile);
- return;
- }
-
- parser.debug_dump_ast_output (crate, out);
- out.close ();
-}
-
void
Session::dump_ast_pretty (AST::Crate &crate, bool expanded) const
{
out.close ();
}
-void
-Session::dump_ast_expanded (Parser<Lexer> &parser, AST::Crate &crate) const
-{
- std::ofstream out;
- out.open (kASTExpandedDumpFile);
- if (out.fail ())
- {
- rust_error_at (Linemap::unknown_location (), "cannot open %s:%m; ignored",
- kASTExpandedDumpFile);
- return;
- }
-
- parser.debug_dump_ast_output (crate, out);
- out.close ();
-}
-
void
Session::dump_hir (HIR::Crate &crate) const
{
enum DumpOption
{
LEXER_DUMP,
- PARSER_AST_DUMP,
AST_DUMP_PRETTY,
AST_DUMP_TOKENSTREAM,
REGISTER_PLUGINS_DUMP,
void enable_all_dump_options ()
{
enable_dump_option (DumpOption::LEXER_DUMP);
- enable_dump_option (DumpOption::PARSER_AST_DUMP);
enable_dump_option (DumpOption::AST_DUMP_PRETTY);
enable_dump_option (DumpOption::AST_DUMP_TOKENSTREAM);
enable_dump_option (DumpOption::REGISTER_PLUGINS_DUMP);
bool enable_dump (std::string arg);
void dump_lex (Parser<Lexer> &parser) const;
- void dump_ast (Parser<Lexer> &parser, AST::Crate &crate) const;
void dump_ast_pretty (AST::Crate &crate, bool expanded = false) const;
void dump_tokenstream (AST::Crate &crate) 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;
void dump_type_resolution (HIR::Crate &crate) const;