diff --git a/src/main/scala/leon/purescala/ScalaPrinter.scala b/src/main/scala/leon/purescala/ScalaPrinter.scala index e7ce49521e41b8d2fe83506a3fc6aaa1736091e3..2967ea34a1032afeb5d553caa3ac2e1d2bc60ddf 100644 --- a/src/main/scala/leon/purescala/ScalaPrinter.scala +++ b/src/main/scala/leon/purescala/ScalaPrinter.scala @@ -66,6 +66,28 @@ object ScalaPrinter { private def pp(tree: Expr, sb: StringBuffer, lvl: Int): StringBuffer = tree match { case Variable(id) => sb.append(id) case DeBruijnIndex(idx) => sys.error("Not Valid Scala") + case LetTuple(ids,d,e) => { + sb.append("locally {\n") + ind(sb, lvl+1) + sb.append("val (" ) + for (((id, tpe), i) <- ids.map(id => (id, id.getType)).zipWithIndex) { + sb.append(id.toString+": ") + pp(tpe, sb, lvl) + if (i != ids.size-1) { + sb.append(", ") + } + } + sb.append(") = ") + pp(d, sb, lvl+1) + sb.append("\n") + ind(sb, lvl+1) + pp(e, sb, lvl+1) + sb.append("\n") + ind(sb, lvl) + sb.append("}\n") + ind(sb, lvl) + sb + } case Let(b,d,e) => { sb.append("locally {\n") ind(sb, lvl+1)