summaryrefslogtreecommitdiff
path: root/sources/scalac/checkers/Checker.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/scalac/checkers/Checker.java')
-rw-r--r--sources/scalac/checkers/Checker.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/sources/scalac/checkers/Checker.java b/sources/scalac/checkers/Checker.java
new file mode 100644
index 0000000000..ae52a5b1f6
--- /dev/null
+++ b/sources/scalac/checkers/Checker.java
@@ -0,0 +1,41 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package scalac.checkers;
+
+import scalac.ast.*;
+import scalac.Global;
+
+public abstract class Checker extends Traverser {
+ protected final Global global;
+
+ public Checker(Global global) {
+ this.global = global;
+ }
+
+ public boolean implies(boolean b1, boolean b2) {
+ return (!b1) | b2;
+ }
+
+ public void verify(Tree tree, boolean b, String name, String message) {
+ if (! b) {
+ System.err.println("ERROR: Condition '" + name + "' violated (after "
+ + global.currentPhase + ")!");
+ System.err.println(message);
+ global.debugPrinter.print(tree);
+ System.err.println();
+ }
+ }
+
+ abstract public void check(Tree tree);
+
+ public void traverse(Tree tree) {
+ check(tree);
+ super.traverse(tree);
+ }
+}