From 093e6b738f08802a16388d303addd94217ed51f1 Mon Sep 17 00:00:00 2001
From: Philippe Suter <philippe.suter@gmail.com>
Date: Mon, 21 Jun 2010 22:11:03 +0000
Subject: [PATCH]

---
 src/purescala/Analyser.scala   |  7 -------
 src/purescala/Extensions.scala | 15 +++++++++++++++
 2 files changed, 15 insertions(+), 7 deletions(-)
 delete mode 100644 src/purescala/Analyser.scala

diff --git a/src/purescala/Analyser.scala b/src/purescala/Analyser.scala
deleted file mode 100644
index 2add7823a..000000000
--- a/src/purescala/Analyser.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-package purescala
-
-import purescala.Definitions._
-
-abstract class Analyzer(reporter: Reporter)  {
-  def analyze(program: Program)
-}
diff --git a/src/purescala/Extensions.scala b/src/purescala/Extensions.scala
index 9cf90cb44..f6b849857 100644
--- a/src/purescala/Extensions.scala
+++ b/src/purescala/Extensions.scala
@@ -1,5 +1,20 @@
 package purescala
 
+import purescala.Trees._
+import purescala.Definitions._
+
 object Extensions {
+  sealed abstract class Extension(reporter: Reporter)
 
+  abstract class Solver(reporter: Reporter) {
+    // Returns Some(true) if valid, Some(false) if invalid,
+    // None if unknown.
+    def solve(expression: Expr) : Option[Boolean]
+  }
+  
+  abstract class Analyser(reporter: Reporter) {
+    // Does whatever the analysis should. Uses the reporter to
+    // signal results and/or errors.
+    def analyze(program: Program) : Unit
+  }
 }
-- 
GitLab