Mercurial > python-compiler.rs
diff src/ast_dump.rs @ 2:5fc7c2790d8c
Add class support.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 31 May 2016 02:31:55 +0100 |
parents | b90e49ab734b |
children | 326d7f2a94d4 |
line wrap: on
line diff
--- a/src/ast_dump.rs +++ b/src/ast_dump.rs @@ -68,6 +68,19 @@ fn make_indent(indent: usize) -> String impl Statement { fn to_string(&self, indent: usize) -> String { match self.clone() { + Statement::ClassDef(name, classes, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, { + let mut bases = vec!(); + for class in classes { + bases.push(class.to_string()); + } + bases.join(", ") + }, { + let mut statements = vec!(); + for statement in body { + statements.push(statement.to_string(indent + 1)); + } + statements.join("\n") + }), Statement::FunctionDef(Expr::Name(name), arguments, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, { let mut args = vec!(); for arg in arguments {