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