|
Scala example source code file (Reporter.scala)
The Reporter.scala Scala example source code/* NSC -- new Scala compiler * Copyright 2002-2013 LAMP/EPFL * @author Martin Odersky */ package scala.tools.nsc package reporters import scala.reflect.internal.util._ /** * This interface provides methods to issue information, warning and * error messages. */ abstract class Reporter { protected def info0(pos: Position, msg: String, severity: Severity, force: Boolean): Unit object severity extends Enumeration class Severity(val id: Int) extends severity.Value { var count: Int = 0 } val INFO = new Severity(0) { override def toString: String = "INFO" } val WARNING = new Severity(1) { override def toString: String = "WARNING" } val ERROR = new Severity(2) { override def toString: String = "ERROR" } /** Whether very long lines can be truncated. This exists so important * debugging information (like printing the classpath) is not rendered * invisible due to the max message length. */ private var _truncationOK: Boolean = true def truncationOK = _truncationOK def withoutTruncating[T](body: => T): T = { val saved = _truncationOK _truncationOK = false try body finally _truncationOK = saved } private var incompleteHandler: (Position, String) => Unit = null def incompleteHandled = incompleteHandler != null def withIncompleteHandler[T](handler: (Position, String) => Unit)(thunk: => T) = { val saved = incompleteHandler incompleteHandler = handler try thunk finally incompleteHandler = saved } var cancelled = false def hasErrors = ERROR.count > 0 || cancelled def hasWarnings = WARNING.count > 0 /** For sending a message which should not be labeled as a warning/error, * but also shouldn't require -verbose to be visible. */ def echo(msg: String): Unit = info(NoPosition, msg, force = true) def echo(pos: Position, msg: String): Unit = info(pos, msg, force = true) /** Informational messages, suppressed unless -verbose or force=true. */ def info(pos: Position, msg: String, force: Boolean): Unit = info0(pos, msg, INFO, force) /** Warnings and errors. */ def warning(pos: Position, msg: String): Unit = withoutTruncating(info0(pos, msg, WARNING, force = false)) def error(pos: Position, msg: String): Unit = withoutTruncating(info0(pos, msg, ERROR, force = false)) def incompleteInputError(pos: Position, msg: String): Unit = { if (incompleteHandled) incompleteHandler(pos, msg) else error(pos, msg) } def comment(pos: Position, msg: String) { } def flush() { } def reset() { INFO.count = 0 ERROR.count = 0 WARNING.count = 0 cancelled = false } } Other Scala source code examplesHere is a short list of links related to this Scala Reporter.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.