From 61151e3bd0402351c8b1348f09fac8abace40021 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ali=20Sinan=20K=C3=B6ksal?= <alisinan@gmail.com>
Date: Wed, 6 Apr 2011 09:01:24 +0000
Subject: [PATCH] Rename CP definitions class, reporting info.

---
 cp-demo/ChooseCalls.scala              |  5 +----
 src/cp/CPComponent.scala               |  4 +++-
 src/cp/CallTransformation.scala        | 22 ++++++++++++----------
 src/cp/{CP.scala => Definitions.scala} |  2 +-
 4 files changed, 17 insertions(+), 16 deletions(-)
 rename src/cp/{CP.scala => Definitions.scala} (94%)

diff --git a/cp-demo/ChooseCalls.scala b/cp-demo/ChooseCalls.scala
index c0d4ab277..2e4480db2 100644
--- a/cp-demo/ChooseCalls.scala
+++ b/cp-demo/ChooseCalls.scala
@@ -1,7 +1,4 @@
-import scala.collection.immutable.Set
-import funcheck.Annotations._
-import funcheck.Utils._
-import cp.CP._
+import cp.Definitions._
 
 object ChooseCalls { 
   sealed abstract class Color
diff --git a/src/cp/CPComponent.scala b/src/cp/CPComponent.scala
index 8a0e56aa9..0ce12c08f 100644
--- a/src/cp/CPComponent.scala
+++ b/src/cp/CPComponent.scala
@@ -30,13 +30,15 @@ class CPComponent(val global: Global, val pluginInstance: CPPlugin)
 
       println("Starting CP phase")
 
+      /*
       def plop(tr: Tree) = tr match {
         case a: Apply =>
           println(a) 
           println(a.fun.getClass) 
         case _ => 
       }
-      // new ForeachTreeTraverser(plop).traverse(unit.body)
+      new ForeachTreeTraverser(plop).traverse(unit.body)
+      */
 
       val prog: purescala.Definitions.Program = extractCode(unit, true)
       val (progString, progId) = serialize(prog)
diff --git a/src/cp/CallTransformation.scala b/src/cp/CallTransformation.scala
index ff2fa31e8..5715bcde8 100644
--- a/src/cp/CallTransformation.scala
+++ b/src/cp/CallTransformation.scala
@@ -18,7 +18,9 @@ trait CallTransformation
   import CODE._
 
   private lazy val cpPackage = definitions.getModule("cp")
-  private lazy val cpDefinitionsModule = definitions.getModule("cp.CP")
+  private lazy val cpDefinitionsModule = definitions.getModule("cp.Definitions")
+
+  val reporter = purescala.Settings.reporter
 
   def transformCalls(unit: CompilationUnit, prog: Program, serializedProgString : String, serializedProgId : Int) : Unit =
     unit.body = new CallTransformer(unit, prog, serializedProgString, serializedProgId).transform(unit.body)
@@ -36,16 +38,15 @@ trait CallTransformation
           val fd = extractPredicate(unit, funValDefs, funBody)
 
           val outputVarList = funValDefs.map(_.name.toString)
-          println("Output variables: " + outputVarList.mkString(", "))
+          reporter.info("Considering predicate:") 
+          reporter.info(fd)
 
-          println("Extracted function definition:") 
-          println(fd)
           val codeGen = new CodeGenerator(unit, currentOwner, tree.pos)
 
           fd.body match {
-            case None => println("Could not extract choose predicate: " + funBody); super.transform(tree)
+            case None => reporter.error("Could not extract choose predicate: " + funBody); super.transform(tree)
             case Some(b) =>
-              // write expression into a file
+              // serialize expression
               val (exprString, exprId) = serialize(b)
 
               // retrieve program, expression
@@ -54,7 +55,10 @@ trait CallTransformation
 
               // compute input variables and assert equalities
               val inputVars = variablesOf(b).filter{ v => !outputVarList.contains(v.name) }.toList
-              println("Input variables: " + inputVars.mkString(", "))
+
+              reporter.info("Input variables : " + inputVars.mkString(", "))
+              reporter.info("Output variables: " + outputVarList.mkString(", "))
+
               val (inputVarListString, inputVarListId) = serialize(inputVars map (iv => Variable(iv)))
               val equalities : List[Tree] = (for (iv <- inputVars) yield {
                 codeGen.inputEquality(inputVarListString, inputVarListId, iv, scalaToExprSym)
@@ -66,11 +70,9 @@ trait CallTransformation
               val (solverInvocation, outcomeTupleSym)         = codeGen.invokeSolver(progSym, if (inputVars.isEmpty) exprSym else andExprSym)
               val (modelAssignment, modelSym)                 = codeGen.assignModel(outcomeTupleSym)
 
-              // TODO generate all correct e2s invocations
+              // retrieving interpretations and converting to Scala
               val tripleList = (for ((ov, tt) <- (outputVarList zip typeTreeList)) yield {
-                // declare modelValue : Expr
                 val (modelValueAssignment, modelValueSym)     = codeGen.assignModelValue(ov, modelSym)
-                // declare castedValue : type of argument ov
                 val (scalaValueAssignment, scalaValueSym)     = codeGen.assignScalaValue(exprToScalaCastSym, tt, modelValueSym)
                 (modelValueAssignment, scalaValueAssignment, scalaValueSym)
               })
diff --git a/src/cp/CP.scala b/src/cp/Definitions.scala
similarity index 94%
rename from src/cp/CP.scala
rename to src/cp/Definitions.scala
index 9d4599da8..cc5266bd0 100644
--- a/src/cp/CP.scala
+++ b/src/cp/Definitions.scala
@@ -1,6 +1,6 @@
 package cp
 
-object CP {
+object Definitions {
   final class NotImplementedException extends Exception
 
   def choose[A](pred : A => Boolean) : A = {
-- 
GitLab