From 7ebba9cd718c9cb72b9f4eb1e27e2d50f76b1e47 Mon Sep 17 00:00:00 2001 From: Philippe Suter <philippe.suter@gmail.com> Date: Mon, 21 Jun 2010 22:05:58 +0000 Subject: [PATCH] --- src/purescala/Analyzer.scala | 7 ++++++ src/purescala/Extensions.scala | 5 ++++ src/purescala/Reporter.scala | 46 ++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 src/purescala/Analyzer.scala create mode 100644 src/purescala/Extensions.scala create mode 100644 src/purescala/Reporter.scala diff --git a/src/purescala/Analyzer.scala b/src/purescala/Analyzer.scala new file mode 100644 index 000000000..2add7823a --- /dev/null +++ b/src/purescala/Analyzer.scala @@ -0,0 +1,7 @@ +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 new file mode 100644 index 000000000..9cf90cb44 --- /dev/null +++ b/src/purescala/Extensions.scala @@ -0,0 +1,5 @@ +package purescala + +object Extensions { + +} diff --git a/src/purescala/Reporter.scala b/src/purescala/Reporter.scala new file mode 100644 index 000000000..194409ff4 --- /dev/null +++ b/src/purescala/Reporter.scala @@ -0,0 +1,46 @@ +package purescala + +import purescala.Definitions.Definition +import purescala.Trees.Expr + +abstract class Reporter { + def error(msg: Any) : Unit + def warning(msg: Any) : Unit + def info(msg: Any) : Unit + def fatalError(msg: Any) : Nothing + + def error(definition: Definition, msg: Any) : Unit + def warning(definition: Definition, msg: Any) : Unit + def info(definition: Definition, msg: Any) : Unit + def fatalError(definition: Definition, msg: Any) : Nothing + + def error(expr: Expr, msg: Any) : Unit + def warning(expr: Expr, msg: Any) : Unit + def info(expr: Expr, msg: Any) : Unit + def fatalError(expr: Expr, msg: Any) : Nothing +} + +object DefaultReporter extends Reporter { + private val errorPfx = "Error: " + private val warningPfx = "Warning: " + private val infoPfx = "Info: " + private val fatalPfx = "Fatal error: " + + def output(msg: String) : Unit = { + Console.err.println(msg) + Console.err.println("") + } + + def error(msg: Any) = output(errorPfx + msg.toString) + def warning(msg: Any) = output(warningPfx + msg.toString) + def info(msg: Any) = output(infoPfx + msg.toString) + def fatalError(msg: Any) = { output(fatalPfx + msg.toString); exit(0) } + def error(definition: Definition, msg: Any) = output(errorPfx + "\n" + PrettyPrinter(definition) + msg.toString) + def warning(definition: Definition, msg: Any) = output(warningPfx + "\n" + PrettyPrinter(definition) + msg.toString) + def info(definition: Definition, msg: Any) = output(infoPfx + "\n" + PrettyPrinter(definition) + msg.toString) + def fatalError(definition: Definition, msg: Any) = { output(fatalPfx + "\n" + PrettyPrinter(definition) + msg.toString); exit(0) } + def error(expr: Expr, msg: Any) = output(errorPfx + "\n" + PrettyPrinter(expr) + msg.toString) + def warning(expr: Expr, msg: Any) = output(warningPfx + "\n" + PrettyPrinter(expr) + msg.toString) + def info(expr: Expr, msg: Any) = output(infoPfx + "\n" + PrettyPrinter(expr) + msg.toString) + def fatalError(expr: Expr, msg: Any) = { output(fatalPfx + "\n" + PrettyPrinter(expr) + msg.toString); exit(0) } +} -- GitLab