comparison 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
comparison
equal deleted inserted replaced
1:b90e49ab734b 2:5fc7c2790d8c
66 } 66 }
67 67
68 impl Statement { 68 impl Statement {
69 fn to_string(&self, indent: usize) -> String { 69 fn to_string(&self, indent: usize) -> String {
70 match self.clone() { 70 match self.clone() {
71 Statement::ClassDef(name, classes, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, {
72 let mut bases = vec!();
73 for class in classes {
74 bases.push(class.to_string());
75 }
76 bases.join(", ")
77 }, {
78 let mut statements = vec!();
79 for statement in body {
80 statements.push(statement.to_string(indent + 1));
81 }
82 statements.join("\n")
83 }),
71 Statement::FunctionDef(Expr::Name(name), arguments, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, { 84 Statement::FunctionDef(Expr::Name(name), arguments, body) => format!("{}def {}({}):\n{}", make_indent(indent), name, {
72 let mut args = vec!(); 85 let mut args = vec!();
73 for arg in arguments { 86 for arg in arguments {
74 args.push(arg.to_string()); 87 args.push(arg.to_string());
75 } 88 }