From dc1cd96ffd44ddd47ea1d5be88b4b9e438bd9c3b Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Mon, 4 Mar 2013 14:47:01 -0800 Subject: 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. --- src/compiler/scala/tools/nsc/Main.scala | 52 +++++++-------------------------- 1 file changed, 11 insertions(+), 41 deletions(-) (limited to 'src/compiler/scala/tools/nsc/Main.scala') 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 { } -- cgit v1.2.3