summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/Main.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-03-04 14:47:01 -0800
committerPaul Phillips <paulp@improving.org>2013-03-04 14:48:07 -0800
commitdc1cd96ffd44ddd47ea1d5be88b4b9e438bd9c3b (patch)
treef364545f8be08dba80fc8a9ce570ea48ca8270d1 /src/compiler/scala/tools/nsc/Main.scala
parent8dc1bc78ca57876085bb3b384b002dd29bc0e5fe (diff)
downloadscala-dc1cd96ffd44ddd47ea1d5be88b4b9e438bd9c3b.tar.gz
scala-dc1cd96ffd44ddd47ea1d5be88b4b9e438bd9c3b.tar.bz2
scala-dc1cd96ffd44ddd47ea1d5be88b4b9e438bd9c3b.zip
Disentangled RangePositions from interactive.
This is a stepping stone to having range positions all the time, as well as to modularizing the presentation compiler. It does not enable range positions by default, only places them smoewhere where they can be.
Diffstat (limited to 'src/compiler/scala/tools/nsc/Main.scala')
-rw-r--r--src/compiler/scala/tools/nsc/Main.scala52
1 files changed, 11 insertions, 41 deletions
diff --git a/src/compiler/scala/tools/nsc/Main.scala b/src/compiler/scala/tools/nsc/Main.scala
index 27132f3c51..00c6c37dfd 100644
--- a/src/compiler/scala/tools/nsc/Main.scala
+++ b/src/compiler/scala/tools/nsc/Main.scala
@@ -2,54 +2,24 @@
* Copyright 2005-2013 LAMP/EPFL
* @author Martin Odersky
*/
-
-package scala.tools.nsc
-
-import java.io.File
-import File.pathSeparator
-import scala.tools.nsc.io.AbstractFile
+package scala.tools
+package nsc
/** The main class for NSC, a compiler for the programming
* language Scala.
*/
-object Main extends Driver with EvalLoop {
-
- def resident(compiler: Global) {
- loop { line =>
- val args = line.split(' ').toList
- val command = new CompilerCommand(args, new Settings(scalacError))
- compiler.reporter.reset()
- new compiler.Run() compile command.files
- }
+class MainClass extends Driver with EvalLoop {
+ def resident(compiler: Global): Unit = loop { line =>
+ val command = new CompilerCommand(line split "\\s+" toList, new Settings(scalacError))
+ compiler.reporter.reset()
+ new compiler.Run() compile command.files
}
- override def processSettingsHook(): Boolean =
- if (settings.Yidedebug.value) {
- settings.Xprintpos.value = true
- settings.Yrangepos.value = true
- val compiler = new interactive.Global(settings, reporter)
- import compiler.{ reporter => _, _ }
-
- val sfs = command.files map getSourceFile
- val reloaded = new interactive.Response[Unit]
- askReload(sfs, reloaded)
-
- reloaded.get.right.toOption match {
- case Some(ex) => reporter.cancelled = true // Causes exit code to be non-0
- case None => reporter.reset() // Causes other compiler errors to be ignored
- }
- askShutdown()
- false
- }
- else true
-
- override def newCompiler(): Global =
- if (settings.Yrangepos.value) new Global(settings, reporter) with interactive.RangePositions
- else Global(settings, reporter)
-
+ override def newCompiler(): Global = Global(settings, reporter)
override def doCompile(compiler: Global) {
- if (settings.resident.value)
- resident(compiler)
+ if (settings.resident.value) resident(compiler)
else super.doCompile(compiler)
}
}
+
+object Main extends MainClass { }