comparison 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
comparison
equal deleted inserted replaced
47:38f59b0efc2c 48:039f85b187f2
188 stmt::AugAssign(target, op, value) => format!("{}{} {}= {}", current_indent, target.to_string(), op.to_string(), value.to_string()), 188 stmt::AugAssign(target, op, value) => format!("{}{} {}= {}", current_indent, target.to_string(), op.to_string(), value.to_string()),
189 stmt::Return(expr) => format!("{}return{}", current_indent, match expr { 189 stmt::Return(expr) => format!("{}return{}", current_indent, match expr {
190 Some(expr) => format!(" {}", expr.to_string()), 190 Some(expr) => format!(" {}", expr.to_string()),
191 None => "".to_string() 191 None => "".to_string()
192 }), 192 }),
193 stmt::ImportFrom(module, names, level) => format!("{}from {} import {}", current_indent, module.to_string(), { 193 stmt::ImportFrom(module, names, level) => {
194 let mut names_ = vec!(); 194 format!("{}from {}{} import {}",
195 for name in names { 195 current_indent,
196 match name.asname { 196 {
197 None => names_.push(name.name), 197 match level {
198 Some(asname) => names_.push(format!("{} as {}", name.name, asname)) 198 None => String::new(),
199 Some(level) => { let dots: String = iter::repeat(".").take(level as usize).collect(); dots }
200 }
201 },
202 module.to_string(),
203 {
204 let mut names_ = vec!();
205 for name in names {
206 match name.asname {
207 None => names_.push(name.name),
208 Some(asname) => names_.push(format!("{} as {}", name.name, asname))
209 }
210 }
211 names_.join(", ")
199 } 212 }
200 } 213 )
201 names_.join(", ") 214 },
202 }),
203 stmt::Import(names) => format!("{}import {}", current_indent, { 215 stmt::Import(names) => format!("{}import {}", current_indent, {
204 let mut names_ = vec!(); 216 let mut names_ = vec!();
205 for name in names { 217 for name in names {
206 match name.asname { 218 match name.asname {
207 None => names_.push(name.name), 219 None => names_.push(name.name),