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 {