comparison src/ast_dump.rs @ 81:dc82a0d8f144

Add ast.Dict.
author Bastien Orivel <eijebong@bananium.fr>
date Mon, 13 Jun 2016 20:45:19 +0200
parents c6d3f0dabbba
children 2d906d1cb940
comparison
equal deleted inserted replaced
80:c6d3f0dabbba 81:dc82a0d8f144
197 expr::Set(elts) => format!("{{{}}}", vec_to_strings_vec(elts).join(", ")), 197 expr::Set(elts) => format!("{{{}}}", vec_to_strings_vec(elts).join(", ")),
198 expr::SetComp(elt, generators) => format!("{{{} {}}}", elt.to_string(), vec_to_strings_vec(generators).join(" ")), 198 expr::SetComp(elt, generators) => format!("{{{} {}}}", elt.to_string(), vec_to_strings_vec(generators).join(" ")),
199 expr::GeneratorExp(elt, generators) => format!("({} {})", elt.to_string(), vec_to_strings_vec(generators).join(" ")), 199 expr::GeneratorExp(elt, generators) => format!("({} {})", elt.to_string(), vec_to_strings_vec(generators).join(" ")),
200 expr::Lambda(args, body) => format!("lambda {}: {}", args.to_string(), body.to_string()), 200 expr::Lambda(args, body) => format!("lambda {}: {}", args.to_string(), body.to_string()),
201 expr::IfExp(test, body, orelse) => format!("{} if {} else {}", body.to_string(), test.to_string(), orelse.to_string()), 201 expr::IfExp(test, body, orelse) => format!("{} if {} else {}", body.to_string(), test.to_string(), orelse.to_string()),
202 expr::Dict(keys, values) => {
203 format!("{{{}}}",
204 {
205 let mut items = vec!();
206 for (key, value) in keys.iter().zip(values.iter()) {
207 let item = match *key {
208 None => format!("**{}", value.to_string()),
209 Some(ref key) => format!("{}: {}", key.to_string(), value.to_string()),
210 };
211 items.push(item);
212 }
213 items.join(", ")
214 }
215 )
216 },
202 } 217 }
203 } 218 }
204 } 219 }
205 220
206 impl to_string_able for arg { 221 impl to_string_able for arg {