Mercurial > python-compiler.rs
changeset 55:32c78b275d5a
Implement comprehension’s to_string.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sun, 12 Jun 2016 02:27:57 +0100 |
parents | ad2453a55820 |
children | c3cc16b933d2 |
files | src/ast_dump.rs |
diffstat | 1 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ast_dump.rs +++ b/src/ast_dump.rs @@ -97,15 +97,15 @@ fn if_else_statements_to_string(indent: } } -fn generators_to_string(generators: Vec<comprehension>) -> String { - let mut result = vec!(); - for generator in generators { - result.push(format!("for {} in {}", generator.target.to_string(), generator.iter.to_string())); - for if_ in generator.ifs { +impl to_string_able for comprehension { + fn to_string(&self) -> String { + let mut result = vec!(); + result.push(format!("for {} in {}", self.target.to_string(), self.iter.to_string())); + for if_ in self.ifs.clone() { result.push(format!("if {}", if_.to_string())) } + result.join(" ") } - result.join(" ") } impl to_string_able for expr { @@ -155,8 +155,8 @@ impl to_string_able for expr { expr::Attribute(value, attr, ctx) => format!("{}.{}", value.to_string(), attr), expr::Name(name, ctx) => format!("{}", name), expr::List(elts, ctx) => format!("[{}]", vec_to_strings_vec(elts).join(", ")), - expr::ListComp(elt, generators) => format!("[{} {}]", elt.to_string(), generators_to_string(generators)), - expr::DictComp(key, value, generators) => format!("{{{}: {} {}}}", key.to_string(), value.to_string(), generators_to_string(generators)), + expr::ListComp(elt, generators) => format!("[{} {}]", elt.to_string(), vec_to_strings_vec(generators).join(" ")), + expr::DictComp(key, value, generators) => format!("{{{}: {} {}}}", key.to_string(), value.to_string(), vec_to_strings_vec(generators).join(" ")), expr::Tuple(elts, ctx) => format!("({})", vec_to_strings_vec(elts).join(", ")), expr::Ellipsis => format!("..."), }