comparison src/ast_dump.rs @ 86:a7b1db623f41

Implement NameConstant correctly.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Wed, 22 Jun 2016 22:55:55 +0100
parents 09f5e0d7bcf3
children 898876834564
comparison
equal deleted inserted replaced
85:09f5e0d7bcf3 86:a7b1db623f41
1 use python_ast::{Module, stmt, expr, boolop, operator, unaryop, cmpop, arguments, arg, keyword, comprehension, withitem, excepthandler, slice}; 1 use python_ast::{Module, stmt, expr, boolop, operator, unaryop, cmpop, arguments, arg, keyword, comprehension, withitem, excepthandler, slice, name_constant};
2 2
3 use std::iter; 3 use std::iter;
4 4
5 trait to_string_able { 5 trait to_string_able {
6 fn to_string(&self) -> String; 6 fn to_string(&self) -> String;
194 arguments.extend(keywords); 194 arguments.extend(keywords);
195 arguments.join(", ") 195 arguments.join(", ")
196 }), 196 }),
197 expr::Num(n) => format!("{}", n), 197 expr::Num(n) => format!("{}", n),
198 expr::Str(s) => format!("\"{}\"", s), 198 expr::Str(s) => format!("\"{}\"", s),
199 expr::NameConstant(name) => format!("{}", name), 199 expr::NameConstant(constant) => match constant {
200 name_constant::True => String::from("True"),
201 name_constant::False => String::from("False"),
202 name_constant::None_ => String::from("None")
203 },
200 expr::Attribute(value, attr, _) => format!("{}.{}", value.to_string(), attr), 204 expr::Attribute(value, attr, _) => format!("{}.{}", value.to_string(), attr),
201 expr::Name(name, _) => format!("{}", name), 205 expr::Name(name, _) => format!("{}", name),
202 expr::List(elts, _) => format!("[{}]", vec_to_strings_vec(elts).join(", ")), 206 expr::List(elts, _) => format!("[{}]", vec_to_strings_vec(elts).join(", ")),
203 expr::ListComp(elt, generators) => format!("[{} {}]", elt.to_string(), vec_to_strings_vec(generators).join(" ")), 207 expr::ListComp(elt, generators) => format!("[{} {}]", elt.to_string(), vec_to_strings_vec(generators).join(" ")),
204 expr::DictComp(key, value, generators) => format!("{{{}: {} {}}}", key.to_string(), value.to_string(), vec_to_strings_vec(generators).join(" ")), 208 expr::DictComp(key, value, generators) => format!("{{{}: {} {}}}", key.to_string(), value.to_string(), vec_to_strings_vec(generators).join(" ")),