Mercurial > python-compiler.rs
comparison src/ast_dump.rs @ 38:e244c492ff07
Add a test for ClassDef and fix ast_dump for smt::ClassDef.
author | Bastien Orivel <eijebong@bananium.fr> |
---|---|
date | Sat, 04 Jun 2016 15:28:07 +0200 |
parents | bc3437ecb12b |
children | 5f1d285471af |
comparison
equal
deleted
inserted
replaced
37:2f1625a65d56 | 38:e244c492ff07 |
---|---|
176 | 176 |
177 impl stmt { | 177 impl stmt { |
178 fn to_string(&self, indent: usize) -> String { | 178 fn to_string(&self, indent: usize) -> String { |
179 let current_indent = make_indent(indent); | 179 let current_indent = make_indent(indent); |
180 match self.clone() { | 180 match self.clone() { |
181 stmt::ClassDef(name, bases, keywords, body, decorator_list) => format!("{}def {}({}):\n{}", current_indent, name, args_to_string(bases), statements_to_string(indent, body)), | 181 stmt::ClassDef(name, bases, keywords, body, decorator_list) => format!("{}class {}({}):\n{}", current_indent, name, args_to_string(bases), statements_to_string(indent, body)), |
182 stmt::FunctionDef(name, arguments, body, decorator_list, returns) => format!("{}def {}({}):\n{}", current_indent, name, arguments_to_string(arguments), statements_to_string(indent, body)), | 182 stmt::FunctionDef(name, arguments, body, decorator_list, returns) => format!("{}def {}({}):\n{}", current_indent, name, arguments_to_string(arguments), statements_to_string(indent, body)), |
183 stmt::Global(names) => format!("{}global {}", current_indent, names.join(", ")), | 183 stmt::Global(names) => format!("{}global {}", current_indent, names.join(", ")), |
184 stmt::If(test, body, orelse) => format!("{}if {}:\n{}", current_indent, test.to_string(), if_else_statements_to_string(indent, body, orelse)), | 184 stmt::If(test, body, orelse) => format!("{}if {}:\n{}", current_indent, test.to_string(), if_else_statements_to_string(indent, body, orelse)), |
185 stmt::While(test, body, orelse) => format!("{}while {}:\n{}", current_indent, test.to_string(), if_else_statements_to_string(indent, body, orelse)), | 185 stmt::While(test, body, orelse) => format!("{}while {}:\n{}", current_indent, test.to_string(), if_else_statements_to_string(indent, body, orelse)), |
186 stmt::For(target, iter, body, orelse) => format!("{}for {} in {}:\n{}", current_indent, target.to_string(), iter.to_string(), if_else_statements_to_string(indent, body, orelse)), | 186 stmt::For(target, iter, body, orelse) => format!("{}for {} in {}:\n{}", current_indent, target.to_string(), iter.to_string(), if_else_statements_to_string(indent, body, orelse)), |