comparison src/ast_dump.rs @ 85:09f5e0d7bcf3

Fix chained Compare dumping.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Wed, 22 Jun 2016 22:50:12 +0100
parents ff6b1aeb544a
children a7b1db623f41
comparison
equal deleted inserted replaced
84:ff6b1aeb544a 85:09f5e0d7bcf3
179 expr::BinOp(a, op, b) => format!("{} {} {}", a.to_string(), op.to_string(), b.to_string()), 179 expr::BinOp(a, op, b) => format!("{} {} {}", a.to_string(), op.to_string(), b.to_string()),
180 expr::UnaryOp(op, operand) => format!("{}{}", op.to_string(), operand.to_string()), 180 expr::UnaryOp(op, operand) => format!("{}{}", op.to_string(), operand.to_string()),
181 181
182 expr::Compare(left, ops, comparators) => format!("{} {}", left.to_string(), { 182 expr::Compare(left, ops, comparators) => format!("{} {}", left.to_string(), {
183 let mut arguments = vec!(); 183 let mut arguments = vec!();
184 184 for (op, comparator) in ops.iter().zip(comparators.iter()) {
185 // XXX: wrong order!
186 for op in ops {
187 arguments.push(op.to_string().to_string())
188 }
189 for comparator in comparators {
190 arguments.push(comparator.to_string())
191 }
192 /*
193 for (op, comparator) in ops.zip(comparators) {
194 let op = op.unwrap();
195 let comparator = comparator.unwrap();
196 arguments.push(format!("{} {}", op.to_string(), comparator.to_string())) 185 arguments.push(format!("{} {}", op.to_string(), comparator.to_string()))
197 } 186 }
198 */
199
200 arguments.join(" ") 187 arguments.join(" ")
201 }), 188 }),
202 expr::Call(func, args, keywords) => format!("{}({})", func.to_string(), { 189 expr::Call(func, args, keywords) => format!("{}({})", func.to_string(), {
203 let mut arguments = vec!(); 190 let mut arguments = vec!();
204 let args = vec_to_strings_vec(args); 191 let args = vec_to_strings_vec(args);