comparison src/ast_dump.rs @ 66:32550e12aedf

Simplify some expressions in ast_dump.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Mon, 13 Jun 2016 01:39:20 +0100
parents ce5e27a3f277
children 8ce78e2ba48c
comparison
equal deleted inserted replaced
65:ce5e27a3f277 66:32550e12aedf
272 None => String::new() 272 None => String::new()
273 }), 273 }),
274 stmt::ImportFrom(module, names, level) => { 274 stmt::ImportFrom(module, names, level) => {
275 format!("{}from {}{} import {}", 275 format!("{}from {}{} import {}",
276 current_indent, 276 current_indent,
277 { 277 match level {
278 match level { 278 None => String::new(),
279 None => String::new(), 279 Some(level) => iter::repeat(".").take(level).collect()
280 Some(level) => { let dots: String = iter::repeat(".").take(level as usize).collect(); dots }
281 }
282 }, 280 },
283 module.to_string(), 281 module.to_string(),
284 { 282 {
285 let mut names_ = vec!(); 283 let mut names_ = vec!();
286 for name in names { 284 for name in names {
287 match name.asname { 285 names_.push(
288 None => names_.push(name.name), 286 match name.asname {
289 Some(asname) => names_.push(format!("{} as {}", name.name, asname)) 287 None => name.name,
290 } 288 Some(asname) => format!("{} as {}", name.name, asname)
289 }
290 )
291 } 291 }
292 names_.join(", ") 292 names_.join(", ")
293 } 293 }
294 ) 294 )
295 }, 295 },
296 stmt::Import(names) => format!("{}import {}", current_indent, { 296 stmt::Import(names) => format!("{}import {}", current_indent, {
297 let mut names_ = vec!(); 297 let mut names_ = vec!();
298 for name in names { 298 for name in names {
299 match name.asname { 299 names_.push(
300 None => names_.push(name.name), 300 match name.asname {
301 Some(asname) => names_.push(format!("{} as {}", name.name, asname)) 301 None => name.name,
302 } 302 Some(asname) => format!("{} as {}", name.name, asname)
303 }
304 )
303 } 305 }
304 names_.join(", ") 306 names_.join(", ")
305 }), 307 }),
306 stmt::Expr(expr) => format!("{}{}", current_indent, expr.to_string()), 308 stmt::Expr(expr) => format!("{}{}", current_indent, expr.to_string()),
307 stmt::Break => format!("{}break", current_indent), 309 stmt::Break => format!("{}break", current_indent),
310 stmt::Continue => format!("{}continue", current_indent), 312 stmt::Continue => format!("{}continue", current_indent),
311 stmt::Assert(test, msg) => { 313 stmt::Assert(test, msg) => {
312 format!("{}assert {}{}", 314 format!("{}assert {}{}",
313 current_indent, 315 current_indent,
314 test.to_string(), 316 test.to_string(),
315 { 317 match msg {
316 match msg { 318 None => String::new(),
317 Some(msg) => format!(", {}", msg.to_string()), 319 Some(msg) => format!(", {}", msg.to_string())
318 None => String::new()
319 }
320 } 320 }
321 ) 321 )
322 }, 322 },
323 stmt::With(items, body) => { 323 stmt::With(items, body) => {
324 format!("{}with {}:\n{}", 324 format!("{}with {}:\n{}",
325 current_indent, 325 current_indent,
326 { 326 vec_to_strings_vec(items).join(", "),
327 let items = vec_to_strings_vec(items);
328 items.join(", ")
329 },
330 statements_to_string(indent, body) 327 statements_to_string(indent, body)
331 ) 328 )
332 }, 329 },
333 stmt::Raise(exc, cause) => { 330 stmt::Raise(exc, cause) => {
334 format!("{}raise{}{}", 331 format!("{}raise{}{}",