diff options
Diffstat (limited to 'sources/scalac/checkers/Checker.java')
-rw-r--r-- | sources/scalac/checkers/Checker.java | 41 |
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); + } +} |