Mercurial > python-compiler.rs
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(" ")), |