changeset 22:25b202005d1d

Return a String from ast_dump instead of printing it directly.
author Bastien Orivel <eijebong@bananium.fr>
date Fri, 03 Jun 2016 19:00:09 +0200
parents 7af637f444d1
children 5a7c3393382b
files src/ast_dump.rs src/main.rs
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ast_dump.rs
+++ b/src/ast_dump.rs
@@ -209,8 +209,12 @@ impl stmt {
 }
 
 #[allow(dead_code)]
-pub fn dump_ast(ast: &Module) {
+pub fn dump_ast(ast: &Module) -> String {
+    let mut dumped_statements = vec!();
     for statement in &ast.statements {
-        println!("{}", statement.to_string(0));
+        let dumped_statement = statement.to_string(0);
+        dumped_statements.push(dumped_statement);
     }
+    dumped_statements.join("\n")
 }
+
--- a/src/main.rs
+++ b/src/main.rs
@@ -49,7 +49,7 @@ fn main() {
 
     //python_dump::dump_module(&module);
     let module_ast = ast_convert::convert_ast("__main__".to_string(), &module);
-    ast_dump::dump_ast(&module_ast);
+    println!("{}", ast_dump::dump_ast(&module_ast));
     //let scoped_ast = ast_scope::scope_ast(vec!(module_ast));
     //println!("{:#?}", scoped_ast);
     //let new_scoped_ast = ast_scope::check_scoping(scoped_ast);