Mercurial > python-compiler.rs
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{}{}", |