From c2520bb3fdd9222f936a22535e7f4e7006f0975d Mon Sep 17 00:00:00 2001
From: Philippe Suter <philippe.suter@gmail.com>
Date: Tue, 9 Jun 2009 16:43:51 +0000
Subject: [PATCH] forgot the pretty-printer...

---
 src/funcheck/purescala/PrettyPrinter.scala | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 src/funcheck/purescala/PrettyPrinter.scala

diff --git a/src/funcheck/purescala/PrettyPrinter.scala b/src/funcheck/purescala/PrettyPrinter.scala
new file mode 100644
index 000000000..ed45f77e2
--- /dev/null
+++ b/src/funcheck/purescala/PrettyPrinter.scala
@@ -0,0 +1,48 @@
+package funcheck.purescala
+
+import Trees._
+import Common._
+
+object PrettyPrinter {
+  def apply(tree: Expr): String = {
+    val retSB = pp(tree, new StringBuffer)
+    retSB.toString
+  }
+
+  import java.lang.StringBuffer
+
+  private def pp(tree: Expr, sb: StringBuffer): StringBuffer = tree match {
+    case And(exprs) => {
+      var nsb = sb
+      nsb.append("(")
+      val sz = exprs.size
+      var c = 0
+      exprs.foreach(ex => { nsb = pp(ex, nsb) ; c += 1 ; if(c < sz) nsb.append(" \u2227 ") })
+      nsb.append(")")
+      nsb
+    }
+
+    case Or(exprs) => {
+      var nsb = sb
+      nsb.append("(")
+      val sz = exprs.size
+      var c = 0
+      exprs.foreach(ex => { nsb = pp(ex, nsb) ; c += 1 ; if(c < sz) nsb.append(" \u2228 ") })
+      nsb.append(")")
+      nsb
+    }
+
+    case Not(expr) => {
+      sb.append("\u00AC(")
+      pp(expr, sb)
+      sb.append(")")
+    }
+
+    case IntLiteral(v) => sb.append(v)
+
+    case BooleanLiteral(v) => sb.append(v)
+
+    case _ => sb.append("?")
+  }
+
+}
-- 
GitLab