Mercurial > python-compiler.rs
diff src/ast_dump.rs @ 48:039f85b187f2
Also handle relative imports.
author | Bastien Orivel <eijebong@bananium.fr> |
---|---|
date | Tue, 07 Jun 2016 13:34:12 +0200 |
parents | 38f59b0efc2c |
children | 141f1769e1f0 |
line wrap: on
line diff
--- a/src/ast_dump.rs +++ b/src/ast_dump.rs @@ -190,16 +190,28 @@ impl stmt { Some(expr) => format!(" {}", expr.to_string()), None => "".to_string() }), - stmt::ImportFrom(module, names, level) => format!("{}from {} import {}", current_indent, module.to_string(), { - let mut names_ = vec!(); - for name in names { - match name.asname { - None => names_.push(name.name), - Some(asname) => names_.push(format!("{} as {}", name.name, asname)) + stmt::ImportFrom(module, names, level) => { + format!("{}from {}{} import {}", + current_indent, + { + match level { + None => String::new(), + Some(level) => { let dots: String = iter::repeat(".").take(level as usize).collect(); dots } + } + }, + module.to_string(), + { + let mut names_ = vec!(); + for name in names { + match name.asname { + None => names_.push(name.name), + Some(asname) => names_.push(format!("{} as {}", name.name, asname)) + } + } + names_.join(", ") } - } - names_.join(", ") - }), + ) + }, stmt::Import(names) => format!("{}import {}", current_indent, { let mut names_ = vec!(); for name in names {